forked from MagicBane/Server
Less boilerplate using functional interface
This commit is contained in:
+32
-114
@@ -1335,123 +1335,41 @@ public class mbEnums {
|
||||
}
|
||||
}
|
||||
|
||||
@FunctionalInterface
|
||||
public interface ModBehaviorFunction {
|
||||
Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank);
|
||||
}
|
||||
|
||||
public enum ModBehaviorType {
|
||||
|
||||
Flag {
|
||||
@Override
|
||||
public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||
return Behaviour.Flag(caster, target, power, powerAction, effect, modifierEntry, rank);
|
||||
}
|
||||
},
|
||||
MapIntToInts {
|
||||
@Override
|
||||
public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||
return Behaviour.MapIntToInts(caster, target, power, powerAction, effect, modifierEntry, rank);
|
||||
}
|
||||
},
|
||||
Standard {
|
||||
@Override
|
||||
public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||
return Behaviour.Standard(caster, target, power, powerAction, effect, modifierEntry, rank);
|
||||
}
|
||||
},
|
||||
FPSubTypeAttr {
|
||||
@Override
|
||||
public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||
return Behaviour.FPSubTypeAttr(caster, target, power, powerAction, effect, modifierEntry, rank);
|
||||
}
|
||||
},
|
||||
SubTypeSourceType {
|
||||
@Override
|
||||
public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||
return Behaviour.SubTypeSourceType(caster, target, power, powerAction, effect, modifierEntry, rank);
|
||||
}
|
||||
},
|
||||
SubTypePowerType {
|
||||
@Override
|
||||
public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||
return Behaviour.SubTypePowerType(caster, target, power, powerAction, effect, modifierEntry, rank);
|
||||
}
|
||||
},
|
||||
SubTypeSkill {
|
||||
@Override
|
||||
public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||
return Behaviour.SubTypeSkill(caster, target, power, powerAction, effect, modifierEntry, rank);
|
||||
}
|
||||
},
|
||||
FPSubTypeDmg {
|
||||
@Override
|
||||
public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||
return Behaviour.FPSubTypeDmg(caster, target, power, powerAction, effect, modifierEntry, rank);
|
||||
}
|
||||
},
|
||||
DD {
|
||||
@Override
|
||||
public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||
return Behaviour.DD(caster, target, power, powerAction, effect, modifierEntry, rank);
|
||||
}
|
||||
},
|
||||
String {
|
||||
@Override
|
||||
public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||
return Behaviour.StringBehaviour(caster, target, power, powerAction, effect, modifierEntry, rank);
|
||||
}
|
||||
},
|
||||
SubTypeMod {
|
||||
@Override
|
||||
public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||
return Behaviour.SubTypeMod(caster, target, power, powerAction, effect, modifierEntry, rank);
|
||||
}
|
||||
},
|
||||
SubTypePower {
|
||||
@Override
|
||||
public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||
return Behaviour.SubTypePower(caster, target, power, powerAction, effect, modifierEntry, rank);
|
||||
}
|
||||
},
|
||||
SubTypeDmg {
|
||||
@Override
|
||||
public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||
return Behaviour.SubTypeDmg(caster, target, power, powerAction, effect, modifierEntry, rank);
|
||||
}
|
||||
},
|
||||
FPSubTypeSkill {
|
||||
@Override
|
||||
public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||
return Behaviour.FPSubTypeSkill(caster, target, power, powerAction, effect, modifierEntry, rank);
|
||||
}
|
||||
},
|
||||
FPSubTypeMonster {
|
||||
@Override
|
||||
public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||
return Behaviour.FPSubTypeMonster(caster, target, power, powerAction, effect, modifierEntry, rank);
|
||||
}
|
||||
},
|
||||
ProcInfo {
|
||||
@Override
|
||||
public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||
return Behaviour.ProcInfo(caster, target, power, powerAction, effect, modifierEntry, rank);
|
||||
}
|
||||
};
|
||||
Flag(Behaviour::Flag),
|
||||
MapIntToInts(Behaviour::MapIntToInts),
|
||||
Standard(Behaviour::Standard),
|
||||
FPSubTypeAttr(Behaviour::FPSubTypeAttr),
|
||||
SubTypeSourceType(Behaviour::SubTypeSourceType),
|
||||
SubTypePowerType(Behaviour::SubTypePowerType),
|
||||
SubTypeSkill(Behaviour::SubTypeSkill),
|
||||
FPSubTypeDmg(Behaviour::FPSubTypeDmg),
|
||||
DD(Behaviour::DD),
|
||||
String(Behaviour::StringBehaviour),
|
||||
SubTypeMod(Behaviour::SubTypeMod),
|
||||
SubTypePower(Behaviour::SubTypePower),
|
||||
SubTypeDmg(Behaviour::SubTypeDmg),
|
||||
FPSubTypeSkill(Behaviour::FPSubTypeSkill),
|
||||
FPSubTypeMonster(Behaviour::FPSubTypeMonster),
|
||||
ProcInfo(Behaviour::ProcInfo);
|
||||
|
||||
public abstract Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank);
|
||||
private final ModBehaviorFunction function;
|
||||
|
||||
ModBehaviorType(ModBehaviorFunction function) {
|
||||
this.function = function;
|
||||
}
|
||||
|
||||
public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||
return function.apply(caster, target, power, powerAction, effect, modifierEntry, rank);
|
||||
}
|
||||
}
|
||||
|
||||
public enum MovementState {
|
||||
|
||||
Reference in New Issue
Block a user