forked from MagicBane/Server
use of proper stack ranks
This commit is contained in:
@@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
package engine.powers;
|
package engine.powers;
|
||||||
|
|
||||||
|
import com.sun.corba.se.spi.orbutil.fsm.ActionBase;
|
||||||
import engine.Enum;
|
import engine.Enum;
|
||||||
import engine.Enum.ModType;
|
import engine.Enum.ModType;
|
||||||
import engine.Enum.SourceType;
|
import engine.Enum.SourceType;
|
||||||
@@ -259,6 +260,34 @@ public class ActionsBase {
|
|||||||
|
|
||||||
if (AbstractWorldObject.IsAbstractCharacter(awo)) {
|
if (AbstractWorldObject.IsAbstractCharacter(awo)) {
|
||||||
AbstractCharacter ac = (AbstractCharacter) 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();
|
PlayerBonuses bonus = ac.getBonuses();
|
||||||
if (bonus == null)
|
if (bonus == null)
|
||||||
return false;
|
return false;
|
||||||
@@ -290,17 +319,6 @@ public class ActionsBase {
|
|||||||
|
|
||||||
if (this.stackType.equals("PowerInhibitor") && bonus.getBool(ModType.ImmuneTo, SourceType.Powerblock))
|
if (this.stackType.equals("PowerInhibitor") && bonus.getBool(ModType.ImmuneTo, SourceType.Powerblock))
|
||||||
return true;
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user