It is currently 26 Apr 2024, 15:22
   
Text Size

Conspiracy 2: Take the Crown Spoiler Season

Post MTG Forge Related Programming Questions Here

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

Conspiracy 2: Take the Crown Spoiler Season

Postby Marek14 » 10 Aug 2016, 16:38

Let's start this, as we have our first card today:

Kaya, Ghost Assassin
{2}{W}{B}
Planeswalker - Kaya
5
[0]: Exile Kaya, Ghost Assassin or up to one target creature. Return that card to the battlefield under its owner's control at the beginning of your next upkeep. You lose 2 life.
[-1]: Each opponent loses 2 life and you gain 2 life.
[-2]: Each opponent discards a card and you draw a card.
CN2 M

The main difficulty lies in the first ability. When you activate it, you choose zero or one targets. If you choose no targets, it seems to me that you still have the ability to decide whether to exile Kaya or the (empty) set of targets. If you choose a target, you get a choice whether to exile Kaya or the target. I presume that if Kaya leaves the battlefield in response to her first ability, you won't be able to choose to exile her, so in that case you would automatically choose the target.
Marek14
Tester
 
Posts: 2761
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 297 times

Re: Conspiracy 2: Take the Crown Spoiler Season

Postby Hanmac » 10 Aug 2016, 16:42

my current understanding:

can Target upto one: "ValidTgts$ Creature | TargetMin$ 0 | TargetMax$ 1"
but if no Target, then she does exile herself.
(so Creature OR her), and if she leaves the Battlefield before the ability resolves, and IF you targeted a creature, then yes you need to blink the creature.

my thinking is more how to get the AI working for to use it right. (i already have some thinking)
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Conspiracy 2: Take the Crown Spoiler Season

Postby friarsol » 10 Aug 2016, 16:49

Even though it's not written like one, I think the first ability is modal. If that's the case, it would be written like this:

Otherwise it's a GenericChoice with subabilities.

Charm -> ExileSelf,ExileTarget
SVar:ExileSelf:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ SetupDelayedTrigger
SVar:ExileTarget:DB$ ChangeZone | ValidTgts$ Creature | TargetMin$ 0 | TargetMax$ 1 | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ SetupDelayedTrigger
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Conspiracy 2: Take the Crown Spoiler Season

Postby Marek14 » 10 Aug 2016, 16:53

friarsol wrote:Even though it's not written like one, I think the first ability is modal. If that's the case, it would be written like this:

Otherwise it's a GenericChoice with subabilities.

Charm -> ExileSelf,ExileTarget
SVar:ExileSelf:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ SetupDelayedTrigger
SVar:ExileTarget:DB$ ChangeZone | ValidTgts$ Creature | TargetMin$ 0 | TargetMax$ 1 | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ SetupDelayedTrigger
That would have to be confirmed by a judge then. I doubt they would have a modal ability without bullet points nowadays.
Marek14
Tester
 
Posts: 2761
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 297 times

Re: Conspiracy 2: Take the Crown Spoiler Season

Postby swordshine » 11 Aug 2016, 06:31

I think GenericChoice is better. We should improve AIlogic for the first ability.
swordshine
 
Posts: 682
Joined: 11 Jul 2010, 02:37
Has thanked: 116 times
Been thanked: 87 times

Re: Conspiracy 2: Take the Crown Spoiler Season

Postby Hanmac » 11 Aug 2016, 08:00

swordshine yeah when we do Kaya i already got some ideas how to do her AI for the first ability.

===
first check if ai has life <= 5 (or better life in danger?) and can lose life.
(so the ai does not kill itself with it)

then ai should try to blink Kaya if she has LoyaltyCounter <= 2.

for the other part, we might need to improve the AI for Blink Effects or such banish & return effects.
(like it might be a good idea to blink something that is owned by ai, but controlled by a opponent)

===
i don't know where the right place is for that, but i want to add some logic into the ai, about some Life point marks it should try to avoid to hit on purpose.
like it should not activate an ability where it does pay or lose life to reach 13, when someone does control Triskaidekaphobia or something.
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Conspiracy 2: Take the Crown Spoiler Season

Postby swordshine » 11 Aug 2016, 08:17

I just write the script. It seems the GenericChoice effect cannot handle targets, so I use the Charm effect. The information in card detail panel might be a little weird cuz the spelldescription for charmeffect is formatted.
Code: Select all
Name:Kaya, Ghost Assassin
ManaCost:2 W B
Types:Planeswalker Kaya
Loyalty:5
A:AB$ Charm | Cost$ 0 | Planeswalker$ True | Choices$ DBExileSelf,DBExileTarget | SpellDescription$ Exile CARDNAME or up to one target creature. Return that card to the battlefield under its owner's control at the beginning of your next upkeep. You lose 2 life.
SVar:DBExileSelf:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Exile | SubAbility$ DBDelTrig1 | SpellDescription$ Exile CARDNAME
SVar:DBExileTarget:DB$ ChangeZone | ValidTgts$ Creature | TargetMax$ 1 | TargetMin$ 0 | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ DBDelTrig2 | SpellDescription$ Exile up to one target creature
SVar:DBDelTrig1:DB$ DelayedTrigger | Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ DBReturnSelf | TriggerDescription$ Return that card to the battlefield under its owner's control at the beginning of your next upkeep. | SubAbility$ DBLoseLife
SVar:DBReturnSelf:DB$ ChangeZone | Origin$ Exile | Defined$ CorrectedSelf | Destination$ Battlefield
SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ 2 | Defined$ You
SVar:DBDelTrig2:DB$ DelayedTrigger | Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ DBReturnTarget | TriggerDescription$ Return that card to the battlefield under its owner's control at the beginning of your next upkeep. | RememberObjects$ Remembered | SubAbility$ DBCleanup
SVar:DBReturnTarget:DB$ ChangeZone | Origin$ Exile | Defined$ DelayTriggerRemembered | Destination$ Battlefield
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | SubAbility$ DBLoseLife
A:AB$ LoseLife | Cost$ SubCounter<1/LOYALTY> | Planeswalker$ True | Defined$ Player.Opponent | LifeAmount$ 2 | SubAbility$ DBGainLife | SpellDescription$ Each opponent loses 2 life and you gain 2 life.
SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 2
A:AB$ Discard | Cost$ SubCounter<2/LOYALTY> | Planeswalker$ True | Defined$ Player.Opponent | NumCards$ 1 | Mode$ TgtChoose | SubAbility$ DBDraw | SpellDescription$ Each opponent discards a card and you draw a card.
SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ 1
SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/kaya_ghost_assassin.jpg
Oracle:[0] Exile Kaya, Ghost Assassin or up to one target creature. Return that card to the battlefield under its owner's control at the beginning of your next upkeep. You lose 2 life.\n[-1] Each opponent loses 2 life and you gain 2 life.\n[-2] Each opponent discards a card and you draw a card.
swordshine
 
Posts: 682
Joined: 11 Jul 2010, 02:37
Has thanked: 116 times
Been thanked: 87 times

Re: Conspiracy 2: Take the Crown Spoiler Season

Postby Hanmac » 15 Aug 2016, 15:14

Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Conspiracy 2: Take the Crown Spoiler Season

Postby Marek14 » 15 Aug 2016, 15:39

Analysis:

Draft cards -- like in previous set.
Conspiracies and hidden agendas return.
Double agenda -- variant of hidden agenda, names two cards.

Monarch -- a condition that has three effects:
At the beginning of your end step, draw a card.
Whenever a creature deals combat damage to you, its controller becomes the monarch.
If you leave the game, active player becomes the monarch; if you are the active player, next player in turn order becomes the monarch.

Becoming a monarch will automatically remove the monarch status from everyone else.

Council's dilemma - variant on will of the council; players vote, but the absolute numbers of votes are important, not just which option has the most votes. Card Illusion of Choice gives you control of all votes until end of turn.

Goad - ability word; creates two attack requirements on a creature, 1: to attack each combat, and 2: to attack a player other than you. Both last until your next turn.

Melee - gives a creature +1/+1 when it attacks for each opponent you attack. Doesn't count attacks to planeswalkers.
Marek14
Tester
 
Posts: 2761
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 297 times

Re: Conspiracy 2: Take the Crown Spoiler Season

Postby Hanmac » 15 Aug 2016, 15:47

Point for Goad:
If the creature can't attack a player other than you, then it must attack you or a planeswalker if it can. This is most likely when the game is down to two players.
That's important for only two players.
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Conspiracy 2: Take the Crown Spoiler Season

Postby Hanmac » 15 Aug 2016, 18:53

probably the only card that can be coded for now:

Code: Select all
Name:Domesticated Hydra
ManaCost:2 G G
Types:Creature Hydra
PT:3/3
K:Monstrosity X:X G G G
S:Mode$ Continuous | Affected$ Card.Self+IsMonstrous | AddKeyword$ Trample | Description$ As long as CARDNAME is monstrous, it has trample.
SVar:X:Count$xPaid
SVar:Picture:http://www.wizards.com/global/images/magic/general/domesticated_hydra.jpg
Oracle:{X}{G}{G}{G}: Monstrosity X (If this creature isn't monstrous, put X +1/+1 counters on it and it becomes monstrous.)\nAs long as Domesticated Hydra is monstrous, it has trample.
also for Draft cards, Conspiracies and hidden agendas ... currently the way of "Naming Cards" does not work for cards with AlternateState ... that might need to be fixed when implementing Draft & Hidden Agenda
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Conspiracy 2: Take the Crown Spoiler Season

Postby friarsol » 16 Aug 2016, 02:41

Hanmac wrote:also for Draft cards, Conspiracies and hidden agendas ... currently the way of "Naming Cards" does not work for cards with AlternateState ... that might need to be fixed when implementing Draft & Hidden Agenda
What? Hidden Agenda is already keyworded.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Conspiracy 2: Take the Crown Spoiler Season

Postby Hanmac » 16 Aug 2016, 04:27

@friarsol: ups I did see working on it, but I thought you where not finish yet.
about Hidden Agenda, is it finish enough to add more of the cards to it? i didnt noticed there where already in.

===

But the select a Card name still has problems.

that has something to do with using PaperCards to name a Card,
but that one only gives you access to only one name. For Alternate States you need both.

(maybe a better way would be to use ICardFace or ICardCharacteristics for naming a card)

maybe the thing from chooseCardName over chooseSinglePaperCard might not be the right choice to do :/

===
(You can see it in the Dev Menu too on "Add card to hand" and "Add card to play")
For the DevMenu there is also the problem that you cant choose to put it in an alternate state on the Battlefield. (for the Split & Fuse cards, the card does appear multiple times, but should not.)

===
swordshine already does add cards, so i don't want to come short:
Code: Select all
Name:Assemble the Rank and Vile
ManaCost:no cost
Types:Conspiracy
K:Hidden agenda
S:Mode$ Continuous | Affected$ Creature.YouCtrl+NamedCard | EffectZone$ Command | AddTrigger$ DiesTrigger | AddSVar$ AssembleRankVileToken | Description$ Creatrues you control with the chosen name have "When this creature dies, you may pay B. If you do, put a 2/2 black Zombie creature token onto the battlefield tapped."
SVar:DiesTrigger:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ AssembleRankVileToken | TriggerController$ TriggeredCardController | TriggerDescription$ When this creature dies, you may pay B. If you do, put a 2/2 black Zombie creature token onto the battlefield tapped.
SVar:AssembleRankToken:AB$ Token | Cost$ B | TokenAmount$ 1 | TokenName$ Zombie | TokenTypes$ Creature,Zombie | TokenOwner$ You | TokenColors$ Black | TokenPower$ 2 | TokenToughness$ 2 | TokenImage$ b 2 2 zombie cn2 | TokenTapped$ True

SVar:AgendaLogic:MostProminentCreatureInComputerDeck
Oracle:Hidden agenda (Start the game with this conspiracy face down in the command zone and secretly name a card. You may turn this conspiracy face up any time and reveal the chosen name.)\nCreatrues you control with the chosen name have "When this creature dies, you may pay B. If you do, put a 2/2 black Zombie creature token onto the battlefield tapped."
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Conspiracy 2: Take the Crown Spoiler Season

Postby friarsol » 16 Aug 2016, 12:36

Hanmac wrote:@friarsol: ups I did see working on it, but I thought you where not finish yet.
about Hidden Agenda, is it finish enough to add more of the cards to it?
Hidden Agenda isn't a new keyword. It was coded two years ago when Conspiracy first came out. The main Conspiracy cards that hadn't been finished were the "draft matters" ones.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Conspiracy 2: Take the Crown Spoiler Season

Postby Hanmac » 17 Aug 2016, 09:02

hey i am will try to implement Melee (the keyword) and the Monarch stuff.
(or does someone already begin with that?)
===
for Melee i was thinking because i am unsure if it does count stuff that was put onto the battlefield attacking, or if only declared attacks count.
hm i am unsure if Planeswalker does not count, i wanted to use "Combat.isPlayerAttacked" but that does look for Planeswalker too.
might need some other function to look if the player is Attacked.
===
Monarch seems to be a bit easier:
  • Game Attributes like "Player getMonarch()" & "Player getUpkeepMonarch()"
  • Player Property "isMonarch"
  • Player function to create the Monarch Effect (i think just a Card object with special ImageKey, similar to DetatchedCardEffect?)
  • GameAction becomeMonarch(Player) (if Player is already the Monarch, do nothing, otherwise remove the Monarch Effect from the other players, create the one for that player, and cause the trigger to run)
  • BecomeMonarchEffect that more or less simply calls the GameAction
  • TriggerBecomeMonarch where the Params has Player, PreviousPlayer, and UpkeepPlayer

plus some logic when the monarch leaves the game. (for that i need to see where it should go, probably game too)

===
Goad seems a bit complicated for me, maybe someone else that has more exp with the AttackRestriction & Conditions can check that out.
(the problem is for example that if it can not attack another player, it does need to attack you)
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Next

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 105 guests


Who is online

In total there are 105 users online :: 0 registered, 0 hidden and 105 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 105 guests

Login Form