barbarianassault: fix remove wrong attack styles and checkstyle (#772)

* barbarianassault: fix remove wrong attack styles and checkstyle

* travis rebuild
This commit is contained in:
se7enAte9
2019-06-27 15:15:04 -04:00
committed by Ganom
parent a47ba0d531
commit 996774955b
3 changed files with 143 additions and 181 deletions

View File

@@ -130,6 +130,7 @@ class AboveWidgetsOverlay extends Overlay
Rectangle spriteBounds = roleSprite.getBounds();
graphics.drawImage(game.getClockImage(), spriteBounds.x, spriteBounds.y, null);
roleSprite.setHidden(true);
}
private void renderInventoryHighlights(Graphics2D graphics, int itemID, Color color)

View File

@@ -184,13 +184,13 @@ public interface BarbarianAssaultConfig extends Config
}
@ConfigItem(
keyName = "attackStyles",
keyName = "removeIncorrectAttackStyles",
name = "Remove incorrect attack styles",
description = "Hide attack styles depending on weapon.",
description = "Hides wrong attack styles for dragon claws and crystal halberd",
position = 2,
group = "Attacker"
)
default boolean attackStyles()
default boolean removeIncorrectAttackStyles()
{
return false;
}

View File

@@ -27,7 +27,7 @@
*/
package net.runelite.client.plugins.barbarianassault;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableList;
import com.google.inject.Provides;
import java.awt.Font;
@@ -48,6 +48,7 @@ import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Actor;
import net.runelite.api.ChatMessageType;
import net.runelite.api.Client;
import net.runelite.api.GameState;
import net.runelite.api.ItemID;
import net.runelite.api.MenuEntry;
import net.runelite.api.MessageNode;
@@ -89,6 +90,8 @@ import net.runelite.client.input.KeyManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.plugins.PluginType;
import net.runelite.client.plugins.attackstyles.AttackStyle;
import net.runelite.client.plugins.attackstyles.WeaponType;
import net.runelite.client.ui.FontManager;
import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.ui.overlay.infobox.InfoBox;
@@ -110,14 +113,15 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
{
private static final String ENDGAME_REWARD_NEEDLE_TEXT = "<br>5";
private static final String[] STYLES = {"Defensive", "Aggressive", "Controlled", "Accurate"};
private static final int COLOR_CALL_UPDATED = 16316664;
private static final int COLOR_CALL_CALLED = 16291864;
private static final int BA_WAVE_NUM_INDEX = 2;
private static final ImmutableList<WidgetInfo> attackStyles = ImmutableList.of(WidgetInfo.COMBAT_STYLE_ONE,
WidgetInfo.COMBAT_STYLE_TWO, WidgetInfo.COMBAT_STYLE_THREE, WidgetInfo.COMBAT_STYLE_FOUR);
@Inject
private Client client;
@@ -230,8 +234,6 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
private BufferedImage torsoImage, fighterImage, healerImage, rangerImage, runnerImage;
private ImmutableMap<WidgetInfo, Boolean> originalAttackStyles = null;
private ArrayList<TimerBox> deathTimes = new ArrayList<>();
private HashMap<Integer, Projectile> projectiles = new HashMap<>();
@@ -260,8 +262,11 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
overlayManager.add(widgetsOverlay);
overlayManager.add(sceneOverlay);
keyManager.registerKeyListener(this);
if (client.getGameState() == GameState.LOGGED_IN)
{
clientThread.invoke(this::validateGame);
}
}
@Override
protected void shutDown() throws Exception
@@ -331,11 +336,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
switch (configChanged.getKey())
{
case "showTimer":
if (config.showTimer())
{
hideRoleSprite();
}
else
if (!config.showTimer())
{
showRoleSprite();
}
@@ -384,6 +385,13 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
case "removeWrongPoison":
clientThread.invoke(() -> menu.validateHiddenMenus(getRole()));
break;
case "removeIncorrectAttackStyles":
if (!config.removeIncorrectAttackStyles())
{
clientThread.invoke(this::showAllStyles);
}
break;
}
}
@@ -631,90 +639,6 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
tickCounter.setCount(tickNum);
}
Widget weapon = client.getWidget(WidgetInfo.COMBAT_WEAPON);
if (config.attackStyles()
&& isInGame()
&& getRole() == Role.ATTACKER
&& weapon != null
&& (weapon.getText().contains("Crystal halberd") || weapon.getText().contains("Dragon claws")))
{
if (originalAttackStyles == null)
{
ImmutableMap.Builder<WidgetInfo, Boolean> builder = new ImmutableMap.Builder<>();
builder.put(WidgetInfo.COMBAT_STYLE_ONE, client.getWidget(WidgetInfo.COMBAT_STYLE_ONE).isHidden());
builder.put(WidgetInfo.COMBAT_STYLE_TWO, client.getWidget(WidgetInfo.COMBAT_STYLE_TWO).isHidden());
builder.put(WidgetInfo.COMBAT_STYLE_THREE, client.getWidget(WidgetInfo.COMBAT_STYLE_THREE).isHidden());
builder.put(WidgetInfo.COMBAT_STYLE_FOUR, client.getWidget(WidgetInfo.COMBAT_STYLE_FOUR).isHidden());
originalAttackStyles = builder.build();
}
int i;
for (i = 0; i < STYLES.length; i++)
{
if (lastListenText.contains(STYLES[i]))
{
break;
}
}
switch (i)
{
case 0: //Defensive
client.getWidget(WidgetInfo.COMBAT_STYLE_ONE).setHidden(true);
client.getWidget(WidgetInfo.COMBAT_STYLE_TWO).setHidden(true);
client.getWidget(WidgetInfo.COMBAT_STYLE_THREE).setHidden(true);
client.getWidget(WidgetInfo.COMBAT_STYLE_FOUR).setHidden(false);
break;
case 1: // Aggressive
client.getWidget(WidgetInfo.COMBAT_STYLE_ONE).setHidden(true);
client.getWidget(WidgetInfo.COMBAT_STYLE_TWO).setHidden(false);
client.getWidget(WidgetInfo.COMBAT_STYLE_THREE).setHidden(true);
client.getWidget(WidgetInfo.COMBAT_STYLE_FOUR).setHidden(true);
break;
case 2: // Controlled
if (weapon.getText().contains("Crystal halberd"))
{
client.getWidget(WidgetInfo.COMBAT_STYLE_ONE).setHidden(false);
client.getWidget(WidgetInfo.COMBAT_STYLE_THREE).setHidden(true);
}
else
{
client.getWidget(WidgetInfo.COMBAT_STYLE_ONE).setHidden(true);
client.getWidget(WidgetInfo.COMBAT_STYLE_THREE).setHidden(false);
}
client.getWidget(WidgetInfo.COMBAT_STYLE_TWO).setHidden(true);
client.getWidget(WidgetInfo.COMBAT_STYLE_FOUR).setHidden(true);
break;
case 3: // Accurate
if (weapon.getText().contains("Dragon claws"))
{
client.getWidget(WidgetInfo.COMBAT_STYLE_ONE).setHidden(false);
client.getWidget(WidgetInfo.COMBAT_STYLE_TWO).setHidden(true);
client.getWidget(WidgetInfo.COMBAT_STYLE_THREE).setHidden(true);
client.getWidget(WidgetInfo.COMBAT_STYLE_FOUR).setHidden(true);
}
else
{
client.getWidget(WidgetInfo.COMBAT_STYLE_ONE).setHidden(false);
client.getWidget(WidgetInfo.COMBAT_STYLE_TWO).setHidden(false);
client.getWidget(WidgetInfo.COMBAT_STYLE_THREE).setHidden(false);
client.getWidget(WidgetInfo.COMBAT_STYLE_FOUR).setHidden(false);
}
break;
default:
client.getWidget(WidgetInfo.COMBAT_STYLE_ONE).setHidden(false);
client.getWidget(WidgetInfo.COMBAT_STYLE_TWO).setHidden(false);
client.getWidget(WidgetInfo.COMBAT_STYLE_THREE).setHidden(false);
client.getWidget(WidgetInfo.COMBAT_STYLE_FOUR).setHidden(false);
break;
}
}
else if (originalAttackStyles != null)
{
originalAttackStyles.forEach((w, b) -> client.getWidget(w).setHidden(b));
}
if (config.prayerMetronome() && isAnyPrayerActive())
{
for (int i = 0; i < config.prayerMetronomeVolume(); i++)
@@ -897,6 +821,44 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
menu.setRebuildForced(false);
menu.validateHiddenMenus(role);
}
// This doesn't have to be done in BeforeRender. And although it is
// inefficient, it's only being done while in the instance. Will
// likely be changed in the future
if (getRole() == Role.ATTACKER && config.removeIncorrectAttackStyles())
{
Widget weapon = client.getWidget(WidgetInfo.COMBAT_WEAPON);
if (weapon != null)
{
if ((StringUtils.contains(weapon.getText(), "Crystal halberd") || StringUtils.contains(weapon.getText(), "Dragon claws"))
&& newListenText != null && !newListenText.equals("- - -"))
{
int i = 0;
for (AttackStyle style : getAttackStyles())
{
Widget attackStyle = client.getWidget(attackStyles.get(i));
if (attackStyle != null && style != null)
{
if (StringUtils.startsWith(newListenText, style.getName()))
{
attackStyle.setHidden(false);
}
else
{
attackStyle.setHidden(true);
}
}
i++;
}
}
else
{
showAllStyles();
}
}
}
}
// onMenuEntryAdded is being used for conditional entry changes that are not
@@ -1232,6 +1194,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
poisonUsed = null;
lastHealerPoisoned = -1;
tickNum = 0;
showAllStyles();
usingGloryHorn = false;
menu.validateHiddenMenus(null);
}
@@ -1353,11 +1316,7 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
private void validateWidgets()
{
if (config.showTimer())
{
hideRoleSprite();
}
else
if (!config.showTimer())
{
showRoleSprite();
}
@@ -1383,6 +1342,18 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
}
}
private void showAllStyles()
{
for (WidgetInfo info : attackStyles)
{
Widget style = client.getWidget(info);
if (style != null)
{
style.setHidden(false);
}
}
}
private void addTickTimer()
{
if (!isInGame() || tickCounter != null)
@@ -1460,21 +1431,6 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
}
}
private void hideRoleSprite()
{
if (getRole() == null || !isInGame())
{
return;
}
Widget roleSprite = client.getWidget(role.getRoleSprite());
if (roleSprite != null)
{
roleSprite.setHidden(true);
}
}
private void showRoleSprite()
{
if (getRole() == null || !isInGame())
@@ -1495,6 +1451,11 @@ public class BarbarianAssaultPlugin extends Plugin implements KeyListener
}
}
private AttackStyle[] getAttackStyles()
{
return WeaponType.getWeaponType(client.getVar(Varbits.EQUIPPED_WEAPON_TYPE)).getAttackStyles();
}
private void announceWaveTime()
{
if (config.waveTimes() && wave != null)