v0.9.4: balance changes to mage abilities/T4 talents:
- wild magic now boosts wand levels instead of overriding - conserved magic now has a chance to give a 3rd shot - elemental blast base damage up by 33% - elemental power now boosts by 20%, up from 15% - telefrag self-damage increased at high levels - remote beacon range per level increased to 4 from 3
This commit is contained in:
parent
43aa79e265
commit
49ef8174cf
|
@ -364,7 +364,7 @@ actors.hero.abilities.mage.elementalblast.generic_desc=The effect of elemental b
|
|||
actors.hero.abilities.mage.wildmagic.name=wild magic
|
||||
actors.hero.abilities.mage.wildmagic.no_wands=You have no wands to zap with!
|
||||
actors.hero.abilities.mage.wildmagic.short_desc=The Mage unleashes the _Wild Magic_ contained in his wands, randomly firing them multiple times at a chosen target over a single turn.
|
||||
actors.hero.abilities.mage.wildmagic.desc=The Mage unleashes the power in his wands, randomly firing them up to 4 times in a single turn. The Mage's staff is not included in this effect.\n\nEach wand is treated as if it was +1, regardless of its actual level. This ability does consume wand charges, and no one wand can be fired more than 2 times.
|
||||
actors.hero.abilities.mage.wildmagic.desc=The Mage unleashes the power in his wands, randomly firing them up to 4 times in a single turn. The Mage's staff is not included in this effect.\n\nEach wand also has its level boosted by 1, up to +2. This ability does consume wand charges, and no one wand can be fired more than 2 times.
|
||||
actors.hero.abilities.mage.warpbeacon.name=warp beacon
|
||||
actors.hero.abilities.mage.warpbeacon.depths=You can't warp between depths!
|
||||
actors.hero.abilities.mage.warpbeacon.locked_floor=You cannot leave a locked floor!
|
||||
|
@ -601,16 +601,16 @@ actors.hero.talent.reactive_barrier.title=reactive barrier
|
|||
actors.hero.talent.reactive_barrier.desc=_+1:_ The Mage gains _2 shielding_ for every character affected by elemental blast, to a max of 5 characters.\n\n_+2:_ The Mage gains _4 shielding_ for every character affected by elemental blast, to a max of 5 characters.\n\n_+3:_ The Mage gains _6 shielding_ for every character affected by elemental blast, to a max of 5 characters.\n\n_+4:_ The Mage gains _8 shielding_ for every character affected by elemental blast, to a max of 5 characters.
|
||||
|
||||
actors.hero.talent.wild_power.title=wild power
|
||||
actors.hero.talent.wild_power.desc=_+1:_ When using wild magic, wands will be treated as either _+1 or +2_, instead of +1.\n\n_+2:_ When using wild magic, wands are now treated as if they are _+2_, instead of +1.\n\n_+3:_ When using wild magic, wands will be treated as either _+2 or +3_, instead of +1.\n\n_+4:_ When using wild magic, wands are now treated as if they are _+3_, instead of +1.
|
||||
actors.hero.talent.wild_power.desc=_+1:_ When using wild magic, wands will be boosted by either _1 or 2, up to +3_.\n\n_+2:_ When using wild magic, wands will be boosted by _2, up to +4_.\n\n_+3:_ When using wild magic, wands will be boosted by either _2 or 3, up to +5_.\n\n_+4:_ When using wild magic, wands will be boosted by _3, up to +6_.
|
||||
actors.hero.talent.fire_everything.title=fire everything
|
||||
actors.hero.talent.fire_everything.desc=_+1:_ Wild magic now fires _5 times_, up from 4.\n\n_+2:_ Wild magic now fires _6 times_, up from 4.\n\n_+3:_ Wild magic now fires _7 times_, up from 4.\n\n_+4:_ Wild magic now fires _8 times_, up from 4.
|
||||
actors.hero.talent.conserved_magic.title=conserved magic
|
||||
actors.hero.talent.conserved_magic.desc=_+1:_ Each zap from wild magic now uses _0.56 charges_, instead of 1.\n\n_+2:_ Each zap from wild magic now uses _0.31 charges_, instead of 1.\n\n_+3:_ Each zap from wild magic now uses _0.18 charges_, instead of 1.\n\n_+4:_ Each zap from wild magic now uses _0.1 charges_, instead of 1.
|
||||
actors.hero.talent.conserved_magic.desc=_+1:_ Each zap from wild magic now uses _0.67 charges_ instead of 1, and each wand has a _25% chance_ to be usable 3 times.\n\n_+2:_ Each zap from wild magic now uses _0.45 charges_ instead of 1, and each wand has a _50% chance_ to be usable 3 times.\n\n_+3:_ Each zap from wild magic now uses _0.3 charges_ instead of 1, and each wand has a _75% chance_ to be usable 3 times.\n\n_+4:_ Each zap from wild magic now uses _0.2 charges_ instead of 1, and each wand has a _100% chance_ to be usable 3 times.
|
||||
|
||||
actors.hero.talent.telefrag.title=Telefrag
|
||||
actors.hero.talent.telefrag.desc=_+1:_ If the Mage warps into another character he deals _10-15 damage_ to it, but also takes _5 damage_.\n\n_+2:_ If the Mage warps into another character he deals _20-30 damage_ to it, but also takes _8 damage_.\n\n_+3:_ If the Mage warps into another character he deals _30-45 damage_ to it, but also takes _12 damage_.\n\n_+4:_ If the Mage warps into another character he deals _40-60 damage_ to it, but also takes _15 damage_.\n\nThe hero cannot be killed by this talent, the self damage can be reduced by magic resisting effects.
|
||||
actors.hero.talent.telefrag.desc=_+1:_ If the Mage warps into another character he deals _10-15 damage_ to it, but also takes _5 damage_.\n\n_+2:_ If the Mage warps into another character he deals _20-30 damage_ to it, but also takes _10 damage_.\n\n_+3:_ If the Mage warps into another character he deals _30-45 damage_ to it, but also takes _15 damage_.\n\n_+4:_ If the Mage warps into another character he deals _40-60 damage_ to it, but also takes _20 damage_.\n\nThe hero cannot be killed by this talent, the self damage can be reduced by magic resisting effects.
|
||||
actors.hero.talent.remote_beacon.title=Remote Beacon
|
||||
actors.hero.talent.remote_beacon.desc=_+1:_ The Mage can place a beacon at any location within _3 tiles_.\n\n_+2:_ The Mage can place a beacon at any location within _6 tiles_.\n\n_+3:_ The Mage can place a beacon at any location within _9 tiles_.\n\n_+4:_ The Mage can place a beacon at any location within _12 tiles_.\n\nThe Mage cannot place beacons in locations that are inaccessible
|
||||
actors.hero.talent.remote_beacon.desc=_+1:_ The Mage can place a beacon at any location within _4 tiles_.\n\n_+2:_ The Mage can place a beacon at any location within _8 tiles_.\n\n_+3:_ The Mage can place a beacon at any location within _12 tiles_.\n\n_+4:_ The Mage can place a beacon at any location within _16 tiles_.\n\nThe Mage cannot place beacons in locations that are inaccessible.
|
||||
actors.hero.talent.longrange_warp.title=Longrange Warp
|
||||
actors.hero.talent.longrange_warp.desc=_+1:_ The Mage can now warp between floors, at _150% charge cost_.\n\n_+2:_ The Mage can now warp between floors, at _117% charge cost_.\n\n_+3:_ The Mage can now warp between floors, at _83% charge cost_.\n\n_+4:_ The Mage can now warp between floors, at _50% charge cost_.\n\nThe Mage cannot use longrange warp to leave a locked floor.
|
||||
|
||||
|
|
|
@ -1161,7 +1161,7 @@ items.wands.wandofcorrosion.staff_name=staff of corrosion
|
|||
items.wands.wandofcorrosion.desc=This wand has an ashen body which opens to a brilliant orange gem.
|
||||
items.wands.wandofcorrosion.stats_desc=This wand shoots a bolt which explodes into a cloud of highly corrosive gas at a targeted location. Anything caught inside this cloud will take increasing damage over time, starting at _%d damage._
|
||||
items.wands.wandofcorrosion.bmage_desc=When _the Battlemage_ strikes an enemy with a staff of corrosion, the enemy has a chance to become oozed.
|
||||
items.wands.wandofcorrosion.eleblast_desc=An elemental blast with a staff of corrosion inflicts enemies with 3 turns of corrosion, starting at 6 damage.
|
||||
items.wands.wandofcorrosion.eleblast_desc=An elemental blast with a staff of corrosion inflicts enemies with 4 turns of corrosion, starting at 6 damage.
|
||||
|
||||
items.wands.wandofcorruption.name=wand of corruption
|
||||
items.wands.wandofcorruption.staff_name=staff of corruption
|
||||
|
|
|
@ -252,7 +252,7 @@ public class ElementalBlast extends ArmorAbility {
|
|||
|
||||
//### Deal damage ###
|
||||
Char mob = Actor.findChar(cell);
|
||||
int damage = Math.round(Random.NormalIntRange(10, 20)
|
||||
int damage = Math.round(Random.NormalIntRange(15, 25)
|
||||
* effectMulti
|
||||
* damageFactors.get(finalWandCls));
|
||||
|
||||
|
@ -278,7 +278,7 @@ public class ElementalBlast extends ArmorAbility {
|
|||
//*** Wand of Corrosion ***
|
||||
} else if (finalWandCls == WandOfCorrosion.class){
|
||||
if (mob.isAlive() && mob.alignment != Char.Alignment.ALLY) {
|
||||
Buff.affect( mob, Corrosion.class ).set(3, Math.round(6*effectMulti));
|
||||
Buff.affect( mob, Corrosion.class ).set(4, Math.round(6*effectMulti));
|
||||
charsHit++;
|
||||
}
|
||||
|
||||
|
@ -336,7 +336,7 @@ public class ElementalBlast extends ArmorAbility {
|
|||
charm.ignoreHeroAllies = true;
|
||||
mob.sprite.centerEmitter().start(Speck.factory(Speck.HEART), 0.2f, 3);
|
||||
} else {
|
||||
damage = Math.round(Random.NormalIntRange(10, 20) * effectMulti);
|
||||
damage = Math.round(Random.NormalIntRange(15, 25) * effectMulti);
|
||||
mob.damage(damage, Reflection.newInstance(finalWandCls));
|
||||
mob.sprite.emitter().start(ShadowParticle.UP, 0.05f, 10);
|
||||
}
|
||||
|
|
|
@ -65,7 +65,7 @@ public class WildMagic extends ArmorAbility {
|
|||
ArrayList<Wand> wands = hero.belongings.getAllItems(Wand.class);
|
||||
Random.shuffle(wands);
|
||||
|
||||
float chargeUsePerShot = (float)Math.pow(0.563f, hero.pointsInTalent(Talent.CONSERVED_MAGIC));
|
||||
float chargeUsePerShot = (float)Math.pow(0.67f, hero.pointsInTalent(Talent.CONSERVED_MAGIC));
|
||||
|
||||
for (Wand w : wands.toArray(new Wand[0])){
|
||||
if (w.curCharges < 1 && w.partialCharge < chargeUsePerShot){
|
||||
|
@ -75,19 +75,30 @@ public class WildMagic extends ArmorAbility {
|
|||
|
||||
int maxWands = 4 + Dungeon.hero.pointsInTalent(Talent.FIRE_EVERYTHING);
|
||||
|
||||
//second and third shots
|
||||
if (wands.size() < maxWands){
|
||||
ArrayList<Wand> dupes = new ArrayList<>(wands);
|
||||
ArrayList<Wand> seconds = new ArrayList<>(wands);
|
||||
ArrayList<Wand> thirds = new ArrayList<>(wands);
|
||||
|
||||
for (Wand w : dupes.toArray(new Wand[0])){
|
||||
for (Wand w : wands){
|
||||
float totalCharge = w.curCharges + w.partialCharge;
|
||||
if (totalCharge < 2*chargeUsePerShot){
|
||||
dupes.remove(w);
|
||||
seconds.remove(w);
|
||||
}
|
||||
if (totalCharge < 3*chargeUsePerShot
|
||||
|| Random.Int(4) > Dungeon.hero.pointsInTalent(Talent.CONSERVED_MAGIC)){
|
||||
thirds.remove(w);
|
||||
}
|
||||
}
|
||||
|
||||
Random.shuffle(dupes);
|
||||
while (!dupes.isEmpty() && wands.size() < maxWands){
|
||||
wands.add(dupes.remove(0));
|
||||
Random.shuffle(seconds);
|
||||
while (!seconds.isEmpty() && wands.size() < maxWands){
|
||||
wands.add(seconds.remove(0));
|
||||
}
|
||||
|
||||
Random.shuffle(thirds);
|
||||
while (!thirds.isEmpty() && wands.size() < maxWands){
|
||||
wands.add(thirds.remove(0));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -121,7 +132,7 @@ public class WildMagic extends ArmorAbility {
|
|||
@Override
|
||||
public void call() {
|
||||
cur.onZap(aim);
|
||||
cur.partialCharge -= (float)Math.pow(0.563f, hero.pointsInTalent(Talent.CONSERVED_MAGIC));
|
||||
cur.partialCharge -= (float)Math.pow(0.67f, hero.pointsInTalent(Talent.CONSERVED_MAGIC));
|
||||
if (cur.partialCharge < 0){
|
||||
cur.partialCharge++;
|
||||
cur.curCharges--;
|
||||
|
|
|
@ -321,9 +321,14 @@ public abstract class Wand extends Item {
|
|||
|
||||
if (charger != null && charger.target != null) {
|
||||
if (charger.target.buff(WildMagic.WildMagicTracker.class) != null){
|
||||
int level = 2 + ((Hero)charger.target).pointsInTalent(Talent.WILD_POWER);
|
||||
if (Random.Int(2) == 0) level++;
|
||||
return level/2; // +1/+1.5/+2/+2.5/+3 at 0/1/2/3/4 talent points
|
||||
int bonus = 2 + ((Hero)charger.target).pointsInTalent(Talent.WILD_POWER);
|
||||
if (Random.Int(2) == 0) bonus++;
|
||||
bonus /= 2; // +1/+1.5/+2/+2.5/+3 at 0/1/2/3/4 talent points
|
||||
|
||||
int maxBonusLevel = 2 + ((Hero)charger.target).pointsInTalent(Talent.WILD_POWER);
|
||||
if (lvl < maxBonusLevel) {
|
||||
lvl = Math.min(lvl + bonus, maxBonusLevel);
|
||||
}
|
||||
}
|
||||
|
||||
if (charger.target.buff(ScrollEmpower.class) != null){
|
||||
|
|
Loading…
Reference in New Issue
Block a user