Updates and rework to use CScript
This commit is contained in:
@ -29,7 +29,7 @@ import net.runelite.client.config.ConfigGroup;
|
||||
import net.runelite.client.config.ConfigItem;
|
||||
import net.runelite.client.config.Range;
|
||||
|
||||
@ConfigGroup("ChaosWintertodtConfig")
|
||||
@ConfigGroup("chaoswintertodt")
|
||||
|
||||
public interface Config extends net.runelite.client.config.Config {
|
||||
@Range(min = 1, max = 99)
|
||||
|
@ -2,10 +2,10 @@ package io.reisub.openosrs.wintertodt;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.Provides;
|
||||
import io.reisub.openosrs.util.Task;
|
||||
import io.reisub.openosrs.util.CScript;
|
||||
import io.reisub.openosrs.util.Util;
|
||||
import io.reisub.openosrs.util.enums.Activity;
|
||||
import io.reisub.openosrs.util.tasks.Eat;
|
||||
import io.reisub.openosrs.util.tasks.KittenTask;
|
||||
import io.reisub.openosrs.wintertodt.tasks.*;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
@ -19,10 +19,8 @@ import net.runelite.client.plugins.PluginDependency;
|
||||
import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.iutils.iUtils;
|
||||
import net.runelite.client.plugins.iutils.scene.Position;
|
||||
import net.runelite.client.plugins.iutils.scripts.iScript;
|
||||
import org.pf4j.Extension;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -42,7 +40,7 @@ import static net.runelite.api.ItemID.BRUMA_ROOT;
|
||||
enabledByDefault = false
|
||||
)
|
||||
@Slf4j
|
||||
public class Wintertodt extends iScript {
|
||||
public class Wintertodt extends CScript {
|
||||
@Inject
|
||||
public Config config;
|
||||
|
||||
@ -50,12 +48,6 @@ public class Wintertodt extends iScript {
|
||||
public static final int WINTERTODT_HEALTH_PACKED_ID = 25952277;
|
||||
public static final int WINTERTODT_GAME_TIMER_ID = 25952259;
|
||||
|
||||
@Getter
|
||||
private Activity currentActivity = Activity.IDLE;
|
||||
|
||||
@Getter
|
||||
private Activity previousActivity = Activity.IDLE;
|
||||
|
||||
@Getter
|
||||
private int respawnTimer;
|
||||
|
||||
@ -73,12 +65,9 @@ public class Wintertodt extends iScript {
|
||||
@Getter
|
||||
private final List<WintertodtProjectile> projectiles = new ArrayList<>();
|
||||
|
||||
private List<Task> tasks;
|
||||
private KittenTask kittenTask;
|
||||
private Hop hopTask;
|
||||
private Scouter scouter;
|
||||
private int fmLevel, wcLevel, fletchLevel;
|
||||
private Instant lastActionTime;
|
||||
private int previousTimerValue;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
@ -87,22 +76,9 @@ public class Wintertodt extends iScript {
|
||||
return configManager.getConfig(Config.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void loop() {
|
||||
for (Task t : tasks) {
|
||||
if (t.validate()) {
|
||||
log.info(t.getStatus());
|
||||
t.execute();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
game.sleepDelay();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStart() {
|
||||
log.info("Starting Chaos Wintertodt");
|
||||
super.onStart();
|
||||
|
||||
fmLevel = game.baseLevel(Skill.FIREMAKING);
|
||||
wcLevel = game.baseLevel(Skill.WOODCUTTING);
|
||||
@ -113,52 +89,36 @@ public class Wintertodt extends iScript {
|
||||
Eat eatTask = injector.getInstance(Eat.class);
|
||||
eatTask.setInterval(config.minEatHP(), config.maxEatHP());
|
||||
|
||||
kittenTask = KittenTask.getInstance(injector);
|
||||
|
||||
tasks = new ArrayList<>();
|
||||
tasks.add(eatTask);
|
||||
tasks.add(kittenTask);
|
||||
if (config.dodgeProjectiles()) {
|
||||
tasks.add(injector.getInstance(DodgeProjectile.class));
|
||||
addTask(DodgeProjectile.class);
|
||||
}
|
||||
tasks.add(injector.getInstance(OpenInventory.class));
|
||||
tasks.add(injector.getInstance(EatWhileWaiting.class));
|
||||
tasks.add(injector.getInstance(OpenCrates.class));
|
||||
tasks.add(injector.getInstance(GoToBank.class));
|
||||
tasks.add(injector.getInstance(HandleBank.class));
|
||||
tasks.add(injector.getInstance(GoToWintertodt.class));
|
||||
addTask(OpenInventory.class);
|
||||
addTask(EatWhileWaiting.class);
|
||||
addTask(OpenCrates.class);
|
||||
addTask(GoToBank.class);
|
||||
addTask(HandleBank.class);
|
||||
addTask(GoToWintertodt.class);
|
||||
if (config.hop()) {
|
||||
hopTask = injector.getInstance(Hop.class);
|
||||
tasks.add(hopTask);
|
||||
}
|
||||
tasks.add(injector.getInstance(MoveToBrazier.class));
|
||||
tasks.add(injector.getInstance(Fix.class));
|
||||
tasks.add(injector.getInstance(Light.class));
|
||||
tasks.add(injector.getInstance(Fletch.class));
|
||||
tasks.add(injector.getInstance(ChangeSide.class));
|
||||
tasks.add(injector.getInstance(Burn.class));
|
||||
tasks.add(injector.getInstance(Chop.class));
|
||||
addTask(MoveToBrazier.class);
|
||||
addTask(Fix.class);
|
||||
addTask(Light.class);
|
||||
addTask(Fletch.class);
|
||||
addTask(ChangeSide.class);
|
||||
addTask(Burn.class);
|
||||
addTask(Chop.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
log.info("Stopping Chaos Wintertodt");
|
||||
if (tasks != null) {
|
||||
tasks.clear();
|
||||
}
|
||||
|
||||
KittenTask.handleKitten = false;
|
||||
super.onStop();
|
||||
scouter = null;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
@Subscribe
|
||||
private void onConfigButtonPressed(ConfigButtonClicked configButtonClicked) {
|
||||
if (configButtonClicked.getKey().equals("startButton")) {
|
||||
execute();
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
@Subscribe
|
||||
private void onStatChanged(StatChanged event) {
|
||||
@ -203,10 +163,6 @@ public class Wintertodt extends iScript {
|
||||
@SuppressWarnings("unused")
|
||||
@Subscribe
|
||||
private void onChatMessage(ChatMessage chatMessage) {
|
||||
if (kittenTask != null) {
|
||||
kittenTask.onChatMessage(chatMessage);
|
||||
}
|
||||
|
||||
if (!isInWintertodtRegion()) return;
|
||||
|
||||
ChatMessageType chatMessageType = chatMessage.getType();
|
||||
@ -407,32 +363,6 @@ public class Wintertodt extends iScript {
|
||||
}
|
||||
}
|
||||
|
||||
private void setActivity(Activity action) {
|
||||
if (action == Activity.IDLE && currentActivity != Activity.IDLE) {
|
||||
previousActivity = currentActivity;
|
||||
}
|
||||
|
||||
currentActivity = action;
|
||||
|
||||
if (action != Activity.IDLE) {
|
||||
lastActionTime = Instant.now();
|
||||
}
|
||||
}
|
||||
|
||||
private void checkActionTimeout() {
|
||||
if (currentActivity == Activity.IDLE) return;
|
||||
|
||||
int animId = game.localPlayer().animation();
|
||||
if (animId != IDLE || lastActionTime == null) return;
|
||||
|
||||
Duration timeout = Duration.ofSeconds(3);
|
||||
Duration sinceAction = Duration.between(lastActionTime, Instant.now());
|
||||
|
||||
if (sinceAction.compareTo(timeout) >= 0) {
|
||||
setActivity(Activity.IDLE);
|
||||
}
|
||||
}
|
||||
|
||||
private void parseBossHealth() {
|
||||
Widget healthWidget = game.client.getWidget(WINTERTODT_HEALTH_PACKED_ID);
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
package io.reisub.openosrs.wintertodt.tasks;
|
||||
|
||||
import io.reisub.openosrs.util.Task;
|
||||
import io.reisub.openosrs.wintertodt.Activity;
|
||||
import io.reisub.openosrs.util.enums.Activity;
|
||||
import io.reisub.openosrs.wintertodt.Side;
|
||||
import io.reisub.openosrs.wintertodt.Wintertodt;
|
||||
import net.runelite.client.plugins.iutils.scene.Position;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package io.reisub.openosrs.wintertodt.tasks;
|
||||
|
||||
import io.reisub.openosrs.util.Task;
|
||||
import io.reisub.openosrs.wintertodt.Activity;
|
||||
import io.reisub.openosrs.util.enums.Activity;
|
||||
import io.reisub.openosrs.wintertodt.Config;
|
||||
import io.reisub.openosrs.wintertodt.Wintertodt;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
package io.reisub.openosrs.wintertodt.tasks;
|
||||
|
||||
import io.reisub.openosrs.util.Task;
|
||||
import io.reisub.openosrs.wintertodt.Activity;
|
||||
import io.reisub.openosrs.util.enums.Activity;
|
||||
import io.reisub.openosrs.wintertodt.Wintertodt;
|
||||
import net.runelite.client.plugins.iutils.scene.Position;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
package io.reisub.openosrs.wintertodt.tasks;
|
||||
|
||||
import io.reisub.openosrs.util.Task;
|
||||
import io.reisub.openosrs.wintertodt.Activity;
|
||||
import io.reisub.openosrs.util.enums.Activity;
|
||||
import io.reisub.openosrs.wintertodt.Wintertodt;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package io.reisub.openosrs.wintertodt.tasks;
|
||||
|
||||
import io.reisub.openosrs.util.Task;
|
||||
import io.reisub.openosrs.wintertodt.Activity;
|
||||
import io.reisub.openosrs.util.enums.Activity;
|
||||
import io.reisub.openosrs.wintertodt.Config;
|
||||
import io.reisub.openosrs.wintertodt.Wintertodt;
|
||||
import net.runelite.client.plugins.iutils.scene.Position;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package io.reisub.openosrs.wintertodt.tasks;
|
||||
|
||||
import io.reisub.openosrs.util.Task;
|
||||
import io.reisub.openosrs.wintertodt.Activity;
|
||||
import io.reisub.openosrs.util.enums.Activity;
|
||||
import io.reisub.openosrs.wintertodt.Wintertodt;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
@ -2,7 +2,7 @@ package io.reisub.openosrs.wintertodt.tasks;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import io.reisub.openosrs.util.Task;
|
||||
import io.reisub.openosrs.wintertodt.Activity;
|
||||
import io.reisub.openosrs.util.enums.Activity;
|
||||
import io.reisub.openosrs.wintertodt.Wintertodt;
|
||||
import net.runelite.client.plugins.iutils.scene.Position;
|
||||
|
||||
|
Reference in New Issue
Block a user