Browse Source

Refactored out garbage variables

feature-config-usage
MagicBot 3 months ago
parent
commit
f0875a6093
  1. 129
      src/engine/powers/poweractions/TransferStatPowerAction.java

129
src/engine/powers/poweractions/TransferStatPowerAction.java

@ -30,12 +30,8 @@ import java.util.concurrent.ThreadLocalRandom;
public class TransferStatPowerAction extends AbstractPowerAction { public class TransferStatPowerAction extends AbstractPowerAction {
protected String effectID; protected String effectID;
protected boolean transferFromHealth = false; public PowerAction powerAction;
protected boolean transferFromMana = false;
protected boolean transferFromStamina = false;
protected boolean transferToHealth = false;
protected boolean transferToMana = false;
protected boolean transferToStamina = false;
protected float transferAmount; protected float transferAmount;
protected float transferRamp; protected float transferRamp;
protected boolean transferRampAdd; protected boolean transferRampAdd;
@ -48,22 +44,10 @@ public class TransferStatPowerAction extends AbstractPowerAction {
public TransferStatPowerAction(PowerAction powerAction, HashMap<String, EffectsBase> effects) { public TransferStatPowerAction(PowerAction powerAction, HashMap<String, EffectsBase> effects) {
super(powerAction); super(powerAction);
this.effectID = powerAction.effects.get(0).effect_id;
if (powerAction.statTransfer.fromStat.equals(mbEnums.CostType.HEALTH)) this.powerAction = powerAction;
this.transferFromHealth = true; this.effectID = powerAction.effects.get(0).effect_id;
else if (powerAction.statTransfer.fromStat.equals(mbEnums.CostType.MANA))
this.transferFromMana = true;
else
this.transferFromStamina = true;
if (powerAction.statTransfer.toStat.equals(mbEnums.CostType.HEALTH))
this.transferToHealth = true;
else if (powerAction.statTransfer.fromStat.equals(mbEnums.CostType.MANA))
this.transferToMana = true;
else
this.transferToStamina = true;
this.transferAmount = powerAction.getFloat("transferAmount"); this.transferAmount = powerAction.getFloat("transferAmount");
this.transferRamp = powerAction.getFloat("transferRamp"); this.transferRamp = powerAction.getFloat("transferRamp");
this.transferEfficiency = powerAction.getFloat("transferEfficiency"); this.transferEfficiency = powerAction.getFloat("transferEfficiency");
@ -88,29 +72,6 @@ public class TransferStatPowerAction extends AbstractPowerAction {
return this.effectID; return this.effectID;
} }
public boolean transferFromHealth() {
return this.transferFromHealth;
}
public boolean transferFromMana() {
return this.transferFromMana;
}
public boolean transferFromStamina() {
return this.transferFromStamina;
}
public boolean transferToHealth() {
return this.transferToHealth;
}
public boolean transferToMana() {
return this.transferToMana;
}
public boolean transferToStamina() {
return this.transferToStamina;
}
public EffectsBase getEffect() { public EffectsBase getEffect() {
return this.effect; return this.effect;
@ -158,7 +119,6 @@ public class TransferStatPowerAction extends AbstractPowerAction {
toAwo = awo; toAwo = awo;
} }
if (AbstractWorldObject.IsAbstractCharacter(fromAwo) && AbstractWorldObject.IsAbstractCharacter(toAwo)) { if (AbstractWorldObject.IsAbstractCharacter(fromAwo) && AbstractWorldObject.IsAbstractCharacter(toAwo)) {
AbstractCharacter from = (AbstractCharacter) fromAwo; AbstractCharacter from = (AbstractCharacter) fromAwo;
AbstractCharacter to = (AbstractCharacter) toAwo; AbstractCharacter to = (AbstractCharacter) toAwo;
@ -217,25 +177,34 @@ public class TransferStatPowerAction extends AbstractPowerAction {
float toAmount = fromAmount * (getTransferEfficiency(trains) / 100); float toAmount = fromAmount * (getTransferEfficiency(trains) / 100);
//get max amount to transfer, don't give more then the target has //get max amount to transfer, don't give more then the target has
float maxDrain; float maxDrain = 0;
if (this.transferFromHealth)
maxDrain = from.getCurrentHitpoints(); switch (powerAction.statTransfer.fromStat) {
else if (this.transferFromMana) case HEALTH:
maxDrain = from.getMana(); maxDrain = from.getCurrentHitpoints();
else break;
maxDrain = from.getStamina(); case MANA:
maxDrain = from.getMana();
break;
case STAMINA:
maxDrain = from.getStamina();
break;
}
if (toAmount > maxDrain) if (toAmount > maxDrain)
toAmount = maxDrain; toAmount = maxDrain;
//prep messages for transfer //prep messages for transfer
int powerID = pb.getToken(); int powerID = pb.getToken();
int effectID = 496519310; int effectID = 496519310;
String powerName = pb.getName(); String powerName = pb.getName();
ModifyHealthMsg mhmTo;
// ModifyHealthMsg mhmFrom; ModifyHealthMsg mhmTo = null;
AbstractNetMsg mhmFrom = null; AbstractNetMsg mhmFrom = null;
//stop if target is immune to drains //stop if target is immune to drains
if (from.getBonuses().getBool(ModType.ImmuneTo, SourceType.Drain)) { if (from.getBonuses().getBool(ModType.ImmuneTo, SourceType.Drain)) {
ModifyHealthMsg mhm = new ModifyHealthMsg(source, to, 0f, 0f, 0f, powerID, powerName, trains, effectID); ModifyHealthMsg mhm = new ModifyHealthMsg(source, to, 0f, 0f, 0f, powerID, powerName, trains, effectID);
mhm.setUnknown03(5); //set target is immune mhm.setUnknown03(5); //set target is immune
@ -243,32 +212,40 @@ public class TransferStatPowerAction extends AbstractPowerAction {
return; return;
} }
//apply transfer bonus switch (powerAction.statTransfer.toStat) {
if (this.transferToHealth) { case HEALTH:
to.modifyHealth(toAmount, source, false); to.modifyHealth(toAmount, source, false);
mhmTo = new ModifyHealthMsg(source, to, toAmount, 0f, 0f, powerID, powerName, trains, effectID); mhmTo = new ModifyHealthMsg(source, to, toAmount, 0f, 0f, powerID, powerName, trains, effectID);
} else if (this.transferToMana) { break;
to.modifyMana(toAmount, source); case MANA:
mhmTo = new ModifyHealthMsg(source, to, 0f, toAmount, 0f, powerID, powerName, trains, effectID); to.modifyMana(toAmount, source);
} else { mhmTo = new ModifyHealthMsg(source, to, 0f, toAmount, 0f, powerID, powerName, trains, effectID);
to.modifyStamina(toAmount, source); break;
mhmTo = new ModifyHealthMsg(source, to, 0f, 0f, toAmount, powerID, powerName, trains, effectID); case STAMINA:
to.modifyStamina(toAmount, source);
mhmTo = new ModifyHealthMsg(source, to, 0f, 0f, toAmount, powerID, powerName, trains, effectID);
break;
} }
//subtract transfer amount //subtract transfer amount
if (this.transferFromHealth) {
float modFrom = from.modifyHealth(-fromAmount, source, false); switch (powerAction.statTransfer.fromStat) {
float cur = from.getHealth(); case HEALTH:
if (cur < 0 && modFrom != 0) float modFrom = from.modifyHealth(-fromAmount, source, false);
mhmFrom = new ModifyHealthKillMsg(source, from, -fromAmount, 0f, 0f, powerID, powerName, trains, effectID); float cur = from.getHealth();
else if (cur < 0 && modFrom != 0)
mhmFrom = new ModifyHealthMsg(source, from, -fromAmount, 0f, 0f, powerID, powerName, trains, effectID); mhmFrom = new ModifyHealthKillMsg(source, from, -fromAmount, 0f, 0f, powerID, powerName, trains, effectID);
} else if (this.transferFromMana) { else
from.modifyMana(-fromAmount, source); mhmFrom = new ModifyHealthMsg(source, from, -fromAmount, 0f, 0f, powerID, powerName, trains, effectID);
mhmFrom = new ModifyHealthMsg(source, from, 0f, -fromAmount, 0f, powerID, powerName, trains, effectID); break;
} else { case MANA:
from.modifyStamina(-fromAmount, source); from.modifyMana(-fromAmount, source);
mhmFrom = new ModifyHealthMsg(source, from, 0f, 0f, -fromAmount, powerID, powerName, trains, effectID); mhmFrom = new ModifyHealthMsg(source, from, 0f, -fromAmount, 0f, powerID, powerName, trains, effectID);
break;
case STAMINA:
from.modifyStamina(-fromAmount, source);
mhmFrom = new ModifyHealthMsg(source, from, 0f, 0f, -fromAmount, powerID, powerName, trains, effectID);
break;
} }
DispatchManager.sendToAllInRange(to, mhmTo); DispatchManager.sendToAllInRange(to, mhmTo);

Loading…
Cancel
Save