v0.9.4: added proper icons for abilities and subclasses

This commit is contained in:
Evan Debenham 2021-08-12 14:15:39 -04:00
parent bfe6d51820
commit 222031cb97
22 changed files with 170 additions and 48 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -94,6 +94,8 @@ public class Assets {
public static final String TALENT_ICONS = "interfaces/talent_icons.png"; public static final String TALENT_ICONS = "interfaces/talent_icons.png";
public static final String TALENT_BUTTON = "interfaces/talent_button.png"; public static final String TALENT_BUTTON = "interfaces/talent_button.png";
public static final String HERO_ICONS = "interfaces/hero_icons.png";
} }
//these points to resource bundles, not raw asset files //these points to resource bundles, not raw asset files

View File

@ -21,33 +21,34 @@
package com.shatteredpixel.shatteredpixeldungeon.actors.hero; package com.shatteredpixel.shatteredpixeldungeon.actors.hero;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Combo;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Fury;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIcon; import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.watabou.noosa.Game; import com.watabou.noosa.Game;
import com.watabou.noosa.Image;
public enum HeroSubClass { public enum HeroSubClass {
NONE, NONE(HeroIcon.NONE),
BERSERKER(HeroIcon.BERSERKER),
GLADIATOR(HeroIcon.GLADIATOR),
BATTLEMAGE(HeroIcon.BATTLEMAGE),
WARLOCK(HeroIcon.WARLOCK),
GLADIATOR, ASSASSIN(HeroIcon.ASSASSIN),
BERSERKER, FREERUNNER(HeroIcon.FREERUNNER),
WARLOCK, SNIPER(HeroIcon.SNIPER),
BATTLEMAGE, WARDEN(HeroIcon.WARDEN);
ASSASSIN, int icon;
FREERUNNER,
HeroSubClass(int icon){
SNIPER, this.icon = icon;
WARDEN; }
public String title() { public String title() {
return Messages.get(this, name()); return Messages.get(this, name());
@ -74,34 +75,8 @@ public enum HeroSubClass {
} }
} }
public Image icon(){ public int icon(){
switch (this){ return icon;
case GLADIATOR: default:
return new BuffIcon(BuffIndicator.COMBO, true);
case BERSERKER:
return new BuffIcon(BuffIndicator.FURY, true);
case WARLOCK:
return new BuffIcon(BuffIndicator.CORRUPT, true);
case BATTLEMAGE:
Image im = new BuffIcon(BuffIndicator.UPGRADE, true);
im.hardlight(1f, 1f, 0f);
return im;
case ASSASSIN:
im = new BuffIcon(BuffIndicator.PREPARATION, true);
im.hardlight(1f, 0f, 0f);
return im;
case FREERUNNER:
im = new BuffIcon(BuffIndicator.MOMENTUM, true);
im.hardlight(1f, 1f, 0f);
return im;
case SNIPER:
return new BuffIcon(BuffIndicator.MARK, true);
case WARDEN:
return new BuffIcon(BuffIndicator.BARKSKIN, true);
}
} }
} }

View File

@ -27,6 +27,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClassArmor;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.CellSelector; import com.shatteredpixel.shatteredpixeldungeon.scenes.CellSelector;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
import com.watabou.utils.Bundlable; import com.watabou.utils.Bundlable;
import com.watabou.utils.Bundle; import com.watabou.utils.Bundle;
@ -84,6 +85,10 @@ public abstract class ArmorAbility implements Bundlable {
return Messages.get(this, "desc") + "\n\n" + Messages.get(this, "cost", (int)baseChargeUse); return Messages.get(this, "desc") + "\n\n" + Messages.get(this, "cost", (int)baseChargeUse);
} }
public int icon(){
return HeroIcon.NONE;
}
public abstract Talent[] talents(); public abstract Talent[] talents();
@Override @Override

View File

@ -19,6 +19,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportat
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.RatSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.RatSprite;
import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
import com.shatteredpixel.shatteredpixeldungeon.ui.TargetHealthIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.TargetHealthIndicator;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.noosa.audio.Sample; import com.watabou.noosa.audio.Sample;
@ -124,6 +125,11 @@ public class Ratmogrify extends ArmorAbility {
} }
@Override
public int icon() {
return HeroIcon.RATMOGRIFY;
}
@Override @Override
public Talent[] talents() { public Talent[] talents() {
return new Talent[]{ Talent.RATSISTANCE, Talent.RATLOMACY, Talent.RATFORCEMENTS, Talent.HEROIC_ENERGY}; return new Talent[]{ Talent.RATSISTANCE, Talent.RATLOMACY, Talent.RATFORCEMENTS, Talent.HEROIC_ENERGY};

View File

@ -33,6 +33,7 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.particles.LeafParticle;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClassArmor; import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClassArmor;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
import com.watabou.noosa.audio.Sample; import com.watabou.noosa.audio.Sample;
public class NaturesPower extends ArmorAbility { public class NaturesPower extends ArmorAbility {
@ -57,6 +58,11 @@ public class NaturesPower extends ArmorAbility {
} }
@Override
public int icon() {
return HeroIcon.NATURES_POWER;
}
@Override @Override
public Talent[] talents() { public Talent[] talents() {
return new Talent[]{Talent.GROWING_POWER, Talent.NATURES_WRATH, Talent.WILD_MOMENTUM, Talent.HEROIC_ENERGY}; return new Talent[]{Talent.GROWING_POWER, Talent.NATURES_WRATH, Talent.WILD_MOMENTUM, Talent.HEROIC_ENERGY};

View File

@ -36,6 +36,7 @@ import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
import com.shatteredpixel.shatteredpixeldungeon.mechanics.ConeAOE; import com.shatteredpixel.shatteredpixeldungeon.mechanics.ConeAOE;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.MissileSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.MissileSprite;
import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.utils.Callback; import com.watabou.utils.Callback;
@ -154,6 +155,11 @@ public class SpectralBlades extends ArmorAbility {
return null; return null;
} }
@Override
public int icon() {
return HeroIcon.SPECTRAL_BLADES;
}
@Override @Override
public Talent[] talents() { public Talent[] talents() {
return new Talent[]{Talent.FAN_OF_BLADES, Talent.PROJECTING_BLADES, Talent.SPIRIT_BLADES, Talent.HEROIC_ENERGY}; return new Talent[]{Talent.FAN_OF_BLADES, Talent.PROJECTING_BLADES, Talent.SPIRIT_BLADES, Talent.HEROIC_ENERGY};

View File

@ -46,6 +46,7 @@ import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.BatSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.BatSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.MobSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.MobSprite;
import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.noosa.TextureFilm; import com.watabou.noosa.TextureFilm;
import com.watabou.utils.Bundle; import com.watabou.utils.Bundle;
@ -124,6 +125,11 @@ public class SpiritHawk extends ArmorAbility {
} }
@Override
public int icon() {
return HeroIcon.SPIRIT_HAWK;
}
@Override @Override
public Talent[] talents() { public Talent[] talents() {
return new Talent[]{Talent.EAGLE_EYE, Talent.GO_FOR_THE_EYES, Talent.SWIFT_SPIRIT, Talent.HEROIC_ENERGY}; return new Talent[]{Talent.EAGLE_EYE, Talent.GO_FOR_THE_EYES, Talent.SWIFT_SPIRIT, Talent.HEROIC_ENERGY};

View File

@ -74,6 +74,7 @@ import com.shatteredpixel.shatteredpixeldungeon.mechanics.ConeAOE;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
import com.watabou.noosa.Game; import com.watabou.noosa.Game;
import com.watabou.noosa.audio.Sample; import com.watabou.noosa.audio.Sample;
import com.watabou.utils.Callback; import com.watabou.utils.Callback;
@ -426,6 +427,11 @@ public class ElementalBlast extends ArmorAbility {
return desc; return desc;
} }
@Override
public int icon() {
return HeroIcon.ELEMENTAL_BLAST;
}
@Override @Override
public Talent[] talents() { public Talent[] talents() {
return new Talent[]{Talent.BLAST_RADIUS, Talent.ELEMENTAL_POWER, Talent.REACTIVE_BARRIER, Talent.HEROIC_ENERGY}; return new Talent[]{Talent.BLAST_RADIUS, Talent.ELEMENTAL_POWER, Talent.REACTIVE_BARRIER, Talent.HEROIC_ENERGY};

View File

@ -41,6 +41,7 @@ import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.plants.Swiftthistle; import com.shatteredpixel.shatteredpixeldungeon.plants.Swiftthistle;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.scenes.InterlevelScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.InterlevelScene;
import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
import com.shatteredpixel.shatteredpixeldungeon.utils.BArray; import com.shatteredpixel.shatteredpixeldungeon.utils.BArray;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.shatteredpixel.shatteredpixeldungeon.windows.WndOptions; import com.shatteredpixel.shatteredpixeldungeon.windows.WndOptions;
@ -248,6 +249,11 @@ public class WarpBeacon extends ArmorAbility {
} }
} }
@Override
public int icon() {
return HeroIcon.WARP_BEACON;
}
@Override @Override
public Talent[] talents() { public Talent[] talents() {
return new Talent[]{Talent.TELEFRAG, Talent.REMOTE_BEACON, Talent.LONGRANGE_WARP, Talent.HEROIC_ENERGY}; return new Talent[]{Talent.TELEFRAG, Talent.REMOTE_BEACON, Talent.LONGRANGE_WARP, Talent.HEROIC_ENERGY};

View File

@ -35,6 +35,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.wands.CursedWand;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand; import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand;
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.utils.Callback; import com.watabou.utils.Callback;
import com.watabou.utils.Random; import com.watabou.utils.Random;
@ -169,6 +170,11 @@ public class WildMagic extends ArmorAbility {
} }
} }
@Override
public int icon() {
return HeroIcon.WILD_MAGIC;
}
@Override @Override
public Talent[] talents() { public Talent[] talents() {
return new Talent[]{Talent.WILD_POWER, Talent.FIRE_EVERYTHING, Talent.CONSERVED_MAGIC, Talent.HEROIC_ENERGY}; return new Talent[]{Talent.WILD_POWER, Talent.FIRE_EVERYTHING, Talent.CONSERVED_MAGIC, Talent.HEROIC_ENERGY};

View File

@ -36,6 +36,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.ArmorAbili
import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClassArmor; import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClassArmor;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
import com.shatteredpixel.shatteredpixeldungeon.utils.BArray; import com.shatteredpixel.shatteredpixeldungeon.utils.BArray;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.noosa.audio.Sample; import com.watabou.noosa.audio.Sample;
@ -127,6 +128,11 @@ public class DeathMark extends ArmorAbility {
public static class DoubleMarkTracker extends FlavourBuff{}; public static class DoubleMarkTracker extends FlavourBuff{};
@Override
public int icon() {
return HeroIcon.DEATH_MARK;
}
@Override @Override
public Talent[] talents() { public Talent[] talents() {
return new Talent[]{Talent.FEAR_THE_REAPER, Talent.DEATHLY_DURABILITY, Talent.DOUBLE_MARK, Talent.HEROIC_ENERGY}; return new Talent[]{Talent.FEAR_THE_REAPER, Talent.DEATHLY_DURABILITY, Talent.DOUBLE_MARK, Talent.HEROIC_ENERGY};

View File

@ -42,6 +42,7 @@ import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.HeroSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.HeroSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.MobSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.MobSprite;
import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
import com.shatteredpixel.shatteredpixeldungeon.utils.BArray; import com.shatteredpixel.shatteredpixeldungeon.utils.BArray;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.noosa.TextureFilm; import com.watabou.noosa.TextureFilm;
@ -123,6 +124,11 @@ public class ShadowClone extends ArmorAbility {
} }
@Override
public int icon() {
return HeroIcon.SHADOW_CLONE;
}
@Override @Override
public Talent[] talents() { public Talent[] talents() {
return new Talent[]{Talent.SHADOW_BLADE, Talent.CLONED_ARMOR, Talent.PERFECT_COPY, Talent.HEROIC_ENERGY}; return new Talent[]{Talent.SHADOW_BLADE, Talent.CLONED_ARMOR, Talent.PERFECT_COPY, Talent.HEROIC_ENERGY};

View File

@ -42,6 +42,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportat
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.MobSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.MobSprite;
import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
import com.shatteredpixel.shatteredpixeldungeon.utils.BArray; import com.shatteredpixel.shatteredpixeldungeon.utils.BArray;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.noosa.TextureFilm; import com.watabou.noosa.TextureFilm;
@ -128,6 +129,11 @@ public class SmokeBomb extends ArmorAbility {
} }
} }
@Override
public int icon() {
return HeroIcon.SMOKE_BOMB;
}
@Override @Override
public Talent[] talents() { public Talent[] talents() {
return new Talent[]{Talent.HASTY_RETREAT, Talent.BODY_REPLACEMENT, Talent.SHADOW_STEP, Talent.HEROIC_ENERGY}; return new Talent[]{Talent.HASTY_RETREAT, Talent.BODY_REPLACEMENT, Talent.SHADOW_STEP, Talent.HEROIC_ENERGY};

View File

@ -37,6 +37,7 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.SpellSprite;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClassArmor; import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClassArmor;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
import com.watabou.noosa.audio.Sample; import com.watabou.noosa.audio.Sample;
import com.watabou.utils.Bundle; import com.watabou.utils.Bundle;
@ -181,6 +182,11 @@ public class Endure extends ArmorAbility {
} }
}; };
@Override
public int icon() {
return HeroIcon.ENDURE;
}
@Override @Override
public Talent[] talents() { public Talent[] talents() {
return new Talent[]{Talent.SUSTAINED_RETRIBUTION, Talent.SHRUG_IT_OFF, Talent.EVEN_THE_ODDS, Talent.HEROIC_ENERGY}; return new Talent[]{Talent.SUSTAINED_RETRIBUTION, Talent.SHRUG_IT_OFF, Talent.EVEN_THE_ODDS, Talent.HEROIC_ENERGY};

View File

@ -37,6 +37,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfBlastWave;
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
import com.watabou.noosa.Camera; import com.watabou.noosa.Camera;
import com.watabou.utils.Callback; import com.watabou.utils.Callback;
import com.watabou.utils.PathFinder; import com.watabou.utils.PathFinder;
@ -129,6 +130,11 @@ public class HeroicLeap extends ArmorAbility {
public static class DoubleJumpTracker extends FlavourBuff{}; public static class DoubleJumpTracker extends FlavourBuff{};
@Override
public int icon() {
return HeroIcon.HEROIC_LEAP;
}
@Override @Override
public Talent[] talents() { public Talent[] talents() {
return new Talent[]{Talent.BODY_SLAM, Talent.IMPACT_WAVE, Talent.DOUBLE_JUMP, Talent.HEROIC_ENERGY}; return new Talent[]{Talent.BODY_SLAM, Talent.IMPACT_WAVE, Talent.DOUBLE_JUMP, Talent.HEROIC_ENERGY};

View File

@ -39,6 +39,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.armor.ClassArmor;
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
import com.shatteredpixel.shatteredpixeldungeon.mechanics.ConeAOE; import com.shatteredpixel.shatteredpixeldungeon.mechanics.ConeAOE;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.noosa.Camera; import com.watabou.noosa.Camera;
import com.watabou.noosa.audio.Sample; import com.watabou.noosa.audio.Sample;
@ -142,6 +143,11 @@ public class Shockwave extends ArmorAbility {
}); });
} }
@Override
public int icon() {
return HeroIcon.SHOCKWAVE;
}
@Override @Override
public Talent[] talents() { public Talent[] talents() {
return new Talent[]{Talent.EXPANDING_WAVE, Talent.STRIKING_WAVE, Talent.SHOCK_FORCE, Talent.HEROIC_ENERGY}; return new Talent[]{Talent.EXPANDING_WAVE, Talent.STRIKING_WAVE, Talent.SHOCK_FORCE, Talent.HEROIC_ENERGY};

View File

@ -0,0 +1,59 @@
package com.shatteredpixel.shatteredpixeldungeon.ui;
import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroSubClass;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.ArmorAbility;
import com.watabou.noosa.Image;
import com.watabou.noosa.TextureFilm;
//icons for hero subclasses and abilities atm, maybe add classes?
public class HeroIcon extends Image {
private static TextureFilm film;
private static final int SIZE = 16;
//transparent icon
public static final int NONE = 31;
//subclasses
public static final int BERSERKER = 0;
public static final int GLADIATOR = 1;
public static final int BATTLEMAGE = 2;
public static final int WARLOCK = 3;
public static final int ASSASSIN = 4;
public static final int FREERUNNER = 5;
public static final int SNIPER = 6;
public static final int WARDEN = 7;
//abilities
public static final int HEROIC_LEAP = 8;
public static final int SHOCKWAVE = 9;
public static final int ENDURE = 10;
public static final int ELEMENTAL_BLAST = 11;
public static final int WILD_MAGIC = 12;
public static final int WARP_BEACON = 13;
public static final int SMOKE_BOMB = 14;
public static final int DEATH_MARK = 15;
public static final int SHADOW_CLONE = 16;
public static final int SPECTRAL_BLADES = 17;
public static final int NATURES_POWER = 18;
public static final int SPIRIT_HAWK = 19;
public static final int RATMOGRIFY = 20;
public HeroIcon(HeroSubClass subCls){
super( Assets.Interfaces.HERO_ICONS );
if (film == null){
film = new TextureFilm(texture, SIZE, SIZE);
}
frame(film.get(subCls.icon()));
}
public HeroIcon(ArmorAbility abil){
super( Assets.Interfaces.HERO_ICONS );
if (film == null){
film = new TextureFilm(texture, SIZE, SIZE);
}
frame(film.get(abil.icon()));
}
}

View File

@ -29,6 +29,7 @@ import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
import com.shatteredpixel.shatteredpixeldungeon.ui.IconButton; import com.shatteredpixel.shatteredpixeldungeon.ui.IconButton;
import com.shatteredpixel.shatteredpixeldungeon.ui.Icons; import com.shatteredpixel.shatteredpixeldungeon.ui.Icons;
import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton; import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton;
@ -61,7 +62,7 @@ public class WndChooseSubclass extends Window {
RedButton btnCls = new RedButton( subCls.shortDesc(), 6 ) { RedButton btnCls = new RedButton( subCls.shortDesc(), 6 ) {
@Override @Override
protected void onClick() { protected void onClick() {
GameScene.show(new WndOptions(subCls.icon(), GameScene.show(new WndOptions(new HeroIcon(subCls),
Messages.titleCase(subCls.title()), Messages.titleCase(subCls.title()),
Messages.get(WndChooseSubclass.this, "are_you_sure"), Messages.get(WndChooseSubclass.this, "are_you_sure"),
Messages.get(WndChooseSubclass.this, "yes"), Messages.get(WndChooseSubclass.this, "yes"),

View File

@ -6,6 +6,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.ArmorAbili
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
import com.shatteredpixel.shatteredpixeldungeon.ui.TalentsPane; import com.shatteredpixel.shatteredpixeldungeon.ui.TalentsPane;
import com.watabou.noosa.Image; import com.watabou.noosa.Image;
@ -15,7 +16,7 @@ import java.util.LinkedHashMap;
public class WndInfoArmorAbility extends WndTitledMessage { public class WndInfoArmorAbility extends WndTitledMessage {
public WndInfoArmorAbility(HeroClass cls, ArmorAbility ability){ public WndInfoArmorAbility(HeroClass cls, ArmorAbility ability){
super( new ItemSprite( ItemSpriteSheet.CROWN, null ), Messages.titleCase(ability.name()), ability.desc()); super( new HeroIcon(ability), Messages.titleCase(ability.name()), ability.desc());
ArrayList<LinkedHashMap<Talent, Integer>> talentList = new ArrayList<>(); ArrayList<LinkedHashMap<Talent, Integer>> talentList = new ArrayList<>();
Talent.initArmorTalents(ability, talentList); Talent.initArmorTalents(ability, talentList);

View File

@ -4,6 +4,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroClass;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroSubClass; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroSubClass;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon;
import com.shatteredpixel.shatteredpixeldungeon.ui.TalentsPane; import com.shatteredpixel.shatteredpixeldungeon.ui.TalentsPane;
import com.shatteredpixel.shatteredpixeldungeon.windows.WndHeroInfo; import com.shatteredpixel.shatteredpixeldungeon.windows.WndHeroInfo;
import com.shatteredpixel.shatteredpixeldungeon.windows.WndTitledMessage; import com.shatteredpixel.shatteredpixeldungeon.windows.WndTitledMessage;
@ -14,7 +15,7 @@ import java.util.LinkedHashMap;
public class WndInfoSubclass extends WndTitledMessage { public class WndInfoSubclass extends WndTitledMessage {
public WndInfoSubclass(HeroClass cls, HeroSubClass subCls){ public WndInfoSubclass(HeroClass cls, HeroSubClass subCls){
super( subCls.icon(), Messages.titleCase(subCls.title()), subCls.desc()); super( new HeroIcon(subCls), Messages.titleCase(subCls.title()), subCls.desc());
ArrayList<LinkedHashMap<Talent, Integer>> talentList = new ArrayList<>(); ArrayList<LinkedHashMap<Talent, Integer>> talentList = new ArrayList<>();
Talent.initClassTalents(cls, talentList); Talent.initClassTalents(cls, talentList);