4
4
import org .osbot .rs07 .api .model .NPC ;
5
5
import org .osbot .rs07 .api .ui .EquipmentSlot ;
6
6
import org .osbot .rs07 .api .ui .Tab ;
7
- import utils . CachedWidget ;
8
- import utils . Sleep ;
9
- import utils .WidgetActionFilter ;
7
+ import util . Sleep ;
8
+ import util . widget . CachedWidget ;
9
+ import util . widget . filters .WidgetActionFilter ;
10
10
11
11
public final class FightingSection extends TutorialSection {
12
12
13
13
private static final Area LADDER_AREA = new Area (3108 , 9523 , 3114 , 9529 );
14
14
private static final Area INSIDE_RAT_CAGE_GATE_AREA = new Area (3107 , 9517 , 3110 , 9520 );
15
15
private static final Area OUTSIDE_RAT_CAGE_GATE_AREA = new Area (3111 , 9516 , 3113 , 9521 );
16
- private static final Area WRONG_DOOR = new Area (3090 , 9508 , 3097 , 9496 );
17
16
18
17
private final CachedWidget VIEW_EQUIPMENT_STATS_WIDGET = new CachedWidget (new WidgetActionFilter ("View equipment stats" ));
19
18
@@ -29,71 +28,69 @@ public final void onLoop() throws InterruptedException {
29
28
}
30
29
31
30
switch (getProgress ()) {
32
- case 370 :
33
- talkToInstructor ();
34
- break ;
35
- case 390 :
36
- getTabs ().open (Tab .EQUIPMENT );
37
- break ;
38
- case 400 :
39
- VIEW_EQUIPMENT_STATS_WIDGET .get (getWidgets ()).ifPresent (widget -> {
40
- if (widget .interact ()) {
41
- Sleep .sleepUntil (() -> getProgress () != 400 , 3000 , 600 );
42
- }
43
- });
44
- break ;
45
- case 405 :
46
- wieldItem ("Bronze dagger" );
47
- break ;
48
- case 410 :
49
- talkToInstructor ();
50
- break ;
51
- case 420 :
52
- if (!getEquipment ().isWearingItem (EquipmentSlot .WEAPON , "Bronze sword" )) {
53
- wieldItem ("Bronze sword" );
54
- } else if (!getEquipment ().isWearingItem (EquipmentSlot .SHIELD , "Wooden shield" )) {
55
- wieldItem ("Wooden shield" );
56
- }
57
- break ;
58
- case 430 :
59
- getTabs ().open (Tab .ATTACK );
60
- break ;
61
- case 440 :
31
+ case 370 :
32
+ talkToInstructor ();
33
+ break ;
34
+ case 390 :
35
+ getTabs ().open (Tab .EQUIPMENT );
36
+ break ;
37
+ case 400 :
38
+ if (VIEW_EQUIPMENT_STATS_WIDGET .interact (getWidgets ())) {
39
+ Sleep .sleepUntil (() -> getProgress () != 400 , 3000 , 600 );
40
+ }
41
+ break ;
42
+ case 405 :
43
+ wieldItem ("Bronze dagger" );
44
+ break ;
45
+ case 410 :
46
+ talkToInstructor ();
47
+ break ;
48
+ case 420 :
49
+ if (!getEquipment ().isWearingItem (EquipmentSlot .WEAPON , "Bronze sword" )) {
50
+ wieldItem ("Bronze sword" );
51
+ } else if (!getEquipment ().isWearingItem (EquipmentSlot .SHIELD , "Wooden shield" )) {
52
+ wieldItem ("Wooden shield" );
53
+ }
54
+ break ;
55
+ case 430 :
56
+ getTabs ().open (Tab .ATTACK );
57
+ break ;
58
+ case 440 :
59
+ enterRatCage ();
60
+ break ;
61
+ case 450 :
62
+ case 460 :
63
+ if (!inRatCage ()) {
62
64
enterRatCage ();
63
- break ;
64
- case 450 :
65
- case 460 :
66
- if (!inRatCage ()) {
67
- enterRatCage ();
68
- } else if (!isAttackingRat ()) {
69
- attackRat ();
70
- }
71
- break ;
72
- case 470 :
73
- if (inRatCage ()) {
74
- leaveRatCage ();
75
- } else {
76
- talkToInstructor ();
77
- }
78
- break ;
79
- case 480 :
80
- case 490 :
81
- if (!getEquipment ().isWearingItem (EquipmentSlot .WEAPON , "Shortbow" )) {
82
- wieldItem ("Shortbow" );
83
- } else if (!getEquipment ().isWearingItem (EquipmentSlot .ARROWS , "Bronze arrow" )) {
84
- wieldItem ("Bronze arrow" );
85
- } else if (!isAttackingRat ()) {
86
- attackRat ();
87
- }
88
- break ;
89
- case 500 :
90
- if (!LADDER_AREA .contains (myPosition ())) {
91
- getWalking ().walk (LADDER_AREA );
92
- } else if (getObjects ().closest ("Ladder" ).interact ("Climb-up" )) {
93
- Sleep .sleepUntil (() -> !LADDER_AREA .contains (myPosition ()), 5000 , 600 );
94
- }
95
- break ;
96
- }
65
+ } else if (!isAttackingRat ()) {
66
+ attackRat ();
67
+ }
68
+ break ;
69
+ case 470 :
70
+ if (inRatCage ()) {
71
+ leaveRatCage ();
72
+ } else {
73
+ talkToInstructor ();
74
+ }
75
+ break ;
76
+ case 480 :
77
+ case 490 :
78
+ if (!getEquipment ().isWearingItem (EquipmentSlot .WEAPON , "Shortbow" )) {
79
+ wieldItem ("Shortbow" );
80
+ } else if (!getEquipment ().isWearingItem (EquipmentSlot .ARROWS , "Bronze arrow" )) {
81
+ wieldItem ("Bronze arrow" );
82
+ } else if (!isAttackingRat ()) {
83
+ attackRat ();
84
+ }
85
+ break ;
86
+ case 500 :
87
+ if (!LADDER_AREA .contains (myPosition ())) {
88
+ getWalking ().walk (LADDER_AREA );
89
+ } else if (getObjects ().closest ("Ladder" ).interact ("Climb-up" )) {
90
+ Sleep .sleepUntil (() -> !LADDER_AREA .contains (myPosition ()), 5000 , 600 );
91
+ }
92
+ break ;
93
+ }
97
94
}
98
95
99
96
private boolean inRatCage () {
@@ -103,9 +100,7 @@ private boolean inRatCage() {
103
100
private void enterRatCage () {
104
101
if (!OUTSIDE_RAT_CAGE_GATE_AREA .contains (myPosition ())) {
105
102
getWalking ().walk (OUTSIDE_RAT_CAGE_GATE_AREA );
106
- } else if (getObjects ()
107
- .closest (ob -> ob .getName () != null && ob .getName ().equals ("Gate" ) && !WRONG_DOOR .contains (ob ))
108
- .interact ("Open" )) {
103
+ } else if (getObjects ().closest ("Gate" ).interact ("Open" )) {
109
104
Sleep .sleepUntil (this ::inRatCage , 5000 , 600 );
110
105
}
111
106
}
0 commit comments