BA update (#471)
* BA update * Change swap * Update BA * Update * Fix whitespace * Change
This commit is contained in:
@@ -52,7 +52,6 @@ import net.runelite.api.events.ItemSpawned;
|
||||
import net.runelite.api.events.MenuEntryAdded;
|
||||
import net.runelite.api.events.VarbitChanged;
|
||||
import net.runelite.api.events.WidgetLoaded;
|
||||
import net.runelite.api.kit.KitType;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import net.runelite.api.widgets.WidgetID;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
@@ -146,6 +145,7 @@ public class BarbarianAssaultPlugin extends Plugin
|
||||
}
|
||||
|
||||
private Game game;
|
||||
private Wave wave;
|
||||
|
||||
@Override
|
||||
protected void startUp() throws Exception
|
||||
@@ -185,31 +185,32 @@ public class BarbarianAssaultPlugin extends Plugin
|
||||
{
|
||||
case WidgetID.BA_REWARD_GROUP_ID:
|
||||
{
|
||||
Wave wave = new Wave(client);
|
||||
Widget rewardWidget = client.getWidget(WidgetInfo.BA_REWARD_TEXT);
|
||||
if (rewardWidget != null && rewardWidget.getText().contains(ENDGAME_REWARD_NEEDLE_TEXT) && gameTime != null)
|
||||
Widget pointsWidget = client.getWidget(WidgetInfo.BA_RUNNERS_PASSED);
|
||||
if (!rewardWidget.getText().contains(ENDGAME_REWARD_NEEDLE_TEXT) && pointsWidget != null
|
||||
&& !hasAnnounced && client.getVar(Varbits.IN_GAME_BA) == 0)
|
||||
{
|
||||
if (config.waveTimes())
|
||||
wave = new Wave(client);
|
||||
wave.setWaveAmounts();
|
||||
wave.setWavePoints();
|
||||
game.getWaves().add(wave);
|
||||
if (config.showSummaryOfPoints())
|
||||
{
|
||||
announceTime("Game finished, duration: ", gameTime.getTime(false));
|
||||
announceSomething(wave.getWaveSummary());
|
||||
}
|
||||
}
|
||||
if (config.waveTimes() && rewardWidget != null && rewardWidget.getText().contains(ENDGAME_REWARD_NEEDLE_TEXT) && gameTime != null)
|
||||
{
|
||||
announceTime("Game finished, duration: ", gameTime.getTime(false));
|
||||
gameTime = null;
|
||||
if (config.showTotalRewards())
|
||||
{
|
||||
announceSomething(game.getGameSummary());
|
||||
}
|
||||
}
|
||||
Widget pointsWidget = client.getWidget(WidgetInfo.BA_RUNNERS_PASSED);
|
||||
if (rewardWidget != null && !rewardWidget.getText().contains(ENDGAME_REWARD_NEEDLE_TEXT) && pointsWidget != null
|
||||
&& config.showSummaryOfPoints() && !hasAnnounced && client.getVar(Varbits.IN_GAME_BA) == 0)
|
||||
{
|
||||
wave.setWaveAmounts();
|
||||
wave.setWavePoints();
|
||||
game.getWaves().add(wave);
|
||||
announceSomething(wave.getWaveSummary());
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case WidgetID.BA_ATTACKER_GROUP_ID:
|
||||
{
|
||||
setOverlayRound(Role.ATTACKER);
|
||||
@@ -382,7 +383,7 @@ public class BarbarianAssaultPlugin extends Plugin
|
||||
}
|
||||
if (isUnderPlayer(itemDespawned.getTile()))
|
||||
{
|
||||
if (client.getLocalPlayer().getPlayerComposition().getEquipmentId(KitType.CAPE) == ItemID.COLLECTOR_ICON)
|
||||
if (overlay.getCurrentRound().getRoundRole() == Role.COLLECTOR)
|
||||
{
|
||||
positiveEggCount++;
|
||||
if (positiveEggCount > 60)
|
||||
|
||||
@@ -37,7 +37,7 @@ public class Game
|
||||
{
|
||||
private Client client;
|
||||
private String currentWave;
|
||||
private ArrayList<Wave> waves = new ArrayList<>();
|
||||
private ArrayList<Wave> Waves = new ArrayList<>();
|
||||
private String[] totalDescriptions = {
|
||||
"A: ",
|
||||
"; D: ",
|
||||
@@ -63,7 +63,7 @@ public class Game
|
||||
Game(Client client, ArrayList<Wave> waves)
|
||||
{
|
||||
this.client = client;
|
||||
this.waves = waves;
|
||||
this.Waves = waves;
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
@@ -77,7 +77,7 @@ public class Game
|
||||
}
|
||||
if (currentWave.equals("1"))
|
||||
{
|
||||
waves = null;
|
||||
Waves = null;
|
||||
totalPoints = new int[6];
|
||||
totalAmounts = new int[6];
|
||||
}
|
||||
@@ -90,7 +90,7 @@ public class Game
|
||||
int[] otherRolesPointsList;
|
||||
ChatMessageBuilder message = new ChatMessageBuilder();
|
||||
message.append("Round points: ");
|
||||
for (Wave w : waves)
|
||||
for (Wave w : Waves)
|
||||
{
|
||||
amountsList = w.getWaveAmounts();
|
||||
pointsList = w.getWavePoints();
|
||||
|
||||
@@ -61,6 +61,11 @@ class Round
|
||||
this.roundStartTime = Instant.now().plusMillis(2 * Constants.GAME_TICK_LENGTH);
|
||||
}
|
||||
|
||||
public long getRoundTime()
|
||||
{
|
||||
return Duration.between(roundStartTime, Instant.now()).getSeconds();
|
||||
}
|
||||
|
||||
long getTimeToChange()
|
||||
{
|
||||
return 30 + (Duration.between(Instant.now(), roundStartTime).getSeconds() % 30);
|
||||
|
||||
@@ -61,6 +61,26 @@ public interface BAToolsConfig extends Config
|
||||
return true;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "swapCollectorBag",
|
||||
name = "swaps collector bag in ba to empty left click",
|
||||
description = "Make empty the left-click option on collector bag"
|
||||
)
|
||||
default boolean swapCollectorBag()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "swapDestroyEggs",
|
||||
name = "Left click destroy eggs in BA",
|
||||
description = "Make destroy the left-click option for collector eggs"
|
||||
)
|
||||
default boolean swapDestroyEggs()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "healerCodes",
|
||||
name = "Healer Codes",
|
||||
@@ -74,7 +94,7 @@ public interface BAToolsConfig extends Config
|
||||
@ConfigItem(
|
||||
keyName = "healerMenuOption",
|
||||
name = "Healer menu options",
|
||||
description = "asd"
|
||||
description = "Shows time since last food placed on healer"
|
||||
)
|
||||
default boolean healerMenuOption()
|
||||
{
|
||||
@@ -84,7 +104,7 @@ public interface BAToolsConfig extends Config
|
||||
@ConfigItem(
|
||||
keyName = "eggBoi",
|
||||
name = "Collector helper",
|
||||
description = "asd"
|
||||
description = "Hold shift to collect the correct egg"
|
||||
)
|
||||
default boolean eggBoi()
|
||||
{
|
||||
@@ -94,7 +114,7 @@ public interface BAToolsConfig extends Config
|
||||
@ConfigItem(
|
||||
keyName = "osHelp",
|
||||
name = "Shift OS",
|
||||
description = "asd"
|
||||
description = "Hold shift to only pick up correct eggs"
|
||||
)
|
||||
default boolean osHelp()
|
||||
{
|
||||
@@ -104,7 +124,7 @@ public interface BAToolsConfig extends Config
|
||||
@ConfigItem(
|
||||
keyName = "prayerMetronome",
|
||||
name = "Prayer Metronome",
|
||||
description = "asd"
|
||||
description = "Similar to metronome plugin but only activates when a prayer is active"
|
||||
)
|
||||
default boolean prayerMetronome()
|
||||
{
|
||||
@@ -114,7 +134,7 @@ public interface BAToolsConfig extends Config
|
||||
@ConfigItem(
|
||||
keyName = "prayerMetronomeVolume",
|
||||
name = "Prayer Metronome Volume",
|
||||
description = "asd"
|
||||
description = "Volume level"
|
||||
)
|
||||
default int prayerMetronomeVolume()
|
||||
{
|
||||
@@ -161,4 +181,34 @@ public interface BAToolsConfig extends Config
|
||||
return false;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "tagging",
|
||||
name = "Attack Tags",
|
||||
description = "Highlights the menu entry of an attacker/ranger that has not been tagged."
|
||||
)
|
||||
default boolean tagging()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "ctrlHealer",
|
||||
name = "Control Healer",
|
||||
description = "Hold ctrl to put last healer clicked on top"
|
||||
)
|
||||
default boolean ctrlHealer()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@ConfigItem(
|
||||
keyName = "removePenanceCave",
|
||||
name = "Remove Block Penance Cave",
|
||||
description = "Removes unnecessary menu option, however Moon wanted it back"
|
||||
)
|
||||
default boolean removePenanceCave()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -61,7 +61,9 @@ import net.runelite.api.events.NpcSpawned;
|
||||
import net.runelite.api.events.VarbitChanged;
|
||||
import net.runelite.api.events.WidgetLoaded;
|
||||
import net.runelite.api.widgets.Widget;
|
||||
import static net.runelite.api.widgets.WidgetID.BA_REWARD_GROUP_ID;
|
||||
|
||||
|
||||
import net.runelite.api.widgets.WidgetID;
|
||||
import net.runelite.api.widgets.WidgetInfo;
|
||||
import static net.runelite.api.widgets.WidgetInfo.BA_ATK_CALL_TEXT;
|
||||
import static net.runelite.api.widgets.WidgetInfo.BA_ATK_LISTEN_TEXT;
|
||||
@@ -73,7 +75,6 @@ import static net.runelite.api.widgets.WidgetInfo.BA_DEF_CALL_TEXT;
|
||||
import static net.runelite.api.widgets.WidgetInfo.BA_DEF_ROLE_TEXT;
|
||||
import static net.runelite.api.widgets.WidgetInfo.BA_HEAL_CALL_TEXT;
|
||||
import static net.runelite.api.widgets.WidgetInfo.BA_HEAL_LISTEN_TEXT;
|
||||
import static net.runelite.api.widgets.WidgetInfo.BA_REWARD_TEXT;
|
||||
import static net.runelite.api.widgets.WidgetInfo.COMBAT_STYLE_FOUR;
|
||||
import static net.runelite.api.widgets.WidgetInfo.COMBAT_STYLE_ONE;
|
||||
import static net.runelite.api.widgets.WidgetInfo.COMBAT_STYLE_THREE;
|
||||
@@ -88,9 +89,10 @@ import net.runelite.client.plugins.PluginDescriptor;
|
||||
import net.runelite.client.plugins.PluginType;
|
||||
import net.runelite.client.ui.overlay.OverlayManager;
|
||||
import net.runelite.client.ui.overlay.infobox.InfoBoxManager;
|
||||
import static net.runelite.client.util.MenuUtil.swap;
|
||||
import net.runelite.client.util.Text;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import net.runelite.client.menus.MenuManager;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@PluginDescriptor(
|
||||
@@ -105,6 +107,7 @@ public class BAToolsPlugin extends Plugin implements KeyListener
|
||||
private int tickNum;
|
||||
private int pastCall = 0;
|
||||
private int currentWave = 1;
|
||||
private int lastHealer;
|
||||
private static final int BA_WAVE_NUM_INDEX = 2;
|
||||
private static final WorldPoint healerSpawnPoint = new WorldPoint(1898, 1586, 0);
|
||||
private final List<MenuEntry> entries = new ArrayList<>();
|
||||
@@ -114,6 +117,7 @@ public class BAToolsPlugin extends Plugin implements KeyListener
|
||||
private Actor lastInteracted;
|
||||
|
||||
private boolean shiftDown;
|
||||
private boolean ctrlDown;
|
||||
|
||||
@Inject
|
||||
private Client client;
|
||||
@@ -139,6 +143,9 @@ public class BAToolsPlugin extends Plugin implements KeyListener
|
||||
@Getter
|
||||
private Instant wave_start;
|
||||
|
||||
@Inject
|
||||
private MenuManager menuManager;
|
||||
|
||||
@Inject
|
||||
private KeyManager keyManager;
|
||||
|
||||
@@ -155,7 +162,7 @@ public class BAToolsPlugin extends Plugin implements KeyListener
|
||||
overlayManager.add(overlay);
|
||||
healers = new HashMap<>();
|
||||
wave_start = Instant.now();
|
||||
lastInteracted = null;
|
||||
//lastInteracted = null;
|
||||
foodPressed.clear();
|
||||
keyManager.registerKeyListener(this);
|
||||
}
|
||||
@@ -175,12 +182,16 @@ public class BAToolsPlugin extends Plugin implements KeyListener
|
||||
@Subscribe
|
||||
public void onWidgetLoaded(WidgetLoaded event)
|
||||
{
|
||||
if (event.getGroupId() == BA_REWARD_GROUP_ID)
|
||||
switch (event.getGroupId())
|
||||
{
|
||||
Widget rewardWidget = client.getWidget(BA_REWARD_TEXT);
|
||||
if (rewardWidget != null && rewardWidget.getText().contains("<br>5"))
|
||||
case WidgetID.BA_REWARD_GROUP_ID:
|
||||
{
|
||||
tickNum = 0;
|
||||
Widget rewardWidget = client.getWidget(WidgetInfo.BA_REWARD_TEXT);
|
||||
|
||||
if (rewardWidget != null && rewardWidget.getText().contains("<br>5"))
|
||||
{
|
||||
tickNum = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -208,6 +219,7 @@ public class BAToolsPlugin extends Plugin implements KeyListener
|
||||
if (counter == null)
|
||||
{
|
||||
addCounter();
|
||||
lastHealer = 0;
|
||||
}
|
||||
counter.setCount(tickNum);
|
||||
|
||||
@@ -420,42 +432,24 @@ public class BAToolsPlugin extends Plugin implements KeyListener
|
||||
@Subscribe
|
||||
public void onMenuEntryAdded(MenuEntryAdded event)
|
||||
{
|
||||
if (config.calls() && getWidget() != null && event.getTarget().endsWith("horn") && !event.getTarget().contains("Unicorn"))
|
||||
{
|
||||
MenuEntry[] menuEntries = client.getMenuEntries();
|
||||
Widget callWidget = getWidget();
|
||||
String call = Calls.getOption(callWidget.getText());
|
||||
MenuEntry correctCall = null;
|
||||
|
||||
entries.clear();
|
||||
for (MenuEntry entry : menuEntries)
|
||||
{
|
||||
String option = entry.getOption();
|
||||
if (option.equals(call))
|
||||
{
|
||||
correctCall = entry;
|
||||
}
|
||||
else if (!option.startsWith("Tell-"))
|
||||
{
|
||||
entries.add(entry);
|
||||
}
|
||||
}
|
||||
|
||||
if (correctCall != null) //&& callWidget.getTextColor()==16316664)
|
||||
{
|
||||
entries.add(correctCall);
|
||||
client.setMenuEntries(entries.toArray(new MenuEntry[0]));
|
||||
}
|
||||
}
|
||||
|
||||
final int itemId = event.getIdentifier();
|
||||
String option = Text.removeTags(event.getOption()).toLowerCase();
|
||||
String target = Text.removeTags(event.getTarget()).toLowerCase();
|
||||
|
||||
if (config.swapDestroyEggs() & (target.equals("red egg") || target.equals("green egg") || target.equals("blue egg")))
|
||||
{
|
||||
menuManager.addSwap("destroy", option, target);
|
||||
}
|
||||
|
||||
if (config.swapCollectorBag() & target.equals("collection bag"))
|
||||
{
|
||||
menuManager.addSwap("empty", option, target);
|
||||
}
|
||||
|
||||
if (config.swapLadder() && option.equals("climb-down") && target.equals("ladder"))
|
||||
{
|
||||
swap(client, "quick-start", option, target);
|
||||
menuManager.addSwap("Quick-start", option, target);
|
||||
}
|
||||
else if (config.removeBA() && client.getVar(Varbits.IN_GAME_BA) == 1 && !option.contains("tell-"))//if in barbarian assault and menu isnt from a horn
|
||||
{
|
||||
@@ -528,11 +522,15 @@ public class BAToolsPlugin extends Plugin implements KeyListener
|
||||
//remove attack option from everything but queen spawns
|
||||
remove(option, target);
|
||||
}
|
||||
else if ((option.equals("fix") || (option.equals("block") && target.equals("penance cave"))) && client.getWidget(BA_DEF_ROLE_TEXT) == null)//if not defender
|
||||
else if ((option.equals("fix")) && client.getWidget(WidgetInfo.BA_DEF_ROLE_TEXT) == null)//if not defender
|
||||
{
|
||||
//the check for option requires checking target as well because defensive attack style option is also called "block".
|
||||
remove(option, target);
|
||||
}
|
||||
else if ((option.equals("block") && target.equals("penance cave") && config.removePenanceCave()))
|
||||
{
|
||||
remove(option, target);
|
||||
}
|
||||
|
||||
else if ((option.equals("load")) && client.getWidget(BA_COLL_ROLE_TEXT) == null)//if not collector, remove hopper options
|
||||
{
|
||||
remove(new String[]{option, "look-in"}, target);
|
||||
@@ -576,7 +574,40 @@ public class BAToolsPlugin extends Plugin implements KeyListener
|
||||
}
|
||||
|
||||
|
||||
if (inGame && config.healerMenuOption() && event.getTarget().contains("Penance Healer"))
|
||||
if (client.getWidget(WidgetInfo.BA_HEAL_CALL_TEXT) == getWidget() && lastHealer != 0 && inGame && config.ctrlHealer() && ctrlDown)
|
||||
{
|
||||
MenuEntry[] menuEntries = client.getMenuEntries();
|
||||
MenuEntry correctHealer = null;
|
||||
entries.clear();
|
||||
|
||||
for (MenuEntry entry : menuEntries)
|
||||
{
|
||||
|
||||
if (( entry.getIdentifier() == lastHealer && entry.getOption().equals("Use"))
|
||||
||
|
||||
(
|
||||
(entry.getTarget().equals("<col=ff9040>Poisoned meat") || entry.getTarget().equals("<col=ff9040>Poisoned worms") || entry.getTarget().equals("<col=ff9040>Poisoned tofu"))
|
||||
&&
|
||||
entry.getOption().equals("Use")
|
||||
)
|
||||
)
|
||||
{
|
||||
correctHealer = entry;
|
||||
}
|
||||
else
|
||||
{
|
||||
log.info((entry.getIdentifier() == lastHealer && entry.getOption().equals("Use")) + " " + ((entry.getTarget().equals("<col=ff9040>Poisoned meat") || entry.getTarget().equals("<col=ff9040>Poisoned worms") || entry.getTarget().equals("<col=ff9040>Poisoned tofu")) && entry.getOption().equals("Use")) );
|
||||
}
|
||||
}
|
||||
if (correctHealer != null)
|
||||
{
|
||||
entries.add(correctHealer);
|
||||
}
|
||||
client.setMenuEntries(entries.toArray(new MenuEntry[entries.size()]));
|
||||
}
|
||||
|
||||
|
||||
if ((event.getTarget().contains("Penance Healer") || event.getTarget().contains("Penance Fighter") || event.getTarget().contains("Penance Ranger")))
|
||||
{
|
||||
|
||||
MenuEntry[] menuEntries = client.getMenuEntries();
|
||||
@@ -626,6 +657,22 @@ public class BAToolsPlugin extends Plugin implements KeyListener
|
||||
client.setMenuEntries(entries.toArray(new MenuEntry[0]));
|
||||
}
|
||||
|
||||
if (client.getWidget(WidgetInfo.BA_ATK_LISTEN_TEXT) != null && inGame && config.attackStyles() && shiftDown)
|
||||
{
|
||||
MenuEntry[] menuEntries = client.getMenuEntries();
|
||||
MenuEntry correctEgg = null;
|
||||
entries.clear();
|
||||
|
||||
for (MenuEntry entry : menuEntries)
|
||||
{
|
||||
if (entry.getOption().contains("Walk here"))
|
||||
{
|
||||
entries.add(entry);
|
||||
}
|
||||
}
|
||||
client.setMenuEntries(entries.toArray(new MenuEntry[entries.size()]));
|
||||
}
|
||||
|
||||
if (client.getWidget(BA_HEAL_LISTEN_TEXT) != null && inGame && config.osHelp() && event.getTarget().equals("<col=ffff>Healer item machine") && shiftDown)
|
||||
{
|
||||
String[] currentCall = client.getWidget(BA_HEAL_LISTEN_TEXT).getText().split(" ");
|
||||
@@ -658,27 +705,26 @@ public class BAToolsPlugin extends Plugin implements KeyListener
|
||||
@Subscribe
|
||||
public void onMenuOptionClicked(MenuOptionClicked event)
|
||||
{
|
||||
if (!config.healerMenuOption() || !event.getMenuTarget().contains("Penance Healer") || client.getWidget(BA_HEAL_CALL_TEXT) == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
String currentCall = client.getWidget(BA_HEAL_CALL_TEXT).getText();
|
||||
String target = event.getMenuTarget();
|
||||
|
||||
if ((currentCall.equals("Pois. Worms") && (target.contains("Poisoned worms") && target.contains("->") && target.contains("Penance Healer")))
|
||||
|| (currentCall.equals("Pois. Meat") && (target.contains("Poisoned meat") && target.contains("->") && target.contains("Penance Healer")))
|
||||
|| (currentCall.equals("Pois. Tofu") && (target.contains("Poisoned tofu") && target.contains("->") && target.contains("Penance Healer"))))
|
||||
if (config.tagging() && (event.getMenuTarget().contains("Penance Ranger") || event.getMenuTarget().contains("Penance Fighter")))
|
||||
{
|
||||
foodPressed.put(event.getId(), Instant.now());
|
||||
if (event.getMenuOption().contains("Attack"))
|
||||
{
|
||||
foodPressed.put(event.getId(), Instant.now());
|
||||
}
|
||||
log.info(target);
|
||||
}
|
||||
|
||||
if (target.contains("->") && target.contains("Penance Healer"))
|
||||
if (config.healerMenuOption() && target.contains("Penance Healer") && target.contains("<col=ff9040>Poisoned") && target.contains("->"))
|
||||
{
|
||||
foodPressed.put(event.getId(), Instant.now());
|
||||
lastHealer = event.getId();
|
||||
log.info("Last healer changed: " + lastHealer);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void onConfigChanged(ConfigChanged event)
|
||||
{
|
||||
if (counter != null && !config.defTimer())
|
||||
@@ -780,6 +826,10 @@ public class BAToolsPlugin extends Plugin implements KeyListener
|
||||
{
|
||||
shiftDown = true;
|
||||
}
|
||||
if (e.getKeyCode() == KeyEvent.VK_CONTROL)
|
||||
{
|
||||
ctrlDown = true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -789,6 +839,10 @@ public class BAToolsPlugin extends Plugin implements KeyListener
|
||||
{
|
||||
shiftDown = false;
|
||||
}
|
||||
if (e.getKeyCode() == KeyEvent.VK_CONTROL)
|
||||
{
|
||||
ctrlDown = false;
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isAnyPrayerActive()
|
||||
|
||||
Reference in New Issue
Block a user