Make Combos Translatable (#984)

• Moved all hardcoded combo instruction values to the language file config.
• Changed default getInstructions() method to change the path if it's a combo in order to get the correct configuration value.
This commit is contained in:
StrangeOne101 2018-10-28 19:58:45 +13:00 committed by Christopher Martin
parent 7c404139d4
commit f112190d72
15 changed files with 16 additions and 66 deletions

View file

@ -796,6 +796,9 @@ public abstract class CoreAbility implements Ability {
if (this.getElement() instanceof SubElement) {
elementName = ((SubElement) this.getElement()).getParentElement().getName();
}
if (this instanceof ComboAbility) {
elementName = elementName + ".Combo";
}
return ConfigManager.languageConfig.get().contains("Abilities." + elementName + "." + this.getName() + ".Instructions") ? ConfigManager.languageConfig.get().getString("Abilities." + elementName + "." + this.getName() + ".Instructions") : "";
}

View file

@ -313,9 +313,4 @@ public class AirStream extends AirAbility implements ComboAbility {
public void setCooldown(final long cooldown) {
this.cooldown = cooldown;
}
@Override
public String getInstructions() {
return "AirShield (Hold Shift) > AirSuction (Left Click) > AirBlast (Left Click)";
}
}

View file

@ -333,9 +333,4 @@ public class AirSweep extends AirAbility implements ComboAbility {
public void setTasks(final ArrayList<BukkitRunnable> tasks) {
this.tasks = tasks;
}
@Override
public String getInstructions() {
return "AirSwipe (Left Click) > AirSwipe (Left Click) > AirBurst (Hold Shift) > AirBurst (Left Click)";
}
}

View file

@ -194,9 +194,4 @@ public class Twister extends AirAbility implements ComboAbility {
twister.add(new AbilityInformation("AirBlast", ClickType.LEFT_CLICK));
return twister;
}
@Override
public String getInstructions() {
return "AirShield (Tap Shift) > Tornado (Hold Shift) > AirBlast (Left Click)";
}
}

View file

@ -118,9 +118,4 @@ public class Immobilize extends ChiAbility implements ComboAbility {
public void setCooldown(final long cooldown) {
this.cooldown = cooldown;
}
@Override
public String getInstructions() {
return "QuickStrike > SwiftKick > QuickStrike > QuickStrike";
}
}

View file

@ -269,9 +269,12 @@ public class ConfigManager {
config.addDefault("Abilities.Air.Suffocate.Instructions", "Hold sneak while looking at a target to begin suffocating them. If the target goes out of range, you get damaged, or you release sneak, the ability will cancel.");
config.addDefault("Abilities.Air.Suffocate.DeathMessage", "{victim} was asphyxiated by {attacker}'s {ability}");
config.addDefault("Abilities.Air.Combo.Twister.Description", "Create a cyclone of air that travels along the ground grabbing nearby entities.");
config.addDefault("Abilities.Air.Combo.Twister.Instructions", "AirShield (Tap Shift) > Tornado (Hold Shift) > AirBlast (Left Click)");
config.addDefault("Abilities.Air.Combo.AirStream.Description", "Control a large stream of air that grabs onto enemies allowing you to direct them temporarily.");
config.addDefault("Abilities.Air.Combo.AirStream.Instructions", "AirShield (Hold Shift) > AirSuction (Left Click) > AirBlast (Left Click)");
config.addDefault("Abilities.Air.Combo.AirSweep.Description", "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");
config.addDefault("Abilities.Air.Combo.AirSweep.DeathMessage", "{victim} was swept away by {attacker}'s {ability}");
config.addDefault("Abilities.Air.Combo.AirSweep.Instructions", "AirSwipe (Left Click) > AirSwipe (Left Click) > AirBurst (Hold Shift) > AirBurst (Left Click)");
config.addDefault("Abilities.Air.Passive.AirAgility.Description", "AirAgility is a passive ability which enables airbenders to run faster and jump higher.");
config.addDefault("Abilities.Air.Passive.AirSaturation.Description", "AirSaturation is a passive ability which causes airbenders' hunger to deplete at a slower rate.");
config.addDefault("Abilities.Air.Passive.GracefulDescent.Description", "GracefulDescent is a passive ability which allows airbenders to make a gentle landing, negating all fall damage on any surface.");
@ -314,8 +317,10 @@ public class ConfigManager {
config.addDefault("Abilities.Water.WaterSpout.Instructions", "\n" + "(Spout) Left click to activate a spout beneath you and hold spacebar to go higher. If you wish to go lower, simply hold sneak. To disable this ability, left click once again." + "\n" + "(Wave) Left click a water source and hold sneak until water has formed around you. Then, release sneak to ride a water wave that transports you in the direction you're looking. To cancel this water wave, left click with WaterSpout.");
config.addDefault("Abilities.Water.Combo.IceBullet.Description", "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.");
config.addDefault("Abilities.Water.Combo.IceBullet.DeathMessage", "{victim}'s heart was frozen by {attacker}'s {ability}");
config.addDefault("Abilities.Water.Combo.IceBullet.Instructions", "WaterBubble (Tap Shift) > IceBlast (Hold Shift) > Wait for ice to Form > Then alternate between Left and Right click with IceBlast");
config.addDefault("Abilities.Water.Combo.IceWave.Description", "PhaseChange your WaterWave into an IceWave that freezes and damages enemies.");
config.addDefault("Abilities.Water.Combo.IceWave.DeathMessage", "{victim} was frozen solid by {attacker}'s {ability}");
config.addDefault("Abilities.Water.Combo.IceWave.Instructions", "Create a WaterSpout Wave > PhaseChange (Left Click)");
config.addDefault("Abilities.Water.Passive.FastSwim.Description", "FastSwim is a passive ability for waterbenders allowing them to travel quickly through the water. Simple hold shift while underwater to propel yourself forward.");
config.addDefault("Abilities.Water.Passive.HydroSink.Description", "Hydrosink is a passive ability for waterbenders enabling them to softly land on any waterbendable surface, cancelling all damage.");
@ -353,7 +358,9 @@ public class ConfigManager {
config.addDefault("Abilities.Earth.Tremorsense.Description", "This is a pure utility ability for earthbenders. If you are in an area of low-light and are standing on top of an earthbendable block, this ability will automatically turn that block into glowstone, visible *only by you*. If you lose contact with a bendable block, the light will go out as you have lost contact with the earth and cannot 'see' until you can touch earth again. Additionally, if you click with this ability selected, smoke will appear above nearby earth with pockets of air beneath them.");
config.addDefault("Abilities.Earth.Tremorsense.Instructions", "Simply left click while on an earthbendable block.");
config.addDefault("Abilities.Earth.Combo.EarthDome.Description", "EarthDome allows earthbenders to surround themselves or another entity in earth, temporarily preventing anything from entering or escaping the dome.");
config.addDefault("Abilities.Earth.Combo.EarthDome.Instructions", "(Self) RaiseEarth (Right click) > Shockwave (Right click)\\n(Projection) RaiseEarth(Right click) > Shockwave (Left click)");
config.addDefault("Abilities.Earth.Combo.EarthPillars.Description", "Send players and entities flying into the air and possibly stunning them by raising pillars of earth under their feet, dealing damage initally as well. This combo can also be used by falling from high off the ground and landing while on the Catapult ability");
config.addDefault("Abilities.Earth.Combo.EarthPillars.Instructions", "Shockwave (Tap sneak) > Shockwave (Hold sneak) > Catapult (Release sneak)");
config.addDefault("Abilities.Earth.Passive.DensityShift.Description", "DensityShift is a passive ability which allows earthbenders to make a firm landing negating all fall damage on any earthbendable surface.");
config.addDefault("Abilities.Earth.Passive.FerroControl.Description", "FerroControl is a passive ability which allows metalbenders to simply open and close iron doors by sneaking.");
@ -390,13 +397,18 @@ public class ConfigManager {
config.addDefault("Abilities.Fire.WallOfFire.DeathMessage", "{victim} ran into {attacker}'s {ability}");
config.addDefault("Abilities.Fire.Combo.FireKick.Description", "A short ranged arc of fire launches from the player's feet dealing moderate damage to enemies.");
config.addDefault("Abilities.Fire.Combo.FireKick.DeathMessage", "{victim} was kicked to the floor, in flames, from {attacker}'s {ability}");
config.addDefault("Abilities.Fire.Combo.FireKick.Instructions", "FireBlast > FireBlast > (Hold sneak) > FireBlast");
config.addDefault("Abilities.Fire.Combo.FireSpin.Description", "A circular array of fire that causes damage and massive knockback to nearby enemies.");
config.addDefault("Abilities.Fire.Combo.FireSpin.DeathMessage", "{victim} was caught in {attacker}'s {ability} inferno");
config.addDefault("Abilities.Fire.Combo.FireSpin.Instructions", "FireBlast > FireBlast > FireShield (Left Click) > FireShield (Tap Shift)");
config.addDefault("Abilities.Fire.Combo.JetBlaze.Description", "Damages and burns all enemies in the proximity of your FireJet.");
config.addDefault("Abilities.Fire.Combo.JetBlaze.DeathMessage", "{victim} was lit ablaze by {attacker}'s {ability}");
config.addDefault("Abilities.Fire.Combo.JetBlaze.Instructions", "FireJet (Tap Shift) > FireJet (Tap Shift) > Blaze (Tap Shift) > FireJet");
config.addDefault("Abilities.Fire.Combo.JetBlast.Description", "Create an explosive blast that propels your FireJet at higher speeds.");
config.addDefault("Abilities.Fire.Combo.JetBlast.Instructions", "FireJet (Tap Shift) > FireJet (Tap Shift) > FireShield (Tap Shift) > FireJet");
config.addDefault("Abilities.Fire.Combo.FireWheel.Description", "A high-speed wheel of fire that travels along the ground for long distances dealing high damage.");
config.addDefault("Abilities.Fire.Combo.FireWheel.DeathMessage", "{victim} was incinerated by {attacker}'s {ability}");
config.addDefault("Abilities.Fire.Combo.FireWheel.Instructions", "FireShield (Hold Shift) > Right Click a block in front of you twice > Switch to Blaze > Release Shift");
config.addDefault("Commands.Help.Elements.Chi", "Chiblockers focus on bare handed combat, utilizing their agility and speed to stop any bender right in their path. Although they lack the ability to bend any of the other elements, they are great in combat, and a serious threat to any bender. Chiblocking was first shown to be used by Ty Lee in Avatar: The Last Airbender, then later by members of the Equalists in The Legend of Korra.\nEnter /b display Chi for a list of the available chi abilities.");
config.addDefault("Abilities.Chi.AcrobatStance.Description", "AcrobatStance gives a Chiblocker a higher probability of blocking a Bender's Chi while granting them a Speed and Jump Boost. It also increases the rate at which the hunger bar depletes.");
@ -419,6 +431,7 @@ public class ConfigManager {
config.addDefault("Abilities.Chi.SwiftKick.Instructions", "Jump and left click on a player to swift kick them.");
config.addDefault("Abilities.Chi.SwiftKick.DeathMessage", "{victim} was kicked to the floor by {attacker}'s {ability}");
config.addDefault("Abilities.Chi.Combo.Immobilize.Description", "Immobilizes the opponent for several seconds.");
config.addDefault("Abilities.Chi.Combo.Immobilize.Instructions", "QuickStrike > SwiftKick > QuickStrike > QuickStrike");
config.addDefault("Abilities.Chi.Passive.ChiAgility.Description", "ChiAgility is a passive ability which enables chiblockers to run faster and jump higher.");
config.addDefault("Abilities.Chi.Passive.ChiSaturation.Description", "ChiSaturation is a passive ability which causes chiblockers' hunger to deplete at a slower rate.");
config.addDefault("Abilities.Chi.Passive.Acrobatics.Description", "Acrobatics is a passive ability which negates all fall damage based on a percent chance.");

View file

@ -60,9 +60,4 @@ public class EarthDomeSelf extends EarthAbility implements ComboAbility {
combo.add(new AbilityInformation("Shockwave", ClickType.RIGHT_CLICK_BLOCK));
return combo;
}
@Override
public String getInstructions() {
return "\n(Self) RaiseEarth (Right click) > Shockwave (Right click)\n(Projection) RaiseEarth(Right click) > Shockwave (Left click)";
}
}

View file

@ -161,9 +161,4 @@ public class EarthPillars extends EarthAbility implements ComboAbility {
earthPillars.add(new AbilityInformation("Catapult", ClickType.SHIFT_UP));
return earthPillars;
}
@Override
public String getInstructions() {
return "Shockwave (Tap sneak) > Shockwave (Hold sneak) > Catapult (Release sneak)";
}
}

View file

@ -209,9 +209,4 @@ public class FireKick extends FireAbility implements ComboAbility {
public void setTasks(final ArrayList<BukkitRunnable> tasks) {
this.tasks = tasks;
}
@Override
public String getInstructions() {
return "FireBlast > FireBlast > (Hold sneak) > FireBlast";
}
}

View file

@ -212,9 +212,4 @@ public class FireSpin extends FireAbility implements ComboAbility {
public void setTasks(final ArrayList<BukkitRunnable> tasks) {
this.tasks = tasks;
}
@Override
public String getInstructions() {
return "FireBlast > FireBlast > FireShield (Left Click) > FireShield (Tap Shift)";
}
}

View file

@ -185,9 +185,4 @@ public class FireWheel extends FireAbility implements ComboAbility {
public ArrayList<LivingEntity> getAffectedEntities() {
return this.affectedEntities;
}
@Override
public String getInstructions() {
return "FireShield (Hold Shift) > Right Click a block in front of you twice > Switch to Blaze > Release Shift";
}
}

View file

@ -124,10 +124,4 @@ public class JetBlast extends FireAbility implements ComboAbility {
public boolean isHarmlessAbility() {
return false;
}
@Override
public String getInstructions() {
return "FireJet (Tap Shift) > FireJet (Tap Shift) > FireShield (Tap Shift) > FireJet";
}
}

View file

@ -143,9 +143,4 @@ public class JetBlaze extends FireAbility implements ComboAbility {
public ArrayList<LivingEntity> getAffectedEntities() {
return this.affectedEntities;
}
@Override
public String getInstructions() {
return "FireJet (Tap Shift) > FireJet (Tap Shift) > Blaze (Tap Shift) > FireJet";
}
}

View file

@ -545,9 +545,4 @@ public class IceBullet extends IceAbility implements ComboAbility {
public void setName(final String name) {
this.name = name;
}
@Override
public String getInstructions() {
return "WaterBubble (Tap Shift) > IceBlast (Hold Shift) > Wait for ice to Form > Then alternate between Left and Right click with IceBlast";
}
}

View file

@ -125,9 +125,4 @@ public class IceWave extends IceAbility implements ComboAbility {
iceWave.add(new AbilityInformation("PhaseChange", ClickType.LEFT_CLICK));
return iceWave;
}
@Override
public String getInstructions() {
return "Create a WaterSpout Wave > PhaseChange (Left Click)";
}
}