From 3f8c55b0b8aef4e5e2f864962863e2c8ff15c803 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Tue, 1 May 2018 21:57:31 -0400 Subject: [PATCH] v0.6.5: adjusted invisibility to always override seen values --- .../shatteredpixeldungeon/actors/hero/Hero.java | 5 +++-- .../shatteredpixeldungeon/actors/mobs/Mob.java | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java index 91bb29207..536a5a7b7 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java @@ -873,8 +873,7 @@ public class Hero extends Char { enemy = action.target; if (enemy.isAlive() && canAttack( enemy ) && !isCharmedBy( enemy )) { - - Invisibility.dispel(); + spend( attackDelay() ); sprite.attack( enemy.pos ); @@ -1432,6 +1431,8 @@ public class Hero extends Char { if (combo != null) combo.miss(); } } + + Invisibility.dispel(); curAction = null; 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 6ad251959..5646cb499 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 @@ -465,7 +465,8 @@ public abstract class Mob extends Char { @Override public int defenseSkill( Char enemy ) { - boolean seen = enemySeen || (enemy == Dungeon.hero && !Dungeon.hero.canSurpriseAttack()); + boolean seen = (enemySeen && enemy.invisible == 0); + if (enemy == Dungeon.hero && !Dungeon.hero.canSurpriseAttack()) seen = true; if ( seen && paralysed == 0 && !(alignment == Alignment.ALLY && enemy == Dungeon.hero)) { @@ -479,7 +480,8 @@ public abstract class Mob extends Char { @Override public int defenseProc( Char enemy, int damage ) { - if (!enemySeen && enemy == Dungeon.hero && Dungeon.hero.canSurpriseAttack()) { + if ((!enemySeen || enemy.invisible > 0) + && enemy == Dungeon.hero && Dungeon.hero.canSurpriseAttack()) { if (enemy.buff(Preparation.class) != null) { Wound.hit(this); } else {