v0.8.0a: Yog-Dzewa balance tweaks:

- Yog's deathgaze damage down to 20-35, from 20-40
- Soiled fist now spreads furrowed grass slightly more often
- Soiled fist now resists burning
- Rusted fist damage up to 22-44 from 20-40
- Bright fist blind durations down to 15/30, from 25/50
- Dark fist ranged damage down to 12-24 from 15-30
This commit is contained in:
Evan Debenham 2020-04-27 19:55:22 -04:00
parent 1de6a1e10a
commit 042937e164
2 changed files with 21 additions and 16 deletions

View File

@ -156,7 +156,7 @@ public class YogDzewa extends Mob {
Dungeon.observe(); Dungeon.observe();
} }
for (Char ch : affected) { for (Char ch : affected) {
ch.damage(Random.NormalIntRange(20, 40), new Eye.DeathGaze()); ch.damage(Random.NormalIntRange(20, 35), new Eye.DeathGaze());
if (Dungeon.level.heroFOV[pos]) { if (Dungeon.level.heroFOV[pos]) {
ch.sprite.flash(); ch.sprite.flash();

View File

@ -248,17 +248,22 @@ public abstract class YogFist extends Mob {
boolean result = super.act(); boolean result = super.act();
//1.33 grass tiles on average
int furrowedTiles = Random.chances(new float[]{0, 2, 1});
for (int i = 0; i < furrowedTiles; i++) {
int cell = pos + PathFinder.NEIGHBOURS9[Random.Int(9)]; int cell = pos + PathFinder.NEIGHBOURS9[Random.Int(9)];
if (Dungeon.level.map[cell] == Terrain.GRASS) { if (Dungeon.level.map[cell] == Terrain.GRASS) {
Level.set(cell, Terrain.FURROWED_GRASS); Level.set(cell, Terrain.FURROWED_GRASS);
GameScene.updateMap(cell); GameScene.updateMap(cell);
CellEmitter.get(cell).burst(LeafParticle.GENERAL, 10); CellEmitter.get(cell).burst(LeafParticle.GENERAL, 10);
} }
}
Dungeon.observe(); Dungeon.observe();
for (int i : PathFinder.NEIGHBOURS9) { for (int i : PathFinder.NEIGHBOURS9) {
cell = pos + i; int cell = pos + i;
if (canSpreadGrass(cell)){ if (canSpreadGrass(cell)){
Level.set(pos+i, Terrain.GRASS); Level.set(pos+i, Terrain.GRASS);
GameScene.updateMap( pos + i ); GameScene.updateMap( pos + i );
@ -290,11 +295,6 @@ public abstract class YogFist extends Mob {
Buff.affect( enemy, Roots.class, 3f ); Buff.affect( enemy, Roots.class, 3f );
if (!enemy.isAlive() && enemy == Dungeon.hero) {
Dungeon.fail( getClass() );
GLog.n( Messages.get(Char.class, "kill", name()) );
}
} else { } else {
enemy.sprite.showStatus( CharSprite.NEUTRAL, enemy.defenseVerb() ); enemy.sprite.showStatus( CharSprite.NEUTRAL, enemy.defenseVerb() );
@ -323,6 +323,11 @@ public abstract class YogFist extends Mob {
&& !(Dungeon.level.map[cell] == Terrain.FURROWED_GRASS || Dungeon.level.map[cell] == Terrain.HIGH_GRASS); && !(Dungeon.level.map[cell] == Terrain.FURROWED_GRASS || Dungeon.level.map[cell] == Terrain.HIGH_GRASS);
} }
{
resistances.add(Burning.class);
}
} }
public static class RottingFist extends YogFist { public static class RottingFist extends YogFist {
@ -397,7 +402,7 @@ public abstract class YogFist extends Mob {
@Override @Override
public int damageRoll() { public int damageRoll() {
return Random.NormalIntRange( 20, 40 ); return Random.NormalIntRange( 22, 44 );
} }
@Override @Override
@ -463,7 +468,7 @@ public abstract class YogFist extends Mob {
super.damage(dmg, src); super.damage(dmg, src);
if (isAlive() && beforeHP > HT/2 && HP < HT/2){ if (isAlive() && beforeHP > HT/2 && HP < HT/2){
HP = HT/2; HP = HT/2;
Buff.prolong( Dungeon.hero, Blindness.class, 30f ); Buff.prolong( Dungeon.hero, Blindness.class, 15f );
int i; int i;
do { do {
i = Random.Int(Dungeon.level.length()); i = Random.Int(Dungeon.level.length());
@ -473,7 +478,7 @@ public abstract class YogFist extends Mob {
GameScene.flash(0xFFFFFF); GameScene.flash(0xFFFFFF);
GLog.w( Messages.get( this, "teleport" )); GLog.w( Messages.get( this, "teleport" ));
} else if (!isAlive()){ } else if (!isAlive()){
Buff.prolong( Dungeon.hero, Blindness.class, 50f ); Buff.prolong( Dungeon.hero, Blindness.class, 30f );
GameScene.flash(0xFFFFFF); GameScene.flash(0xFFFFFF);
} }
} }
@ -502,7 +507,7 @@ public abstract class YogFist extends Mob {
if (hit( this, enemy, true )) { if (hit( this, enemy, true )) {
enemy.damage( Random.NormalIntRange(15, 30), new DarkBolt() ); enemy.damage( Random.NormalIntRange(12, 24), new DarkBolt() );
Light l = enemy.buff(Light.class); Light l = enemy.buff(Light.class);
if (l != null){ if (l != null){