10
10
import org .osbot .rs07 .utility .Condition ;
11
11
import utils .Sleep ;
12
12
13
+ import java .util .Arrays ;
14
+ import java .util .List ;
13
15
import java .util .Optional ;
14
16
15
17
public final class MiningSection extends TutorialSection {
16
18
17
19
private static final Area SMITH_AREA = new Area (3076 , 9497 , 3082 , 9504 );
18
20
21
+ private static final List <Position > PATH_TO_SMITH_AREA = Arrays .asList (
22
+ new Position (3080 , 9518 , 0 ),
23
+ new Position (3080 , 9511 , 0 ),
24
+ new Position (3080 , 9505 , 0 )
25
+ );
26
+
27
+ private static final List <Position > PATH_TO_GATE = Arrays .asList (
28
+ new Position (3086 , 9505 , 0 ),
29
+ new Position (3091 , 9503 , 0 )
30
+ );
31
+
19
32
public MiningSection () {
20
33
super ("Mining Instructor" );
21
34
}
@@ -26,11 +39,10 @@ public final void onLoop() throws InterruptedException {
26
39
selectContinue ();
27
40
return ;
28
41
}
42
+
29
43
switch (getProgress ()) {
30
44
case 260 :
31
- if (!isInstructorVisible ()) {
32
- walkToInstructor ();
33
- } else {
45
+ if (getWalking ().walkPath (PATH_TO_SMITH_AREA )) {
34
46
talkToInstructor ();
35
47
}
36
48
break ;
@@ -63,32 +75,28 @@ public final void onLoop() throws InterruptedException {
63
75
}
64
76
break ;
65
77
case 350 :
66
- getDaggerWidget ().ifPresent (widget -> {
67
- if (widget .interact ()) {
78
+ Optional <RS2Widget > daggerWidgetOpt = getDaggerWidget ();
79
+ if (daggerWidgetOpt .isPresent ()) {
80
+ if (daggerWidgetOpt .get ().interact ()) {
68
81
Sleep .sleepUntil (() -> getInventory ().contains ("Bronze dagger" ), 6000 );
69
82
}
70
- });
83
+ } else {
84
+ smith ();
85
+ }
71
86
break ;
72
87
case 360 :
73
- getWalking ().webWalk (new Position (3109 , 9510 , 0 ));
88
+ if (getWalking ().walkPath (PATH_TO_GATE )) {
89
+ if (getDoorHandler ().handleNextObstacle (new Position (3096 , 9503 , 0 ))) {
90
+ Sleep .sleepUntil (() -> getProgress () != 360 , 5000 );
91
+ }
92
+ }
74
93
break ;
75
94
}
76
95
}
77
96
78
- private void walkToInstructor () {
79
- WebWalkEvent webWalkEvent = new WebWalkEvent (SMITH_AREA );
80
- webWalkEvent .setBreakCondition (new Condition () {
81
- @ Override
82
- public boolean evaluate () {
83
- return isInstructorVisible ();
84
- }
85
- });
86
- execute (webWalkEvent );
87
- }
88
-
89
97
private void smith () {
90
98
if (!SMITH_AREA .contains (myPosition ())) {
91
- getWalking ().walk (SMITH_AREA . getRandomPosition () );
99
+ getWalking ().walk (SMITH_AREA );
92
100
} else if (!"Bronze bar" .equals (getInventory ().getSelectedItemName ())) {
93
101
getInventory ().getItem ("Bronze bar" ).interact ("Use" );
94
102
} else if (getObjects ().closest ("Anvil" ).interact ("Use" )) {
@@ -97,7 +105,7 @@ private void smith() {
97
105
}
98
106
99
107
private Optional <RS2Widget > getDaggerWidget () {
100
- RS2Widget daggerTextWidget = getWidgets ().getWidgetContainingText ("Dagger" );
108
+ RS2Widget daggerTextWidget = getWidgets ().getWidgetContainingText (312 , "Dagger" );
101
109
if (daggerTextWidget != null ) {
102
110
return Optional .ofNullable (getWidgets ().get (daggerTextWidget .getRootId (), daggerTextWidget .getSecondLevelId ()));
103
111
}
0 commit comments