It is currently 16 Apr 2024, 15:36
   
Text Size

Keywords recognized by Forge

Post MTG Forge Related Programming Questions Here

Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins

Keywords recognized by Forge

Postby Chris H. » 12 Apr 2010, 01:32

AbilityFactory (ab, db, sp) recognized by Forge are:

AbilityFactory - Active | Open
AB$ AddTurn
DB$ AddTurn
SP$ AddTurn

AB$ Animate
DB$ Animate
SP$ Animate

AB$ ChangeZone
DB$ ChangeZone
SP$ ChangeZone

AB$ ChangeZoneAll
SP$ ChangeZoneAll

AB$ ChooseType
DB$ ChooseType
SP$ ChooseType

AB$ Clash
DB$ Clash
SP$ Clash

AB$ CopyPermanent
DB$ CopyPermanent
SP$ CopyPermanent

AB$ Counter
SP$ Counter

AB$ DamageAll
DB$ DamageAll
SP$ DamageAll

AB$ DealDamage
DB$ DealDamage
SP$ DealDamage

AB$ Destroy
SP$ Destroy

AB$ DestroyAll
SP$ DestroyAll

AB$ Dig
DB$ Dig
SP$ Dig

AB$ Discard
DB$ Discard
SP$ Discard

AB$ Draw
DB$ Draw
SP$ Draw

AB$ Effect
DB$ Effect
SP$ Effect

AB$ Fog
DB$ Fog
SP$ Fog

AB$ GainControl
SP$ GainControl

AB$ GainLife
DB$ GainLife
SP$ GainLife

AB$ LosesGame
DB$ LosesGame
SP$ LosesGame

AB$ LoseLife
DB$ LoseLife
SP$ LoseLife

AB$ Mana
DB$ Mana
SP$ Mana

AB$ ManaReflected
SP$ ManaReflected

AB$ Mill
DB$ Mill
SP$ Mill

AB$ Poison
DB$ Poison
SP$ Poison

AB$ Proliferate
DB$ Proliferate
SP$ Proliferate

AB$ Pump
DB$ Pump
SP$ Pump

AB$ PumpAll
DB$ PumpAll
SP$ PumpAll

AB$ PutCounter
DB$ PutCounter
SP$ PutCounter

AB$ PutCounterAll
DB$ PutCounterAll
SP$ PutCounterAll

AB$ RearrangeTopOfLibrary
DB$ RearrangeTopOfLibrary
SP$ RearrangeTopOfLibrary

AB$ Regenerate
DB$ Regenerate
SP$ Regenerate

AB$ RemoveCounter
DB$ RemoveCounter
SP$ RemoveCounter

AB$ RevealHand
DB$ RevealHand
SP$ RevealHand

AB$ Sacrifice
DB$ Sacrifice
SP$ Sacrifice

AB$ Scry
DB$ Scry
SP$ Scry

AB$ SetLife
DB$ SetLife
SP$ SetLife

AB$ Shuffle
DB$ Shuffle
SP$ Shuffle

AB$ Tap
DB$ Tap
SP$ Tap

AB$ TapAll
DB$ TapAll
SP$ TapAll

AB$ TapOrUntap
DB$ TapOrUntap
SP$ TapOrUntap

AB$ Token
DB$ Token
SP$ Token

AB$ Untap
DB$ Untap
SP$ Untap

AB$ UntapAll
DB$ UntapAll
SP$ UntapAll

AB$ WinsGame
DB$ WinsGame
SP$ WinsGame


AbilityFactory - Deprecated | Open
These three AFs should no longer be used, use AF_ChangeZone instead:

AB$Bounce
SP$Bounce

AB$Fetch
SP$Fetch

AB$Retrieve
SP$Retrieve



Keywords recognized by Forge are:

Keywords - Active | Open
All creatures able to block CARDNAME do so.
Annihilator {num}
At the beginning of the end step, destroy CARDNAME.
At the beginning of the end step, exile CARDNAME.
At the beginning of the end step, sacrifice CARDNAME.
At the beginning of your upkeep, CARDNAME deals {num} damage to you unless you pay:{cost}
At the beginning of your upkeep, destroy CARDNAME unless you pay:{cost}
At the beginning of your upkeep, sacrifice CARDNAME unless you pay:{cost}
Bloodthirst
Bushido {number}
CantBeBlockedBy {ValidCards}
CARDNAME attacks each turn if able.
CARDNAME can attack as though it didn't have defender.
CARDNAME can block creatures with flying.
CARDNAME can block creatures with shadow as though they didn't have shadow.
CARDNAME can block only creatures with flying.
CARDNAME can't attack.
CARDNAME can't attack if defending player controls an untapped creature with power {rest of text string}
CARDNAME can't attack or block.
CARDNAME can't attack unless defending player controls an Island.
CARDNAME can't attack unless defending player controls a Mountain.
CARDNAME can't attack unless defending player controls a snow land.
CARDNAME can't be blocked by artifact creatures.
CARDNAME can't be blocked by creatures with flying.
CARDNAME can't be blocked by creatures with power {rest of text string}
CARDNAME can't be blocked by more than one creature.
CARDNAME can't be blocked by Walls.
CARDNAME can't be blocked by white creatures.
CARDNAME can't be blocked except by artifact creatures and/or white creatures.
CARDNAME can't be blocked except by black creatures.
CARDNAME can't be blocked except by creatures with flying.
CARDNAME can't be blocked except by Walls.
CARDNAME can't be blocked except by Walls and/or creatures with flying.
CARDNAME can't be countered.
CARDNAME can't be regenerated.
CARDNAME can't be the target of Aura spells.
CARDNAME can't be the target of spells.
CARDNAME can't be the target of spells or abilities your opponents control.
CARDNAME can't block.
CARDNAME can't block creatures with power {rest of text string}
CARDNAME can't have counters placed on it.
CARDNAME doesn't untap during your untap step.
{card name} enters the battlefield tapped.
CARDNAME enters the battlefield tapped.
CARDNAME enters the battlefield tapped unless you control a {land} or a {land}.
CARDNAME enters the battlefield tapped unless you control two or fewer other lands.
CARDNAME is {color}.
CARDNAME's activated abilities can't be activated.
CARDNAME's power and toughness are switched
CARDNAME untaps during each other player's untap step.
Cascade
Champion:{validType}
Changeling
Comes into play tapped.
CostChange:{params}
Cumulative upkeep:{cost}
Cycling:{cost}
Damage that would reduce your life total to less than 1 reduces it to 1 instead.
Deathtouch
Defender
Devour:{magnitude}
Double Strike
Dredge {num}
Echo:{cost}
Enchant {"Artifact", "Creature", "Land", "Enchantment"} [Curse]
Enchant artifact
Enchant creature
Enchant creature with converted mana cost 2 or less
Enchant creature without flying
Enchant red or green creature
enControlCreature:{options}
Enchant land
Enchant land you control
Enchant tapped creature
enPump[Curse]
eqPump (was VanillaEquipment)
etbCounter:{CounterType}:{CounterAmount}
etbLoseLife:{num}
Evoke:{cost}
Exalted
Fading
Fear
First Strike
Flanking
Flash
Flying
Forestwalk
HandSize
Haste
Horsemanship
If a spell or ability an opponent controls causes you to discard CARDNAME, put it onto the battlefield instead of putting it into your graveyard.
If CARDNAME would be put into a graveyard this turn, exile it instead.
If CARDNAME would leave the battlefield, exile it instead of putting it anywhere else.
If damage would be dealt to CARDNAME, prevent that damage. Remove a +1/+1 counter from CARDNAME.
Indestructible
Infect
Intimidate
Islandwalk
Kicker:{cost}
Landfall
Legendary landwalk
Level up:{num}
Lifelink
Living Weapon
Maddness:{cost}
maxLevel:{num}
Modular
Morph:{cost}
Mountainwalk
Multikicker {magnitude}
Nonbasic landwalk
Permanents don't untap during their controllers' untap steps
Persist
Plainswalk
Play with the top card of your library revealed.
Poisonous {num}
Prevent all combat damage that would be dealt to and dealt by CARDNAME.
Prevent all combat damage that would be dealt to CARDNAME.
Prevent all damage that would be dealt to CARDNAME.
Prevent all damage that would be dealt to CARDNAME by artifact creatures.
PreventAllDamageBy {Valid Card restriction}
Proliferate
Protection
Protection from {color}
Protection from artifacts
Protection from Clerics
Protection from colored spells
Protection from creatures
Protection from Demons
Protection from Dragons
Protection from enchantments
Protection from Goblins
Protection from Gorgons
Rampage {number}
Reach
Recover
Replicate {cost}
Ripple:{number}
SearchMerc:{cost}
SearchRebel:{cost}
Shadow
Shroud
Snow forestwalk
Snow islandwalk
Snow landwalk
Snow mountainwalk
Snow plainswalk
Snow swampwalk
Soulshift
spDamageAll
Split second
stAnimate[Self/All/Enchanted]
StaticEffect:{parameters}
Storm
stPumpAll
stSetPT
Sunburst
Suspend:{turns}:{cost}
SVar:{Variable Key}:{Variable Value}
SVar:RemAIDeck:True
Swampwalk
Totem armor
Trample
Transmute
TypeCycling
Unblockable
Unearth:{cost}
Upkeep:{cost}
Vanishing
Vigilance
When CARDNAME becomes the target of a spell or ability, destroy CARDNAME.
When CARDNAME becomes the target of a spell or ability, return CARDNAME to its owner's hand.
When CARDNAME becomes the target of a spell or ability, sacrifice it.
When CARDNAME enters the battlefield, tap enchanted creature.
When CARDNAME enters the battlefield, untap up to five lands.
When CARDNAME is dealt damage, destroy it.
When CARDNAME is put into a graveyard from anywhere, reveal CARDNAME and its owner shuffles his or her graveyard into his or her library.
When CARDNAME is put into a graveyard from anywhere, reveal CARDNAME and shuffle it into its owner's library instead.
When CARDNAME is put into a graveyard from anywhere, shuffle it into its owner's library.
When enchanted creature becomes the target of a spell or ability, sacrifice that creature.
When enchanted creature becomes the target of a spell or ability, destroy that creature.
When enchanted creature becomes the target of a spell or ability, destroy that creature. It can't be regenerated.
When enchanted creature becomes the target of a spell or ability, exile that creature.
When enchanted creature becomes the target of a spell or ability, sacrifice CARDNAME.
When enchanted creature becomes the target of a spell or ability, destroy CARDNAME.
When enchanted creature becomes the target of a spell or ability, destroy CARDNAME. It can't be regenerated.
When enchanted creature becomes the target of a spell or ability, exile CARDNAME.
When you control no enchantments, sacrifice CARDNAME
When you control no Islands, sacrifice CARDNAME.
WheneverKeyword:{parameters}
Whenever a creature dealt damage by CARDNAME this turn is put into a graveyard, put a +1/+1 counter on CARDNAME.
Whenever CARDNAME deals combat damage to a creature, destroy that creature. It can't be regenerated.
Whenever CARDNAME deals combat damage to a creature, destroy that creature at end of combat.
Whenever CARDNAME is dealt damage, put a +1/+1 counter on it.
Wither
You can't win the game.
You don't lose the game for having 0 or less life.
You may choose not to untap CARDNAME during your untap step.
Your opponents can't lose the game.


Keywords - Deprecated | Open
These keywords are no longer used, use AbilityFactory instead:

{cost}, Sacrifice CARDNAME: Add {mana} to your mana pool.
1, Sacrifice CARDNAME: Draw a card.
{cost}, {tap}: add {mana}
abAddReflectedMana
abAllPump
abDamageCP and abDamageTgt
abDestroyTgt
abDrawCards[Tgt]
abGainLife
abLoseLife[Tgt]
abMakeToken
abPump[Tgt] and abPump[Tgt] Rev
abTapAll
abTapDestroyTgt
abTapTgt
abUntapAll
abUntapTgt
At the beginning of your upkeep, CARDNAME deals 1 damage to you.
At the beginning of your upkeep, you lose 1 life.
At the beginning of your upkeep, you lose 2 life.
Draw a card.
Draw a card at the beginning of the next turn's upkeep.
etbBounceTgt
etbDestroyTgt
etbGainLife
etbMakeToken
etbReturnTgt
Landfall - Whenever a land enters the battlefield under your control, CARDNAME gets +2/+2 until end of turn.
paintap
RegenerateMe
Remove three spore counters from CARDNAME: Put a 1/1 green Saproling creature token onto the battlefield.
Scry
spAllPump
spBounceAll
spBounceTgt
spCounter
spDamageTgt
spDestroyAll
spDestroyTgt
spDiscard[Tgt|Opp]
spDrawCards and spDrawCards v2
spGainLife[Tgt]
Spike
spLoseLife[Tgt]
spMakeToken
spPumpTgt and spPumpTgt rev and spPumpTgt Revision
spRaiseDead
spReturnTgt
spTapTgt
spTutor
spUntapAll
spUntapTgt
tap: add 1
tap: add B
tap: add G
tap: add R
tap: add U
tap: add W
tap: add {ManaSymbol} to your mana pool for each {Type} {on the battlefield / you control}.
Untap
When CARDNAME enters the battlefield, draw a card.
When CARDNAME enters the battlefield, draw two cards.
When {card name} enters the battlefield, return a land you control to its owner's hand.
When CARDNAME enters the battlefield, return a land you control to its owner's hand.
When CARDNAME enters the battlefield, you may search your library for up to three cards named CARDNAME, reveal them, and put them into your hand. If you do, shuffle your library.
When CARDNAME is put into a graveyard from the battlefield, return CARDNAME to its owner's hand.
Whenever CARDNAME attacks alone, it gets +1/+0 until end of turn.
Whenever CARDNAME attacks alone, it gets +2/+0 until end of turn.
Whenever CARDNAME becomes blocked, it gets +1/+1 until end of turn for each creature blocking it.
Whenever CARDNAME becomes blocked by a creature, destroy that creature at end of combat
Whenever CARDNAME blocks a creature, destroy that creature at end of combat
Whenever CARDNAME deals combat damage, you gain that much life.
Whenever CARDNAME deals combat damage to a creature, destroy that creature.
Whenever CARDNAME deals combat damage to a creature, tap that creature and it doesn't untap during its controller's next untap step.
Whenever CARDNAME deals damage, you gain that much life.
Whenever CARDNAME is dealt damage, you lose that much life.
Whenever enchanted creature deals damage, you gain that much life.
Whenever this creature attacks, put a +1/+1 counter on it.



NOTES:

Landfall is just a flag and the card with this keyword will need additional coding to implement the card's Landfall feature set.

The cycling keyword code will now work for spells, the cycling code was moved to the bottom of CardFactory.java. Cycling will also now work with lands.

Use enPumpCurse if you want the AI to target the human's creatures with the aura and use enPump if you want the AI to target the computer's creatures.

"When CARDNAME enters the battlefield, tap enchanted creature." is limited in use at this time and can only be used with cards in the code block for Roots and other similar cards.

These 3 keywords are only used for a test which located in the enControlCreature:{options} keyword code object:

Enchant creature with converted mana cost 2 or less
Enchant red or green creature
When CARDNAME enters the battlefield, untap up to five lands.

The "You may choose not to untap CARDNAME during your untap step." keyword will ask the human if the card should untap, the computer will not untap when it has the choice. (The assumption being cards with this kind of ability don't want to untap.)

The "CARDNAME is {color}." keyword only seems to work if you use the term "CARDNAME" rather than the actual name of the card.


The following are works in progress:


The dev team is in the process of converting the keywords with parameters over to the new AbilityFactory system. This is a work in progress.
Last edited by Chris H. on 29 Jun 2010, 18:25, edited 79 times in total.
User avatar
Chris H.
Forge Moderator
 
Posts: 6320
Joined: 04 Nov 2008, 12:11
Location: Mac OS X Yosemite
Has thanked: 644 times
Been thanked: 643 times

Re: Keywords recognized by Forge

Postby Rob Cashwalker » 12 Apr 2010, 03:05

I always thought it would be a good idea to keep this thread in the developer's area... can always throw a link into the general release thread so the general forum people are aware.
The Force will be with you, Always.
User avatar
Rob Cashwalker
Programmer
 
Posts: 2167
Joined: 09 Sep 2008, 15:09
Location: New York
Has thanked: 5 times
Been thanked: 40 times

Re: Keywords recognized by Forge

Postby Huggybaby » 12 Apr 2010, 04:06

Stickied, good one Chris.
User avatar
Huggybaby
Administrator
 
Posts: 3205
Joined: 15 Jan 2006, 19:44
Location: Finally out of Atlanta
Has thanked: 696 times
Been thanked: 594 times

Re: Keywords recognized by Forge

Postby Chris H. » 27 Apr 2010, 17:22

A lot of changes and additions have been made to the listing over the last couple of weeks. :D
User avatar
Chris H.
Forge Moderator
 
Posts: 6320
Joined: 04 Nov 2008, 12:11
Location: Mac OS X Yosemite
Has thanked: 644 times
Been thanked: 643 times

Re: Keywords recognized by Forge

Postby Chris H. » 04 May 2010, 12:29

The listing was updated.
User avatar
Chris H.
Forge Moderator
 
Posts: 6320
Joined: 04 Nov 2008, 12:11
Location: Mac OS X Yosemite
Has thanked: 644 times
Been thanked: 643 times

Re: Keywords recognized by Forge

Postby Chris H. » 08 May 2010, 11:08

The listing was edited to reflect changes in the Forge 05-10-2010 release.
User avatar
Chris H.
Forge Moderator
 
Posts: 6320
Joined: 04 Nov 2008, 12:11
Location: Mac OS X Yosemite
Has thanked: 644 times
Been thanked: 643 times

Re: Keywords recognized by Forge

Postby Chris H. » 15 May 2010, 22:45

I changed the

"This creature can't be blocked except by creatures with flying"

keyword to

"CARDNAME can't be blocked except by creatures with flying."


Changes appear in Rev. 1052
User avatar
Chris H.
Forge Moderator
 
Posts: 6320
Joined: 04 Nov 2008, 12:11
Location: Mac OS X Yosemite
Has thanked: 644 times
Been thanked: 643 times

Re: Keywords recognized by Forge

Postby Chris H. » 18 May 2010, 16:16

I changed the

"When this card is put into a graveyard from the battlefield, return this card to its owner's hand"

keyword to

"When CARDNAME is put into a graveyard from the battlefield, return CARDNAME to its owner's hand."


Changes appear in Rev. 1070
User avatar
Chris H.
Forge Moderator
 
Posts: 6320
Joined: 04 Nov 2008, 12:11
Location: Mac OS X Yosemite
Has thanked: 644 times
Been thanked: 643 times

Re: Keywords recognized by Forge

Postby Chris H. » 19 May 2010, 15:21

I changed the

"When this card is put into a graveyard from anywhere, reveal this card and shuffle it into its owner's library instead."

keyword to

"When CARDNAME is put into a graveyard from anywhere, reveal CARDNAME and shuffle it into its owner's library instead."


Changes appear in Rev. 1077
User avatar
Chris H.
Forge Moderator
 
Posts: 6320
Joined: 04 Nov 2008, 12:11
Location: Mac OS X Yosemite
Has thanked: 644 times
Been thanked: 643 times

Re: Keywords recognized by Forge

Postby Chris H. » 19 May 2010, 20:17

I changed the

"This card can't be countered."

keyword to

"CARDNAME can't be countered."


Changes appear in Rev. 1078
User avatar
Chris H.
Forge Moderator
 
Posts: 6320
Joined: 04 Nov 2008, 12:11
Location: Mac OS X Yosemite
Has thanked: 644 times
Been thanked: 643 times

Re: Keywords recognized by Forge

Postby Chris H. » 20 May 2010, 23:20

I changed the

"This creature can't attack or block"

keyword to

"CARDNAME can't attack or block."


Changes appear in Rev. 1081
User avatar
Chris H.
Forge Moderator
 
Posts: 6320
Joined: 04 Nov 2008, 12:11
Location: Mac OS X Yosemite
Has thanked: 644 times
Been thanked: 643 times

Re: Keywords recognized by Forge

Postby Chris H. » 21 May 2010, 11:33

I changed the

"This creature can't attack"

keyword to

"CARDNAME can't attack."


Changes appear in Rev. 1082
User avatar
Chris H.
Forge Moderator
 
Posts: 6320
Joined: 04 Nov 2008, 12:11
Location: Mac OS X Yosemite
Has thanked: 644 times
Been thanked: 643 times

Re: Keywords recognized by Forge

Postby Beached As » 23 May 2010, 01:28

I added a storm keyword, but it doesn't do anything without additional coding.
Beached As
Programmer
 
Posts: 110
Joined: 23 Feb 2010, 07:48
Has thanked: 0 time
Been thanked: 0 time

Re: Keywords recognized by Forge

Postby Chris H. » 23 May 2010, 01:58

Beached As wrote:I added a storm keyword, but it doesn't do anything without additional coding.
`
Thank you, I will add it to the list and will mention this in the note section.
User avatar
Chris H.
Forge Moderator
 
Posts: 6320
Joined: 04 Nov 2008, 12:11
Location: Mac OS X Yosemite
Has thanked: 644 times
Been thanked: 643 times

Re: Keywords recognized by Forge

Postby Chris H. » 25 May 2010, 12:31

Another keyword has changed:

"When CARDNAME is put into a graveyard from anywhere, reveal CARDNAME and shuffle it into its owner's library instead."

keyword to

"When CARDNAME is put into a graveyard from anywhere, reveal CARDNAME and its owner shuffles his or her graveyard into his or her library."


Changes appear in Rev. 1115
User avatar
Chris H.
Forge Moderator
 
Posts: 6320
Joined: 04 Nov 2008, 12:11
Location: Mac OS X Yosemite
Has thanked: 644 times
Been thanked: 643 times

Next

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 51 guests


Who is online

In total there are 51 users online :: 0 registered, 0 hidden and 51 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 51 guests

Login Form