Initial refactor of damagetype
This commit is contained in:
@@ -254,19 +254,19 @@ public class ActionsBase {
|
||||
//TODO make this more efficient then testing strings
|
||||
if (this.stackType.equals("Stun") && bonus.getBool(ModType.ImmuneTo, SourceType.STUN))
|
||||
return true; //Currently stun immune. Skip stun
|
||||
else if (this.stackType.equals("Snare") && bonus.getBool(ModType.ImmuneTo, SourceType.SNARE))
|
||||
else if (this.stackType.equals("Snare") && bonus.getBool(ModType.ImmuneTo, SourceType.Snare))
|
||||
return true; //Currently snare immune. Skip snare
|
||||
else if (this.stackType.equals("Blindness") && bonus.getBool(ModType.ImmuneTo, SourceType.BLIND))
|
||||
else if (this.stackType.equals("Blindness") && bonus.getBool(ModType.ImmuneTo, SourceType.Blind))
|
||||
return true; //Currently blind immune. Skip blind
|
||||
else if (this.stackType.equals("PowerInhibitor") && bonus.getBool(ModType.ImmuneTo, SourceType.POWERBLOCK))
|
||||
else if (this.stackType.equals("PowerInhibitor") && bonus.getBool(ModType.ImmuneTo, SourceType.Powerblock))
|
||||
return true; //Currently power block immune. Skip power block
|
||||
else if (this.stackType.equals("Root") && bonus.getBool(ModType.ImmuneTo, SourceType.ROOT))
|
||||
else if (this.stackType.equals("Root") && bonus.getBool(ModType.ImmuneTo, SourceType.Root))
|
||||
return true;
|
||||
// else if (pb.isHeal() && (bonus.getByte("immuneTo.Heal")) >= trains)
|
||||
// return true; //Currently shadowmantled. Skip heals
|
||||
else if (this.stackType.equals("Flight") && bonus.getBool(ModType.NoMod, SourceType.FLY))
|
||||
else if (this.stackType.equals("Flight") && bonus.getBool(ModType.NoMod, SourceType.Fly))
|
||||
return true;
|
||||
else if (this.stackType.equals("Track") && bonus.getBool(ModType.CannotTrack, SourceType.NONE))
|
||||
else if (this.stackType.equals("Track") && bonus.getBool(ModType.CannotTrack, SourceType.None))
|
||||
return true;
|
||||
else
|
||||
return pb.vampDrain() && bonus.getBool(ModType.BlockedPowerType, SourceType.VAMPDRAIN);
|
||||
|
||||
@@ -13,18 +13,18 @@ import engine.Enum;
|
||||
|
||||
public class DamageShield {
|
||||
|
||||
private final Enum.SourceType damageType;
|
||||
private final Enum.DamageType damageType;
|
||||
private final float amount;
|
||||
private final boolean usePercent;
|
||||
|
||||
public DamageShield(Enum.SourceType damageType, float amount, boolean usePercent) {
|
||||
public DamageShield(Enum.DamageType damageType, float amount, boolean usePercent) {
|
||||
super();
|
||||
this.damageType = damageType;
|
||||
this.amount = amount;
|
||||
this.usePercent = usePercent;
|
||||
}
|
||||
|
||||
public Enum.SourceType getDamageType() {
|
||||
public Enum.DamageType getDamageType() {
|
||||
return this.damageType;
|
||||
}
|
||||
|
||||
|
||||
@@ -313,7 +313,7 @@ public class EffectsBase {
|
||||
|
||||
}
|
||||
|
||||
public boolean containsDamageType(Enum.SourceType dt) {
|
||||
public boolean containsDamageType(Enum.DamageType dt) {
|
||||
if (!EffectsBase.EffectDamageTypes.containsKey(this.token))
|
||||
return false;
|
||||
return EffectsBase.EffectDamageTypes.get(this.token).contains(dt);
|
||||
|
||||
@@ -32,7 +32,7 @@ public class AmbidexterityEffectModifier extends AbstractEffectModifier {
|
||||
@Override
|
||||
public void applyBonus(AbstractCharacter ac, int trains) {
|
||||
PlayerBonuses bonus = ac.getBonuses();
|
||||
bonus.setBool(ModType.Ambidexterity, SourceType.NONE, true);
|
||||
bonus.setBool(ModType.Ambidexterity, SourceType.None, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -40,7 +40,7 @@ public class BlockedPowerTypeEffectModifier extends AbstractEffectModifier {
|
||||
ModType toBlock = ModType.None;
|
||||
|
||||
switch (this.sourceType) {
|
||||
case INVISIBLE:
|
||||
case Invisible:
|
||||
toBlock = ModType.Invisible;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ public class DamageShieldEffectModifier extends AbstractEffectModifier {
|
||||
amount *= (1 + mod);
|
||||
}
|
||||
|
||||
Enum.SourceType dt = Enum.SourceType.valueOf(this.type.toUpperCase());
|
||||
Enum.DamageType dt = Enum.DamageType.valueOf(this.type);
|
||||
|
||||
if (dt != null) {
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
|
||||
package engine.powers.effectmodifiers;
|
||||
|
||||
import engine.Enum;
|
||||
import engine.Enum.GameObjectType;
|
||||
import engine.Enum.ModType;
|
||||
import engine.Enum.SourceType;
|
||||
@@ -27,13 +28,13 @@ import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
public class HealthEffectModifier extends AbstractEffectModifier {
|
||||
|
||||
private SourceType damageType;
|
||||
private Enum.DamageType damageType;
|
||||
|
||||
public HealthEffectModifier(ResultSet rs) throws SQLException {
|
||||
super(rs);
|
||||
String damageTypeDB = rs.getString("type");
|
||||
try {
|
||||
this.damageType = SourceType.valueOf(damageTypeDB.toUpperCase());
|
||||
this.damageType = Enum.DamageType.valueOf(damageTypeDB);
|
||||
} catch (IllegalArgumentException e) {
|
||||
Logger.error("DamageType could not be loaded from database. " + "UUID = " + this.UUID
|
||||
+ " value received = '" + damageTypeDB.toUpperCase() + '\'', e);
|
||||
@@ -153,7 +154,7 @@ public class HealthEffectModifier extends AbstractEffectModifier {
|
||||
|
||||
// Apply any power effect modifiers (such as stances)
|
||||
if (bonus != null)
|
||||
modAmount *= (1 + (bonus.getFloatPercentAll(ModType.PowerDamageModifier, SourceType.NONE)));
|
||||
modAmount *= (1 + (bonus.getFloatPercentAll(ModType.PowerDamageModifier, SourceType.None)));
|
||||
}
|
||||
if (modAmount == 0f)
|
||||
return;
|
||||
@@ -192,7 +193,7 @@ public class HealthEffectModifier extends AbstractEffectModifier {
|
||||
}*/
|
||||
|
||||
PlayerBonuses bonus = ac.getBonuses();
|
||||
if (!skipImmune && bonus.getFloat(ModType.BlackMantle, SourceType.HEALING) >= trains) {
|
||||
if (!skipImmune && bonus.getFloat(ModType.BlackMantle, SourceType.Healing) >= trains) {
|
||||
ModifyHealthMsg mhm = new ModifyHealthMsg(source, ac, 0f, 0f, 0f, powerID, powerName, trains, effectID);
|
||||
mhm.setUnknown03(5); //set target is immune
|
||||
DispatchMessage.sendToAllInRange(ac, mhm);
|
||||
|
||||
@@ -30,13 +30,13 @@ import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
public class ManaEffectModifier extends AbstractEffectModifier {
|
||||
|
||||
private SourceType damageType;
|
||||
private Enum.DamageType damageType;
|
||||
|
||||
public ManaEffectModifier(ResultSet rs) throws SQLException {
|
||||
super(rs);
|
||||
String damageTypeDB = rs.getString("type");
|
||||
try {
|
||||
this.damageType = SourceType.valueOf(damageTypeDB.toUpperCase());
|
||||
this.damageType = Enum.DamageType.valueOf(damageTypeDB);
|
||||
} catch (IllegalArgumentException e) {
|
||||
Logger.error("DamageType could not be loaded from database. " + "UUID = " + this.UUID
|
||||
+ " value received = '" + damageTypeDB.toUpperCase() + '\'', e);
|
||||
@@ -114,7 +114,7 @@ public class ManaEffectModifier extends AbstractEffectModifier {
|
||||
|
||||
// Apply any power effect modifiers (such as stances)
|
||||
if (bonus != null)
|
||||
modAmount *= (1 + bonus.getFloatPercentAll(ModType.PowerDamageModifier, SourceType.NONE));
|
||||
modAmount *= (1 + bonus.getFloatPercentAll(ModType.PowerDamageModifier, SourceType.None));
|
||||
}
|
||||
if (modAmount == 0f)
|
||||
return;
|
||||
@@ -142,7 +142,7 @@ public class ManaEffectModifier extends AbstractEffectModifier {
|
||||
}
|
||||
}
|
||||
PlayerBonuses bonus = ac.getBonuses();
|
||||
if (!skipImmune && bonus.getFloat(ModType.BlackMantle, SourceType.HEALING) >= trains) {
|
||||
if (!skipImmune && bonus.getFloat(ModType.BlackMantle, SourceType.Healing) >= trains) {
|
||||
ModifyHealthMsg mhm = new ModifyHealthMsg(source, ac, 0f, 0f, 0f, powerID, powerName, trains, effectID);
|
||||
mhm.setUnknown03(5); //set target is immune
|
||||
DispatchMessage.sendToAllInRange(ac, mhm);
|
||||
|
||||
@@ -33,7 +33,7 @@ public class NoModEffectModifier extends AbstractEffectModifier {
|
||||
bonus.setBool(this.modType, this.sourceType, true);
|
||||
|
||||
switch (this.sourceType) {
|
||||
case FLY:
|
||||
case Fly:
|
||||
if (!ac.getObjectType().equals(GameObjectType.PlayerCharacter))
|
||||
return;
|
||||
PlayerCharacter flyer = (PlayerCharacter) ac;
|
||||
|
||||
@@ -30,13 +30,13 @@ import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
public class StaminaEffectModifier extends AbstractEffectModifier {
|
||||
|
||||
private SourceType damageType;
|
||||
private Enum.DamageType damageType;
|
||||
|
||||
public StaminaEffectModifier(ResultSet rs) throws SQLException {
|
||||
super(rs);
|
||||
String damageTypeDB = rs.getString("type");
|
||||
try {
|
||||
this.damageType = SourceType.valueOf(damageTypeDB.toUpperCase());
|
||||
this.damageType = Enum.DamageType.valueOf(damageTypeDB);
|
||||
} catch (IllegalArgumentException e) {
|
||||
Logger.error("DamageType could not be loaded from database. " + "UUID = " + this.UUID
|
||||
+ " value received = '" + damageTypeDB.toUpperCase() + '\'', e);
|
||||
@@ -112,7 +112,7 @@ public class StaminaEffectModifier extends AbstractEffectModifier {
|
||||
|
||||
// Apply any power effect modifiers (such as stances)
|
||||
if (bonus != null)
|
||||
modAmount *= (1 + (bonus.getFloatPercentAll(ModType.PowerDamageModifier, SourceType.NONE)));
|
||||
modAmount *= (1 + (bonus.getFloatPercentAll(ModType.PowerDamageModifier, SourceType.None)));
|
||||
}
|
||||
if (modAmount == 0f)
|
||||
return;
|
||||
@@ -140,7 +140,7 @@ public class StaminaEffectModifier extends AbstractEffectModifier {
|
||||
}
|
||||
}
|
||||
PlayerBonuses bonus = ac.getBonuses();
|
||||
if (!skipImmune && bonus.getFloat(ModType.BlackMantle, SourceType.HEALING) >= trains) {
|
||||
if (!skipImmune && bonus.getFloat(ModType.BlackMantle, SourceType.Healing) >= trains) {
|
||||
ModifyHealthMsg mhm = new ModifyHealthMsg(source, ac, 0f, 0f, 0f, powerID, powerName, trains, effectID);
|
||||
mhm.setUnknown03(5); //set target is immune
|
||||
DispatchMessage.sendToAllInRange(ac, mhm);
|
||||
|
||||
@@ -188,7 +188,7 @@ public class ApplyEffectPowerAction extends AbstractPowerAction {
|
||||
if (bonuses == null)
|
||||
return;
|
||||
|
||||
boolean noSilence = bonuses.getBool(ModType.Silenced, SourceType.NONE);
|
||||
boolean noSilence = bonuses.getBool(ModType.Silenced, SourceType.None);
|
||||
|
||||
if (noSilence)
|
||||
return;
|
||||
|
||||
@@ -44,7 +44,7 @@ public class TransferStatPowerAction extends AbstractPowerAction {
|
||||
protected float transferEfficiencyRamp;
|
||||
protected boolean transferEfficiencyRampAdd;
|
||||
protected boolean targetToCaster;
|
||||
protected SourceType damageType;
|
||||
protected Enum.DamageType damageType;
|
||||
protected EffectsBase effect;
|
||||
|
||||
public TransferStatPowerAction(ResultSet rs, HashMap<String, EffectsBase> effects) throws SQLException {
|
||||
@@ -78,7 +78,7 @@ public class TransferStatPowerAction extends AbstractPowerAction {
|
||||
// Damage type can sometimes be null in the DB.
|
||||
|
||||
if (damageString.isEmpty() == false)
|
||||
this.damageType = SourceType.valueOf(damageString.toUpperCase());
|
||||
this.damageType = Enum.DamageType.valueOf(damageString);
|
||||
} catch (Exception e) {
|
||||
this.damageType = null;
|
||||
}
|
||||
@@ -210,7 +210,7 @@ public class TransferStatPowerAction extends AbstractPowerAction {
|
||||
// Apply any power effect modifiers (such as stances)
|
||||
PlayerBonuses bonus = source.getBonuses();
|
||||
if (bonus != null)
|
||||
damage *= (1 + bonus.getFloatPercentAll(ModType.PowerDamageModifier, SourceType.NONE));
|
||||
damage *= (1 + bonus.getFloatPercentAll(ModType.PowerDamageModifier, SourceType.None));
|
||||
|
||||
//get amount to transfer
|
||||
fromAmount = damage;
|
||||
@@ -236,7 +236,7 @@ public class TransferStatPowerAction extends AbstractPowerAction {
|
||||
AbstractNetMsg mhmFrom = null;
|
||||
|
||||
//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);
|
||||
mhm.setUnknown03(5); //set target is immune
|
||||
DispatchMessage.sendToAllInRange(from, mhm);
|
||||
|
||||
Reference in New Issue
Block a user