From 6fbd4671e0e330558b438b2a0df14a1f3efb390b Mon Sep 17 00:00:00 2001 From: Danial Date: Fri, 5 Nov 2021 18:03:55 +1300 Subject: [PATCH] Initial prayer --- src/main/java/ParaScript/Main.java | 3 ++ src/main/java/ParaScript/data/Variables.java | 12 ++++++ src/main/java/ParaScript/strategies/Bank.java | 4 ++ .../java/ParaScript/strategies/BuryBones.java | 10 ++--- .../java/ParaScript/strategies/Prayer.java | 39 +++++++++++++++++++ .../ParaScript/strategies/UpdateBank.java | 3 +- src/main/java/ParaScript/ui/UI.java | 1 + 7 files changed, 66 insertions(+), 6 deletions(-) create mode 100644 src/main/java/ParaScript/strategies/Prayer.java diff --git a/src/main/java/ParaScript/Main.java b/src/main/java/ParaScript/Main.java index 67e7440..9e4ff35 100644 --- a/src/main/java/ParaScript/Main.java +++ b/src/main/java/ParaScript/Main.java @@ -80,6 +80,9 @@ public class Main extends Script implements MessageListener, Paintable { strategies.add(new Walk()); strategies.add(new PickupItems()); } + if(Variables.skill_to_train == Skill.PRAYER) { + strategies.add(new Prayer()); + } // These strategies should always be running strategies.add(new Drop()); diff --git a/src/main/java/ParaScript/data/Variables.java b/src/main/java/ParaScript/data/Variables.java index 759de81..7196c88 100644 --- a/src/main/java/ParaScript/data/Variables.java +++ b/src/main/java/ParaScript/data/Variables.java @@ -228,4 +228,16 @@ public class Variables { return false; } } + + public static boolean shouldBuryBones(){ + if (skill_to_train == null) return true; + switch (skill_to_train.getName()){ + case "Prayer": + return true; + case "Attack": + return Variables.fighting_bury_bones; + default: + return false; + } + } } diff --git a/src/main/java/ParaScript/strategies/Bank.java b/src/main/java/ParaScript/strategies/Bank.java index e1e0807..4abc65c 100644 --- a/src/main/java/ParaScript/strategies/Bank.java +++ b/src/main/java/ParaScript/strategies/Bank.java @@ -121,4 +121,8 @@ public class Bank implements Strategy { return; } } + + public static void closeBank(){ + Menu.sendAction(200, 440, 5, 5384, 1); + } } diff --git a/src/main/java/ParaScript/strategies/BuryBones.java b/src/main/java/ParaScript/strategies/BuryBones.java index 704e53a..aba1347 100644 --- a/src/main/java/ParaScript/strategies/BuryBones.java +++ b/src/main/java/ParaScript/strategies/BuryBones.java @@ -11,8 +11,8 @@ public class BuryBones implements Strategy { @Override public boolean activate() { if (Variables.running - && Variables.fighting_bury_bones && hasBones() + && Variables.shouldBuryBones() // && !Players.getMyPlayer().isInCombat() // && Inventory.isFull() ) { @@ -25,10 +25,10 @@ public class BuryBones implements Strategy { @Override public void execute() { - buryBones(); + BuryBones.buryBones(); } - private void buryBones(){ + public static void buryBones(){ try { getBones().interact(Items.Option.SECOND); Time.sleep(500); @@ -38,12 +38,12 @@ public class BuryBones implements Strategy { } } - private boolean hasBones(){ + public static boolean hasBones(){ // Make sure we have bones return getBones() != null; } - private Item getBones(){ + public static Item getBones(){ // Make sure we have bones for (int bone_id : getBoneIds()) { if (Inventory.getItem(bone_id + 1) != null) { diff --git a/src/main/java/ParaScript/strategies/Prayer.java b/src/main/java/ParaScript/strategies/Prayer.java new file mode 100644 index 0000000..0b9804e --- /dev/null +++ b/src/main/java/ParaScript/strategies/Prayer.java @@ -0,0 +1,39 @@ +package ParaScript.strategies; + +import ParaScript.data.Variables; + +import org.parabot.environment.api.utils.Time; +import org.parabot.environment.scripts.framework.Strategy; +import org.rev317.min.api.methods.*; + +public class Prayer implements Strategy { + // TODO: implement ectofuntus method + // TODO: check if player has ectophial in bank, make use of it + // TODO: check if agility level high enough, use shortcut + + @Override + public boolean activate() { + if (Variables.running + && Game.isLoggedIn() + && (Variables.getStatus() == "none" || Variables.getStatus() == "withdrawing bones" || Variables.getStatus() == "closing bank" || Variables.getStatus() == "burying bones")) { + return true; + } + Variables.setStatus("none"); + return false; + } + + @Override + public void execute() { + Variables.setStatus("withdrawing bones"); + Bank.openBank(); + // TODO: allow player to select which bones they want to make use of + Bank.withdrawItem(536, -1); + Time.sleep(500); + Variables.setStatus("closing bank"); + Bank.closeBank(); + Time.sleep(500); + Variables.setStatus("burying bones"); + BuryBones.buryBones(); + Variables.setStatus("none"); + } +} diff --git a/src/main/java/ParaScript/strategies/UpdateBank.java b/src/main/java/ParaScript/strategies/UpdateBank.java index 23f87e9..85f2380 100644 --- a/src/main/java/ParaScript/strategies/UpdateBank.java +++ b/src/main/java/ParaScript/strategies/UpdateBank.java @@ -13,7 +13,7 @@ public class UpdateBank implements Strategy { @Override public boolean activate() { if (Bank.isOpen()) { - Variables.setStatus("Saving Bank"); + // Variables.setStatus("Saving Bank"); return true; } return false; @@ -24,6 +24,7 @@ public class UpdateBank implements Strategy { Variables.bank_items = Bank.getBankItemIDs(); Time.sleep(500); saveBankFile(); + // Variables.setStatus("none"); } private static String getfileName(){ diff --git a/src/main/java/ParaScript/ui/UI.java b/src/main/java/ParaScript/ui/UI.java index c6fa147..17dce45 100644 --- a/src/main/java/ParaScript/ui/UI.java +++ b/src/main/java/ParaScript/ui/UI.java @@ -141,6 +141,7 @@ public class UI extends JFrame { Skill.THIEVING.getName(), Skill.FISHING.getName(), // Skill.CRAFTING.getName(), + Skill.PRAYER.getName(), "Bank Runner", })); skillSelect.setBounds(20, 40, 150, 20);