From 45b4ae9e3e78ec29580920cc3b3bb6bb230fee3a Mon Sep 17 00:00:00 2001 From: FatBoy-DOTC Date: Sun, 19 Jan 2025 10:22:59 -0600 Subject: [PATCH] TransferStatPowerAction java --- .../poweractions/TransferStatPowerAction.java | 18 +++++++----------- src/engine/wpak/PowerActionParser.java | 4 ++-- src/engine/wpak/data/StatTransfer.java | 2 +- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/engine/powers/poweractions/TransferStatPowerAction.java b/src/engine/powers/poweractions/TransferStatPowerAction.java index 79cde713..9b59e6e4 100644 --- a/src/engine/powers/poweractions/TransferStatPowerAction.java +++ b/src/engine/powers/poweractions/TransferStatPowerAction.java @@ -44,17 +44,13 @@ public class TransferStatPowerAction extends AbstractPowerAction { this.powerAction = powerAction; this.effectID = powerAction.effects.get(0).effect_id; - int flags = powerAction.getInt("flags"); - this.transferRampAdd = ((flags & 4096) != 0) ? true : false; - this.transferEfficiencyRampAdd = ((flags & 8192) != 0) ? true : false; - this.targetToCaster = ((flags & 16384) != 0) ? true : false; + //int flags = powerAction.getInt("flags"); + this.transferRampAdd = powerAction.statTransfer.rampCurve != null; + this.transferEfficiencyRampAdd = powerAction.statTransfer.rampCurve != null; + this.targetToCaster = powerAction.statTransfer.isDrain; this.effect = effects.get(this.effectID); try { - String damageString = powerAction.getString("damageType"); - // Damage type can sometimes be null in the DB. - - if (damageString.isEmpty() == false) - this.damageType = mbEnums.DamageType.getDamageType(damageString); + this.damageType = powerAction.damageType; } catch (Exception e) { this.damageType = null; } @@ -71,13 +67,13 @@ public class TransferStatPowerAction extends AbstractPowerAction { public float getTransferAmount(float trains) { // if (this.transferRampAdd) - return this.powerAction.statTransfer.ramp + (this.transferRamp * trains); + return (float) (this.powerAction.statTransfer.ramp + (this.powerAction.statTransfer.rampCurve.getValue() * trains)); // else // return this.transferAmount * (1 + (this.transferRamp * trains)); } public float getTransferEfficiency(float trains) { - return this.transferEfficiency + (this.transferEfficiencyRamp * trains); + return (float) (this.powerAction.statTransfer.efficiency + (this.powerAction.statTransfer.efficiencyCurve.getValue() * trains)); } public boolean targetToCaster() { diff --git a/src/engine/wpak/PowerActionParser.java b/src/engine/wpak/PowerActionParser.java index 5e61a777..8fa8e781 100644 --- a/src/engine/wpak/PowerActionParser.java +++ b/src/engine/wpak/PowerActionParser.java @@ -139,7 +139,7 @@ public class PowerActionParser { statTransfer.efficiency = Float.parseFloat(headerIterator.next()); statTransfer.efficiencyCurve = mbEnums.CompoundCurveType.valueOf(headerIterator.next()); statTransfer.fromStatBool = Boolean.parseBoolean(headerIterator.next()); - statTransfer.toStatBool = Boolean.parseBoolean(headerIterator.next()); + statTransfer.isDrain = Boolean.parseBoolean(headerIterator.next()); powerAction.statTransfer = statTransfer; break; case "TransferStatOT": @@ -151,7 +151,7 @@ public class PowerActionParser { statTransfer.efficiency = Float.parseFloat(headerIterator.next()); statTransfer.efficiencyCurve = mbEnums.CompoundCurveType.valueOf(headerIterator.next()); statTransfer.fromStatBool = Boolean.parseBoolean(headerIterator.next()); - statTransfer.toStatBool = Boolean.parseBoolean(headerIterator.next()); + statTransfer.isDrain = Boolean.parseBoolean(headerIterator.next()); statTransfer.transfer_action = headerIterator.next(); statTransfer.transfer_ticks = Integer.parseInt(headerIterator.next()); powerAction.statTransfer = statTransfer; diff --git a/src/engine/wpak/data/StatTransfer.java b/src/engine/wpak/data/StatTransfer.java index c0370d16..85a95235 100644 --- a/src/engine/wpak/data/StatTransfer.java +++ b/src/engine/wpak/data/StatTransfer.java @@ -18,7 +18,7 @@ public class StatTransfer { public float efficiency; public mbEnums.CompoundCurveType efficiencyCurve; public boolean fromStatBool; - public boolean toStatBool; + public boolean isDrain; public String transfer_action; public int transfer_ticks; }