Browse Source

Caster added to signature.

Proper wpak class used for actions.
feature-config-usage
MagicBot 4 days ago
parent
commit
0cdd8a75dc
  1. 38
      src/engine/mbEnums.java
  2. 22
      src/engine/wpakpowers/WpakPowerManager.java

38
src/engine/mbEnums.java

@ -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 {

22
src/engine/wpakpowers/WpakPowerManager.java

@ -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);
}
} }
} }

Loading…
Cancel
Save