diff --git a/src/com/projectkorra/projectkorra/ability/combo/ComboManager.java b/src/com/projectkorra/projectkorra/ability/combo/ComboManager.java index 15cf3e3b..65548597 100644 --- a/src/com/projectkorra/projectkorra/ability/combo/ComboManager.java +++ b/src/com/projectkorra/projectkorra/ability/combo/ComboManager.java @@ -35,7 +35,7 @@ public class ComboManager { comboAbilityList.add(new ComboAbility("FireKick", fireKick, FireCombo.class)); descriptions.put("FireKick", "A short ranged arc of fire launches from the player's feet dealing moderate damage to enemies."); instructions.put("FireKick", "FireBlast > FireBlast > (Hold Shift) > FireBlast."); - + ArrayList fireSpin = new ArrayList(); fireSpin.add(new AbilityInformation("FireBlast", ClickType.LEFT_CLICK)); fireSpin.add(new AbilityInformation("FireBlast", ClickType.LEFT_CLICK)); @@ -45,7 +45,7 @@ public class ComboManager { comboAbilityList.add(new ComboAbility("FireSpin", fireSpin, FireCombo.class)); descriptions.put("FireSpin", "A circular array of fire that causes damage and massive knockback to nearby enemies."); instructions.put("FireSpin", "FireBlast > FireBlast > FireShield > (Tap Shift)."); - + ArrayList jetBlast = new ArrayList(); jetBlast.add(new AbilityInformation("FireJet", ClickType.SHIFT_DOWN)); jetBlast.add(new AbilityInformation("FireJet", ClickType.SHIFT_UP)); @@ -57,7 +57,7 @@ public class ComboManager { comboAbilityList.add(new ComboAbility("JetBlast", jetBlast, FireCombo.class)); descriptions.put("JetBlast", "Create an explosive blast that propels your FireJet at higher speeds."); instructions.put("JetBlast", "FireJet (Tap Shift) > FireJet (Tap Shift) > FireShield (Tap Shift) > FireJet."); - + ArrayList jetBlaze = new ArrayList(); jetBlaze.add(new AbilityInformation("FireJet", ClickType.SHIFT_DOWN)); jetBlaze.add(new AbilityInformation("FireJet", ClickType.SHIFT_UP)); @@ -69,7 +69,7 @@ public class ComboManager { comboAbilityList.add(new ComboAbility("JetBlaze", jetBlaze, FireCombo.class)); descriptions.put("JetBlaze", "Damages and burns all enemies in the proximity of your FireJet."); instructions.put("JetBlaze", "FireJet (Tap Shift) > FireJet (Tap Shift) > Blaze (Tap Shift) > FireJet."); - + ArrayList fireWheel = new ArrayList(); fireWheel.add(new AbilityInformation("FireShield", ClickType.SHIFT_DOWN)); fireWheel.add(new AbilityInformation("FireShield", ClickType.RIGHT_CLICK)); @@ -78,7 +78,7 @@ public class ComboManager { comboAbilityList.add(new ComboAbility("FireWheel", fireWheel, FireCombo.class)); descriptions.put("FireWheel", "A high-speed wheel of fire that travels along the ground for long distances dealing high damage."); instructions.put("FireWheel", "FireShield (Hold Shift) > Right Click a block in front of you twice > Switch to Blaze > Release Shift."); - + ArrayList twister = new ArrayList(); twister.add(new AbilityInformation("AirShield", ClickType.SHIFT_DOWN)); twister.add(new AbilityInformation("AirShield", ClickType.SHIFT_UP)); @@ -87,7 +87,7 @@ public class ComboManager { comboAbilityList.add(new ComboAbility("Twister", twister, AirCombo.class)); descriptions.put("Twister", "Create a cyclone of air that travels along the ground grabbing nearby entities."); instructions.put("Twister", "AirShield (Tap Shift) > Tornado (Hold Shift) > AirBlast (Left Click)"); - + ArrayList airStream = new ArrayList(); airStream.add(new AbilityInformation("AirShield", ClickType.SHIFT_DOWN)); airStream.add(new AbilityInformation("AirSuction", ClickType.LEFT_CLICK)); @@ -95,7 +95,7 @@ public class ComboManager { comboAbilityList.add(new ComboAbility("AirStream", airStream, AirCombo.class)); descriptions.put("AirStream", "Control a large stream of air that grabs onto enemies allowing you to direct them temporarily."); instructions.put("AirStream", "AirShield (Hold Shift) > AirSuction (Left Click) > AirBlast (Left Click)"); - + /* * ArrayList airSlice = new * ArrayList(); airSlice.add(new @@ -115,19 +115,24 @@ public class ComboManager { comboAbilityList.add(new ComboAbility("AirSweep", airSweep, AirCombo.class)); descriptions.put("AirSweep", "Sweep the air in front of you hitting multiple enemies, causing moderate damage and a large knockback. The radius and direction of AirSweep is controlled by moving your mouse in a sweeping motion. For example, if you want to AirSweep upward, then move your mouse upward right after you left click AirBurst"); instructions.put("AirSweep", "AirSwipe (Left Click) > AirSwipe (Left Click) > AirBurst (Hold Shift) > AirBurst (Left Click)"); - + ArrayList iceWave = new ArrayList(); iceWave.add(new AbilityInformation("WaterSpout", ClickType.SHIFT_UP)); iceWave.add(new AbilityInformation("PhaseChange", ClickType.LEFT_CLICK)); comboAbilityList.add(new ComboAbility("IceWave", iceWave, WaterCombo.class)); descriptions.put("IceWave", "PhaseChange your WaterWave into an IceWave that freezes and damages enemies."); - instructions.put("IceWave", "Create a WaterSpout Wave > PhaseChange (Left Click)"); - - /*ArrayList icePillar = new ArrayList(); - icePillar.add(new AbilityInformation("IceSpike", ClickType.LEFT_CLICK)); - icePillar.add(new AbilityInformation("IceSpike", ClickType.LEFT_CLICK)); - icePillar.add(new AbilityInformation("WaterSpout", ClickType.LEFT_CLICK)); - comboAbilityList.add(new ComboAbility("IcePillar", icePillar, WaterCombo.class));*/ + instructions.put("IceWave", "Create a WaterSpout Wave > PhaseChange (Left Click)"); + + /* + * ArrayList icePillar = new + * ArrayList(); icePillar.add(new + * AbilityInformation("IceSpike", ClickType.LEFT_CLICK)); + * icePillar.add(new AbilityInformation("IceSpike", + * ClickType.LEFT_CLICK)); icePillar.add(new + * AbilityInformation("WaterSpout", ClickType.LEFT_CLICK)); + * comboAbilityList.add(new ComboAbility("IcePillar", icePillar, + * WaterCombo.class)); + */ ArrayList iceBullet = new ArrayList(); iceBullet.add(new AbilityInformation("WaterBubble", ClickType.SHIFT_DOWN)); @@ -136,8 +141,8 @@ public class ComboManager { iceBullet.add(new AbilityInformation("IceBlast", ClickType.LEFT_CLICK)); comboAbilityList.add(new ComboAbility("IceBullet", iceBullet, WaterCombo.class)); descriptions.put("IceBullet", "Using a large cavern of ice, you can punch ice shards at your opponent causing moderate damage. To rapid fire, you must alternate between Left clicking and right clicking with IceBlast."); - instructions.put("IceBullet", "WaterBubble (Tap Shift) > IceBlast (Hold Shift) > IceBlast (Left Click) > Wait for ice to Form > Then alternate between Left and Right click with IceBlast"); - + instructions.put("IceBullet", "WaterBubble (Tap Shift) > IceBlast (Hold Shift) > IceBlast (Left Click) > Wait for ice to Form > Then alternate between Left and Right click with IceBlast"); + ArrayList iceBulletLeft = new ArrayList(); iceBulletLeft.add(new AbilityInformation("IceBlast", ClickType.LEFT_CLICK)); comboAbilityList.add(new ComboAbility("IceBulletLeftClick", iceBulletLeft, WaterCombo.class)); @@ -219,18 +224,18 @@ public class ComboManager { Enumeration keys = recentlyUsedAbilities.keys(); while (keys.hasMoreElements()) { String name = keys.nextElement(); - ArrayList combos = recentlyUsedAbilities.get(name); + ArrayList usedAbilities = recentlyUsedAbilities.get(name); + ArrayList stillValidAbilities = new ArrayList(); recentlyUsedAbilities.remove(name); - for (int i = 0; i < combos.size(); i++) { - AbilityInformation info = combos.get(i); - if (System.currentTimeMillis() - info.getTime() > CLEANUP_DELAY) { - combos.remove(i); - i--; + + for (AbilityInformation info : usedAbilities) { + if (System.currentTimeMillis() - info.getTime() <= CLEANUP_DELAY) { + stillValidAbilities.add(info); } } - if (combos.size() > 0) - recentlyUsedAbilities.put(name, combos); + if (stillValidAbilities.size() > 0) + recentlyUsedAbilities.put(name, stillValidAbilities); } } @@ -248,11 +253,12 @@ public class ComboManager { tempList.add(0, list.get(list.size() - 1 - i)); return tempList; } - + public static ArrayList getCombosForElement(Element element) { ArrayList list = new ArrayList(); for (ComboAbility comboab : comboAbilityList) { - if (GeneralMethods.getComboElement(comboab.getName()) == element && descriptions.containsKey(comboab.getName())) list.add(comboab.getName()); + if (GeneralMethods.getComboElement(comboab.getName()) == element && descriptions.containsKey(comboab.getName())) + list.add(comboab.getName()); } Collections.sort(list); return list; @@ -263,7 +269,7 @@ public class ComboManager { public void run() { cleanupOldCombos(); } - }.runTaskTimer(ProjectKorra.plugin, 0, CLEANUP_DELAY); + }.runTaskTimer(ProjectKorra.plugin, 0, CLEANUP_DELAY / 1000 * 20); } public static class AbilityInformation {