From 1ed3aa57a13ff269f49f52586494c7fd5d6a0d64 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sun, 29 May 2022 13:09:46 -0400 Subject: [PATCH] v1.3.0: big buff to woolly bombs (and standardized some sheep logic) --- core/src/main/assets/messages/items/items.properties | 2 +- .../shatteredpixeldungeon/actors/mobs/npcs/Sheep.java | 6 +++++- .../shatteredpixeldungeon/items/bombs/WoollyBomb.java | 2 +- .../shatteredpixeldungeon/items/stones/StoneOfFlock.java | 2 +- .../shatteredpixeldungeon/levels/traps/FlockTrap.java | 2 +- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/core/src/main/assets/messages/items/items.properties b/core/src/main/assets/messages/items/items.properties index c1237cc61..de6faead5 100644 --- a/core/src/main/assets/messages/items/items.properties +++ b/core/src/main/assets/messages/items/items.properties @@ -499,7 +499,7 @@ items.bombs.shrapnelbomb.name=shrapnel bomb items.bombs.shrapnelbomb.desc=This bomb has been modified with scraps of DM-300's metal, which will fragment and fly everywhere when it explodes, damaging anything in a huge range around the bomb. You had better hide behind something when using it... items.bombs.woollybomb.name=woolly bomb -items.bombs.woollybomb.desc=This customized bomb will create a field of magical sheep after exploding. These sheep will block movement and persist for some time. +items.bombs.woollybomb.desc=This customized bomb will create a wide field of magical sheep after exploding. These sheep will block movement and persist for a very long time! The sheep will not last as long in the presence of powerful enemies though, and can be manually dispelled sooner by interacting with them. ###food items.food.berry.name=dungeon berry 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 3a582d312..a1d7c82c0 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 @@ -53,7 +53,7 @@ public class Sheep extends NPC { } else { initialized = true; - spend( lifespan + Random.Float(2) ); + spend( lifespan + Random.Float(-2, 2) ); } return true; } @@ -77,6 +77,10 @@ public class Sheep extends NPC { if (c == Dungeon.hero) { Dungeon.hero.spendAndNext(1f); Sample.INSTANCE.play(Assets.Sounds.SHEEP, 1, Random.Float(0.91f, 1.1f)); + //sheep summoned by woolly bomb can be dispelled by interacting + if (lifespan >= 20){ + spend(-cooldown()); + } } return true; } 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 5cef29b66..14c40ff95 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 @@ -60,7 +60,7 @@ public class WoollyBomb extends Bomb { && Actor.findChar(i) == null && !(Dungeon.level.pit[i])) { Sheep sheep = new Sheep(); - sheep.lifespan = Random.NormalIntRange( 12, 16 ); + sheep.lifespan = 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 7607dcc72..5716ebb91 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 @@ -62,7 +62,7 @@ public class StoneOfFlock extends Runestone { && Actor.findChar(i) == null && !(Dungeon.level.pit[i])) { Sheep sheep = new Sheep(); - sheep.lifespan = Random.NormalIntRange( 6, 8 ); + sheep.lifespan = 8; sheep.pos = i; GameScene.add(sheep); Dungeon.level.occupyCell(sheep); 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 d3127ca8a..f1944ebbd 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 = Random.NormalIntRange( 4, 8 ); + sheep.lifespan = 6; sheep.pos = i; GameScene.add(sheep); CellEmitter.get(i).burst(Speck.factory(Speck.WOOL), 4);