v0.8.1: balance tweaks:

- talisman of foresight now requires less exp to level
- talisman of foresight now spends slightly more charge when scrying at distances
- battlemage staff of magic missile proc changed: now grants a straight 0.33 charges to all wands
This commit is contained in:
Evan Debenham 2020-06-25 18:22:55 -04:00
parent 452a67f03b
commit 2c20df475c
3 changed files with 19 additions and 12 deletions

View File

@ -115,7 +115,7 @@ public class TalismanOfForesight extends Artifact {
}
private float maxDist(){
return Math.min(5 + 2*level(), (charge-3)/0.88f);
return Math.min(5 + 2*level(), (charge-3)/1.08f);
}
private CellSelector.Listener scry = new CellSelector.Listener(){
@ -194,15 +194,16 @@ public class TalismanOfForesight extends Artifact {
}
exp += earnedExp;
if (exp >= 100 + 50*level() && level() < levelCap) {
exp -= 100 + 50*level();
if (exp >= 50 + 50*level() && level() < levelCap) {
exp -= 50 + 50*level();
upgrade();
GLog.p( Messages.get(TalismanOfForesight.class, "levelup") );
}
updateQuickslot();
charge -= 3 + dist*0.88f;
partialCharge -= (dist*0.88f)%1f;
//5 charge at 2 tiles, up to 30 charge at 25 tiles
charge -= 3 + dist*1.08f;
partialCharge -= (dist*1.08f)%1f;
if (partialCharge < 0 && charge > 0){
partialCharge ++;
charge --;

View File

@ -561,13 +561,15 @@ public abstract class Wand extends Item {
}
public void gainCharge(float charge){
partialCharge += charge;
while (partialCharge >= 1f){
curCharges++;
partialCharge--;
if (curCharges < maxCharges) {
partialCharge += charge;
while (partialCharge >= 1f) {
curCharges++;
partialCharge--;
}
curCharges = Math.min(curCharges, maxCharges);
updateQuickslot();
}
curCharges = Math.min(curCharges, maxCharges);
updateQuickslot();
}
private void setScaleFactor(float value){

View File

@ -80,8 +80,12 @@ public class WandOfMagicMissile extends DamageWand {
@Override
public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) {
Buff.prolong( attacker, Recharging.class, 1 + staff.buffedLvl()/2f);
SpellSprite.show(attacker, SpellSprite.CHARGE);
for (Wand.Charger c : attacker.buffs(Wand.Charger.class)){
if (c.wand() != this){
c.gainCharge(0.33f);
}
}
}