diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Sheep.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Sheep.java index 7e1339f12..61053e048 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Sheep.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Sheep.java @@ -41,28 +41,25 @@ public class Sheep extends NPC { spriteClass = SheepSprite.class; } - public float lifespan; - - private boolean initialized = false; + private float lifespan; @Override protected boolean act() { if (Dungeon.level.heroFOV[pos]){ Bestiary.setSeen(getClass()); } - if (initialized) { - HP = 0; + HP = 0; - destroy(); - sprite.die(); - - } else { - initialized = true; - spend( lifespan + Random.Float(-2, 2) ); - } + destroy(); + sprite.die(); return true; } + public void initialize(float lifespan){ + this.lifespan = lifespan; + spend( lifespan + Random.Float(-2, 2) ); + } + @Override public int defenseSkill(Char enemy) { return INFINITE_EVASION; @@ -80,6 +77,7 @@ public class Sheep extends NPC { @Override public boolean interact(Char c) { + Bestiary.setSeen(getClass()); sprite.showStatus( CharSprite.NEUTRAL, Messages.get(this, Random.element( LINE_KEYS )) ); if (c == Dungeon.hero) { Dungeon.hero.spendAndNext(1f); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/WoollyBomb.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/WoollyBomb.java index 0823a0b87..9a89e7709 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/WoollyBomb.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/WoollyBomb.java @@ -63,7 +63,7 @@ public class WoollyBomb extends Bomb { && Actor.findChar(i) == null && !(Dungeon.level.pit[i])) { Sheep sheep = new Sheep(); - sheep.lifespan = Dungeon.bossLevel() ? 20 : 200; + sheep.initialize(Dungeon.bossLevel() ? 20 : 200); sheep.pos = i; GameScene.add(sheep); Dungeon.level.occupyCell(sheep); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/StoneOfFlock.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/StoneOfFlock.java index a55bd69dd..a99e0190d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/StoneOfFlock.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/StoneOfFlock.java @@ -57,7 +57,7 @@ public class StoneOfFlock extends Runestone { && Actor.findChar(i) == null && !(Dungeon.level.pit[i])) { Sheep sheep = new Sheep(); - sheep.lifespan = 8; + sheep.initialize(8); sheep.pos = i; GameScene.add(sheep); Dungeon.level.occupyCell(sheep); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/CursedWand.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/CursedWand.java index aee46b7aa..9c0602586 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/CursedWand.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/CursedWand.java @@ -707,7 +707,7 @@ public class CursedWand { if (valid(origin, user, bolt, positiveOnly)){ Char ch = Actor.findChar( bolt.collisionPos ); Sheep sheep = new Sheep(); - sheep.lifespan = 10; + sheep.initialize(10); sheep.pos = ch.pos; ch.destroy(); ch.sprite.killAndErase(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/FlockTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/FlockTrap.java index 7fa49cc8a..bd483d718 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/FlockTrap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/FlockTrap.java @@ -59,7 +59,7 @@ public class FlockTrap extends Trap { && Actor.findChar(i) == null && !(Dungeon.level.pit[i])) { Sheep sheep = new Sheep(); - sheep.lifespan = 6; + sheep.initialize(6); sheep.pos = i; GameScene.add(sheep); CellEmitter.get(i).burst(Speck.factory(Speck.WOOL), 4);