Merge Damage and Source types.

This commit is contained in:
2024-02-26 03:44:51 -05:00
parent a7b3fba018
commit e8e84e00af
16 changed files with 177 additions and 311 deletions
+4 -5
View File
@@ -8,23 +8,22 @@
package engine.powers;
import engine.Enum.DamageType;
import engine.Enum;
public class DamageShield {
private final DamageType damageType;
private final Enum.SourceType damageType;
private final float amount;
private final boolean usePercent;
public DamageShield(DamageType damageType, float amount, boolean usePercent) {
public DamageShield(Enum.SourceType damageType, float amount, boolean usePercent) {
super();
this.damageType = damageType;
this.amount = amount;
this.usePercent = usePercent;
}
public DamageType getDamageType() {
public Enum.SourceType getDamageType() {
return this.damageType;
}
+10 -25
View File
@@ -10,7 +10,6 @@
package engine.powers;
import engine.Enum;
import engine.Enum.DamageType;
import engine.Enum.EffectSourceType;
import engine.Enum.GameObjectType;
import engine.Enum.PowerFailCondition;
@@ -45,7 +44,7 @@ public class EffectsBase {
public static HashMap<String, HashMap<String, ArrayList<String>>> NewEffectsMap = new HashMap<>();
public static HashMap<String, HashMap<String, ArrayList<String>>> ChangedEffectsMap = new HashMap<>();
public static HashMap<String, HashSet<PowerFailCondition>> EffectFailConditions = new HashMap<>();
public static HashMap<Integer, HashSet<DamageType>> EffectDamageTypes = new HashMap<>();
public static HashMap<Integer, HashSet<Enum.SourceType>> EffectDamageTypes = new HashMap<>();
public static HashSet<AbstractEffectModifier> DefaultModifiers = new HashSet<>();
private static ConcurrentHashMap<String, String> itemEffectsByName = new ConcurrentHashMap<>(MBServerStatics.CHM_INIT_CAP, MBServerStatics.CHM_LOAD, MBServerStatics.CHM_THREAD_LOW);
private static int NewID = 3000;
@@ -245,7 +244,7 @@ public class EffectsBase {
damageType3 = "Pierce";
if (damageType3.equalsIgnoreCase("Slashing"))
damageType3 = "Slash";
DamageType dt = getDamageType(damageType1);
Enum.SourceType dt = getDamageType(damageType1);
if (dt != null)
EffectsBase.EffectDamageTypes.get(eb.token).add(dt);
@@ -301,27 +300,13 @@ public class EffectsBase {
}
private static DamageType getDamageType(String name) {
try {
switch (name) {
case "Crushing":
name = "Crush";
break;
case "Slashing":
name = "Slash";
break;
case "Piercing":
name = "Pierce";
break;
}
if (name.isEmpty())
return null;
else
return DamageType.valueOf(name);
} catch (Exception e) {
Logger.error(name);
private static Enum.SourceType getDamageType(String name) {
if (name.isEmpty())
return null;
}
else
return Enum.SourceType.valueOf(name);
}
public static String getItemEffectsByName(String string) {
@@ -351,7 +336,7 @@ public class EffectsBase {
}
public boolean containsDamageType(DamageType dt) {
public boolean containsDamageType(Enum.SourceType dt) {
if (!EffectsBase.EffectDamageTypes.containsKey(this.token))
return false;
return EffectsBase.EffectDamageTypes.get(this.token).contains(dt);
@@ -742,7 +727,7 @@ public class EffectsBase {
String text = "";
if (!EffectsBase.EffectDamageTypes.containsKey(this.token))
return text;
for (DamageType type : EffectsBase.EffectDamageTypes.get(this.token)) {
for (Enum.SourceType type : EffectsBase.EffectDamageTypes.get(this.token)) {
text += type.name() + ' ';
}
return text;
@@ -8,8 +8,7 @@
package engine.powers.effectmodifiers;
import engine.Enum.DamageType;
import engine.Enum;
import engine.jobs.AbstractEffectJob;
import engine.objects.*;
import engine.powers.DamageShield;
@@ -49,7 +48,8 @@ public class DamageShieldEffectModifier extends AbstractEffectModifier {
amount *= (1 + mod);
}
DamageType dt = DamageType.valueOf(this.type);
Enum.SourceType dt = Enum.SourceType.valueOf(this.type);
if (dt != null) {
DamageShield ds = new DamageShield(dt, amount, usePercent);
PlayerBonuses bonus = ac.getBonuses();
@@ -8,8 +8,6 @@
package engine.powers.effectmodifiers;
import engine.Enum.DamageType;
import engine.Enum.GameObjectType;
import engine.Enum.ModType;
import engine.Enum.SourceType;
@@ -29,13 +27,13 @@ import java.util.concurrent.ThreadLocalRandom;
public class HealthEffectModifier extends AbstractEffectModifier {
private DamageType damageType;
private SourceType damageType;
public HealthEffectModifier(ResultSet rs) throws SQLException {
super(rs);
String damageTypeDB = rs.getString("type");
try {
this.damageType = DamageType.valueOf(damageTypeDB);
this.damageType = SourceType.valueOf(damageTypeDB);
} catch (IllegalArgumentException e) {
Logger.error("DamageType could not be loaded from database. " + "UUID = " + this.UUID
+ " value received = '" + damageTypeDB + '\'', e);
@@ -205,7 +203,7 @@ public class HealthEffectModifier extends AbstractEffectModifier {
}*/
PlayerBonuses bonus = ac.getBonuses();
if (!skipImmune && bonus.getFloat(ModType.BlackMantle, SourceType.Heal) >= 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);
@@ -10,7 +10,6 @@
package engine.powers.effectmodifiers;
import engine.Enum;
import engine.Enum.DamageType;
import engine.Enum.ModType;
import engine.Enum.SourceType;
import engine.gameManager.ChatManager;
@@ -32,13 +31,13 @@ import java.util.concurrent.ThreadLocalRandom;
public class ManaEffectModifier extends AbstractEffectModifier {
private DamageType damageType;
private SourceType damageType;
public ManaEffectModifier(ResultSet rs) throws SQLException {
super(rs);
String damageTypeDB = rs.getString("type");
try {
this.damageType = DamageType.valueOf(damageTypeDB);
this.damageType = SourceType.valueOf(damageTypeDB);
} catch (IllegalArgumentException e) {
Logger.error("DamageType could not be loaded from database. " + "UUID = " + this.UUID
+ " value received = '" + damageTypeDB + '\'', e);
@@ -158,7 +157,7 @@ public class ManaEffectModifier extends AbstractEffectModifier {
}
}
PlayerBonuses bonus = ac.getBonuses();
if (!skipImmune && bonus.getFloat(ModType.BlackMantle, SourceType.Heal) >= 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);
@@ -10,7 +10,6 @@
package engine.powers.effectmodifiers;
import engine.Enum;
import engine.Enum.DamageType;
import engine.Enum.ModType;
import engine.Enum.SourceType;
import engine.gameManager.ChatManager;
@@ -32,13 +31,13 @@ import java.util.concurrent.ThreadLocalRandom;
public class StaminaEffectModifier extends AbstractEffectModifier {
private DamageType damageType;
private SourceType damageType;
public StaminaEffectModifier(ResultSet rs) throws SQLException {
super(rs);
String damageTypeDB = rs.getString("type");
try {
this.damageType = DamageType.valueOf(damageTypeDB);
this.damageType = SourceType.valueOf(damageTypeDB);
} catch (IllegalArgumentException e) {
Logger.error("DamageType could not be loaded from database. " + "UUID = " + this.UUID
+ " value received = '" + damageTypeDB + '\'', e);
@@ -154,7 +153,7 @@ public class StaminaEffectModifier extends AbstractEffectModifier {
}
}
PlayerBonuses bonus = ac.getBonuses();
if (!skipImmune && bonus.getFloat(ModType.BlackMantle, SourceType.Heal) >= 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);
@@ -10,7 +10,6 @@
package engine.powers.poweractions;
import engine.Enum;
import engine.Enum.DamageType;
import engine.Enum.ModType;
import engine.Enum.SourceType;
import engine.gameManager.ChatManager;
@@ -46,7 +45,7 @@ public class TransferStatPowerAction extends AbstractPowerAction {
protected float transferEfficiencyRamp;
protected boolean transferEfficiencyRampAdd;
protected boolean targetToCaster;
protected DamageType damageType;
protected SourceType damageType;
protected EffectsBase effect;
public TransferStatPowerAction(ResultSet rs, HashMap<String, EffectsBase> effects) throws SQLException {
@@ -80,7 +79,7 @@ public class TransferStatPowerAction extends AbstractPowerAction {
// Damage type can sometimes be null in the DB.
if (damageString.isEmpty() == false)
this.damageType = DamageType.valueOf(damageString);
this.damageType = SourceType.valueOf(damageString);
} catch (Exception e) {
this.damageType = null;
}