From 539f1c8ea5e486bfc2cd0f41b2c2f5e7fe95c82b Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Mon, 3 Oct 2022 13:15:26 -0400 Subject: [PATCH] v1.4.0: fixed summons from guardian trap counting as levelgen statues --- .../shatteredpixeldungeon/actors/mobs/Statue.java | 8 ++++++-- .../shatteredpixeldungeon/levels/RegularLevel.java | 8 ++++++-- .../shatteredpixeldungeon/levels/traps/GuardianTrap.java | 2 ++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Statue.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Statue.java index 09cdcf380..db91b0654 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Statue.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Statue.java @@ -48,6 +48,8 @@ public class Statue extends Mob { } protected Weapon weapon; + + public boolean levelGenStatue = true; public Statue() { super(); @@ -78,7 +80,7 @@ public class Statue extends Mob { @Override protected boolean act() { - if (Dungeon.level.heroFOV[pos]) { + if (levelGenStatue && Dungeon.level.heroFOV[pos]) { Notes.add( Notes.Landmark.STATUE ); } return super.act(); @@ -152,7 +154,9 @@ public class Statue extends Mob { @Override public void destroy() { - Notes.remove( Notes.Landmark.STATUE ); + if (levelGenStatue) { + Notes.remove( Notes.Landmark.STATUE ); + } super.destroy(); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java index f465ae3d0..9f2473d95 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java @@ -672,8 +672,12 @@ public abstract class RegularLevel extends Level { //There are no statues or mimics (unless they were made allies) for (Mob m : mobs.toArray(new Mob[0])){ - if (m.alignment != Char.Alignment.ALLY && (m instanceof Statue || m instanceof Mimic)){ - return false; + if (m.alignment != Char.Alignment.ALLY){ + if (m instanceof Statue && ((Statue) m).levelGenStatue){ + return false; + } else if (m instanceof Mimic){ + return false; + } } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/GuardianTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/GuardianTrap.java index 701825cf3..53d4d89e4 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/GuardianTrap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/GuardianTrap.java @@ -73,6 +73,8 @@ public class GuardianTrap extends Trap { EXP = 0; state = WANDERING; + + levelGenStatue = false; } public Guardian(){