EffectBase sources and fail conditions static maps removed

This commit is contained in:
2024-08-20 20:43:29 -05:00
parent c2633d0d9f
commit c01c69db83
7 changed files with 36 additions and 107 deletions
+22 -47
View File
@@ -28,29 +28,24 @@ import engine.objects.AbstractCharacter;
import engine.objects.AbstractWorldObject;
import engine.objects.Effect;
import engine.objects.PlayerCharacter;
import engine.powers.effectmodifiers.AbstractEffectModifier;
import engine.powers.effectmodifiers.*;
import engine.server.MBServerStatics;
import engine.util.Hasher;
import engine.wpak.data.EffectEntry;
import engine.wpak.data.EffectModifier;
import org.pmw.tinylog.Logger;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.concurrent.ConcurrentHashMap;
public class EffectsBase {
public static HashMap<Integer, HashSet<EffectSourceType>> effectSourceTypeMap = new HashMap<>();
public static HashMap<String, HashSet<AbstractEffectModifier>> modifiersMap = new HashMap<>();
public static HashMap<String, HashMap<String, ArrayList<String>>> OldEffectsMap = new HashMap<>();
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<mbEnums.DamageType>> 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);
@@ -82,10 +77,16 @@ public class EffectsBase {
private boolean isPrefix = false; //used by items
private boolean isSuffix = false; //used by items
private String name = "";
private float value = 0;
public float value = 0;
private ConcurrentHashMap<mbEnums.ResourceType, Integer> resourceCosts = new ConcurrentHashMap<>();
private ConcurrentHashMap<String, Boolean> sourceTypes = new ConcurrentHashMap<>(MBServerStatics.CHM_INIT_CAP, MBServerStatics.CHM_LOAD, MBServerStatics.CHM_THREAD_LOW);
//loaded values from parser
public HashSet<EffectSourceType> effectSources = new HashSet<>();
public HashSet<EffectModifier> effectModifiers = new HashSet<>();
public HashSet<PowerFailCondition> effectFailCondition = new HashSet<>();
public HashSet<mbEnums.DamageType> effectDamageType = new HashSet<>();
/**
* No Table ID Constructor
*/
@@ -118,6 +119,19 @@ public class EffectsBase {
this.isPrefix = true;
else if (this.IDString.startsWith("SUF-"))
this.isSuffix = true;
//load effect modifiers
this.effectModifiers = new HashSet<>(entry.mods);
//load sources
for(String source : entry.sources)
this.effectSources.add(EffectSourceType.GetEffectSourceType(source));
//load fail conditions
for(String condition : entry.conditions.keySet())
this.effectFailCondition.add(PowerFailCondition.valueOf(condition));
//TODO load damage types and slopes from conditions
}
public EffectsBase(EffectsBase copyEffect, int newToken, String IDString) {
@@ -223,11 +237,7 @@ public class EffectsBase {
continue;
}
if (EffectsBase.EffectFailConditions.get(IDString) == null) {
EffectsBase.EffectFailConditions.put(IDString, new HashSet<>());
}
EffectsBase.EffectFailConditions.get(IDString).add(failCondition);
EffectsBase eb = effects.get(IDString);
switch (failCondition) {
@@ -359,10 +369,6 @@ public class EffectsBase {
this.token = token;
}
public ConcurrentHashMap<String, Boolean> getSourceTypes() {
return this.sourceTypes;
}
public HashSet<AbstractEffectModifier> getModifiers() {
if (EffectsBase.modifiersMap.containsKey(this.IDString) == false)
@@ -371,22 +377,6 @@ public class EffectsBase {
return EffectsBase.modifiersMap.get(this.IDString);
}
public boolean isItemEffect() {
return this.isItemEffect;
}
public boolean isSpireEffect() {
return this.isSpireEffect;
}
public boolean ignoreMod() {
return this.ignoreNoMod;
}
public boolean dontSave() {
return this.dontSave;
}
public boolean isPrefix() {
return this.isPrefix;
}
@@ -668,13 +658,6 @@ public class EffectsBase {
}
}
public boolean containsSource(EffectSourceType sourceType) {
if (EffectsBase.effectSourceTypeMap.containsKey(this.token) == false)
return false;
return EffectsBase.effectSourceTypeMap.get(this.token).contains(sourceType);
}
public boolean cancelOnAttack() {
return this.cancelOnAttack;
}
@@ -742,12 +725,4 @@ public class EffectsBase {
this.name = name;
}
public float getValue() {
return value;
}
public void setValue(float Value) {
this.value = Value;
}
}