diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/GuidingLight.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/GuidingLight.java index 42f6d903d..1b8f7e2a7 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/GuidingLight.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/spells/GuidingLight.java @@ -24,12 +24,14 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.hero.spells; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.HolyTome; import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.HeroIcon; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.noosa.audio.Sample; @@ -74,8 +76,10 @@ public class GuidingLight extends ClericSpell { if (ch != null) { ch.damage(Random.NormalIntRange(2, 6), GuidingLight.this); Sample.INSTANCE.play(Assets.Sounds.HIT_MAGIC, 1, Random.Float(0.87f, 1.15f)); + if (ch.isAlive()){ + Buff.affect(ch, GuidingLightDebuff.class); + } } - //TODO needs an on-hit effect as well tome.spendCharge( 1f ); hero.spend( 1f ); @@ -83,4 +87,13 @@ public class GuidingLight extends ClericSpell { } }); } + + public static class GuidingLightDebuff extends Buff { + + @Override + public void fx(boolean on) { + if (on) target.sprite.add(CharSprite.State.ILLUMINATED); + else target.sprite.remove(CharSprite.State.ILLUMINATED); + } + } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java index 6a590e409..c94d33397 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java @@ -52,6 +52,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroSubClass; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.duelist.Feint; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.abilities.rogue.ShadowClone; +import com.shatteredpixel.shatteredpixeldungeon.actors.hero.spells.GuidingLight; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.DirectableAlly; import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; import com.shatteredpixel.shatteredpixeldungeon.effects.FloatingText; @@ -664,6 +665,10 @@ public abstract class Mob extends Char { if ( !surprisedBy(enemy) && paralysed == 0 && !(alignment == Alignment.ALLY && enemy == Dungeon.hero)) { + if (buff(GuidingLight.GuidingLightDebuff.class) != null){ + buff(GuidingLight.GuidingLightDebuff.class).detach(); + return 0; + } return this.defenseSkill; } else { return 0; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/effects/TorchHalo.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/effects/TorchHalo.java index 2e82ef2f2..db8f6fed8 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/effects/TorchHalo.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/effects/TorchHalo.java @@ -50,7 +50,7 @@ public class TorchHalo extends Halo { am = -phase * brightness; } } else if (phase < 1) { - if ((phase += Game.elapsed) >= 1) { + if ((phase += 2*Game.elapsed) >= 1) { phase = 1; } scale.set( phase * radius / RADIUS );