Browse Source

Less boilerplate using functional interface

feature-config-usage
MagicBot 1 day ago
parent
commit
2c3d5a3fcf
  1. 140
      src/engine/mbEnums.java

140
src/engine/mbEnums.java

@ -1335,123 +1335,41 @@ public class mbEnums { @@ -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);
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);
private final ModBehaviorFunction function;
ModBehaviorType(ModBehaviorFunction function) {
this.function = function;
}
},
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);
return function.apply(caster, target, power, powerAction, effect, modifierEntry, rank);
}
};
public abstract Object apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank);
}
public enum MovementState {

Loading…
Cancel
Save