v0.8.0: various tweaks:
- added newlines to hero level up messages - succubi now have a proper variable cooldown for their blink - evil eye beam cooldown increased slightly - The DM-300 fight now starts slightly farther from the entrance stairs - increased the rate of well particle VFX for better clarity
This commit is contained in:
parent
63e4482405
commit
f4241ad640
|
@ -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
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user