diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties index 629b1d080..2ccab4abb 100644 --- a/core/src/main/assets/messages/actors/actors.properties +++ b/core/src/main/assets/messages/actors/actors.properties @@ -1212,7 +1212,7 @@ actors.mobs.gnollgeomancer.name=gnoll geomancer actors.mobs.gnollgeomancer.warning=The geomancer begins to stir as you start picking at its rock armor. Be ready for a fight if you continue! actors.mobs.gnollgeomancer.alert=The geomancer awakens! The entire cave seems to shift around as it leaps away while laughing madly! actors.mobs.gnollgeomancer.rock_kill=The flying boulder killed you... -actors.mobs.gnollgeomancer.desc=This impressively tall senior gnoll must be the source of the various earth-moving magic around here, and the organizer of all the gnoll activity. Unlike the gnoll sappers in the area, the geomancer is quite adept with its magic, and cannot be damaged by thrown or falling rocks. Its close-combat attacks are still very weak however. +actors.mobs.gnollgeomancer.desc=This impressively tall senior gnoll must be the source of the various earth-moving magic around here, and the organizer of all the gnoll activity. Unlike the gnoll sappers in the area, the geomancer is quite adept with its magic, and cannot be damaged by thrown or falling rocks. It doesn't have any way to fight in melee combat though. actors.mobs.gnollgeomancer.desc_armor=The geomancer is currently encased in a layer of rock armor. _You'll need to get up close and break it away with your pickaxe before you can damage the geomancer._ actors.mobs.gnollgeomancer.desc_armor_sapper=_A nearby gnoll sapper is holding a device that is empowering the geomancer's rock armor. You won't be able to damage it at all right now!_ actors.mobs.gnollgeomancer.desc_sleeping=This impressively tall gnoll shaman is surrounded by a layer of rock, and looks almost like a statue. Looking closely you can see the rock magically move in time with the senior gnoll's breathing. It can't be harmed while encased in rock like this, and it appears to be enjoying a literal dirt nap.\n\nYou can probably break through the layers of rock with your pickaxe, but _be sure you're ready for a fight when you do so._ The geomancer must be the source of the various earth-moving magic around here, and the organizer of all the gnoll activity. _Defeating the gnolls scattered around here before fighting it might be a good idea._ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollGeomancer.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollGeomancer.java index 7c2350ae0..7048b9374 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollGeomancer.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollGeomancer.java @@ -65,7 +65,7 @@ import java.util.ArrayList; public class GnollGeomancer extends Mob { { - HP = HT = 200; + HP = HT = 120; spriteClass = GnollGeomancerSprite.class; EXP = 20; @@ -83,7 +83,7 @@ public class GnollGeomancer extends Mob { properties.add(Property.BOSS); } - private int abilityCooldown = Random.NormalIntRange(3, 5); + private int abilityCooldown = Random.NormalIntRange(3, 6); private boolean lastAbilityWasRockfall; private int throwingRockFromPos = -1; @@ -250,7 +250,7 @@ public class GnollGeomancer extends Mob { super.damage(dmg, src); - abilityCooldown -= dmg/15f; + abilityCooldown -= dmg/10f; int newBracket = HP / hpBracket; if (newBracket == 3) newBracket--; //full HP isn't its own bracket @@ -572,13 +572,9 @@ public class GnollGeomancer extends Mob { } } - //does not approach enemies, but does melee if in range - if (canAttack(enemy)){ - return super.act(enemyInFOV, justAlerted); - } else { - spend(TICK); - return true; - } + //does not perform regular attacks + spend(TICK); + return true; } } @@ -659,7 +655,7 @@ public class GnollGeomancer extends Mob { } if (ch != null && !(ch instanceof GnollGeomancer)){ - ch.damage(Random.NormalIntRange(8, 12), this); + ch.damage(Random.NormalIntRange(5, 10), this); if (ch.isAlive()){ Buff.prolong( ch, Paralysis.class, ch instanceof GnollGuard ? 10 : 3 ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollGuard.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollGuard.java index b9efc3215..b6010985f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollGuard.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollGuard.java @@ -81,9 +81,9 @@ public class GnollGuard extends Mob { @Override public int damageRoll() { if (enemy != null && !Dungeon.level.adjacent(pos, enemy.pos)){ - return Random.NormalIntRange( 10, 25 ); + return Random.NormalIntRange( 10, 20 ); } else { - return Random.NormalIntRange( 3, 12 ); + return Random.NormalIntRange( 5, 10 ); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollSapper.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollSapper.java index 65c7068fd..cd38a4758 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollSapper.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/GnollSapper.java @@ -41,7 +41,7 @@ public class GnollSapper extends Mob { spriteClass = GnollSapperSprite.class; - HP = HT = 50; + HP = HT = 45; defenseSkill = 15; EXP = 10;