diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/blobs/Web.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/blobs/Web.java index 07bea4b22..31c2b4353 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/blobs/Web.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/blobs/Web.java @@ -72,7 +72,7 @@ public class Web extends Blob { public void use( BlobEmitter emitter ) { super.use( emitter ); - emitter.pour( WebParticle.FACTORY, 0.4f ); + emitter.pour( WebParticle.FACTORY, 0.25f ); } @Override 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 ed28e1f10..d7608d7ab 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 @@ -1328,6 +1328,7 @@ public class Hero extends Char { Buff.prolong(this, Bless.class, 30f); this.exp = 0; + GLog.newLine(); GLog.p( Messages.get(this, "level_cap")); Sample.INSTANCE.play( Assets.SND_LEVELUP ); } @@ -1337,6 +1338,7 @@ public class Hero extends Char { if (levelUp) { if (sprite != null) { + GLog.newLine(); GLog.p( Messages.get(this, "new_level"), lvl ); sprite.showStatus( CharSprite.POSITIVE, Messages.get(Hero.class, "level_up") ); Sample.INSTANCE.play( Assets.SND_LEVELUP ); 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 afef092c1..3110cf451 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 @@ -155,7 +155,7 @@ public class Eye extends Mob { return; beamCharged = false; - beamCooldown = Random.IntRange(3, 6); + beamCooldown = Random.IntRange(4, 6); boolean terrainAffected = false; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Succubus.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Succubus.java index acd7d3ddc..92f394673 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Succubus.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Succubus.java @@ -29,7 +29,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Barrier; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Charm; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Light; -import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Sleep; import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; import com.shatteredpixel.shatteredpixeldungeon.items.Generator; import com.shatteredpixel.shatteredpixeldungeon.items.Item; @@ -40,6 +39,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfUpgrade; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; import com.shatteredpixel.shatteredpixeldungeon.sprites.SuccubusSprite; import com.watabou.noosa.audio.Sample; +import com.watabou.utils.Bundle; import com.watabou.utils.PathFinder; import com.watabou.utils.Random; import com.watabou.utils.Reflection; @@ -47,10 +47,8 @@ import com.watabou.utils.Reflection; import java.util.ArrayList; public class Succubus extends Mob { - - private static final int BLINK_DELAY = 5; - - private int delay = 0; + + private int blinkCooldown = 0; { spriteClass = SuccubusSprite.class; @@ -99,15 +97,15 @@ public class Succubus extends Mob { @Override protected boolean getCloser( int target ) { - if (fieldOfView[target] && Dungeon.level.distance( pos, target ) > 2 && delay <= 0) { + if (fieldOfView[target] && Dungeon.level.distance( pos, target ) > 2 && blinkCooldown <= 0) { blink( target ); spend( -1 / speed() ); return true; } else { - - delay--; + + blinkCooldown--; return super.getCloser( target ); } @@ -133,14 +131,14 @@ public class Succubus extends Mob { if (candidates.size() > 0) cell = Random.element(candidates); else { - delay = BLINK_DELAY; + blinkCooldown = Random.IntRange(4, 6); return; } } ScrollOfTeleportation.appear( this, cell ); - - delay = BLINK_DELAY; + + blinkCooldown = Random.IntRange(4, 6); } @Override @@ -166,4 +164,18 @@ public class Succubus extends Mob { { immunities.add( Charm.class ); } + + private static final String BLINK_CD = "blink_cd"; + + @Override + public void storeInBundle(Bundle bundle) { + super.storeInBundle(bundle); + bundle.put(BLINK_CD, blinkCooldown); + } + + @Override + public void restoreFromBundle(Bundle bundle) { + super.restoreFromBundle(bundle); + blinkCooldown = bundle.getInt(BLINK_CD); + } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/NewCavesBossLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/NewCavesBossLevel.java index 029775ef6..bdff64279 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/NewCavesBossLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/NewCavesBossLevel.java @@ -198,7 +198,8 @@ public class NewCavesBossLevel extends Level { //seal the level when the hero moves off the entrance, the level isn't already sealed, and the gate hasn't been destroyed int gatePos = pointToCell(new Point(gate.left, gate.top)); - if (ch == Dungeon.hero && ch.pos != entrance && !locked && solid[gatePos]){ + if (ch == Dungeon.hero && (Dungeon.level.distance(ch.pos, entrance) > 1) + && !locked && solid[gatePos]){ seal();