v2.4.0: fixed charge maxing via adding not always clearing partialCharge

This commit is contained in:
Evan Debenham
2024-04-26 14:08:09 -04:00
parent 20cd08c32a
commit eeca547cc4
11 changed files with 52 additions and 35 deletions

View File

@@ -159,7 +159,7 @@ public class AlchemistsToolkit extends Artifact {
public void charge(Hero target, float amount) {
if (target.buff(MagicImmune.class) != null) return;
partialCharge += 0.25f*amount;
if (partialCharge >= 1){
while (partialCharge >= 1){
partialCharge--;
charge++;
updateQuickslot();

View File

@@ -180,11 +180,15 @@ public class CloakOfShadows extends Artifact {
if (charge < chargeCap) {
if (!isEquipped(target)) amount *= 0.75f*target.pointsInTalent(Talent.LIGHT_CLOAK)/3f;
partialCharge += 0.25f*amount;
if (partialCharge >= 1){
partialCharge--;
while (partialCharge >= 1f) {
charge++;
updateQuickslot();
partialCharge--;
}
if (charge >= chargeCap){
partialCharge = 0;
charge = chargeCap;
}
updateQuickslot();
}
}

View File

@@ -304,7 +304,11 @@ public class DriedRose extends Artifact {
if (ghost == null){
if (charge < chargeCap) {
charge += Math.round(4*amount);
partialCharge += 4*amount;
while (partialCharge >= 1f){
charge++;
partialCharge--;
}
if (charge >= chargeCap) {
charge = chargeCap;
partialCharge = 0;

View File

@@ -279,8 +279,13 @@ public class LloydsBeacon extends Artifact {
while (partialCharge >= 1){
partialCharge--;
charge++;
updateQuickslot();
}
if (charge >= chargeCap){
partialCharge = 0;
charge = chargeCap;
}
updateQuickslot();
}
}

View File

@@ -222,11 +222,13 @@ public class MasterThievesArmband extends Artifact {
while (partialCharge >= 1f){
charge++;
partialCharge--;
updateQuickslot();
if (charge == chargeCap){
GLog.p( Messages.get(MasterThievesArmband.class, "full") );
}
}
if (charge >= chargeCap){
GLog.p( Messages.get(MasterThievesArmband.class, "full") );
partialCharge = 0;
charge = chargeCap;
}
updateQuickslot();
}
@Override

View File

@@ -166,7 +166,11 @@ public class SandalsOfNature extends Artifact {
public void charge(Hero target, float amount) {
if (cursed || target.buff(MagicImmune.class) != null) return;
if (charge < chargeCap) {
charge += Math.round(2*amount);
partialCharge += 2*amount;
while (partialCharge >= 1f){
charge++;
partialCharge--;
}
if (charge >= chargeCap) {
charge = chargeCap;
partialCharge = 0;

View File

@@ -100,7 +100,11 @@ public class TalismanOfForesight extends Artifact {
public void charge(Hero target, float amount) {
if (cursed || target.buff(MagicImmune.class) != null) return;
if (charge < chargeCap){
charge += Math.round(2*amount);
partialCharge += 2*amount;
while (partialCharge >= 1f){
charge++;
partialCharge--;
}
if (charge >= chargeCap) {
charge = chargeCap;
partialCharge = 0;

View File

@@ -167,12 +167,11 @@ public class TimekeepersHourglass extends Artifact {
while (partialCharge >= 1){
partialCharge--;
charge++;
if (charge == chargeCap){
partialCharge = 0;
}
updateQuickslot();
}
if (charge >= chargeCap){
partialCharge = 0;
}
updateQuickslot();
}
}

View File

@@ -229,12 +229,11 @@ public class UnstableSpellbook extends Artifact {
while (partialCharge >= 1){
partialCharge--;
charge++;
if (charge == chargeCap){
partialCharge = 0;
}
updateQuickslot();
}
if (charge >= chargeCap){
partialCharge = 0;
}
updateQuickslot();
}
}

View File

@@ -770,7 +770,10 @@ public abstract class Wand extends Item {
curCharges++;
partialCharge--;
}
curCharges = Math.min(curCharges, maxCharges);
if (curCharges >= maxCharges){
partialCharge = 0;
curCharges = maxCharges;
}
updateQuickslot();
}
}

View File

@@ -230,17 +230,7 @@ public class MeleeWeapon extends Weapon {
} else {
tracker.detach();
Charger charger = Buff.affect(hero, Charger.class);
if (charger.charges < charger.chargeCap()) {
charger.partialCharge += hero.pointsInTalent(Talent.VARIED_CHARGE) / 6f;
if (charger.partialCharge >= 1f) {
charger.partialCharge -= 1f;
charger.charges++;
if (charger.charges == charger.chargeCap()){
charger.partialCharge = 0;
}
updateQuickslot();
}
}
charger.gainCharge(hero.pointsInTalent(Talent.VARIED_CHARGE) / 6f);
ScrollOfRecharging.charge(hero);
}
}
@@ -537,7 +527,10 @@ public class MeleeWeapon extends Weapon {
charges++;
partialCharge--;
}
charges = Math.min(charges, chargeCap());
if (charges >= chargeCap()){
partialCharge = 0;
charges = chargeCap();
}
updateQuickslot();
}
}