v0.2.3: Hourglass bugfixes & some tweaks.
This commit is contained in:
parent
c2b9718581
commit
67a7bf0515
|
@ -31,6 +31,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroSubClass;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.effects.Wound;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.TimekeepersHourglass;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfAccuracy;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfWealth;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.Level;
|
||||
|
@ -256,8 +257,15 @@ public abstract class Mob extends Char {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@Override
|
||||
public void updateSpriteState() {
|
||||
super.updateSpriteState();
|
||||
if (Dungeon.hero.buff(TimekeepersHourglass.timeFreeze.class) != null)
|
||||
sprite.add( CharSprite.State.PARALYSED );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void move( int step ) {
|
||||
super.move( step );
|
||||
|
||||
|
|
|
@ -253,23 +253,30 @@ public class TimekeepersHourglass extends Artifact {
|
|||
|
||||
}
|
||||
|
||||
public void delayedPress(int cell){
|
||||
public void setDelayedPress(int cell){
|
||||
if (!presses.contains(cell))
|
||||
presses.add(cell);
|
||||
}
|
||||
|
||||
public void triggerPresses(){
|
||||
for (int cell : presses)
|
||||
Dungeon.level.press(cell, null);
|
||||
|
||||
presses = new ArrayList<Integer>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean attachTo(Char target) {
|
||||
for (Mob mob : Dungeon.level.mobs.toArray(new Mob[0]))
|
||||
mob.sprite.add(CharSprite.State.PARALYSED);
|
||||
if (Dungeon.level != null)
|
||||
for (Mob mob : Dungeon.level.mobs.toArray(new Mob[0]))
|
||||
mob.sprite.add(CharSprite.State.PARALYSED);
|
||||
GameScene.freezeEmitters = true;
|
||||
return super.attachTo(target);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void detach(){
|
||||
for (int cell : presses)
|
||||
Dungeon.level.press(cell, null);
|
||||
triggerPresses();
|
||||
for (Mob mob : Dungeon.level.mobs.toArray(new Mob[0]))
|
||||
mob.sprite.remove(CharSprite.State.PARALYSED);
|
||||
GameScene.freezeEmitters = false;
|
||||
|
|
|
@ -781,7 +781,7 @@ public abstract class Level implements Bundlable {
|
|||
Level.set( cell, Terrain.discover( map[cell] ) );
|
||||
GameScene.updateMap( cell );
|
||||
|
||||
timeFreeze.delayedPress(cell);
|
||||
timeFreeze.setDelayedPress( cell );
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -298,7 +298,9 @@ public class GameScene extends PixelScene {
|
|||
|
||||
public void destroy() {
|
||||
|
||||
scene = null;
|
||||
freezeEmitters = false;
|
||||
|
||||
scene = null;
|
||||
Badges.saveGlobal();
|
||||
|
||||
super.destroy();
|
||||
|
|
Loading…
Reference in New Issue
Block a user