@ -28,29 +28,24 @@ import engine.objects.AbstractCharacter;
@@ -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 {
@@ -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 {
@@ -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 {
@@ -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 {
@@ -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 {
@@ -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 {
@@ -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 {
@@ -742,12 +725,4 @@ public class EffectsBase {
this . name = name ;
}
public float getValue ( ) {
return value ;
}
public void setValue ( float Value ) {
this . value = Value ;
}
}