v0.4.1: adjusted some battlemage effects

This commit is contained in:
Evan Debenham 2016-07-09 23:37:57 -04:00 committed by Evan Debenham
parent 30f259f883
commit ebd533c935
5 changed files with 15 additions and 12 deletions

View File

@ -27,7 +27,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.effects.Beam; import com.shatteredpixel.shatteredpixeldungeon.effects.Beam;
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.PurpleParticle; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.PurpleParticle;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Grim;
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.mechanics.Ballistica; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
@ -109,9 +108,7 @@ public class WandOfDisintegration extends DamageWand {
@Override @Override
public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) { public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) {
//less likely Grim proc //no direct effect, see magesStaff.reachfactor
if (Random.Int(3) == 0)
new Grim().proc( staff, attacker, defender, damage);
} }
private int distance() { private int distance() {

View File

@ -96,10 +96,9 @@ public class WandOfFrost extends DamageWand {
} }
@Override @Override
//TODO: balancing, this could be mighty OP
public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) { public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) {
Chill chill = defender.buff(Chill.class); Chill chill = defender.buff(Chill.class);
if (chill != null && Random.Float() > chill.speedFactor()){ if (chill != null && Random.IntRange(2, 10) > chill.cooldown()){
//need to delay this through an actor so that the freezing isn't broken by taking damage from the staff hit. //need to delay this through an actor so that the freezing isn't broken by taking damage from the staff hit.
new FlavourBuff(){ new FlavourBuff(){
{actPriority = Integer.MIN_VALUE;} {actPriority = Integer.MIN_VALUE;}

View File

@ -59,11 +59,9 @@ public class WandOfMagicMissile extends DamageWand {
@Override @Override
public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) { public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) {
//gain 1 turn of recharging buff per level of the wand. Buff.prolong( attacker, Recharging.class, 1 + staff.level()/2f);
if (level() > 0) { SpellSprite.show(attacker, SpellSprite.CHARGE);
Buff.prolong( attacker, Recharging.class, (float)staff.level());
SpellSprite.show(attacker, SpellSprite.CHARGE);
}
} }
protected int initialCharges() { protected int initialCharges() {

View File

@ -165,7 +165,7 @@ public class WandOfRegrowth extends Wand {
@Override @Override
public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) { public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) {
//like vampiric enchantment, except with herbal healing buff //like pre-nerf vampiric enchantment, except with herbal healing buff
int level = Math.max( 0, staff.level() ); int level = Math.max( 0, staff.level() );

View File

@ -136,6 +136,15 @@ public class MagesStaff extends MeleeWeapon {
return super.proc(attacker, defender, damage); return super.proc(attacker, defender, damage);
} }
@Override
public int reachFactor(Hero hero) {
int reach = super.reachFactor(hero);
if (wand instanceof WandOfDisintegration && hero.subClass == HeroSubClass.BATTLEMAGE){
reach++;
}
return reach;
}
@Override @Override
public boolean collect( Bag container ) { public boolean collect( Bag container ) {
if (super.collect(container)) { if (super.collect(container)) {