mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 03:38:01 +00:00
- Improved AI of some cards using AF Charm.
This commit is contained in:
@@ -3,8 +3,8 @@ ManaCost:B
|
||||
Types:Instant
|
||||
Text:no text
|
||||
A:SP$ Charm | Cost$ B | Choices$ EbonyDrain,EbonyExile,EbonyFear | Defined$ You | SpellDescription$ Choose one - Target opponent loses 1 life and you gain 1 life; or exile up to three target cards from a single graveyard; or target creature gains fear until end of turn. (It can't be blocked except by artifact creatures and/or black creatures.)
|
||||
SVar:EbonyDrain:DB$LoseLife | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | LifeAmount$ 1 | SubAbility$ EbonyGain | SpellDescription$ Target opponent loses 1 life and you gain 1 life;
|
||||
SVar:EbonyGain:DB$GainLife | Defined$ You | LifeAmount$ 1
|
||||
SVar:EbonyDrain:DB$ LoseLife | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | LifeAmount$ 1 | SubAbility$ EbonyGain | SpellDescription$ Target opponent loses 1 life and you gain 1 life;
|
||||
SVar:EbonyGain:DB$ GainLife | Defined$ You | LifeAmount$ 1
|
||||
SVar:EbonyExile:DB$ ChangeZone | TargetMin$ 0 | TargetMax$ 3 | TargetsFromSingleZone$ True | Origin$ Graveyard | Destination$ Exile | TgtPrompt$ Choose target card in a graveyard | ValidTgts$ Card | SpellDescription$ Exile up to three target cards from a single graveyard;
|
||||
SVar:EbonyFear:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Fear | SpellDescription$ Target creature gains fear until end of turn.
|
||||
SVar:RemAIDeck:True
|
||||
|
||||
@@ -8,7 +8,7 @@ A:AB$ Charm | Cost$ SubCounter<1/CHARGE> | Choices$ JittePump,JitteCurse,JitteLi
|
||||
SVar:JittePump:DB$ Pump | Defined$ Equipped | NumAtt$ +2 | NumDef$ +2 | SpellDescription$ Equipped creature gets +2/+2 until end of turn;
|
||||
SVar:JitteCurse:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ -1 | NumDef$ -1 | IsCurse$ True | SpellDescription$ or target creature gets -1/-1 until end of turn;
|
||||
SVar:JitteLife:DB$ GainLife | LifeAmount$ 2 | SpellDescription$ or you gain 2 life.
|
||||
SVar:TrigPutCounter:AB$PutCounter | Cost$ 0 | CounterType$ CHARGE | CounterNum$ 2
|
||||
SVar:TrigPutCounter:AB$ PutCounter | Cost$ 0 | CounterType$ CHARGE | CounterNum$ 2
|
||||
SVar:Rarity:Rare
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/umezawas_jitte.jpg
|
||||
SetInfo:BOK|Rare|http://magiccards.info/scans/en/bok/163.jpg
|
||||
|
||||
@@ -166,6 +166,11 @@ public final class AbilityFactoryChangeZone {
|
||||
AbilityFactoryChangeZone.changeZoneResolve(af, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlayAI() {
|
||||
return AbilityFactoryChangeZone.changeZoneCanPlayAI(af, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean chkAIDrawback() {
|
||||
return AbilityFactoryChangeZone.changeZonePlayDrawbackAI(af, this);
|
||||
@@ -2249,6 +2254,11 @@ public final class AbilityFactoryChangeZone {
|
||||
AbilityFactoryChangeZone.changeZoneAllResolve(af, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlayAI() {
|
||||
return AbilityFactoryChangeZone.changeZoneAllCanPlayAI(af, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean chkAIDrawback() {
|
||||
return AbilityFactoryChangeZone.changeZoneAllPlayDrawbackAI(af, this);
|
||||
|
||||
@@ -171,6 +171,11 @@ public class AbilityFactoryCounters {
|
||||
AbilityFactoryCounters.putResolve(af, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlayAI() {
|
||||
return AbilityFactoryCounters.putCanPlayAI(af, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean chkAIDrawback() {
|
||||
return AbilityFactoryCounters.putPlayDrawbackAI(af, this);
|
||||
|
||||
@@ -173,6 +173,11 @@ public class AbilityFactoryDealDamage {
|
||||
return AbilityFactoryDealDamage.this.damageDrawback(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlayAI() {
|
||||
return AbilityFactoryDealDamage.this.dealDamageCanPlayAI(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getStackDescription() {
|
||||
return AbilityFactoryDealDamage.this.dealDamageStackDescription(
|
||||
@@ -959,6 +964,11 @@ public class AbilityFactoryDealDamage {
|
||||
return AbilityFactoryDealDamage.this.damageAllStackDescription(this.af, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlayAI() {
|
||||
return AbilityFactoryDealDamage.this.damageAllCanPlayAI(this.af, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resolve() {
|
||||
AbilityFactoryDealDamage.this.damageAllResolve(this.af, this);
|
||||
|
||||
@@ -688,6 +688,11 @@ public class AbilityFactoryDestroy {
|
||||
return AbilityFactoryDestroy.destroyAllStackDescription(af, this, this.noRegen);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlayAI() {
|
||||
return AbilityFactoryDestroy.destroyAllCanPlayAI(af, this, this.noRegen);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resolve() {
|
||||
AbilityFactoryDestroy.destroyAllResolve(af, this, this.noRegen);
|
||||
|
||||
@@ -150,6 +150,11 @@ public class AbilityFactoryPermanentState {
|
||||
AbilityFactoryPermanentState.untapResolve(af, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlayAI() {
|
||||
return AbilityFactoryPermanentState.untapCanPlayAI(af, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean chkAIDrawback() {
|
||||
return AbilityFactoryPermanentState.untapPlayDrawbackAI(af, this);
|
||||
@@ -714,6 +719,11 @@ public class AbilityFactoryPermanentState {
|
||||
AbilityFactoryPermanentState.tapResolve(af, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlayAI() {
|
||||
return AbilityFactoryPermanentState.tapCanPlayAI(af, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean chkAIDrawback() {
|
||||
return AbilityFactoryPermanentState.tapPlayDrawbackAI(af, this);
|
||||
@@ -1485,6 +1495,11 @@ public class AbilityFactoryPermanentState {
|
||||
AbilityFactoryPermanentState.tapAllResolve(af, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlayAI() {
|
||||
return AbilityFactoryPermanentState.tapAllCanPlayAI(af, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean chkAIDrawback() {
|
||||
return AbilityFactoryPermanentState.tapAllPlayDrawbackAI(af, this);
|
||||
|
||||
@@ -1385,6 +1385,11 @@ public class AbilityFactoryPump {
|
||||
AbilityFactoryPump.this.pumpAllResolve(this);
|
||||
} // resolve
|
||||
|
||||
@Override
|
||||
public boolean canPlayAI() {
|
||||
return AbilityFactoryPump.this.pumpAllCanPlayAI(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean chkAIDrawback() {
|
||||
return AbilityFactoryPump.this.pumpAllChkDrawbackAI(this);
|
||||
|
||||
@@ -160,6 +160,11 @@ public final class AbilityFactoryReveal {
|
||||
AbilityFactoryReveal.digResolve(af, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlayAI() {
|
||||
return AbilityFactoryReveal.digCanPlayAI(af, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean chkAIDrawback() {
|
||||
return true;
|
||||
|
||||
@@ -152,6 +152,11 @@ public class AbilityFactoryZoneAffecting {
|
||||
return AbilityFactoryZoneAffecting.drawStackDescription(af, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlayAI() {
|
||||
return AbilityFactoryZoneAffecting.drawCanPlayAI(af, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resolve() {
|
||||
AbilityFactoryZoneAffecting.drawResolve(af, this);
|
||||
@@ -1121,6 +1126,11 @@ public class AbilityFactoryZoneAffecting {
|
||||
AbilityFactoryZoneAffecting.discardResolve(af, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlayAI() {
|
||||
return AbilityFactoryZoneAffecting.discardCanPlayAI(af, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean chkAIDrawback() {
|
||||
return AbilityFactoryZoneAffecting.discardCheckDrawbackAI(af, this);
|
||||
|
||||
Reference in New Issue
Block a user