diff --git a/core/src/main/assets/interfaces/hero_icons.png b/core/src/main/assets/interfaces/hero_icons.png index 38bd3faca..f5712a5a3 100644 Binary files a/core/src/main/assets/interfaces/hero_icons.png and b/core/src/main/assets/interfaces/hero_icons.png differ diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties index 010abd9dd..7034810a8 100644 --- a/core/src/main/assets/messages/actors/actors.properties +++ b/core/src/main/assets/messages/actors/actors.properties @@ -520,7 +520,7 @@ actors.hero.herosubclass.battlemage=battlemage actors.hero.herosubclass.battlemage_short_desc=The _Battlemage_ conjures bonus effects when fighting in melee with his staff. These effects depend on the wand his staff is imbued with. actors.hero.herosubclass.battlemage_desc=The Battlemage gains a bonus effect whenever he strikes in melee with his staff, as if his staff had an additional enchantment. These effects depend on the wand his staff is imbued with, every wand has its own effect. In addition to the wand effects, the Battlemage's staff will also gain 0.5 charges when he strikes with it. actors.hero.herosubclass.warlock=warlock -actors.hero.herosubclass.warlock_short_desc=The _Warlock_ has a chance to soul mark characters when using wands on them. He will heal whenever he deals physical damage to marked enemies. +actors.hero.herosubclass.warlock_short_desc=The _Warlock_ has a chance to soul mark enemies with his wands. He will heal whenever he deals physical damage to marked enemies. actors.hero.herosubclass.warlock_desc=The Warlock has a chance to inflict a soul mark on characters when he uses wands on them. The chance to apply a soul mark and its duration increase with wand level.\n\nWhen an enemy is soul marked, the Warlock will heal 2 hp for every 5 damage he deals to them, but only with attacks from melee or thrown weapons, not from wands! actors.hero.herosubclass.assassin=assassin actors.hero.herosubclass.assassin_short_desc=The _Assassin_ can prepare a deadly strike while he is invisible. The longer he waits, the more powerful the attack will be. @@ -534,6 +534,12 @@ actors.hero.herosubclass.sniper_desc=The Sniper is a master of ranged combat, wh actors.hero.herosubclass.warden=warden actors.hero.herosubclass.warden_short_desc=The _Warden_ can see through tall grass and gains bonus effects when she plants seeds and tramples plants. actors.hero.herosubclass.warden_desc=The Warden has a strong connection to nature which grants her a variety of bonus effects relating to grass and plants. She is able to see through tall and furrowed grass as if it were empty space.\n\nThe Warden causes grass to sprout up around any seed she throws or plants, and gains special effects when trampling plants. These special effects replace the regular plant effects, meaning that no plant is harmful for her to step on. +actors.hero.herosubclass.champion=champion +actors.hero.herosubclass.champion_short_desc=The _Champion_ can wield a two weapons. She attacks with her primary weapon, can use abilities from either, and they share upgrades. +actors.hero.herosubclass.champion_desc=The Champion is a master of melee weapons who can equip a secondary weapon in addition to her primary one. She attacks with her primary weapon, but can swap her primary weapon instantly at any time. The secondary weapon's ability can be used at any time, and has its own ability charges.\n\nIf one of her two weapons is higher level than the other and the same or higher tier, then the weaker weapon will inherit the upgrade level of the stronger one! +actors.hero.herosubclass.adept=adept +actors.hero.herosubclass.adept_short_desc=The _Adept_ builds energy while fighting. This energy can be spent on a variety of unique abilities. +actors.hero.herosubclass.adept_desc=The Adept is a master of ... . As she defeats enemies, she gains energy which can be used on a variety of defensive and utlity-focused abilities. This energy does not fade over time, but has a cap based on the Adept's level.\n\nTODO ##talents actors.hero.talent$improvisedprojectilecooldown.name=improvised projectiles cooldown diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroClass.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroClass.java index b7e0af3fc..ffcdd4694 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroClass.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroClass.java @@ -79,7 +79,7 @@ public enum HeroClass { MAGE( HeroSubClass.BATTLEMAGE, HeroSubClass.WARLOCK ), ROGUE( HeroSubClass.ASSASSIN, HeroSubClass.FREERUNNER ), HUNTRESS( HeroSubClass.SNIPER, HeroSubClass.WARDEN ), - DUELIST( ); + DUELIST( HeroSubClass.CHAMPION, HeroSubClass.ADEPT ); private HeroSubClass[] subClasses; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroSubClass.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroSubClass.java index 82a148b1f..cfb2f828a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroSubClass.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroSubClass.java @@ -42,7 +42,10 @@ public enum HeroSubClass { FREERUNNER(HeroIcon.FREERUNNER), SNIPER(HeroIcon.SNIPER), - WARDEN(HeroIcon.WARDEN); + WARDEN(HeroIcon.WARDEN), + + CHAMPION(HeroIcon.CHAMPION), + ADEPT(HeroIcon.ADEPT); int icon; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Talent.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Talent.java index 7ed0d015f..2ac41d350 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Talent.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Talent.java @@ -779,6 +779,12 @@ public enum Talent { case WARDEN: Collections.addAll(tierTalents, DURABLE_TIPS, BARKSKIN, SHIELDING_DEW); break; + case CHAMPION: + Collections.addAll(tierTalents, DUELIST_S1_1, DUELIST_S1_2, DUELIST_S1_3); + break; + case ADEPT: + Collections.addAll(tierTalents, DUELIST_S2_1, DUELIST_S2_2, DUELIST_S2_3); + break; } for (Talent talent : tierTalents){ talents.get(2).put(talent, 0); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/HeroIcon.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/HeroIcon.java index bb2d4d060..0a5677149 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/HeroIcon.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/HeroIcon.java @@ -45,21 +45,23 @@ public class HeroIcon extends Image { public static final int FREERUNNER = 5; public static final int SNIPER = 6; public static final int WARDEN = 7; + public static final int CHAMPION = 8; + public static final int ADEPT = 9; //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 static final int HEROIC_LEAP = 16; + public static final int SHOCKWAVE = 17; + public static final int ENDURE = 18; + public static final int ELEMENTAL_BLAST = 19; + public static final int WILD_MAGIC = 20; + public static final int WARP_BEACON = 21; + public static final int SMOKE_BOMB = 22; + public static final int DEATH_MARK = 23; + public static final int SHADOW_CLONE = 24; + public static final int SPECTRAL_BLADES = 25; + public static final int NATURES_POWER = 26; + public static final int SPIRIT_HAWK = 27; + public static final int RATMOGRIFY = 28; public HeroIcon(HeroSubClass subCls){ super( Assets.Interfaces.HERO_ICONS );