|
|
|
@ -41,9 +41,9 @@ import java.util.HashSet;
@@ -41,9 +41,9 @@ import java.util.HashSet;
|
|
|
|
|
import static engine.math.FastMath.sqr; |
|
|
|
|
|
|
|
|
|
public class WpakPowerManager { |
|
|
|
|
public static HashMap<String, Effect> effect_data = new HashMap<>(); |
|
|
|
|
public static HashMap<Integer, PowerAction> power_actions = new HashMap<>(); |
|
|
|
|
public static HashMap<Integer, Power> powers = new HashMap<>(); |
|
|
|
|
public static HashMap<String, Effect> _effectsLookup = new HashMap<>(); |
|
|
|
|
public static HashMap<Integer, PowerAction> _powerActionLookup = new HashMap<>(); |
|
|
|
|
public static HashMap<Integer, Power> _powersLookup = new HashMap<>(); |
|
|
|
|
|
|
|
|
|
private static JobScheduler js; |
|
|
|
|
|
|
|
|
@ -98,7 +98,7 @@ public class WpakPowerManager {
@@ -98,7 +98,7 @@ public class WpakPowerManager {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//lookup the power that was cast
|
|
|
|
|
Power powerCast = powers.get(msg.getPowerUsedID()); |
|
|
|
|
Power powerCast = _powersLookup.get(msg.getPowerUsedID()); |
|
|
|
|
if (powerCast == null) { |
|
|
|
|
ChatManager.chatSayInfo(playerCharacter, "This power is not implemented yet."); |
|
|
|
|
return true; |
|
|
|
@ -291,7 +291,7 @@ public class WpakPowerManager {
@@ -291,7 +291,7 @@ public class WpakPowerManager {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static void finishUsePower(PerformActionMsg msg, PlayerCharacter caster, AbstractWorldObject target) { |
|
|
|
|
Power powerUsed = powers.get(msg.getPowerUsedID()); |
|
|
|
|
Power powerUsed = _powersLookup.get(msg.getPowerUsedID()); |
|
|
|
|
if (powerUsed == null) |
|
|
|
|
return; |
|
|
|
|
if (powerUsed.maxMobTargets > 1 || powerUsed.maxPlayerTargets > 1) { |
|
|
|
@ -337,34 +337,38 @@ public class WpakPowerManager {
@@ -337,34 +337,38 @@ public class WpakPowerManager {
|
|
|
|
|
|
|
|
|
|
for (ActionEntry actionEntry : power.actionEntries) { |
|
|
|
|
|
|
|
|
|
Effect effect = effect_data.get(actionEntry.action_id); |
|
|
|
|
PowerAction powerAction = _powerActionLookup.get(actionEntry.action_id); |
|
|
|
|
|
|
|
|
|
if (effect == null) { |
|
|
|
|
Logger.error("Null effect for " + actionEntry.action_id); |
|
|
|
|
if (powerAction == null) { |
|
|
|
|
Logger.error("Null PowerAction for " + actionEntry.action_id); |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Create pojo to hold effect/modifiers stored in AWO
|
|
|
|
|
// Iterate effects for this powerAction and apply
|
|
|
|
|
|
|
|
|
|
AppliedEffect appliedEffect = new AppliedEffect(); |
|
|
|
|
appliedEffect.effect = effect; |
|
|
|
|
appliedEffect.rank = rank; |
|
|
|
|
for (Effect effect : powerAction.effects) { |
|
|
|
|
|
|
|
|
|
// Add calculated modifiers to pojo
|
|
|
|
|
// Create pojo to hold effect/modifiers stored in AWO
|
|
|
|
|
|
|
|
|
|
for (ModifierEntry modifierEntry : effect.mods) { |
|
|
|
|
Object modifier = modifierEntry.type.behaviorType.apply(caster, target, power, |
|
|
|
|
actionEntry, effect, modifierEntry, rank); |
|
|
|
|
appliedEffect.modifiers.put(modifierEntry.type, modifier); |
|
|
|
|
} |
|
|
|
|
AppliedEffect appliedEffect = new AppliedEffect(); |
|
|
|
|
appliedEffect.effect = effect; |
|
|
|
|
appliedEffect.rank = rank; |
|
|
|
|
|
|
|
|
|
// Add this power effect to the target
|
|
|
|
|
// or overwrite the old value
|
|
|
|
|
// Add calculated modifiers to pojo
|
|
|
|
|
|
|
|
|
|
target._effects.put(effect, appliedEffect); |
|
|
|
|
// target.updateBonuses()?
|
|
|
|
|
} |
|
|
|
|
for (ModifierEntry modifierEntry : effect.mods) { |
|
|
|
|
Object modifier = modifierEntry.type.behaviorType.apply(caster, target, power, |
|
|
|
|
actionEntry, effect, modifierEntry, rank); |
|
|
|
|
appliedEffect.modifiers.put(modifierEntry.type, modifier); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Add this power effect to the target
|
|
|
|
|
// or overwrite the old value
|
|
|
|
|
|
|
|
|
|
target._effects.put(effect, appliedEffect); |
|
|
|
|
// target.updateBonuses()?
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static void sendPowerMsg(PlayerCharacter playerCharacter, int type, PerformActionMsg msg) { |
|
|
|
|