v3.2.1: battlemage staff changes:

- fireblast on-hit damage scaling up
- blast wave on-hit damage up
- blast wave knockback at sides increased very slightly
This commit is contained in:
Evan Debenham
2025-08-14 12:32:41 -04:00
parent 7489578fc6
commit f4bdd396bb
4 changed files with 6 additions and 24 deletions

View File

@@ -116,9 +116,7 @@ public class AntiMagic extends Armor.Glyph {
RESISTS.add( ElementalStrike.class ); RESISTS.add( ElementalStrike.class );
RESISTS.add( Blazing.class ); RESISTS.add( Blazing.class );
RESISTS.add( WandOfFireblast.FireBlastOnHit.class );
RESISTS.add( Shocking.class ); RESISTS.add( Shocking.class );
RESISTS.add( WandOfLightning.LightningOnHit.class );
RESISTS.add( Grim.class ); RESISTS.add( Grim.class );
RESISTS.add( WarpBeacon.class ); RESISTS.add( WarpBeacon.class );

View File

@@ -91,7 +91,7 @@ public class WandOfBlastWave extends DamageWand {
if ((ch.isAlive() || ch.flying || !Dungeon.level.pit[ch.pos]) if ((ch.isAlive() || ch.flying || !Dungeon.level.pit[ch.pos])
&& ch.pos == bolt.collisionPos + i) { && ch.pos == bolt.collisionPos + i) {
Ballistica trajectory = new Ballistica(ch.pos, ch.pos + i, Ballistica.MAGIC_BOLT); Ballistica trajectory = new Ballistica(ch.pos, ch.pos + i, Ballistica.MAGIC_BOLT);
int strength = 1 + Math.round(buffedLvl() / 2f); int strength = Math.round(1.5f + buffedLvl() / 2f);
throwChar(ch, trajectory, strength, false, true, this); throwChar(ch, trajectory, strength, false, true, this);
} }
@@ -197,7 +197,7 @@ public class WandOfBlastWave extends DamageWand {
if (defender.buff(Paralysis.class) != null && defender.buff(BWaveOnHitTracker.class) == null){ if (defender.buff(Paralysis.class) != null && defender.buff(BWaveOnHitTracker.class) == null){
defender.buff(Paralysis.class).detach(); defender.buff(Paralysis.class).detach();
int dmg = Random.NormalIntRange(6+buffedLvl(), 12+2*buffedLvl()); int dmg = Random.NormalIntRange(8+2*buffedLvl(), 12+3*buffedLvl());
defender.damage(Math.round(procChanceMultiplier(attacker) * dmg), this); defender.damage(Math.round(procChanceMultiplier(attacker) * dmg), this);
BlastWave.blast(defender.pos); BlastWave.blast(defender.pos);
Sample.INSTANCE.play( Assets.Sounds.BLAST ); Sample.INSTANCE.play( Assets.Sounds.BLAST );

View File

@@ -36,7 +36,6 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile; import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.BlastParticle; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.BlastParticle;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.SmokeParticle; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.SmokeParticle;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Blazing;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
import com.shatteredpixel.shatteredpixeldungeon.levels.Level; import com.shatteredpixel.shatteredpixeldungeon.levels.Level;
import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain; import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
@@ -199,8 +198,8 @@ public class WandOfFireblast extends DamageWand {
ch.buff(Burning.class).detach(); ch.buff(Burning.class).detach();
} }
if (ch.alignment == Char.Alignment.ENEMY) { if (ch.alignment == Char.Alignment.ENEMY) {
//A 2-charge zap's base dmg with a 1-charge zap's scaling //damage of a 2-charge zap
ch.damage(Math.round(powerMulti*Random.NormalIntRange(2 + buffedLvl(), 8 + 2*buffedLvl())), this); ch.damage(Math.round(powerMulti*Random.NormalIntRange(2 + 2*buffedLvl(), 8 + 4*buffedLvl())), this);
} }
} }
} }
@@ -211,13 +210,6 @@ public class WandOfFireblast extends DamageWand {
} }
} }
public static class FireBlastOnHit extends Blazing {
@Override
protected float procChanceMultiplier(Char attacker) {
return Wand.procChanceMultiplier(attacker);
}
}
@Override @Override
public void fx(Ballistica bolt, Callback callback) { public void fx(Ballistica bolt, Callback callback) {
//need to perform flame spread logic here so we can determine what cells to put flames in. //need to perform flame spread logic here so we can determine what cells to put flames in.

View File

@@ -32,7 +32,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.DwarfKing;
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
import com.shatteredpixel.shatteredpixeldungeon.effects.Lightning; import com.shatteredpixel.shatteredpixeldungeon.effects.Lightning;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.SparkParticle; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.SparkParticle;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Shocking;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
@@ -40,10 +39,10 @@ import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.shatteredpixel.shatteredpixeldungeon.tiles.DungeonTilemap; import com.shatteredpixel.shatteredpixeldungeon.tiles.DungeonTilemap;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.watabou.noosa.Image;
import com.watabou.utils.BArray;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.noosa.Image;
import com.watabou.noosa.audio.Sample; import com.watabou.noosa.audio.Sample;
import com.watabou.utils.BArray;
import com.watabou.utils.Callback; import com.watabou.utils.Callback;
import com.watabou.utils.PathFinder; import com.watabou.utils.PathFinder;
import com.watabou.utils.Random; import com.watabou.utils.Random;
@@ -141,13 +140,6 @@ public class WandOfLightning extends DamageWand {
} }
} }
public static class LightningOnHit extends Shocking {
@Override
protected float procChanceMultiplier(Char attacker) {
return Wand.procChanceMultiplier(attacker);
}
}
private void arc( Char ch ) { private void arc( Char ch ) {
int dist = Dungeon.level.water[ch.pos] ? 2 : 1; int dist = Dungeon.level.water[ch.pos] ? 2 : 1;