Skip to content
This repository was archived by the owner on Feb 9, 2022. It is now read-only.

Commit a2479e7

Browse files
ExplvExplv
authored andcommitted
Fixes for changes made to Tutorial Island on October 25th 2018
1 parent 3d33b11 commit a2479e7

13 files changed

+111
-74
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package events;
2+
3+
import org.osbot.rs07.event.Event;
4+
import org.osbot.rs07.script.MethodProvider;
5+
import utils.CachedWidget;
6+
import utils.Sleep;
7+
import utils.WidgetActionFilter;
8+
9+
public class EnableFixedModeEvent extends Event {
10+
11+
private final CachedWidget optionsWidget = new CachedWidget(new WidgetActionFilter("Options"));
12+
private final CachedWidget fixedModeWidget = new CachedWidget(new WidgetActionFilter("Fixed mode"));
13+
private final CachedWidget displaySettingsWidget = new CachedWidget(new WidgetActionFilter("Display"));
14+
15+
public static boolean isFixedModeEnabled(final MethodProvider methods) {
16+
return methods.getWidgets().isVisible(378) ||
17+
methods.getWidgets().isVisible(548) ||
18+
!methods.myPlayer().isVisible();
19+
}
20+
21+
@Override
22+
public int execute() throws InterruptedException {
23+
if (isFixedModeEnabled(this)) {
24+
setFinished();
25+
} else if (!optionsWidget.get(getWidgets()).isPresent()) {
26+
setFailed();
27+
} else if (!displaySettingsWidget.get(getWidgets()).isPresent()) {
28+
if (optionsWidget.get(getWidgets()).get().interact("Options")) {
29+
Sleep.sleepUntil(() -> displaySettingsWidget.get(getWidgets()).isPresent(), 3000);
30+
}
31+
} else if (!fixedModeWidget.get(getWidgets()).isPresent()) {
32+
displaySettingsWidget.get(getWidgets()).ifPresent(widget -> widget.interact());
33+
} else if (fixedModeWidget.get(getWidgets()).get().interact("Fixed mode")) {
34+
Sleep.sleepUntil(() -> isFixedModeEnabled(this), 3000);
35+
}
36+
return 200;
37+
}
38+
}

src/script/TutorialIsland.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import sections.*;
66
import utils.Sleep;
77

8-
@ScriptManifest(author = "Explv", name = "Explv's Tutorial Island", info = "Completes Tutorial Island", version = 5.2, logo = "")
8+
@ScriptManifest(author = "Explv", name = "Explv's Tutorial Island Latest", info = "Completes Tutorial Island", version = 5.3, logo = "")
99
public final class TutorialIsland extends Script {
1010

1111
private final TutorialSection rsGuideSection = new RuneScapeGuideSection();
@@ -31,7 +31,7 @@ public void onStart() throws InterruptedException {
3131
wizardSection.exchangeContext(getBot());
3232

3333
// prevents script from skipping character customization
34-
Sleep.sleepUntil(() -> getClient().isLoggedIn() && myPlayer().isVisible() && myPlayer().isOnScreen(), 6000, 500);
34+
Sleep.sleepUntil(() -> getClient().isLoggedIn() && myPlayer().isVisible() && myPlayer().isOnScreen(), 6000, 600);
3535
}
3636

3737
@Override

src/sections/BankSection.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public final void onLoop() throws InterruptedException {
6565
} else if (getDialogues().isPendingOption()) {
6666
getDialogues().selectOption("Yes.");
6767
} else if (getObjects().closest("Bank booth").interact("Use")) {
68-
Sleep.sleepUntil(this::pendingContinue, 5000, 500);
68+
Sleep.sleepUntil(this::pendingContinue, 5000, 600);
6969
}
7070
break;
7171
case 520:
@@ -74,12 +74,12 @@ public final void onLoop() throws InterruptedException {
7474
} else if (!getObjects().closest("Poll booth").isVisible()) {
7575
getCamera().toEntity(getObjects().closest("Poll booth"));
7676
} else if (getObjects().closest("Poll booth").interact("Use")) {
77-
Sleep.sleepUntil(this::pendingContinue, 5000, 500);
77+
Sleep.sleepUntil(this::pendingContinue, 5000, 600);
7878
}
7979
break;
8080
case 525:
8181
if (getWidgets().closeOpenInterface() && openDoorAtPosition(new Position(3125, 3124, 0))) {
82-
Sleep.sleepUntil(() -> getProgress() != 525, 5000, 500);
82+
Sleep.sleepUntil(() -> getProgress() != 525, 5000, 600);
8383
}
8484
break;
8585
case 530:
@@ -93,7 +93,7 @@ public final void onLoop() throws InterruptedException {
9393
break;
9494
case 540:
9595
if (openDoorAtPosition(new Position(3130, 3124, 0))) {
96-
Sleep.sleepUntil(() -> getProgress() != 540, 5000, 500);
96+
Sleep.sleepUntil(() -> getProgress() != 540, 5000, 600);
9797
}
9898
break;
9999
}
@@ -106,7 +106,7 @@ private boolean openDoorAtPosition(final Position position) {
106106

107107
private void openAccountManagementTab() {
108108
if (accountManagementWidget().isPresent() && accountManagementWidget().get().interact()) {
109-
Sleep.sleepUntil(() -> getProgress() == 532, 5000, 500);
109+
Sleep.sleepUntil(() -> getProgress() == 532, 5000, 600);
110110
}
111111
}
112112

src/sections/CookingSection.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
import org.osbot.rs07.api.map.Area;
44
import org.osbot.rs07.api.map.Position;
5-
import org.osbot.rs07.api.model.RS2Object;
6-
import org.osbot.rs07.api.ui.Tab;
75
import utils.Sleep;
86

97
import java.util.Arrays;
@@ -32,7 +30,7 @@ public final void onLoop() throws InterruptedException {
3230
case 130:
3331
if (getWalking().walkPath(PATH_TO_COOK_BUILDING)) {
3432
if (getDoorHandler().handleNextObstacle(COOK_BUILDING)) {
35-
Sleep.sleepUntil(() -> getProgress() == 140, 5000,500);
33+
Sleep.sleepUntil(() -> getProgress() == 140, 5000, 600);
3634
}
3735
}
3836
break;
@@ -46,11 +44,8 @@ public final void onLoop() throws InterruptedException {
4644
bakeDough();
4745
break;
4846
case 170:
49-
getTabs().open(Tab.MUSIC);
50-
break;
51-
case 180:
5247
if (getDoorHandler().handleNextObstacle(new Position(3071, 3090, 0))) {
53-
Sleep.sleepUntil(() -> getProgress() != 180, 5000,500);
48+
Sleep.sleepUntil(() -> getProgress() != 170, 5000, 600);
5449
}
5550
break;
5651
}
@@ -60,15 +55,15 @@ private void makeDough() {
6055
if (!"Pot of flour".equals(getInventory().getSelectedItemName())) {
6156
getInventory().interact("Use", "Pot of flour");
6257
} else if (getInventory().getItem("Bucket of water").interact()) {
63-
Sleep.sleepUntil(() -> getInventory().contains("Bread dough"), 3000,500);
58+
Sleep.sleepUntil(() -> getInventory().contains("Bread dough"), 3000, 600);
6459
}
6560
}
6661

6762
private void bakeDough() {
6863
if (!"Bread dough".equals(getInventory().getSelectedItemName())) {
6964
getInventory().interact("Use", "Bread dough");
7065
} else if (getObjects().closest("Range").interact()) {
71-
Sleep.sleepUntil(() -> getInventory().contains("Bread"), 5000,500);
66+
Sleep.sleepUntil(() -> getInventory().contains("Bread"), 5000, 600);
7267
}
7368
}
7469
}

src/sections/FightingSection.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public final void onLoop() throws InterruptedException {
3737
case 400:
3838
VIEW_EQUIPMENT_STATS_WIDGET.get(getWidgets()).ifPresent(widget -> {
3939
if (widget.interact()) {
40-
Sleep.sleepUntil(() -> getProgress() != 400, 3000,500);
40+
Sleep.sleepUntil(() -> getProgress() != 400, 3000, 600);
4141
}
4242
});
4343
break;
@@ -89,7 +89,7 @@ public final void onLoop() throws InterruptedException {
8989
if (!LADDER_AREA.contains(myPosition())) {
9090
getWalking().walk(LADDER_AREA);
9191
} else if (getObjects().closest("Ladder").interact("Climb-up")) {
92-
Sleep.sleepUntil(() -> !LADDER_AREA.contains(myPosition()), 5000,500);
92+
Sleep.sleepUntil(() -> !LADDER_AREA.contains(myPosition()), 5000, 600);
9393
}
9494
break;
9595
}
@@ -103,15 +103,15 @@ private void enterRatCage() {
103103
if (!OUTSIDE_RAT_CAGE_GATE_AREA.contains(myPosition())) {
104104
getWalking().walk(OUTSIDE_RAT_CAGE_GATE_AREA);
105105
} else if (getObjects().closest("Gate").interact("Open")) {
106-
Sleep.sleepUntil(this::inRatCage, 5000,500);
106+
Sleep.sleepUntil(this::inRatCage, 5000, 600);
107107
}
108108
}
109109

110110
private void leaveRatCage() {
111111
if (!INSIDE_RAT_CAGE_GATE_AREA.contains(myPosition())) {
112112
getWalking().walk(INSIDE_RAT_CAGE_GATE_AREA);
113113
} else if (getObjects().closest("Gate").interact("Open")) {
114-
Sleep.sleepUntil(() -> !inRatCage(), 5000,500);
114+
Sleep.sleepUntil(() -> !inRatCage(), 5000, 600);
115115
}
116116
}
117117

@@ -123,7 +123,7 @@ private void attackRat() {
123123
//noinspection unchecked
124124
NPC giantRat = getNpcs().closest(npc -> npc.getName().equals("Giant rat") && npc.isAttackable());
125125
if (giantRat != null && giantRat.interact("Attack")) {
126-
Sleep.sleepUntil(() -> myPlayer().getInteracting() != null, 5000,500);
126+
Sleep.sleepUntil(() -> myPlayer().getInteracting() != null, 5000, 600);
127127
}
128128
}
129129

src/sections/MiningSection.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55
import org.osbot.rs07.api.model.RS2Object;
66
import org.osbot.rs07.api.ui.RS2Widget;
77
import org.osbot.rs07.api.ui.Tab;
8-
import org.osbot.rs07.event.WebWalkEvent;
98
import org.osbot.rs07.script.MethodProvider;
10-
import org.osbot.rs07.utility.Condition;
119
import utils.Sleep;
1210

1311
import java.util.Arrays;
@@ -78,7 +76,7 @@ public final void onLoop() throws InterruptedException {
7876
Optional<RS2Widget> daggerWidgetOpt = getDaggerWidget();
7977
if (daggerWidgetOpt.isPresent()) {
8078
if (daggerWidgetOpt.get().interact()) {
81-
Sleep.sleepUntil(() -> getInventory().contains("Bronze dagger"), 6000,500);
79+
Sleep.sleepUntil(() -> getInventory().contains("Bronze dagger"), 6000, 600);
8280
}
8381
} else {
8482
smith();
@@ -87,7 +85,7 @@ public final void onLoop() throws InterruptedException {
8785
case 360:
8886
if (getWalking().walkPath(PATH_TO_GATE)) {
8987
if (getDoorHandler().handleNextObstacle(new Position(3096, 9503, 0))) {
90-
Sleep.sleepUntil(() -> getProgress() != 360, 5000,500);
88+
Sleep.sleepUntil(() -> getProgress() != 360, 5000, 600);
9189
}
9290
}
9391
break;
@@ -100,7 +98,7 @@ private void smith() {
10098
} else if (!"Bronze bar".equals(getInventory().getSelectedItemName())) {
10199
getInventory().getItem("Bronze bar").interact("Use");
102100
} else if (getObjects().closest("Anvil").interact("Use")) {
103-
Sleep.sleepUntil(() -> getDaggerWidget().isPresent(), 5000,500);
101+
Sleep.sleepUntil(() -> getDaggerWidget().isPresent(), 5000, 600);
104102
}
105103
}
106104

@@ -116,21 +114,21 @@ private void smelt() {
116114
if (!"Tin ore".equals(getInventory().getSelectedItemName())) {
117115
getInventory().getItem("Tin ore").interact("Use");
118116
} else if (getObjects().closest("Furnace").interact("Use")) {
119-
Sleep.sleepUntil(() -> getInventory().contains("Bronze bar"), 5000,500);
117+
Sleep.sleepUntil(() -> getInventory().contains("Bronze bar"), 5000, 600);
120118
}
121119
}
122120

123121
private void prospect(Rock rock) {
124122
RS2Object closestRock = rock.getClosestWithOre(getBot().getMethods());
125123
if (closestRock != null && closestRock.interact("Prospect")) {
126-
Sleep.sleepUntil(this::pendingContinue, 6000,500);
124+
Sleep.sleepUntil(this::pendingContinue, 6000, 600);
127125
}
128126
}
129127

130128
private void mine(Rock rock) {
131129
RS2Object closestRock = rock.getClosestWithOre(getBot().getMethods());
132130
if (closestRock != null && closestRock.interact("Mine")) {
133-
Sleep.sleepUntil(this::pendingContinue, 6000,500);
131+
Sleep.sleepUntil(this::pendingContinue, 6000, 600);
134132
}
135133
}
136134
}

src/sections/PriestSection.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public final void onLoop() throws InterruptedException {
6060
break;
6161
case 610:
6262
if (getDoorHandler().handleNextObstacle(new Position(3122, 3101, 0))) {
63-
Sleep.sleepUntil(() -> getProgress() != 610, 5000,500);
63+
Sleep.sleepUntil(() -> getProgress() != 610, 5000, 600);
6464
}
6565
break;
6666
}

src/sections/QuestSection.java

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,10 @@
33
import org.osbot.rs07.api.map.Area;
44
import org.osbot.rs07.api.map.Position;
55
import org.osbot.rs07.api.ui.Tab;
6-
import utils.CachedWidget;
76
import utils.Sleep;
87

9-
import java.util.*;
10-
import java.util.function.Consumer;
8+
import java.util.Arrays;
9+
import java.util.List;
1110

1211
public final class QuestSection extends TutorialSection {
1312

@@ -39,25 +38,22 @@ public final void onLoop() throws InterruptedException {
3938
return;
4039
}
4140
switch (getProgress()) {
42-
case 183:
43-
getTabs().open(Tab.EMOTES);
44-
break;
45-
case 187:
46-
// Use random emote
47-
if (getWidgets().get(216, 1, new Random().nextInt(20)).interact()) {
48-
Sleep.sleepUntil(() -> getProgress() != 187, 5000,500);
49-
}
50-
break;
51-
case 190:
52-
getTabs().open(Tab.SETTINGS);
53-
break;
5441
case 200:
55-
getSettings().setRunning(true);
42+
boolean isRunning = getSettings().isRunning();
43+
if (getSettings().setRunning(!isRunning)) {
44+
Sleep.sleepUntil(() -> getSettings().isRunning() == !isRunning, 1200);
45+
}
5646
break;
5747
case 210:
58-
if (getWalking().walkPath(PATH_TO_QUEST_BUILDING)) {
59-
if (getDoorHandler().handleNextObstacle(QUEST_BUILDING)) {
60-
Sleep.sleepUntil(() -> getProgress() != 210, 5000,500);
48+
if (!getSettings().isRunning()) {
49+
if (getSettings().setRunning(true)) {
50+
Sleep.sleepUntil(() -> getSettings().isRunning(), 1200);
51+
}
52+
} else {
53+
if (getWalking().walkPath(PATH_TO_QUEST_BUILDING)) {
54+
if (getDoorHandler().handleNextObstacle(QUEST_BUILDING)) {
55+
Sleep.sleepUntil(() -> getProgress() != 210, 5000, 600);
56+
}
6157
}
6258
}
6359
break;
@@ -72,7 +68,7 @@ public final void onLoop() throws InterruptedException {
7268
break;
7369
case 250:
7470
if (getObjects().closest("Ladder").interact("Climb-down")) {
75-
Sleep.sleepUntil(() -> getProgress() != 250, 5000,500);
71+
Sleep.sleepUntil(() -> getProgress() != 250, 5000, 600);
7672
}
7773
break;
7874
}

0 commit comments

Comments
 (0)