use of proper stack ranks
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
|
||||
package engine.powers;
|
||||
|
||||
import com.sun.corba.se.spi.orbutil.fsm.ActionBase;
|
||||
import engine.Enum;
|
||||
import engine.Enum.ModType;
|
||||
import engine.Enum.SourceType;
|
||||
@@ -259,6 +260,34 @@ public class ActionsBase {
|
||||
|
||||
if (AbstractWorldObject.IsAbstractCharacter(awo)) {
|
||||
AbstractCharacter ac = (AbstractCharacter) awo;
|
||||
|
||||
if(ac.effects.containsKey(this.stackType)) {
|
||||
Boolean sameRank = false;
|
||||
Effect eff = ac.effects.get(this.stackType);
|
||||
|
||||
String currentEffect = eff.getEffectsBase().getIDString();
|
||||
String newEffect = this.effectID;
|
||||
if (currentEffect.equals(newEffect) && !this.stackType.equals("Stun"))
|
||||
return false;
|
||||
|
||||
if (eff != null) {
|
||||
for (ActionsBase action : eff.getPower().getActions()) {
|
||||
if (this.stackType.equals(action.stackType) && this.stackOrder == action.stackOrder) {
|
||||
if (this.stackType.equals("NoStun")) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (sameRank) {
|
||||
if (this.greaterThan && trains <= eff.getTrains())
|
||||
return true;
|
||||
|
||||
if (this.greaterThanEqual && trains < eff.getTrains())
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
PlayerBonuses bonus = ac.getBonuses();
|
||||
if (bonus == null)
|
||||
return false;
|
||||
@@ -290,17 +319,6 @@ public class ActionsBase {
|
||||
|
||||
if (this.stackType.equals("PowerInhibitor") && bonus.getBool(ModType.ImmuneTo, SourceType.Powerblock))
|
||||
return true;
|
||||
|
||||
if(ac.effects.containsKey(this.stackType)) {
|
||||
Effect eff = ac.effects.get(this.stackType);
|
||||
if(eff != null) {
|
||||
if (this.greaterThan && trains <= eff.getTrains())
|
||||
return true;
|
||||
|
||||
if (this.greaterThanEqual && trains < eff.getTrains())
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user