check for immunity and no od prior to running power action
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user