Browse Source

check for immunity and no od prior to running power action

lakebane-jobs
FatBoy-DOTC 16 hours ago
parent
commit
4ea4609b1b
  1. 21
      src/engine/gameManager/PowersManager.java

21
src/engine/gameManager/PowersManager.java

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

Loading…
Cancel
Save