|
|
@ -28,6 +28,7 @@ import engine.net.client.ClientConnection; |
|
|
|
import engine.net.client.msg.*; |
|
|
|
import engine.net.client.msg.*; |
|
|
|
import engine.objects.*; |
|
|
|
import engine.objects.*; |
|
|
|
import engine.powers.*; |
|
|
|
import engine.powers.*; |
|
|
|
|
|
|
|
import engine.powers.effectmodifiers.AbstractEffectModifier; |
|
|
|
import engine.powers.poweractions.AbstractPowerAction; |
|
|
|
import engine.powers.poweractions.AbstractPowerAction; |
|
|
|
import engine.powers.poweractions.TrackPowerAction; |
|
|
|
import engine.powers.poweractions.TrackPowerAction; |
|
|
|
import engine.server.MBServerStatics; |
|
|
|
import engine.server.MBServerStatics; |
|
|
@ -1968,9 +1969,7 @@ public enum PowersManager { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static void runPowerAction(AbstractCharacter source, |
|
|
|
public static void runPowerAction(AbstractCharacter source, AbstractWorldObject awo, Vector3fImmutable targetLoc, ActionsBase ab, int trains, PowersBase pb) { |
|
|
|
AbstractWorldObject awo, Vector3fImmutable targetLoc, |
|
|
|
|
|
|
|
ActionsBase ab, int trains, PowersBase pb) { |
|
|
|
|
|
|
|
AbstractPowerAction pa = ab.getPowerAction(); |
|
|
|
AbstractPowerAction pa = ab.getPowerAction(); |
|
|
|
if (pa == null) { |
|
|
|
if (pa == null) { |
|
|
|
Logger.error( |
|
|
|
Logger.error( |
|
|
@ -1978,6 +1977,22 @@ public enum PowersManager { |
|
|
|
+ ab.getEffectID()); |
|
|
|
+ ab.getEffectID()); |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(AbstractCharacter.IsAbstractCharacter(awo)) { |
|
|
|
|
|
|
|
boolean immune = false; |
|
|
|
|
|
|
|
AbstractCharacter absChar = (AbstractCharacter)awo; |
|
|
|
|
|
|
|
for (AbstractEffectModifier mod : ab.getPowerAction().getEffectsBase().getModifiers()) { |
|
|
|
|
|
|
|
if (absChar.getBonuses() != null){ |
|
|
|
|
|
|
|
if(absChar.getBonuses().getBool(ModType.ImmuneTo, mod.sourceType) || absChar.getBonuses().getBool(ModType.NoMod, mod.sourceType)) |
|
|
|
|
|
|
|
immune = true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(immune) |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pa.startAction(source, awo, targetLoc, trains, ab, pb); |
|
|
|
pa.startAction(source, awo, targetLoc, trains, ab, pb); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|