v0.8.0: various fixes:
- fixed spinners not saving some info they should - fixed rare crashes with ring of wealth and brutes - blast wave and force cube no longer trigger tengu's traps - fixed force cube not pressing on all cells in the AOE - Tengu's traps now fade instantly much less often
This commit is contained in:
parent
d2107356f0
commit
15879eafc8
|
@ -638,10 +638,10 @@ public abstract class Mob extends Char {
|
|||
if (bonus != null && !bonus.isEmpty()) {
|
||||
for (Item b : bonus) Dungeon.level.drop(b, pos).sprite.drop();
|
||||
if (RingOfWealth.latestDropWasRare){
|
||||
new Flare(8, 48).color(0xAA00FF, true).show(sprite, 3f);
|
||||
if (sprite != null) new Flare(8, 48).color(0xAA00FF, true).show(sprite, 3f);
|
||||
RingOfWealth.latestDropWasRare = false;
|
||||
} else {
|
||||
new Flare(8, 24).color(0xFFFFFF, true).show(sprite, 3f);
|
||||
if (sprite != null) new Flare(8, 24).color(0xFFFFFF, true).show(sprite, 3f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.food.MysteryMeat;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.SpinnerSprite;
|
||||
import com.watabou.utils.Bundle;
|
||||
import com.watabou.utils.PathFinder;
|
||||
import com.watabou.utils.Random;
|
||||
|
||||
|
@ -70,6 +71,23 @@ public class Spinner extends Mob {
|
|||
private int webCoolDown = 0;
|
||||
private int lastEnemyPos = -1;
|
||||
|
||||
private static final String WEB_COOLDOWN = "web_cooldown";
|
||||
private static final String LAST_ENEMY_POS = "last_enemy_pos";
|
||||
|
||||
@Override
|
||||
public void storeInBundle(Bundle bundle) {
|
||||
super.storeInBundle(bundle);
|
||||
bundle.put(WEB_COOLDOWN, webCoolDown);
|
||||
bundle.put(LAST_ENEMY_POS, lastEnemyPos);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void restoreFromBundle(Bundle bundle) {
|
||||
super.restoreFromBundle(bundle);
|
||||
webCoolDown = bundle.getInt( WEB_COOLDOWN );
|
||||
lastEnemyPos = bundle.getInt( LAST_ENEMY_POS );
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean act() {
|
||||
boolean result = super.act();
|
||||
|
|
|
@ -31,6 +31,7 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.effects.Pushing;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Elastic;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.TenguDartTrap;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
|
@ -66,9 +67,11 @@ public class WandOfBlastWave extends DamageWand {
|
|||
Sample.INSTANCE.play( Assets.SND_BLAST );
|
||||
BlastWave.blast(bolt.collisionPos);
|
||||
|
||||
//presses all tiles in the AOE first
|
||||
//presses all tiles in the AOE first, with the exception of tengu dart traps
|
||||
for (int i : PathFinder.NEIGHBOURS9){
|
||||
Dungeon.level.pressCell( bolt.collisionPos+i );
|
||||
if (!(Dungeon.level.traps.get(bolt.collisionPos+i) instanceof TenguDartTrap)) {
|
||||
Dungeon.level.pressCell(bolt.collisionPos + i);
|
||||
}
|
||||
}
|
||||
|
||||
//throws other chars around the center.
|
||||
|
|
|
@ -26,6 +26,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfBlastWave;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.TenguDartTrap;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||
|
@ -58,7 +59,7 @@ public class ForceCube extends MissileWeapon {
|
|||
if (Actor.findChar(cell) != null) targets.add(Actor.findChar(cell));
|
||||
|
||||
for (int i : PathFinder.NEIGHBOURS8){
|
||||
Dungeon.level.pressCell(cell);
|
||||
if (!(Dungeon.level.traps.get(cell+i) instanceof TenguDartTrap)) Dungeon.level.pressCell(cell+i);
|
||||
if (Actor.findChar(cell + i) != null) targets.add(Actor.findChar(cell + i));
|
||||
}
|
||||
|
||||
|
|
|
@ -585,7 +585,7 @@ public class NewPrisonBossLevel extends Level {
|
|||
|
||||
FadingTraps f = new FadingTraps();
|
||||
f.setCoveringArea(mazeCells[i]);
|
||||
f.fadeDelay = 1f;
|
||||
f.fadeDelay = 2f;
|
||||
GameScene.add(f, false);
|
||||
customTiles.add(f);
|
||||
|
||||
|
@ -680,7 +680,7 @@ public class NewPrisonBossLevel extends Level {
|
|||
GameScene.updateMap();
|
||||
|
||||
FadingTraps t = new FadingTraps();
|
||||
t.fadeDelay = 1f;
|
||||
t.fadeDelay = 2f;
|
||||
t.setCoveringArea(tenguCell);
|
||||
GameScene.add(t, false);
|
||||
customTiles.add(t);
|
||||
|
@ -795,7 +795,7 @@ public class NewPrisonBossLevel extends Level {
|
|||
Actor.addDelayed(new Actor() {
|
||||
|
||||
{
|
||||
actPriority = HERO_PRIO-1;
|
||||
actPriority = HERO_PRIO+1;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue
Block a user