Add Flanking ability

This commit is contained in:
Plopman 2012-09-20 13:59:54 +02:00
parent 3d4467e071
commit bfe6261acc
2 changed files with 113 additions and 45 deletions

View file

@ -0,0 +1,67 @@
package mage.abilities.keyword;
import mage.Constants;
import mage.abilities.Ability;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.common.BecomesBlockedByCreatureTriggeredAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.continious.BoostTargetEffect;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.permanent.Permanent;
import mage.target.targetpointer.FixedTarget;
/**
*
* @author Plopman
*/
public class FlankingAbility extends TriggeredAbilityImpl<FlankingAbility> {
public FlankingAbility() {
super(Constants.Zone.BATTLEFIELD, new BoostTargetEffect(-1, -1, Constants.Duration.EndOfTurn), false);
}
public FlankingAbility(final FlankingAbility ability) {
super(ability);
}
@Override
public boolean checkTrigger(GameEvent event, Game game) {
if (event.getType() == GameEvent.EventType.BLOCKER_DECLARED && event.getTargetId().equals(this.getSourceId())) {
Permanent permanent = game.getPermanent(event.getSourceId());
if(permanent != null)
{
boolean hasFlankingAbility = false;
for(Ability ability : permanent.getAbilities()){
if(ability instanceof FlankingAbility){
hasFlankingAbility = true;
}
}
if(!hasFlankingAbility){
for (Effect effect : this.getEffects()) {
effect.setTargetPointer(new FixedTarget(event.getSourceId()));
}
return true;
}
}
}
return false;
}
@Override
public String getRule() {
return "Flanking";
}
@Override
public FlankingAbility copy() {
return new FlankingAbility(this);
}
}

View file

@ -1,46 +1,47 @@
Annihilator|number|
Bloodthirst|number|
Bushido|number|
Dredge|number|
Soulshift|number|
Basic landcycling|cost|
Cycling|cost|
Level up|cost|
Miracle|cost|
Unearth|cost|
Battle cry|new|
Cascade|new|
Exalted|new|
Forestwalk|new|
Indestructible|new|
Islandwalk|new|
Living weapon|new|
Mountainwalk|new|
Persist|new|
Plainswalk|new|
Rebound|new|
Storm|new|
Swampwalk|new|
Totem armor|new|
Unblockable|new|
Undying|new|
Deathtouch|instance|
Defender|instance|
Double Strike|instance|
Fear|instance|
First strike|instance|
Flash|instance|
Flying|instance|
Haste|instance|
Hexproof|instance|
Infect|instance|
Intimidate|instance|
Lifelink|instance|
Phasing|instance|
Reach|instance|
Scavenge|cost|
Shroud|instance|
Soulbond|instance|
Trample|instance|
Vigilance|instance|
Annihilator|number|
Bloodthirst|number|
Bushido|number|
Dredge|number|
Soulshift|number|
Basic landcycling|cost|
Cycling|cost|
Level up|cost|
Miracle|cost|
Unearth|cost|
Battle cry|new|
Cascade|new|
Exalted|new|
Flanking|new|
Forestwalk|new|
Indestructible|new|
Islandwalk|new|
Living weapon|new|
Mountainwalk|new|
Persist|new|
Plainswalk|new|
Rebound|new|
Storm|new|
Swampwalk|new|
Totem armor|new|
Unblockable|new|
Undying|new|
Deathtouch|instance|
Defender|instance|
Double Strike|instance|
Fear|instance|
First strike|instance|
Flash|instance|
Flying|instance|
Haste|instance|
Hexproof|instance|
Infect|instance|
Intimidate|instance|
Lifelink|instance|
Phasing|instance|
Reach|instance|
Scavenge|cost|
Shroud|instance|
Soulbond|instance|
Trample|instance|
Vigilance|instance|
Wither|instance|