From 04dfde31ff0b5974e215bcb1a958586c9f1758c0 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Fri, 6 Apr 2018 23:36:58 -0400 Subject: [PATCH] v0.6.4a: fixed an exploit involving chasms --- .../levels/features/Chasm.java | 15 +++++++++++++++ .../shatteredpixeldungeon/scenes/GameScene.java | 4 ---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/features/Chasm.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/features/Chasm.java index c4653d8e2..24941c4fa 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/features/Chasm.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/features/Chasm.java @@ -76,6 +76,7 @@ public class Chasm { if (Dungeon.hero.isAlive()) { Dungeon.hero.interrupt(); + Buff.affect(Dungeon.hero, Falling.class); InterlevelScene.mode = InterlevelScene.Mode.FALL; if (Dungeon.level instanceof RegularLevel) { Room room = ((RegularLevel)Dungeon.level).room( pos ); @@ -118,4 +119,18 @@ public class Chasm { ((MobSprite)mob.sprite).fall(); } + + public static class Falling extends Buff{ + + { + actPriority = VFX_PRIO; + } + + @Override + public boolean act() { + heroLand(); + detach(); + return true; + } + } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java index 7efe97afd..ffc94d0c3 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java @@ -48,7 +48,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportation; import com.shatteredpixel.shatteredpixeldungeon.journal.Journal; import com.shatteredpixel.shatteredpixeldungeon.levels.RegularLevel; -import com.shatteredpixel.shatteredpixeldungeon.levels.features.Chasm; import com.shatteredpixel.shatteredpixeldungeon.levels.traps.Trap; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.plants.Plant; @@ -333,9 +332,6 @@ public class GameScene extends PixelScene { case RETURN: ScrollOfTeleportation.appear( Dungeon.hero, Dungeon.hero.pos ); break; - case FALL: - Chasm.heroLand(); - break; case DESCEND: switch (Dungeon.depth) { case 1: