diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/TalismanOfForesight.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/TalismanOfForesight.java index bd7e26f8e..e0607519f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/TalismanOfForesight.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/TalismanOfForesight.java @@ -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 --; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/Wand.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/Wand.java index a50362ff3..cb9f8a965 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/Wand.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/Wand.java @@ -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){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfMagicMissile.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfMagicMissile.java index e8c212a4d..7afb1359e 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfMagicMissile.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfMagicMissile.java @@ -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); + } + } }