forked from MagicBane/Server
Caster added to signature.
Proper wpak class used for actions.
This commit is contained in:
@@ -301,7 +301,7 @@ public class WpakPowerManager {
|
||||
if(powerUsed.maxMobTargets > 1 || powerUsed.maxPlayerTargets > 1){
|
||||
AoeHandler(caster, target, powerUsed, msg.getNumTrains());
|
||||
}else{
|
||||
applyAllPowerEffects(powerUsed, msg.getNumTrains(), target);
|
||||
applyAllPowerEffects(caster, powerUsed, msg.getNumTrains(), target);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -315,7 +315,7 @@ public class WpakPowerManager {
|
||||
int count = 1;
|
||||
for(AbstractWorldObject mob : mobTargets){
|
||||
if(count < powerUsed.maxMobTargets + 1){
|
||||
applyAllPowerEffects(powerUsed, rank, mob);
|
||||
applyAllPowerEffects(caster, powerUsed, rank, mob);
|
||||
count ++;
|
||||
}else{
|
||||
break;
|
||||
@@ -324,7 +324,7 @@ public class WpakPowerManager {
|
||||
count = 1;
|
||||
for(AbstractWorldObject pc : pcTargets){
|
||||
if(count < powerUsed.maxPlayerTargets + 1){
|
||||
applyAllPowerEffects(powerUsed, rank, pc);
|
||||
applyAllPowerEffects(caster, powerUsed, rank, pc);
|
||||
count ++;
|
||||
}else{
|
||||
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){
|
||||
|
||||
int powerToken = Hasher.SBStringHash(powerAction.effect_id);
|
||||
Effect effect = effect_data.get(powerToken);
|
||||
int effectTokem = Hasher.SBStringHash(powerAction.effect_id);
|
||||
Effect effect = effect_data.get(effectTokem);
|
||||
|
||||
if (effect == null)
|
||||
continue;
|
||||
|
||||
// New entry for this power effect?
|
||||
|
||||
if (target._effects.containsKey(powerToken) == false)
|
||||
target._effects.put(powerToken, new ConcurrentHashMap<>());
|
||||
if (target._effects.containsKey(effectTokem) == false)
|
||||
target._effects.put(effectTokem, new ConcurrentHashMap<>());
|
||||
|
||||
// Write modifier values
|
||||
|
||||
for (ModifierEntry modifierEntry : effect.mods)
|
||||
target._effects.get(powerToken).put(modifierEntry.type, rank);
|
||||
for (ModifierEntry modifierEntry : effect.mods) {
|
||||
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