forked from MagicBane/Server
Caster added to signature.
Proper wpak class used for actions.
This commit is contained in:
+19
-19
@@ -16,10 +16,10 @@ import engine.math.Vector3f;
|
|||||||
import engine.math.Vector3fImmutable;
|
import engine.math.Vector3fImmutable;
|
||||||
import engine.objects.*;
|
import engine.objects.*;
|
||||||
import engine.powers.EffectsBase;
|
import engine.powers.EffectsBase;
|
||||||
|
import engine.wpak.data.ActionEntry;
|
||||||
import engine.wpak.data.Effect;
|
import engine.wpak.data.Effect;
|
||||||
import engine.wpak.data.ModifierEntry;
|
import engine.wpak.data.ModifierEntry;
|
||||||
import engine.wpak.data.Power;
|
import engine.wpak.data.Power;
|
||||||
import engine.wpak.data.PowerAction;
|
|
||||||
import engine.wpakpowers.Behaviour;
|
import engine.wpakpowers.Behaviour;
|
||||||
import org.pmw.tinylog.Logger;
|
import org.pmw.tinylog.Logger;
|
||||||
|
|
||||||
@@ -1339,125 +1339,125 @@ public class mbEnums {
|
|||||||
Behavior {
|
Behavior {
|
||||||
@Override
|
@Override
|
||||||
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||||
Behaviour.Behaviour();
|
Behaviour.Behaviour();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
Flag {
|
Flag {
|
||||||
@Override
|
@Override
|
||||||
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||||
Behaviour.Flag();
|
Behaviour.Flag();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
MapIntToInts {
|
MapIntToInts {
|
||||||
@Override
|
@Override
|
||||||
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||||
Behaviour.MapIntToInts();
|
Behaviour.MapIntToInts();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
Standard {
|
Standard {
|
||||||
@Override
|
@Override
|
||||||
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||||
Behaviour.Standard();
|
Behaviour.Standard();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
FPSubTypeAttr {
|
FPSubTypeAttr {
|
||||||
@Override
|
@Override
|
||||||
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||||
Behaviour.FPSubTypeAttr();
|
Behaviour.FPSubTypeAttr();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
SubTypeSourceType {
|
SubTypeSourceType {
|
||||||
@Override
|
@Override
|
||||||
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||||
Behaviour.SubTypeSourceType();
|
Behaviour.SubTypeSourceType();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
SubTypePowerType {
|
SubTypePowerType {
|
||||||
@Override
|
@Override
|
||||||
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||||
Behaviour.SubTypePowerType();
|
Behaviour.SubTypePowerType();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
SubTypeSkill {
|
SubTypeSkill {
|
||||||
@Override
|
@Override
|
||||||
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||||
Behaviour.SubTypeSkill();
|
Behaviour.SubTypeSkill();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
FPSubTypeDmg {
|
FPSubTypeDmg {
|
||||||
@Override
|
@Override
|
||||||
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||||
Behaviour.FPSubTypeDmg();
|
Behaviour.FPSubTypeDmg();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
DD {
|
DD {
|
||||||
@Override
|
@Override
|
||||||
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||||
Behaviour.DD();
|
Behaviour.DD();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
String {
|
String {
|
||||||
@Override
|
@Override
|
||||||
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||||
Behaviour.StringBehaviour();
|
Behaviour.StringBehaviour();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
SubTypeMod {
|
SubTypeMod {
|
||||||
@Override
|
@Override
|
||||||
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||||
Behaviour.SubTypeMod();
|
Behaviour.SubTypeMod();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
SubTypePower {
|
SubTypePower {
|
||||||
@Override
|
@Override
|
||||||
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||||
Behaviour.SubTypePower();
|
Behaviour.SubTypePower();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
SubTypeDmg {
|
SubTypeDmg {
|
||||||
@Override
|
@Override
|
||||||
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||||
Behaviour.SubTypeDmg();
|
Behaviour.SubTypeDmg();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
FPSubTypeSkill {
|
FPSubTypeSkill {
|
||||||
@Override
|
@Override
|
||||||
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||||
Behaviour.FPSubTypeSkill();
|
Behaviour.FPSubTypeSkill();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
FPSubTypeMonster {
|
FPSubTypeMonster {
|
||||||
@Override
|
@Override
|
||||||
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||||
Behaviour.FPSubTypeMonster();
|
Behaviour.FPSubTypeMonster();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ProcInfo {
|
ProcInfo {
|
||||||
@Override
|
@Override
|
||||||
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
public void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank) {
|
||||||
Behaviour.ProcInfo();
|
Behaviour.ProcInfo();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public abstract void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
public abstract void apply(AbstractCharacter caster, AbstractWorldObject target, Power power,
|
||||||
PowerAction powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank);
|
ActionEntry powerAction, Effect effect, ModifierEntry modifierEntry, Integer rank);
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum MovementState {
|
public enum MovementState {
|
||||||
|
|||||||
@@ -301,7 +301,7 @@ public class WpakPowerManager {
|
|||||||
if(powerUsed.maxMobTargets > 1 || powerUsed.maxPlayerTargets > 1){
|
if(powerUsed.maxMobTargets > 1 || powerUsed.maxPlayerTargets > 1){
|
||||||
AoeHandler(caster, target, powerUsed, msg.getNumTrains());
|
AoeHandler(caster, target, powerUsed, msg.getNumTrains());
|
||||||
}else{
|
}else{
|
||||||
applyAllPowerEffects(powerUsed, msg.getNumTrains(), target);
|
applyAllPowerEffects(caster, powerUsed, msg.getNumTrains(), target);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -315,7 +315,7 @@ public class WpakPowerManager {
|
|||||||
int count = 1;
|
int count = 1;
|
||||||
for(AbstractWorldObject mob : mobTargets){
|
for(AbstractWorldObject mob : mobTargets){
|
||||||
if(count < powerUsed.maxMobTargets + 1){
|
if(count < powerUsed.maxMobTargets + 1){
|
||||||
applyAllPowerEffects(powerUsed, rank, mob);
|
applyAllPowerEffects(caster, powerUsed, rank, mob);
|
||||||
count ++;
|
count ++;
|
||||||
}else{
|
}else{
|
||||||
break;
|
break;
|
||||||
@@ -324,7 +324,7 @@ public class WpakPowerManager {
|
|||||||
count = 1;
|
count = 1;
|
||||||
for(AbstractWorldObject pc : pcTargets){
|
for(AbstractWorldObject pc : pcTargets){
|
||||||
if(count < powerUsed.maxPlayerTargets + 1){
|
if(count < powerUsed.maxPlayerTargets + 1){
|
||||||
applyAllPowerEffects(powerUsed, rank, pc);
|
applyAllPowerEffects(caster, powerUsed, rank, pc);
|
||||||
count ++;
|
count ++;
|
||||||
}else{
|
}else{
|
||||||
break;
|
break;
|
||||||
@@ -332,25 +332,27 @@ public class WpakPowerManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void applyAllPowerEffects(Power power, int rank, AbstractWorldObject target) {
|
public static void applyAllPowerEffects(AbstractCharacter caster, Power power, int rank, AbstractWorldObject target) {
|
||||||
|
|
||||||
for(ActionEntry powerAction: power.actionEntries){
|
for(ActionEntry powerAction: power.actionEntries){
|
||||||
|
|
||||||
int powerToken = Hasher.SBStringHash(powerAction.effect_id);
|
int effectTokem = Hasher.SBStringHash(powerAction.effect_id);
|
||||||
Effect effect = effect_data.get(powerToken);
|
Effect effect = effect_data.get(effectTokem);
|
||||||
|
|
||||||
if (effect == null)
|
if (effect == null)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// New entry for this power effect?
|
// New entry for this power effect?
|
||||||
|
|
||||||
if (target._effects.containsKey(powerToken) == false)
|
if (target._effects.containsKey(effectTokem) == false)
|
||||||
target._effects.put(powerToken, new ConcurrentHashMap<>());
|
target._effects.put(effectTokem, new ConcurrentHashMap<>());
|
||||||
|
|
||||||
// Write modifier values
|
// Write modifier values
|
||||||
|
|
||||||
for (ModifierEntry modifierEntry : effect.mods)
|
for (ModifierEntry modifierEntry : effect.mods) {
|
||||||
target._effects.get(powerToken).put(modifierEntry.type, rank);
|
modifierEntry.type.behaviorType.apply(caster, target, power, powerAction, effect, modifierEntry, rank);
|
||||||
|
target._effects.get(effectTokem).put(modifierEntry.type, rank);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user