Updates and rework to use CScript

This commit is contained in:
2022-01-19 12:35:50 +01:00
parent 78786709eb
commit 7efda7494a
79 changed files with 1295 additions and 818 deletions

View File

@ -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)

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;