mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
- Improved AI of some cards using AF Charm.
This commit is contained in:
@@ -3,8 +3,8 @@ ManaCost:B
|
|||||||
Types:Instant
|
Types:Instant
|
||||||
Text:no text
|
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.)
|
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: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: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: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:EbonyFear:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Fear | SpellDescription$ Target creature gains fear until end of turn.
|
||||||
SVar:RemAIDeck:True
|
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: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: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: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:Rarity:Rare
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/umezawas_jitte.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/umezawas_jitte.jpg
|
||||||
SetInfo:BOK|Rare|http://magiccards.info/scans/en/bok/163.jpg
|
SetInfo:BOK|Rare|http://magiccards.info/scans/en/bok/163.jpg
|
||||||
|
|||||||
@@ -166,6 +166,11 @@ public final class AbilityFactoryChangeZone {
|
|||||||
AbilityFactoryChangeZone.changeZoneResolve(af, this);
|
AbilityFactoryChangeZone.changeZoneResolve(af, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canPlayAI() {
|
||||||
|
return AbilityFactoryChangeZone.changeZoneCanPlayAI(af, this);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean chkAIDrawback() {
|
public boolean chkAIDrawback() {
|
||||||
return AbilityFactoryChangeZone.changeZonePlayDrawbackAI(af, this);
|
return AbilityFactoryChangeZone.changeZonePlayDrawbackAI(af, this);
|
||||||
@@ -2249,6 +2254,11 @@ public final class AbilityFactoryChangeZone {
|
|||||||
AbilityFactoryChangeZone.changeZoneAllResolve(af, this);
|
AbilityFactoryChangeZone.changeZoneAllResolve(af, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canPlayAI() {
|
||||||
|
return AbilityFactoryChangeZone.changeZoneAllCanPlayAI(af, this);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean chkAIDrawback() {
|
public boolean chkAIDrawback() {
|
||||||
return AbilityFactoryChangeZone.changeZoneAllPlayDrawbackAI(af, this);
|
return AbilityFactoryChangeZone.changeZoneAllPlayDrawbackAI(af, this);
|
||||||
|
|||||||
@@ -171,6 +171,11 @@ public class AbilityFactoryCounters {
|
|||||||
AbilityFactoryCounters.putResolve(af, this);
|
AbilityFactoryCounters.putResolve(af, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canPlayAI() {
|
||||||
|
return AbilityFactoryCounters.putCanPlayAI(af, this);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean chkAIDrawback() {
|
public boolean chkAIDrawback() {
|
||||||
return AbilityFactoryCounters.putPlayDrawbackAI(af, this);
|
return AbilityFactoryCounters.putPlayDrawbackAI(af, this);
|
||||||
|
|||||||
@@ -173,6 +173,11 @@ public class AbilityFactoryDealDamage {
|
|||||||
return AbilityFactoryDealDamage.this.damageDrawback(this);
|
return AbilityFactoryDealDamage.this.damageDrawback(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canPlayAI() {
|
||||||
|
return AbilityFactoryDealDamage.this.dealDamageCanPlayAI(this);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getStackDescription() {
|
public String getStackDescription() {
|
||||||
return AbilityFactoryDealDamage.this.dealDamageStackDescription(
|
return AbilityFactoryDealDamage.this.dealDamageStackDescription(
|
||||||
@@ -959,6 +964,11 @@ public class AbilityFactoryDealDamage {
|
|||||||
return AbilityFactoryDealDamage.this.damageAllStackDescription(this.af, this);
|
return AbilityFactoryDealDamage.this.damageAllStackDescription(this.af, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canPlayAI() {
|
||||||
|
return AbilityFactoryDealDamage.this.damageAllCanPlayAI(this.af, this);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void resolve() {
|
public void resolve() {
|
||||||
AbilityFactoryDealDamage.this.damageAllResolve(this.af, this);
|
AbilityFactoryDealDamage.this.damageAllResolve(this.af, this);
|
||||||
|
|||||||
@@ -688,6 +688,11 @@ public class AbilityFactoryDestroy {
|
|||||||
return AbilityFactoryDestroy.destroyAllStackDescription(af, this, this.noRegen);
|
return AbilityFactoryDestroy.destroyAllStackDescription(af, this, this.noRegen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canPlayAI() {
|
||||||
|
return AbilityFactoryDestroy.destroyAllCanPlayAI(af, this, this.noRegen);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void resolve() {
|
public void resolve() {
|
||||||
AbilityFactoryDestroy.destroyAllResolve(af, this, this.noRegen);
|
AbilityFactoryDestroy.destroyAllResolve(af, this, this.noRegen);
|
||||||
|
|||||||
@@ -150,6 +150,11 @@ public class AbilityFactoryPermanentState {
|
|||||||
AbilityFactoryPermanentState.untapResolve(af, this);
|
AbilityFactoryPermanentState.untapResolve(af, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canPlayAI() {
|
||||||
|
return AbilityFactoryPermanentState.untapCanPlayAI(af, this);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean chkAIDrawback() {
|
public boolean chkAIDrawback() {
|
||||||
return AbilityFactoryPermanentState.untapPlayDrawbackAI(af, this);
|
return AbilityFactoryPermanentState.untapPlayDrawbackAI(af, this);
|
||||||
@@ -714,6 +719,11 @@ public class AbilityFactoryPermanentState {
|
|||||||
AbilityFactoryPermanentState.tapResolve(af, this);
|
AbilityFactoryPermanentState.tapResolve(af, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canPlayAI() {
|
||||||
|
return AbilityFactoryPermanentState.tapCanPlayAI(af, this);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean chkAIDrawback() {
|
public boolean chkAIDrawback() {
|
||||||
return AbilityFactoryPermanentState.tapPlayDrawbackAI(af, this);
|
return AbilityFactoryPermanentState.tapPlayDrawbackAI(af, this);
|
||||||
@@ -1485,6 +1495,11 @@ public class AbilityFactoryPermanentState {
|
|||||||
AbilityFactoryPermanentState.tapAllResolve(af, this);
|
AbilityFactoryPermanentState.tapAllResolve(af, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canPlayAI() {
|
||||||
|
return AbilityFactoryPermanentState.tapAllCanPlayAI(af, this);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean chkAIDrawback() {
|
public boolean chkAIDrawback() {
|
||||||
return AbilityFactoryPermanentState.tapAllPlayDrawbackAI(af, this);
|
return AbilityFactoryPermanentState.tapAllPlayDrawbackAI(af, this);
|
||||||
|
|||||||
@@ -1385,6 +1385,11 @@ public class AbilityFactoryPump {
|
|||||||
AbilityFactoryPump.this.pumpAllResolve(this);
|
AbilityFactoryPump.this.pumpAllResolve(this);
|
||||||
} // resolve
|
} // resolve
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canPlayAI() {
|
||||||
|
return AbilityFactoryPump.this.pumpAllCanPlayAI(this);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean chkAIDrawback() {
|
public boolean chkAIDrawback() {
|
||||||
return AbilityFactoryPump.this.pumpAllChkDrawbackAI(this);
|
return AbilityFactoryPump.this.pumpAllChkDrawbackAI(this);
|
||||||
|
|||||||
@@ -160,6 +160,11 @@ public final class AbilityFactoryReveal {
|
|||||||
AbilityFactoryReveal.digResolve(af, this);
|
AbilityFactoryReveal.digResolve(af, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canPlayAI() {
|
||||||
|
return AbilityFactoryReveal.digCanPlayAI(af, this);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean chkAIDrawback() {
|
public boolean chkAIDrawback() {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -152,6 +152,11 @@ public class AbilityFactoryZoneAffecting {
|
|||||||
return AbilityFactoryZoneAffecting.drawStackDescription(af, this);
|
return AbilityFactoryZoneAffecting.drawStackDescription(af, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canPlayAI() {
|
||||||
|
return AbilityFactoryZoneAffecting.drawCanPlayAI(af, this);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void resolve() {
|
public void resolve() {
|
||||||
AbilityFactoryZoneAffecting.drawResolve(af, this);
|
AbilityFactoryZoneAffecting.drawResolve(af, this);
|
||||||
@@ -1121,6 +1126,11 @@ public class AbilityFactoryZoneAffecting {
|
|||||||
AbilityFactoryZoneAffecting.discardResolve(af, this);
|
AbilityFactoryZoneAffecting.discardResolve(af, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canPlayAI() {
|
||||||
|
return AbilityFactoryZoneAffecting.discardCanPlayAI(af, this);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean chkAIDrawback() {
|
public boolean chkAIDrawback() {
|
||||||
return AbilityFactoryZoneAffecting.discardCheckDrawbackAI(af, this);
|
return AbilityFactoryZoneAffecting.discardCheckDrawbackAI(af, this);
|
||||||
|
|||||||
Reference in New Issue
Block a user