diff --git a/core/src/main/assets/interfaces/buffs.png b/core/src/main/assets/interfaces/buffs.png index e651df8ac..5d724ae27 100644 Binary files a/core/src/main/assets/interfaces/buffs.png and b/core/src/main/assets/interfaces/buffs.png differ diff --git a/core/src/main/assets/interfaces/large_buffs.png b/core/src/main/assets/interfaces/large_buffs.png index 888ddb34c..3aead2062 100644 Binary files a/core/src/main/assets/interfaces/large_buffs.png and b/core/src/main/assets/interfaces/large_buffs.png differ diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties index 5207fa3fe..1f90489c4 100644 --- a/core/src/main/assets/messages/actors/actors.properties +++ b/core/src/main/assets/messages/actors/actors.properties @@ -445,6 +445,12 @@ actors.hero.herosubclass.warden_short_desc=The _Warden_ can see through tall gra 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. ##talents +actors.hero.talent$improvisedprojectilecooldown.name=improvised projectiles cooldown +actors.hero.talent$improvisedprojectilecooldown.desc=You have recently used this talent, and must wait before using it again.\n\nTurns left: %s. +actors.hero.talent$rejuvenatingstepscooldown.name=rejuvenating steps cooldown +actors.hero.talent$rejuvenatingstepscooldown.desc=You have recently used this talent, and must wait before using it again.\n\nTurns left: %s. +actors.hero.talent$seershotcooldown.name=seer shot cooldown +actors.hero.talent$seershotcooldown.desc=You have recently used this talent, and must wait before using it again.\n\nTurns left: %s. #warrior actors.hero.talent.hearty_meal.title=hearty meal diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Slow.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Slow.java index a22594e27..a5c80c07c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Slow.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Slow.java @@ -23,6 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.buffs; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; +import com.watabou.noosa.Image; public class Slow extends FlavourBuff { @@ -35,7 +36,12 @@ public class Slow extends FlavourBuff { @Override public int icon() { - return BuffIndicator.SLOW; + return BuffIndicator.TIME; + } + + @Override + public void tintIcon(Image icon) { + icon.hardlight(1f, 0.33f, 0.2f); } @Override 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 b1085514d..439142f7f 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 @@ -32,6 +32,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.EnhancedRings; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.FlavourBuff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Haste; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Recharging; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.RevealedArea; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Roots; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.WandEmpower; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.ArmorAbility; @@ -56,6 +57,8 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.Level; import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; +import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; +import com.watabou.noosa.Image; import com.watabou.noosa.audio.Sample; import com.watabou.noosa.particles.Emitter; import com.watabou.utils.Bundle; @@ -141,14 +144,32 @@ public enum Talent { //Ratmogrify T4 RATSISTANCE(125, 4), RATLOMACY(126, 4), RATFORCEMENTS(127, 4); - public static class ImprovisedProjectileCooldown extends FlavourBuff{}; + public static class ImprovisedProjectileCooldown extends FlavourBuff{ + public int icon() { return BuffIndicator.TIME; } + public void tintIcon(Image icon) { icon.hardlight(0.15f, 0.2f, 0.5f); } + public float iconFadePercent() { return Math.max(0, visualcooldown() / 50); } + public String toString() { return Messages.get(this, "name"); } + public String desc() { return Messages.get(this, "desc", dispTurns(visualcooldown())); } + }; public static class LethalMomentumTracker extends FlavourBuff{}; public static class WandPreservationCounter extends CounterBuff{}; public static class EmpoweredStrikeTracker extends FlavourBuff{}; public static class BountyHunterTracker extends FlavourBuff{}; - public static class RejuvenatingStepsCooldown extends FlavourBuff{}; + public static class RejuvenatingStepsCooldown extends FlavourBuff{ + public int icon() { return BuffIndicator.TIME; } + public void tintIcon(Image icon) { icon.hardlight(0f, 0.35f, 0.15f); } + public float iconFadePercent() { return Math.max(0, visualcooldown() / (15 - 5*Dungeon.hero.pointsInTalent(REJUVENATING_STEPS))); } + public String toString() { return Messages.get(this, "name"); } + public String desc() { return Messages.get(this, "desc", dispTurns(visualcooldown())); } + }; public static class RejuvenatingStepsFurrow extends CounterBuff{}; - public static class SeerShotCooldown extends FlavourBuff{}; + public static class SeerShotCooldown extends FlavourBuff{ + public int icon() { return target.buff(RevealedArea.class) != null ? BuffIndicator.NONE : BuffIndicator.TIME; } + public void tintIcon(Image icon) { icon.hardlight(0.7f, 0.4f, 0.7f); } + public float iconFadePercent() { return Math.max(0, visualcooldown() / 20); } + public String toString() { return Messages.get(this, "name"); } + public String desc() { return Messages.get(this, "desc", dispTurns(visualcooldown())); } + }; public static class SpiritBladesTracker extends FlavourBuff{}; int icon; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Swiftthistle.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Swiftthistle.java index f8f62b9bf..1fcca1e7f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Swiftthistle.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/plants/Swiftthistle.java @@ -31,6 +31,7 @@ import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; +import com.watabou.noosa.Image; import com.watabou.noosa.particles.Emitter; import com.watabou.utils.Bundle; @@ -75,7 +76,12 @@ public class Swiftthistle extends Plant { @Override public int icon() { - return BuffIndicator.SLOW; + return BuffIndicator.TIME; + } + + @Override + public void tintIcon(Image icon) { + icon.hardlight(1f, 1f, 0); } @Override diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/BuffIndicator.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/BuffIndicator.java index 6114688f1..15594c234 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/BuffIndicator.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/BuffIndicator.java @@ -41,50 +41,50 @@ import java.util.LinkedHashMap; public class BuffIndicator extends Component { //transparent icon - public static final int NONE = 63; + public static final int NONE = 63; //FIXME this is becoming a mess, should do a big cleaning pass on all of these //and think about tinting options - public static final int MIND_VISION = 0; - public static final int LEVITATION = 1; - public static final int FIRE = 2; - public static final int POISON = 3; - public static final int PARALYSIS = 4; - public static final int HUNGER = 5; - public static final int STARVATION = 6; - public static final int SLOW = 7; - public static final int OOZE = 8; - public static final int AMOK = 9; - public static final int TERROR = 10; - public static final int ROOTS = 11; - public static final int INVISIBLE = 12; - public static final int SHADOWS = 13; - public static final int WEAKNESS = 14; - public static final int FROST = 15; - public static final int BLINDNESS = 16; - public static final int COMBO = 17; - public static final int FURY = 18; + public static final int MIND_VISION = 0; + public static final int LEVITATION = 1; + public static final int FIRE = 2; + public static final int POISON = 3; + public static final int PARALYSIS = 4; + public static final int HUNGER = 5; + public static final int STARVATION = 6; + public static final int TIME = 7; + public static final int OOZE = 8; + public static final int AMOK = 9; + public static final int TERROR = 10; + public static final int ROOTS = 11; + public static final int INVISIBLE = 12; + public static final int SHADOWS = 13; + public static final int WEAKNESS = 14; + public static final int FROST = 15; + public static final int BLINDNESS = 16; + public static final int COMBO = 17; + public static final int FURY = 18; public static final int HERB_HEALING= 19; - public static final int ARMOR = 20; - public static final int HEART = 21; - public static final int LIGHT = 22; - public static final int CRIPPLE = 23; - public static final int BARKSKIN = 24; - public static final int IMMUNITY = 25; - public static final int BLEEDING = 26; - public static final int MARK = 27; - public static final int DEFERRED = 28; + public static final int ARMOR = 20; + public static final int HEART = 21; + public static final int LIGHT = 22; + public static final int CRIPPLE = 23; + public static final int BARKSKIN = 24; + public static final int IMMUNITY = 25; + public static final int BLEEDING = 26; + public static final int MARK = 27; + public static final int DEFERRED = 28; public static final int DROWSY = 29; public static final int MAGIC_SLEEP = 30; public static final int THORNS = 31; public static final int FORESIGHT = 32; public static final int VERTIGO = 33; - public static final int RECHARGING = 34; + public static final int RECHARGING = 34; public static final int LOCKED_FLOOR= 35; public static final int CORRUPT = 36; public static final int BLESS = 37; - public static final int RAGE = 38; - public static final int SACRIFICE = 39; + public static final int RAGE = 38; + public static final int SACRIFICE = 39; public static final int BERSERK = 40; public static final int HASTE = 41; public static final int PREPARATION = 42; @@ -98,7 +98,7 @@ public class BuffIndicator extends Component { public static final int UPGRADE = 50; public static final int MOMENTUM = 51; - public static final int SIZE = 7; + public static final int SIZE = 7; private static BuffIndicator heroInstance;