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 {
|
public enum ModBehaviorType {
|
||||||
|
|
||||||
Flag {
|
Flag(Behaviour::Flag),
|
||||||
@Override
|
MapIntToInts(Behaviour::MapIntToInts),
|
||||||
public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
Standard(Behaviour::Standard),
|
||||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
FPSubTypeAttr(Behaviour::FPSubTypeAttr),
|
||||||
return Behaviour.Flag(caster, target, power, powerAction, effect, modifierEntry, rank);
|
SubTypeSourceType(Behaviour::SubTypeSourceType),
|
||||||
}
|
SubTypePowerType(Behaviour::SubTypePowerType),
|
||||||
},
|
SubTypeSkill(Behaviour::SubTypeSkill),
|
||||||
MapIntToInts {
|
FPSubTypeDmg(Behaviour::FPSubTypeDmg),
|
||||||
@Override
|
DD(Behaviour::DD),
|
||||||
public Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
String(Behaviour::StringBehaviour),
|
||||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
SubTypeMod(Behaviour::SubTypeMod),
|
||||||
return Behaviour.MapIntToInts(caster, target, power, powerAction, effect, modifierEntry, rank);
|
SubTypePower(Behaviour::SubTypePower),
|
||||||
}
|
SubTypeDmg(Behaviour::SubTypeDmg),
|
||||||
},
|
FPSubTypeSkill(Behaviour::FPSubTypeSkill),
|
||||||
Standard {
|
FPSubTypeMonster(Behaviour::FPSubTypeMonster),
|
||||||
@Override
|
ProcInfo(Behaviour::ProcInfo);
|
||||||
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);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
public abstract Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
private final ModBehaviorFunction function;
|
||||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank);
|
|
||||||
|
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 {
|
public enum MovementState {
|
||||||
|
|||||||
Reference in New Issue
Block a user