diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Eye.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Eye.java index c2695a5d8..8b16c4e69 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Eye.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Eye.java @@ -92,7 +92,7 @@ public class Eye extends Mob { if (beamCooldown == 0) { Ballistica aim = new Ballistica(pos, enemy.pos, Ballistica.STOP_TERRAIN); - if (enemy.invisible == 0 && Level.fieldOfView[enemy.pos] && aim.subPath(1, aim.dist).contains(enemy.pos)){ + if (enemy.invisible == 0 && !isCharmedBy(enemy) && Level.fieldOfView[enemy.pos] && aim.subPath(1, aim.dist).contains(enemy.pos)){ beam = aim; beamTarget = aim.collisionPos; return true; @@ -248,8 +248,10 @@ public class Eye extends Mob { @Override public boolean act(boolean enemyInFOV, boolean justAlerted) { //always attack if the beam is charged, no exceptions - if (beamCharged && enemy != null) - enemyInFOV = true; + if (beamCharged && canAttack(enemy)) { + enemySeen = enemyInFOV; + return doAttack(enemy); + } return super.act(enemyInFOV, justAlerted); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java index afaeb3919..927b630a3 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java @@ -627,7 +627,7 @@ public class DriedRose extends Artifact { rose.talkedTo = true; GameScene.show(new WndQuest(this, Messages.get(this, "introduce") )); return false; - } else { + } else if (Level.passable[pos] || Dungeon.hero.flying) { int curPos = pos; moveSprite( pos, Dungeon.hero.pos ); @@ -639,6 +639,8 @@ public class DriedRose extends Artifact { Dungeon.hero.spend( 1 / Dungeon.hero.speed() ); Dungeon.hero.busy(); return true; + } else { + return false; } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfCorruption.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfCorruption.java index e790006eb..efd0ae45c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfCorruption.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfCorruption.java @@ -27,6 +27,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Amok; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Corruption; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.NPC; import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; @@ -47,7 +48,7 @@ public class WandOfCorruption extends Wand { protected void onZap(Ballistica bolt) { Char ch = Actor.findChar(bolt.collisionPos); - if (ch != null){ + if (ch != null && !(ch instanceof NPC)){ if(ch.buff(Corruption.class) != null){ GLog.w( Messages.get(this, "already_corrupted") ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndJournal.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndJournal.java index 8aa827ffd..ea121fc7b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndJournal.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndJournal.java @@ -512,7 +512,7 @@ public class WndJournal extends WndTabbed { if (!seen) { icon.copy( new ItemSprite( ItemSpriteSheet.WEAPON_HOLDER + currentItemIdx, null) ); - label.text("?????? ????????????? ????????? ?????"); + label.text("???"); label.hardlight( 0x999999 ); } else if (!IDed) { icon.copy( new ItemSprite( ItemSpriteSheet.WEAPON_HOLDER + currentItemIdx, null) );