Browse Source

Refactored out garbage variables

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

91
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;
this.powerAction = powerAction;
this.effectID = powerAction.effects.get(0).effect_id;
if (powerAction.statTransfer.fromStat.equals(mbEnums.CostType.HEALTH))
this.transferFromHealth = true;
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)
switch (powerAction.statTransfer.fromStat) {
case HEALTH:
maxDrain = from.getCurrentHitpoints(); maxDrain = from.getCurrentHitpoints();
else if (this.transferFromMana) break;
case MANA:
maxDrain = from.getMana(); maxDrain = from.getMana();
else break;
case STAMINA:
maxDrain = from.getStamina(); 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;
case MANA:
to.modifyMana(toAmount, source); to.modifyMana(toAmount, source);
mhmTo = new ModifyHealthMsg(source, to, 0f, toAmount, 0f, powerID, powerName, trains, effectID); mhmTo = new ModifyHealthMsg(source, to, 0f, toAmount, 0f, powerID, powerName, trains, effectID);
} else { break;
case STAMINA:
to.modifyStamina(toAmount, source); to.modifyStamina(toAmount, source);
mhmTo = new ModifyHealthMsg(source, to, 0f, 0f, toAmount, powerID, powerName, trains, effectID); mhmTo = new ModifyHealthMsg(source, to, 0f, 0f, toAmount, powerID, powerName, trains, effectID);
break;
} }
//subtract transfer amount //subtract transfer amount
if (this.transferFromHealth) {
switch (powerAction.statTransfer.fromStat) {
case HEALTH:
float modFrom = from.modifyHealth(-fromAmount, source, false); float modFrom = from.modifyHealth(-fromAmount, source, false);
float cur = from.getHealth(); float cur = from.getHealth();
if (cur < 0 && modFrom != 0) if (cur < 0 && modFrom != 0)
mhmFrom = new ModifyHealthKillMsg(source, from, -fromAmount, 0f, 0f, powerID, powerName, trains, effectID); mhmFrom = new ModifyHealthKillMsg(source, from, -fromAmount, 0f, 0f, powerID, powerName, trains, effectID);
else else
mhmFrom = new ModifyHealthMsg(source, from, -fromAmount, 0f, 0f, powerID, powerName, trains, effectID); mhmFrom = new ModifyHealthMsg(source, from, -fromAmount, 0f, 0f, powerID, powerName, trains, effectID);
} else if (this.transferFromMana) { break;
case MANA:
from.modifyMana(-fromAmount, source); from.modifyMana(-fromAmount, source);
mhmFrom = new ModifyHealthMsg(source, from, 0f, -fromAmount, 0f, powerID, powerName, trains, effectID); mhmFrom = new ModifyHealthMsg(source, from, 0f, -fromAmount, 0f, powerID, powerName, trains, effectID);
} else { break;
case STAMINA:
from.modifyStamina(-fromAmount, source); from.modifyStamina(-fromAmount, source);
mhmFrom = new ModifyHealthMsg(source, from, 0f, 0f, -fromAmount, powerID, powerName, trains, effectID); mhmFrom = new ModifyHealthMsg(source, from, 0f, 0f, -fromAmount, powerID, powerName, trains, effectID);
break;
} }
DispatchManager.sendToAllInRange(to, mhmTo); DispatchManager.sendToAllInRange(to, mhmTo);

Loading…
Cancel
Save