Dominion Strategy Forum

Dominion => Dominion General Discussion => Let's Discuss ... => Topic started by: werothegreat on March 16, 2016, 09:12:10 am

Title: Let's Discuss Adventures Cards: Relic
Post by: werothegreat on March 16, 2016, 09:12:10 am
(http://wiki.dominionstrategy.com/images/d/d3/Relic.jpg)

One necklace to rule them all...

-How strong of an Attack is this?
-Do you ever want more than one?
-What other cards does it work well with?
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Roadrunner7671 on March 16, 2016, 09:18:59 am
The attack is really strong.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: J Reggie on March 16, 2016, 09:22:08 am
I've always wondered if there could be a way to make this work with Minion. It'd be hard to set up, but the attack (a random 3 cards) could be very mean.

Anyway I think the attack can serve as a good payload if you play it every turn, and might actually combo better with normal discard attacks. Drawing one fewer card each turn can really hurt a lot of strategies.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: faust on March 16, 2016, 09:30:48 am
-How strong of an Attack is this?
-Do you ever want more than one?
-What other cards does it work well with?

The attack is weaker than Minion. Minion gives your opponent a 4-card hand. Relic either gives them a delayed 4-card hand or weakens one of their draw cards. The upside is of course that you will always be able to play this attack. It stacks with other discard attacks (Militia/Relic leaves your opponent with a 3-card hand AND lets them draw one card less), which makes it pretty nasty in such situations.

You probably want more than one in most BM decks. Any engine probably wants exactly one almost always.

Combos are as specified mainly other discard attacks. It can probably do some cute tricks with Storyteller/Black Market and cards like Council Room or Margrave. But mostly it's just a card that is almost always nice to have.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Seprix on March 16, 2016, 02:12:40 pm
The $5 cost is steep for a singular Silver, but the payoff over time can work by slightly hindering your opponent.

Engine: The ideal scenario is playing this card every turn, and only having one of them. It directly competes with $5 Action cards, the effect doesn't stack, and it's not a fantastic attack either to begin with, being a delayed Urchin that gives you $2 for a cost of $5. It might not hurt to pick this card up in longer engine games with poor trashing (or no trashing at all), but in quicker games it might just be completely skipped. If a discard attack AND Relic can be played in a turn and you have the ability to do that first and consistently, your opponent is going to just flat out lose.

On BM: I'm not so sure having more than 2 of these cards is worth it in BM decks. Sure, it's great to get if you hit $5 and you don't need any more draw cards. It's not so nice to get when Gold or Province can be bought instead. If it's convenient to get it, go for it. Otherwise, I can't see buying Relic over Gold on a $6. This is a card that if you want it, you want it early. It's no good trying to stop your opponent by buying this when there are two Provinces left and there's also Duchy dancing.

As an opening on $5/$2: Doesn't seem to be worth it most of the time. It's a weaker attack, and the benefits are marginal for you.

Also, combos with Storyteller.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: markusin on March 16, 2016, 02:20:26 pm
I think this was mentioned in the Raid thread, but this card's -1 card token attack is stronger than Urchin's attack because the other player cannot choose what card they lose. It's more comparable to a Minion that doesn't cycle.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Seprix on March 16, 2016, 02:24:33 pm
I think this was mentioned in the Raid thread, but this card's -1 card token attack is stronger than Urchin's attack because the other player cannot choose what card they lose. It's more comparable to a Minion that doesn't cycle.

That is true, though it can't be that much stronger.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: eHalcyon on March 16, 2016, 02:30:29 pm
I think this was mentioned in the Raid thread, but this card's -1 card token attack is stronger than Urchin's attack because the other player cannot choose what card they lose. It's more comparable to a Minion that doesn't cycle.

That is true, though it can't be that much stronger.

Losing a random card is a lot worse than losing your worst card.  It can even be more painful than Militia.  Urchin is weak because you almost always have junk to discard.  In this case, even if you lose the worst card from your would-be 5 card hand, that junk is on top of your deck.  Instead of Minion, maybe it helps to think of it as a mini Ghost Ship where you have no control over what to put back.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Seprix on March 16, 2016, 02:31:25 pm
I think this was mentioned in the Raid thread, but this card's -1 card token attack is stronger than Urchin's attack because the other player cannot choose what card they lose. It's more comparable to a Minion that doesn't cycle.

That is true, though it can't be that much stronger.

Losing a random card is a lot worse than losing your worst card.  It can even be more painful than Militia.  Urchin is weak because you almost always have junk to discard.  In this case, even if you lose the worst card from your would-be 5 card hand, that junk is on top of your deck.  Instead of Minion, maybe it helps to think of it as a mini Ghost Ship where you have no control over what to put back.

Well, when you put it that way..
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Chris is me on March 16, 2016, 02:35:30 pm
Relic's attack is far from weak, and in many decks the value of an attack that does not cost an action is huge. Relic is good in engines, but it helps TDBM even more, as it allows these decks to significantly slow down engines. Even one less card at the beginning of an engine could be enough to derail it once or twice, which in Dominion might be all you need.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Seprix on March 16, 2016, 02:37:59 pm
Relic's attack is far from weak, and in many decks the value of an attack that does not cost an action is huge. Relic is good in engines, but it helps TDBM even more, as it allows these decks to significantly slow down engines. Even one less card at the beginning of an engine could be enough to derail it once or twice, which in Dominion might be all you need.

I should just probably put a disclaimer that I haven't played with any of these cards yet, and that these are my current impressions. I have the set, I played like one game with my friends with Adventures. I really wish Making Fun would get on that ball with Adventures.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: werothegreat on March 16, 2016, 02:40:19 pm
Relic's attack is far from weak, and in many decks the value of an attack that does not cost an action is huge. Relic is good in engines, but it helps TDBM even more, as it allows these decks to significantly slow down engines. Even one less card at the beginning of an engine could be enough to derail it once or twice, which in Dominion might be all you need.

I should just probably put a disclaimer that I haven't played with any of these cards yet, and that these are my current impressions. I have the set, I played like one game with my friends with Adventures. I really wish Making Fun would get on that ball with Adventures.

Adventures is apparently releasing on MF by the end of the month.  Just in time for Empires teasers!
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Seprix on March 16, 2016, 02:40:34 pm
Relic's attack is far from weak, and in many decks the value of an attack that does not cost an action is huge. Relic is good in engines, but it helps TDBM even more, as it allows these decks to significantly slow down engines. Even one less card at the beginning of an engine could be enough to derail it once or twice, which in Dominion might be all you need.

I should just probably put a disclaimer that I haven't played with any of these cards yet, and that these are my current impressions. I have the set, I played like one game with my friends with Adventures. I really wish Making Fun would get on that ball with Adventures.

Adventures is apparently releasing on MF by the end of the month.  Just in time for Empires teasers!

GOOD.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: jomini on March 16, 2016, 02:58:54 pm
The "-1 card attack" is one of the better discard attacks. It is appreciably harder to fish for an engine when playing a stock village does not draw a card. This can be crippling on a few turns where discarding two coppers is meaningless.

A second Relic is moderately useful for Kc/Scav/Relic if the other guy is not trying to set up a double Kc/Scav deck. I would not burn an $8, $7 and likely not a $6 on Relic, but I could see it being useful for slowing some big engine (e.g. Goons with really crappy draw for the Kc) while you ate the provinces. Another place where a second copy is helpful is in Adviser decks where the attack is your most painful thing to hit the other guy with. An even more edge-casey option is with Storyteller/Black market & Gov/Cr/Lost city/Soothesayer, I could see Storyteller/Soothesayer working well with 2 or more Relics to make the other guy lose multiple draws.

Relic works phenomenally well with Mine. It is absolutely worth it to turn Silvers into Relics with Mine when you do not need Gold's buying power.
It is also handy to tuck a Relic into a Venture deck if the other guy has not gone Venture.

Rabble makes for a brutal combo, particularly as part of a Rabble engine - 3 Green on top, draw 4 means that you either have to get insanely lucky to kick off an engine ... or you have to hope that dead drawing does something for you. Losing 1 in 5 cards is a good attack, losing 1 in 3 or 1 in 2 useful cards is stupidly strong. Even Rabble's weaker cousins - Spy, Fteller, and B-crat all amp up the -1 token and have some serious increases in firepower with a -1 Token helping out.

Relic is better than average soft counter against Fools gold and Tmaps. The odds that 1/3 cards is not a match is typically a good bit higher than 1/4 cards not being a match. Likewise, it is a nice counter to low/no draw combo decks. A Bishop golden deck cannot hit provinces (barring Plat or cantrips) off 4 cards. Other combos, like Kc/Remodel (no draw, but strong trashing) also crash and burn

For straight BM games, it is pretty helpful as it easily wrecks a lot of $8 combinations, slows the other guys cycling, and doesn't compete with gold. Particularly with non-draw BM this would likely be my goto $5 whenever I am not looking for more terminals.

At the end of the day, I would pretty much need to have a good reason not to grab a Relic in an engine (e.g. Jack, Pool). The potential to cause a whiff in the last couple of turns is just too strong once my engine is built. -1 is a delayed Minion which just all manner of good. +1 action, $2 -1 card is at least as good as Militia and certainly respectable.

Title: Re: Let's Discuss Adventures Cards: Relic
Post by: faust on March 16, 2016, 04:19:01 pm
A lot of people put Relic as "losing a random card out of five". I think more often than not, this is wrong. You already have five cards in hand when Relic hits, and most of the time, you will play some card that draws something during your turn.

Relic's attack is thus weaker as you get to play around it with some cards: Scrying Pool, Advisor etc. (How does -1 card interact with Draw-to-X by the way?) Then once you have drawn your deck, you can play some draw card to remove your token before the next cleanup.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: LastFootnote on March 16, 2016, 04:22:14 pm
Relic's attack is far from weak, and in many decks the value of an attack that does not cost an action is huge. Relic is good in engines, but it helps TDBM even more, as it allows these decks to significantly slow down engines. Even one less card at the beginning of an engine could be enough to derail it once or twice, which in Dominion might be all you need.

I should just probably put a disclaimer that I haven't played with any of these cards yet, and that these are my current impressions. I have the set, I played like one game with my friends with Adventures. I really wish Making Fun would get on that ball with Adventures.

Adventures is apparently releasing on MF by the end of the month.  Just in time for Empires teasers!

The current release date for Empires is May 18th. If that ends up being correct, we may not see teasers until early May.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: eHalcyon on March 16, 2016, 04:25:47 pm
A lot of people put Relic as "losing a random card out of five". I think more often than not, this is wrong. You already have five cards in hand when Relic hits, and most of the time, you will play some card that draws something during your turn.

Relic's attack is thus weaker as you get to play around it with some cards: Scrying Pool, Advisor etc. (How does -1 card interact with Draw-to-X by the way?) Then once you have drawn your deck, you can play some draw card to remove your token before the next cleanup.

If you play around it with cards like Scrying Pool and Advisor, the -1 card token will still apply the next time you draw.  These cards reveal and then put in hand, so they aren't affected by the -1 card token, and neither do they affect the token.  Draw-to-X removes the token though and just continues drawing.

Even when it only lowers your draw from a played card, the effect is still a random card being left on your deck instead of being put in your hand.  If you can draw your deck anyway, well that's more a measure of how powerful your deck was, not so much about how strong the attack was.  It still forces you to play a draw card to lose the token, when you could be using those actions to do something better.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: LastFootnote on March 16, 2016, 04:32:40 pm
Does "drawing" a card when you have no cards left to draw actually remove the token? I'm guessing yes, but I don't know. The wiki doesn't say.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Seprix on March 16, 2016, 04:39:23 pm
(How does -1 card interact with Draw-to-X by the way?)

I think that's simple. Library is going to be much stronger in decks with Relic, it seems. You draw to X. Remove the token, you keep drawing until you reach X.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: AdrianHealey on March 16, 2016, 04:54:15 pm
Relic is insanely strong, although it doesn't like it, is my experience. In several games with relic, the one who randomly bought relic won.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: werothegreat on March 16, 2016, 05:00:15 pm
Does "drawing" a card when you have no cards left to draw actually remove the token? I'm guessing yes, but I don't know. The wiki doesn't say.

Let me just read Donald X's mind real quick
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: AdrianHealey on March 16, 2016, 05:07:41 pm
Does "drawing" a card when you have no cards left to draw actually remove the token? I'm guessing yes, but I don't know. The wiki doesn't say.

Let me just read Donald X's mind real quick

I think it does.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Donald X. on March 16, 2016, 05:24:57 pm
Does "drawing" a card when you have no cards left to draw actually remove the token? I'm guessing yes, but I don't know. The wiki doesn't say.
Looking at the rulebook I am tentatively going with yes.

Similarly if you have to draw one card, would have to shuffle to draw it, and have the -1 Card token, you don't shuffle.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: scott_pilgrim on March 16, 2016, 06:14:47 pm
So the -1 Card token is like having a blank card that does nothing on top of your deck, that vanishes when you draw it?  That seems like it would lead to the most intuitive rulings.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Roadrunner7671 on March 16, 2016, 06:20:07 pm
So the -1 Card token is like having a blank card that does nothing on top of your deck, that vanishes when you draw it?  That seems like it would lead to the most intuitive rulings.
But cards like Scrying Pool and Catacombs...
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: scott_pilgrim on March 16, 2016, 06:26:01 pm
So the -1 Card token is like having a blank card that does nothing on top of your deck, that vanishes when you draw it?  That seems like it would lead to the most intuitive rulings.
But cards like Scrying Pool and Catacombs...

Oh yeah...it has to not be there for any non-drawing effects that could interact with the top of your deck.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: werothegreat on March 16, 2016, 08:18:22 pm
So the -1 Card token is like having a blank card that does nothing on top of your deck, that vanishes when you draw it?  That seems like it would lead to the most intuitive rulings.
But cards like Scrying Pool and Catacombs...

Oh yeah...it has to not be there for any non-drawing effects that could interact with the top of your deck.

Interestingly, choosing to "take the top 3" with Catacombs, even with an empty deck, will leave the token there, but choosing "discard, then +3 Cards" will remove it.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Seprix on March 16, 2016, 08:25:09 pm
So the -1 Card token is like having a blank card that does nothing on top of your deck, that vanishes when you draw it?  That seems like it would lead to the most intuitive rulings.
But cards like Scrying Pool and Catacombs...

Oh yeah...it has to not be there for any non-drawing effects that could interact with the top of your deck.

Interestingly, choosing to "take the top 3" with Catacombs, even with an empty deck, will leave the token there, but choosing "discard, then +3 Cards" will remove it.

Can Donald confirm?
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: LastFootnote on March 16, 2016, 08:26:53 pm
So the -1 Card token is like having a blank card that does nothing on top of your deck, that vanishes when you draw it?  That seems like it would lead to the most intuitive rulings.
But cards like Scrying Pool and Catacombs...

Oh yeah...it has to not be there for any non-drawing effects that could interact with the top of your deck.

Interestingly, choosing to "take the top 3" with Catacombs, even with an empty deck, will leave the token there, but choosing "discard, then +3 Cards" will remove it.

Can Donald confirm?

He doesn't need to; it's obviously true. In one case you're putting looked-at cards into your hand. In the other case you're drawing cards.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: drsteelhammer on March 16, 2016, 08:37:36 pm
So the -1 Card token is like having a blank card that does nothing on top of your deck, that vanishes when you draw it?  That seems like it would lead to the most intuitive rulings.
But cards like Scrying Pool and Catacombs...

Oh yeah...it has to not be there for any non-drawing effects that could interact with the top of your deck.

Interestingly, choosing to "take the top 3" with Catacombs, even with an empty deck, will leave the token there, but choosing "discard, then +3 Cards" will remove it.

Can Donald confirm?

He doesn't need to; it's obviously true. In one case you're putting looked-at cards into your hand. In the other case you're drawing cards.

I just realized the differnce between the two a few weeks ago when playing with the -1 card token. Was there a difference between them before the token was introduced?
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: GendoIkari on March 16, 2016, 11:17:56 pm
Pretty sure I know the answer to this, but... if you have 7 cards in hand with the -1 card token on deck, will playing Library remove the token? I would assume no. Though I'm not sure how this is very different from playing Smithy when your deck is empty...
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Donald X. on March 16, 2016, 11:37:02 pm
Pretty sure I know the answer to this, but... if you have 7 cards in hand with the -1 card token on deck, will playing Library remove the token? I would assume no. Though I'm not sure how this is very different from playing Smithy when your deck is empty...
No, because Library doesn't try to draw you any cards there.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: GendoIkari on March 17, 2016, 12:02:03 am
Pretty sure I know the answer to this, but... if you have 7 cards in hand with the -1 card token on deck, will playing Library remove the token? I would assume no. Though I'm not sure how this is very different from playing Smithy when your deck is empty...
No, because Library doesn't try to draw you any cards there.

I'm thinking that the empty deck ruling is inconsistent with Trader rulings. If someone plays Witch while Curses are empty, you can't reveal a Trader to get a silver (right?). This is because "would gain" means "unless you reveal this card, you really will gain". So why doesn't "would draw" mean "unless you have this token, you really will draw"?
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Marcory on March 17, 2016, 12:20:39 am
Also Loan, Venture, Adventurer, and Scout.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: LastFootnote on March 17, 2016, 12:32:14 am
Pretty sure I know the answer to this, but... if you have 7 cards in hand with the -1 card token on deck, will playing Library remove the token? I would assume no. Though I'm not sure how this is very different from playing Smithy when your deck is empty...
No, because Library doesn't try to draw you any cards there.

I'm thinking that the empty deck ruling is inconsistent with Trader rulings. If someone plays Witch while Curses are empty, you can't reveal a Trader to get a silver (right?). This is because "would gain" means "unless you reveal this card, you really will gain". So why doesn't "would draw" mean "unless you have this token, you really will draw"?

Well, as has been mentioned, you also check if your discard pile is empty before actually giving up on drawing a card. And you checked the token before you check for cards in your discard.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: GendoIkari on March 17, 2016, 12:40:22 am
Pretty sure I know the answer to this, but... if you have 7 cards in hand with the -1 card token on deck, will playing Library remove the token? I would assume no. Though I'm not sure how this is very different from playing Smithy when your deck is empty...
No, because Library doesn't try to draw you any cards there.

I'm thinking that the empty deck ruling is inconsistent with Trader rulings. If someone plays Witch while Curses are empty, you can't reveal a Trader to get a silver (right?). This is because "would gain" means "unless you reveal this card, you really will gain". So why doesn't "would draw" mean "unless you have this token, you really will draw"?

Well, as has been mentioned, you also check if your discard pile is empty before actually giving up on drawing a card. And you checked the token before you check for cards in your discard.

But the question here is what does "when you would draw a card" mean? If the ruling stands, then it must mean "when you are instructed to draw a card." Which is a fine definition, but oddly different than the one used for "when you would gain a card".

Basically I'm looking for a consistent definition of "when you would do an action". But here we have it defined as "when you are instructed to do that action" in one place, and "when that action will take place if not for this intervening clause" in another.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: chipperMDW on March 17, 2016, 06:08:22 am
Basically I'm looking for a consistent definition of "when you would do an action". But here we have it defined as "when you are instructed to do that action" in one place, and "when that action will take place if not for this intervening clause" in another.
You can always instruct someone to draw a card. Drawing a card doesn't take a "parameter." It's just a sequence of instructions you carry out that (often) end up putting a card in your hand.

So instructing someone to draw a card always tries to carry out the draw instructions, triggering the -1 Card Token.

But in order to instruct someone to gain a card (at least as far as what Trader's looking for), you must ultimately tell them a specific card to gain. Gaining a card takes a "parameter." If you can't point someone to a specific card, you can't instruct them to gain it. When Witch tells someone to "gain a Curse," that's not doing the thing Trader is looking for (yet); that's just a shorthand for "if there's a card named Curse visible in the supply, gain that card." If there are no Curses, no actual gain instruction is issued.

So instructing someone to gain a Curse when Curses are empty doesn't trigger Trader because the instructions bail out before a gain is attempted.

Here's some pseudocode that describes how it works in my head:
Code: [Select]
Witch:
for each other player P
P gains a card specified by name "Curse"

Player P gains a card specified by name N:
if there's a card C with name N visible in the supply
(currently, there can be no more than one such card)
player P gains specific card C
else
nothing happens

Player P gains specific card C:
fire a "P would gain C" event
if the event triggered something that vetoed the gain
nothing happens
else
move card C to the discard pile (I know it's not that simple)
fire a "P gains C" event

Trader:
while in P's hand, trigger on a "P would gain C" event:
if P wants to reveal Trader
reveal P's Trader
P gains a card specified by name "Silver"
veto the event
else
nothing happens
don't veto the event

--

Player P draws a card:
fire a "P would draw a card" event
if the event triggered something that vetoed the draw
nothing happens
return success (so Library et. al. will continue drawing)
else
if P's deck empty
reshuffle
if P's deck still empty
nothing happens
return failure (so Library can stop)
else
move top card of P's deck, C, into P's hand
return success (Library keeps going)

-1 Card Token:
while player P has his -1 Card Token, trigger on "P would draw a card" event:
P stops having his -1 Card Token
veto the event

EDIT: Meant to say "not that simple."
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: GendoIkari on March 17, 2016, 12:32:11 pm
Basically I'm looking for a consistent definition of "when you would do an action". But here we have it defined as "when you are instructed to do that action" in one place, and "when that action will take place if not for this intervening clause" in another.
You can always instruct someone to draw a card. Drawing a card doesn't take a "parameter." It's just a sequence of instructions you carry out that (often) end up putting a card in your hand.

So instructing someone to draw a card always tries to carry out the draw instructions, triggering the -1 Card Token.

But in order to instruct someone to gain a card (at least as far as what Trader's looking for), you must ultimately tell them a specific card to gain. Gaining a card takes a "parameter." If you can't point someone to a specific card, you can't instruct them to gain it. When Witch tells someone to "gain a Curse," that's not doing the thing Trader is looking for (yet); that's just a shorthand for "if there's a card named Curse visible in the supply, gain that card." If there are no Curses, no actual gain instruction is issued.

So instructing someone to gain a Curse when Curses are empty doesn't trigger Trader because the instructions bail out before a gain is attempted.

Here's some pseudocode that describes how it works in my head:
Code: [Select]
Witch:
for each other player P
P gains a card specified by name "Curse"

Player P gains a card specified by name N:
if there's a card C with name N visible in the supply
(currently, there can be no more than one such card)
player P gains specific card C
else
nothing happens

Player P gains specific card C:
fire a "P would gain C" event
if the event triggered something that vetoed the gain
nothing happens
else
move card C to the discard pile (I know it's that simple)
fire a "P gains C" event

Trader:
while in P's hand, trigger on a "P would gain C" event:
if P wants to reveal Trader
reveal P's Trader
P gains a card specified by name "Silver"
veto the event
else
nothing happens
don't veto the event

--

Player P draws a card:
fire a "P would draw a card" event
if the event triggered something that vetoed the draw
nothing happens
return success (so Library et. al. will continue drawing)
else
if P's deck empty
reshuffle
if P's deck still empty
nothing happens
return failure (so Library can stop)
else
move top card of P's deck, C, into P's hand
return success (Library keeps going)

-1 Card Token:
while player P has his -1 Card Token, trigger on "P would draw a card" event:
P stops having his -1 Card Token
veto the event

This is a decent explanation, and it appeals to me as a programmer. I guess I would argue that "draw a card" takes a parameter as well, which happens now to always be the top card of your deck (separately there are instructions saying that anytime you need the top card of your deck, and your deck is empty, then you shuffle your discard). But your way seems valid as well. Here's my code for how draw works:

Code: [Select]
public Card TopCard
{
    get
    {
        if (this.DrawPile.Count = 0)
        {
            this.ShuffleDiscard();
        }
        if (this.DrawPile.Count = 0)
        {
             return null;
        }
        else
        {
            return this.DrawPile[0];
        }
    }
}

public void Draw()
{
    Draw(this.TopCard);
}

public void Draw(Card cardToDraw)
{
    if (cardToDraw == null)
    {
        return;
    }

    bool drawReplaced = Game.CheckWouldDrawTriggers();
    if (!drawReplaced)
    {
        Deck.Remove(cardToDraw);
        Hand.Add(cardToDraw);
    }
}

Title: Re: Let's Discuss Adventures Cards: Relic
Post by: eHalcyon on March 17, 2016, 12:43:47 pm
This is a decent explanation, and it appeals to me as a programmer. I guess I would argue that "draw a card" takes a parameter as well, which happens now to always be the top card of your deck (separately there are instructions saying that anytime you need the top card of your deck, and your deck is empty, then you shuffle your discard). But your way seems valid as well. Here's my code for how draw works:

Code: [Select]
public Card TopCard
{
    get
    {
        if (this.DrawPile.Count = 0)
        {
            this.ShuffleDiscard();
        }
        if (this.DrawPile.Count = 0)
        {
             return null;
        }
        else
        {
            return this.DrawPile[0];
        }
    }
}

public void Draw()
{
    Draw(this.TopCard);
}

public void Draw(Card cardToDraw)
{
    if (cardToDraw == null)
    {
        return;
    }

    bool drawReplaced = Game.CheckWouldDrawTriggers();
    if (!drawReplaced)
    {
        Deck.Remove(cardToDraw);
        Hand.Add(cardToDraw);
    }
}

But if the parameter is always the top card of your deck, it really shouldn't be a parameter.  That's just making the code unnecessarily complicated.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: GendoIkari on March 17, 2016, 01:03:53 pm
This is a decent explanation, and it appeals to me as a programmer. I guess I would argue that "draw a card" takes a parameter as well, which happens now to always be the top card of your deck (separately there are instructions saying that anytime you need the top card of your deck, and your deck is empty, then you shuffle your discard). But your way seems valid as well. Here's my code for how draw works:

Code: [Select]
public Card TopCard
{
    get
    {
        if (this.DrawPile.Count = 0)
        {
            this.ShuffleDiscard();
        }
        if (this.DrawPile.Count = 0)
        {
             return null;
        }
        else
        {
            return this.DrawPile[0];
        }
    }
}

public void Draw()
{
    Draw(this.TopCard);
}

public void Draw(Card cardToDraw)
{
    if (cardToDraw == null)
    {
        return;
    }

    bool drawReplaced = Game.CheckWouldDrawTriggers();
    if (!drawReplaced)
    {
        Deck.Remove(cardToDraw);
        Hand.Add(cardToDraw);
    }
}

But if the parameter is always the top card of your deck, it really shouldn't be a parameter.  That's just making the code unnecessarily complicated.

Interestingly enough; just 10 minutes ago at my actual job, I wrote a method IsActiveOnDate(DateTime dateToCheck), which checks if an item is active for a particular date. I also wrote an IsCurrentlyActive(), which calls IsActiveOnDate, passing in the current date. Only IsCurrentlyActive is ever called at the moment. As a general rule, I always opt for never writing code that's not needed; but in cases like this it provides extra flexibility for minimal extra effort; and it follows a pattern established by our team. Draw seems similar to me; just because it defaults to "draw the top card" doesn't mean that "draw" by itself can't have other meanings.

But even if "the top card" is hardcoded into "draw", instead of being a parameter; you could still only call CheckWouldDrawTriggers() after checking that you have a top card to draw, which seems like the most logical thing to me:

Code: [Select]

public void Draw()
{
    if (this.TopCard == null)
    {
        return;
    }

    bool drawReplaced = Game.CheckWouldDrawTriggers();
    if (!drawReplaced)
    {
        Deck.Remove(this.TopCard);
        Hand.Add(this.TopCard);
    }
}
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: eHalcyon on March 17, 2016, 01:44:39 pm
Do you expect to use that method with other dates though?  If so, being ready for that is cool.  If not, it should be easy enough to refactor in the future if needed.

Personally, I think the most logical way to go would be to code the -1 token as if it were a card on top of your deck, but only when drawing.  It wouldn't count when revealing/looking or when in your hand (which is where it usually is).  I believe that would handle all the interactions properly, and it would work even if you want to first check if there is a card to draw, because it would count as one.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: GendoIkari on March 17, 2016, 02:24:01 pm
Do you expect to use that method with other dates though?  If so, being ready for that is cool.  If not, it should be easy enough to refactor in the future if needed.

My team prefers over-preparedness when it's not a big effort; I wouldn't personally have done it that way.

Quote
Personally, I think the most logical way to go would be to code the -1 token as if it were a card on top of your deck, but only when drawing.  It wouldn't count when revealing/looking or when in your hand (which is where it usually is).  I believe that would handle all the interactions properly, and it would work even if you want to first check if there is a card to draw, because it would count as one.

I think this is basically the intent/design of it. Thus why it's a square token that sits on your deck. But I was going off the literal wording on the token ("When you would draw a card").
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Moneymodel on March 18, 2016, 05:30:22 pm
I've always wondered if there could be a way to make this work with Minion. It'd be hard to set up, but the attack (a random 3 cards) could be very mean.

It's like if they played Outpost.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Limetime on March 18, 2016, 05:47:22 pm
I've always wondered if there could be a way to make this work with Minion. It'd be hard to set up, but the attack (a random 3 cards) could be very mean.

It's like if they played Outpost.
Minion, relic, spy, storyteller pin
Every one starts with pseudo 2 average card hands.
Too bad its countered by minion kind of
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Jeebus on March 21, 2016, 01:22:00 pm
I agree with GendoIkari that "when you would gain a card" and "when you would draw a card" are inconsistent with each other under the current ruling.

I don't buy the argument that Witch is not issuing a gain instruction if the Curse pile is empty. First of all, no player would ever answer "no" to the question of whether Witch told you to gain a Curse. Similarly, if you buy a Copper with Haggler in play, nobody would think that Haggler didn't tell you to gain a card. Secondly, there is no technical difference between gaining a card and drawing a card. They both reference a specific card. The fact that drawing always references the top card of your deck is incidental. "Draw a card" per the rules means "put the top card of your deck into your hand". If there is no card in your deck, it fails just like "gain a Curse from supply" fails if there is no Curse in supply.

Now, we could treat the -1 Card Token as a card that is only there when drawing. In effect this means that the token actually triggers when you are instructed to draw a card, rather than when you would draw a card (using the same definition of "when you would" as on Trader and Possession). The actual token uses the "when you would" wording though, so yeah, "when you would" is not consistent with Trader then.

Title: Re: Let's Discuss Adventures Cards: Relic
Post by: terminalCopper on March 22, 2016, 06:43:39 am
There are a lot of good ideas in this thread, but I feel like some concrete advices might be helpful.

1.) Usually, your first relic is better than gold.

You have one coin less, but your opponent loses one card. The latter is usually more important. Unless ...

2.) You might favor gold over relic, if you want to hit a certain price point ASAP, but your opponent doesn’t.

If your strategy depends a lot on when you get that Forge/Inheritance/Pathfinding, and your oppenent does something where a missing card
is not similarly crucial, look at your own purposes and get a gold.
To be honest, this advice is theory-crafted, I haven’t had this situation yet. However, it seems legit to me.

3.) In a BM-Mirror, buy one or two relics before gaining gold.
In general, Relic is 1$ less than gold for you, and for your opponent the average loss is the product of his average money Density times the probability that your Relic didn’t collide with others. So, when does your opponent lose more than you? Examples given,
if his Money Density is 1.5$ per card, your Relic needs to be non-colliding with a likelihood of 2/3;
if his Money Density is 2$ per card, your Relic needs to be non-colliding every other play.
That being said, it seems logic that a third Relic is usually weaker than a Gold, because the risk of collision is often closer to 1/2, whereas your opponents Money Density is rarely above 1.5$. Whether a second Relic is better than Gold is more complicated; I assume that simulators will tell us more about the perfect number. In doubt, a late game Relic is stronger than an early one, both because of the lower risk of collision, and the higher money density.

Btw, I have absolutely no idea if a second relic is good when your opponent goes engine. One day, logs will let us know.

4.) Get X instead of your first relic, if you prefer X over a grand market without +buy.

Grand Market nets you +2$ + buy, Relic nets +2$, „-card“ for you, „-card" for opponent. Unless there is some evidence that „-card“ is considerably more impactful either for you or for your opponent, Relics relative effect is like a Grand Market without +buy. I feel like this concept can be helpful in both directions: On the one hand, Grand Market is really good for engines, if there are costy components, and so is Relic; on the other hand, there are more powerful $5-cards in many kingdoms, e.g. Junk Attacks or strong trashers like Junk Dealer.

5.) If you plan to draw your deck, buy exactly one relic.

Simply put, the advantages of a second Relic are outweighed by its disavantages. With increasing likeliness to draw your deck, your second Relic tends to become a silver. And asides being too expensive at 5$, Silver is usually bad in a drawing engine.

6.) With Borrow on board, Relic is more like silver than grand market.

Once you’ve purchased your Relics, your opponent will use Borrow on a regular basis, which sabotages your attack.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Davio on March 22, 2016, 08:00:47 am
Pretty sure I know the answer to this, but... if you have 7 cards in hand with the -1 card token on deck, will playing Library remove the token? I would assume no. Though I'm not sure how this is very different from playing Smithy when your deck is empty...
No, because Library doesn't try to draw you any cards there.

I'm thinking that the empty deck ruling is inconsistent with Trader rulings. If someone plays Witch while Curses are empty, you can't reveal a Trader to get a silver (right?). This is because "would gain" means "unless you reveal this card, you really will gain". So why doesn't "would draw" mean "unless you have this token, you really will draw"?
There is no inconsistency here.

When you would gain a card only happens when you're about to physically grab a card from the supply and put it in your discard pile.
When you would draw only happens when you're just about to physically move the top card from your deck into your hand.

Trader and the -1 Card tokens add preconditions to things that would otherwise happen, so if your draw deck is empty, -1 Card doesn't even trigger.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Chris is me on March 22, 2016, 09:19:11 am
Pretty sure I know the answer to this, but... if you have 7 cards in hand with the -1 card token on deck, will playing Library remove the token? I would assume no. Though I'm not sure how this is very different from playing Smithy when your deck is empty...
No, because Library doesn't try to draw you any cards there.

I'm thinking that the empty deck ruling is inconsistent with Trader rulings. If someone plays Witch while Curses are empty, you can't reveal a Trader to get a silver (right?). This is because "would gain" means "unless you reveal this card, you really will gain". So why doesn't "would draw" mean "unless you have this token, you really will draw"?
There is no inconsistency here.

When you would gain a card only happens when you're about to physically grab a card from the supply and put it in your discard pile.
When you would draw only happens when you're just about to physically move the top card from your deck into your hand.

Trader and the -1 Card tokens add preconditions to things that would otherwise happen, so if your draw deck is empty, -1 Card doesn't even trigger.

The inconsistency is that he said the opposite (not with Library, but with somethin trying to draw +1 Card with an empty deck). Library doesn't instruct you to draw a card if you have a hand of >7 cards so it isn't even relevant to this discussion. I kind of prefer the ruling as is but I see where there could be some kind of inconsistency with Trader and the logic of when would gain.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: werothegreat on March 22, 2016, 09:30:37 am
Pretty sure I know the answer to this, but... if you have 7 cards in hand with the -1 card token on deck, will playing Library remove the token? I would assume no. Though I'm not sure how this is very different from playing Smithy when your deck is empty...
No, because Library doesn't try to draw you any cards there.

I'm thinking that the empty deck ruling is inconsistent with Trader rulings. If someone plays Witch while Curses are empty, you can't reveal a Trader to get a silver (right?). This is because "would gain" means "unless you reveal this card, you really will gain". So why doesn't "would draw" mean "unless you have this token, you really will draw"?
There is no inconsistency here.

When you would gain a card only happens when you're about to physically grab a card from the supply and put it in your discard pile.
When you would draw only happens when you're just about to physically move the top card from your deck into your hand.

Trader and the -1 Card tokens add preconditions to things that would otherwise happen, so if your draw deck is empty, -1 Card doesn't even trigger.

The inconsistency is that he said the opposite (not with Library, but with somethin trying to draw +1 Card with an empty deck). Library doesn't instruct you to draw a card if you have a hand of >7 cards so it isn't even relevant to this discussion. I kind of prefer the ruling as is but I see where there could be some kind of inconsistency with Trader and the logic of when would gain.

It's more like, imagine a card that puts a token on top of the Curse pile that you remove instead of gaining a Curse.  Sure, you can't reveal Trader if you just remove the token, but Witch telling you to gain a Curse should certainly remove that token even if the pile is empty.  Let's say the token being on the Curse pile does something weird, I dunno.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Jeebus on March 22, 2016, 10:35:14 am
It's more like, imagine a card that puts a token on top of the Curse pile that you remove instead of gaining a Curse.  Sure, you can't reveal Trader if you just remove the token, but Witch telling you to gain a Curse should certainly remove that token even if the pile is empty.  Let's say the token being on the Curse pile does something weird, I dunno.

You just gave another explanation of why "when would gain" on Trader and "when would draw" on the -1 Card token are inconsistent with each other.
You note yourself that the theoretical token on the Curse pile is not timed like Trader - it's not timed on "when would gain". The same is true of the -1 Card token - it's not timed on "when would draw". So yes, as I noted:

Quote
We could treat the -1 Card Token as a card that is only there when drawing. In effect this means that the token actually triggers when you are instructed to draw a card, rather than when you would draw a card (using the same definition of "when you would" as on Trader and Possession). The actual token uses the "when you would" wording though, so yeah, "when you would" is not consistent with Trader then.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: chipperMDW on March 22, 2016, 11:37:10 am
I don't think there's any actual inconsistency.  I think there are two events that are being defined differently from one another (and they're allowed to be), but they're unfortunately being expressed using similar-looking phrases that are using the words in subtly different ways, and that's making people feel like the phrases should be exact analogs to one another when they don't need to be.

All that needs to happen for things to be consistent is for the events to be explicitly defined.  I think the current rulings are consistent with these loose descriptions:

"Draw a card" is an event that "would happen" before you determine the card you're going to move (and thus before you might reshuffle).

"Gain" is an event that happens to "a card," and it only "would happen" after that card has been decided upon.


It may be worth noting that MTG has a similar view of "drawing a card" being defined as an event that can occur without there being an actual card to draw:

Quote from: http://magiccards.info/rule/614-replacement-effects.html
614.11. Some effects replace card draws. These effects are applied even if no cards could be drawn because there are no cards in the affected player’s library.

But other events in that game are defined so that they require something (e.g. an actual object or a number) to be determined before the event "would" actually occur.  If something's supposed to happen "when a creature would be put into a graveyard," then it doesn't trigger just because something tells you to sacrifice a creature when you have none; it only happens when there's an actual creature about to be moved.

There's no inconsistency in defining different kinds of events differently.  The definitions just need to be made apparent somewhere (via rulings, for example).


I guess I would argue that "draw a card" takes a parameter as well, which happens now to always be the top card of your deck (separately there are instructions saying that anytime you need the top card of your deck, and your deck is empty, then you shuffle your discard). But your way seems valid as well. Here's my code for how draw works:

Code: [Select]
public Card TopCard
{
    get
    {
        if (this.DrawPile.Count = 0)
        {
            this.ShuffleDiscard();
        }
        if (this.DrawPile.Count = 0)
        {
             return null;
        }
        else
        {
            return this.DrawPile[0];
        }
    }
}

public void Draw()
{
    Draw(this.TopCard);
}

public void Draw(Card cardToDraw)
{
    if (cardToDraw == null)
    {
        return;
    }

    bool drawReplaced = Game.CheckWouldDrawTriggers();
    if (!drawReplaced)
    {
        Deck.Remove(cardToDraw);
        Hand.Add(cardToDraw);
    }
}

If I were going to generalize the draw operation, say to support a card that has you draw from the bottom of your deck, I don't think I would call TopCard and pass the result to Draw.  I think I would instead pass the TopCard method itself to Draw (as a callback of some sort) and let Draw call it as appropriate.  Then, when the need arose, I could also pass it BottomCard sometimes.

In other words, I'd parameterize Draw with a behavior for determining a card, not with a pre-determined card. Mostly just because that seems more in line with how I'd expect drawing to work (and how the current rulings suggest it works).
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: markusin on March 22, 2016, 11:54:26 am
If I were going to generalize the draw operation, say to support a card that has you draw from the bottom of your deck, I don't think I would call TopCard and pass the result to Draw.  I think I would instead pass the TopCard method itself to Draw (as a callback of some sort) and let Draw call it as appropriate.  Then, when the need arose, I could also pass it BottomCard sometimes.

In other words, I'd parameterize Draw with a behavior for determining a card, not with a pre-determined card. Mostly just because that seems more in line with how I'd expect drawing to work (and how the current rulings suggest it works).

And you would be able to pass MinusCardToken instead of TopCard whenever appropriate.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: chipperMDW on March 22, 2016, 12:05:43 pm
And you would be able to pass MinusCardToken instead of TopCard whenever appropriate.

Actually, I'd attach that functionality to an event that happens before the parameterized behavior is invoked.  Removing the card token is a thing that would happen instead of the parameterized behavior.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Jeebus on March 22, 2016, 12:14:39 pm
I don't think there's any actual inconsistency.  I think there are two events that are being defined differently from one another (and they're allowed to be), but they're unfortunately being expressed using similar-looking phrases that are using the words in subtly different ways, and that's making people feel like the phrases should be exact analogs to one another when they don't need to be.

There is inconsistency in the use of "when you would", and that has been my point and I believe GendoIkari's point that I agreed with.
"When you would", as you note, is defined differently for "when you would gain" and "when you would draw". Using "when you would do something" in "subtly different ways" for two different effects that both move a card (or not) is inconsistent.

Certainly it's allowed to have the two terms defined inconsistently with each other in the rules. You could for instance have a term "pull" in a game, and have two different piles of tokens, where "pull a blue token" means to draw a blue token at random, and "pull a red token" means to look through the pile of red tokens and pick one. This is allowed, in the sense that it's consistent taken as a whole. But it's using "pull a token from a pile" in an inconsistent way.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Jeebus on March 22, 2016, 12:28:51 pm
"Draw a card" is an event that "would happen" before you determine the card you're going to move (and thus before you might reshuffle).

"Gain" is an event that happens to "a card," and it only "would happen" after that card has been decided upon.

Another thought about this. This is theoretical, but maybe useful. Imagine a card like "while this is in play, when you would draw a card, instead, +$1". Let's say you have this in play and play a Smithy with no cards left in your deck. Do you get +$3? According to your definiton, yes. But that's far from intuitive, and I would think that would be a pretty weird ruling.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: chipperMDW on March 22, 2016, 02:32:55 pm
"When you would", as you note, is defined differently for "when you would gain" and "when you would draw".

That's not quite what I said.  I think the "when you would" part means exactly the same thing in both cases.  Something like: "if an event matching {X} is about to occur."  The things that differ are the definitions for the events that are specified by X.

In one case, X is an event of type "Draw." Events of type "Draw" carry information about the player doing the drawing, but they don't carry any information about what card they're going to pick, or whether they're going to be successful. They are fired before that information is available. Instructions that tell a player to draw a card say things like "+N Cards" or "player P draws N cards," and ultimately result in N "Draw" events for that player.

In the other case, X is an event of type "Gain." Events of type "Gain" carry information about what card they're going to gain (something like Possession might need to act on it), as well as the player who's going to be doing the gaining. They can't be fired until all that information is available. Instructions that tell you to gain something usually use higher-level language that describes how to determine the card(s) to be gained, and ultimately result in one (or more) "Gain" events for the specific card(s) decided upon.

That's not inconsistent. That's just different words meaning different things.

The confusing thing is the fact that two similar-looking phrase structures ("when you would {draw,gain} a card") are really specifying events with entirely different structures. But that's more like ambiguity than inconsistency.


Another thought about this. This is theoretical, but maybe useful. Imagine a card like "while this is in play, when you would draw a card, instead, +$1". Let's say you have this in play and play a Smithy with no cards left in your deck. Do you get +$3? According to your definiton, yes. But that's far from intuitive, and I would think that would be a pretty weird ruling.

I would absolutely expect you to get +$3 in that case. (Unless you had your -1 Card Token, in which case I'd expect you to be able to decide between "+$1" and "remove token" each time until you choose to remove it, so you could choose to end up getting +$2 and getting rid of the token.)
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Davio on March 22, 2016, 03:02:24 pm
I guess there's an ordering of things?

Otherwise, there could be two things trying to happen at the same time when you would draw with an empty draw deck:
- Shuffle your discard pile
- Remove the -1 Card token

You get to choose the order.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Jeebus on March 22, 2016, 03:25:29 pm
That's not quite what I said.  I think the "when you would" part means exactly the same thing in both cases.

You did write this:
they're unfortunately being expressed using similar-looking phrases that are using the words in subtly different ways, and that's making people feel like the phrases should be exact analogs to one another when they don't need to be.
Aren't you referring to "when you would draw/gain" here? And saying those phrases use the words in subtly different ways?

In one case, X is an event of type "Draw." Events of type "Draw" carry information about the player doing the drawing, but they don't carry any information about what card they're going to pick, or whether they're going to be successful. They are fired before that information is available.

I don't see any basis for that definition of "draw". And I already addressed that argument in this post (http://forum.dominionstrategy.com/index.php?topic=14969.msg580743#msg580743): "Draw a card" per the rules means "put the top card of your deck into your hand". If there is no card in your deck, it fails just like "gain a Curse from supply" fails if there is no Curse in supply.
Actually from the rulebook: "the player immediately draws X number of cards from his Deck." (Implicitly it means from the top of your deck, I'm sure you agree.) So "draw" carries information about what card to draw.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: chipperMDW on March 22, 2016, 03:48:12 pm
I guess there's an ordering of things?

Otherwise, there could be two things trying to happen at the same time when you would draw with an empty draw deck:
- Shuffle your discard pile
- Remove the -1 Card token

You get to choose the order.

The reshuffle doesn't happen "when you would draw." The reshuffle happens more like "when you would refer to a card in your deck and it's empty." Under current rulings, drawing a card would first remove the -1 Card Token if it's there, and otherwise would refer to "the top card of your deck" (maybe triggering a reshuffle) before moving it (if such a card ended up existing).

Looking at or revealing cards from your deck also "would refer to a card in your deck." So would Pearl Diver.

That's a good example of an event that might be described using the words "a card," but can't actually refer to a specific card.

EDIT: Or maybe you could think of it as "would refer to a position in your deck."


That's not quite what I said.  I think the "when you would" part means exactly the same thing in both cases.

You did write this:
they're unfortunately being expressed using similar-looking phrases that are using the words in subtly different ways, and that's making people feel like the phrases should be exact analogs to one another when they don't need to be.
Aren't you referring to "when you would draw/gain" here? And saying those phrases use the words in subtly different ways?

I'm referring specifically to the "gain a card" and the "draw a card" parts of those phrases. That one means "gain(a certain card)," and that one means "draw_a_card" (because that's a friendlier-looking description than just "draw.")

In one case, X is an event of type "Draw." Events of type "Draw" carry information about the player doing the drawing, but they don't carry any information about what card they're going to pick, or whether they're going to be successful. They are fired before that information is available.

I don't see any basis for that definition of "draw". And I already addressed that argument in this post (http://forum.dominionstrategy.com/index.php?topic=14969.msg580743#msg580743): "Draw a card" per the rules means "put the top card of your deck into your hand". If there is no card in your deck, it fails just like "gain a Curse from supply" fails if there is no Curse in supply.
Actually from the rulebook: "the player immediately draws X number of cards from his Deck." (Implicitly it means from the top of your deck, I'm sure you agree.) So "draw" carries information about what card to draw.

The rulebook could be interpreted the way you're suggesting. It could also be interpreted as saying that "from the top of your deck" is "hardcoded" into the idea of drawing. It could also be interpreted as having draw carry with it instructions for how to decide which card to draw, and not carry a specific card with it.

I'm saying that the definition I gave (or a similar one) --- where Draw events are fired as soon as the instruction is given and the determination of which card to act on is made later, "inside" the draw operation --- seems like the definition that has been used to determine the current rulings.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Jeebus on March 22, 2016, 04:57:41 pm
I'm saying that the definition I gave (or a similar one) --- where Draw events are fired as soon as the instruction is given and the determination of which card to act on is made later, "inside" the draw operation --- seems like the definition that has been used to determine the current rulings.

Your definition could be the one that has been used to determine the current ruling.

It could also (and I think this is the case) be the definition given by me and others in this thread: that the token is to be treated as a card when you are instructed to draw. In that case my hypothetical example would not produce +$3 when playing Smithy. Also in that case, "when you would" is actually inconsistently interpreted.

Under your definition, I agree that "when you would" is not inconsistently interpreted.

So let me get this straight, that is, your definition.

A "gain" effect has a parameter for which card to draw (fixed: gain), but doesn't issue a gain command right away. First it carries out an "if", checking if the card is available. If it is, it issues a gain command, and "when would gain" effects are triggered.

A "draw" effect has no parameter, but the card is hardcoded into the effect. Somehow, that means that it doesn't first carry out an "if" checking if that card is available, although it would be impossible to actually draw it if it weren't. It just goes straight into the "draw the top card from your deck" command, and "when would draw" effects are triggered even if the card is not available.

I'm sorry, but this makes no sense to me.

There is simply no basis to assume that "draw" doesn't reference a card, while "gain" does. You need to define "gain" in a non-common sense way, saying for instance that Remake doesn't instruct you to gain a $1 card when you trash a Copper (given no Poor House). There is no basis anywhere for assuming that there is an extra "if" baked into "gain" but not into "draw". Your only reason for making these assumptions is to make it fit your model of how things could work with no inconsistency, not because the assumptions are reasonable.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Donald X. on March 22, 2016, 06:11:33 pm
There is only so much room on a token. The -1 Card token reduces how many cards you draw when told to draw cards. It doesn't put it like that on the token but that's what it does. It seems straightforward; I don't feel like it's baffling people.

Trader meanwhile was a mistake. It tries to catch an event at the point at which the only thing that could stop it from happening is Trader (then it turns out there are two of these things, he says for people who were hoping to speak up about Possession). If I had it to do again, and didn't just not do that reaction concept at all, I would probably go with something like "when you gain a card that isn't Silver, you may trash it, to gain a Silver." There were times when Trader was more like that; I guessed poorly as to what would be simplest.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: werothegreat on March 22, 2016, 06:58:23 pm
There is only so much room on a token. The -1 Card token reduces how many cards you draw when told to draw cards. It doesn't put it like that on the token but that's what it does. It seems straightforward; I don't feel like it's baffling people.

Trader meanwhile was a mistake. It tries to catch an event at the point at which the only thing that could stop it from happening is Trader (then it turns out there are two of these things, he says for people who were hoping to speak up about Possession). If I had it to do again, and didn't just not do that reaction concept at all, I would probably go with something like "when you gain a card that isn't Silver, you may trash it, to gain a Silver." There were times when Trader was more like that; I guessed poorly as to what would be simplest.

Did anyone ask about Ironworks/Possession ever before Trader came out?
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Donald X. on March 22, 2016, 07:01:21 pm
Did anyone ask about Ironworks/Possession ever before Trader came out?
No.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: chipperMDW on March 22, 2016, 07:06:20 pm
So let me get this straight, that is, your definition.

A "gain" effect has a parameter for which card to draw, but doesn't issue a gain command right away. First it carries out an "if", checking if the card is available. If it is, it issues a gain command, and "when would gain" effects are triggered.

That doesn't sound like my definition for gain. I'm saying the gain instruction that takes a parameter for which specific card to gain absolutely does fire a "gain" event right away. That's the very first thing it does. The thing that carries out an "if" is a higher-level instruction that does not have a parameter for which specific card to gain. Its parameters would be a set of conditions deciding which cards are eligible to select (or maybe there's just one eligible and that's it).

You're probably saying that's an arbitrary split. Well, yeah, but it's a split that corresponds with what the rulings have always been.


There is no basis anywhere for assuming that there is an extra "if" baked into "gain" but not into "draw". Your only reason for making these assumptions is to make it fit your model of how things could work with no inconsistency, not because the assumptions are reasonable.

They seem perfectly reasonable to me. Like I mentioned, this wouldn't be the first card game where things worked roughly the way I described.

But you're right; I'm just giving one set of definitions that match up with the what the rulings say and try to avoid inconsistency. I thought that's more or less what Gendo was looking for.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Jeebus on March 22, 2016, 07:21:41 pm
I'm confused. You seem to be contradicting this:

But in order to instruct someone to gain a card (at least as far as what Trader's looking for), you must ultimately tell them a specific card to gain. Gaining a card takes a "parameter." If you can't point someone to a specific card, you can't instruct them to gain it. When Witch tells someone to "gain a Curse," that's not doing the thing Trader is looking for (yet); that's just a shorthand for "if there's a card named Curse visible in the supply, gain that card." If there are no Curses, no actual gain instruction is issued.

So instructing someone to gain a Curse when Curses are empty doesn't trigger Trader because the instructions bail out before a gain is attempted.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Jeebus on March 22, 2016, 07:32:33 pm
There is only so much room on a token. The -1 Card token reduces how many cards you draw when told to draw cards. It doesn't put it like that on the token but that's what it does. It seems straightforward; I don't feel like it's baffling people.

Well, when there's no cards left in your deck or discard pile, I can see players being unsure of whether to remove the token or not.

Another question: I take it that when the token is on an empty deck, but you have cards in your discard, you remove the token without shuffling? Is this stated anywhere?
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: werothegreat on March 22, 2016, 08:00:34 pm
Another question: I take it that when the token is on an empty deck, but you have cards in your discard, you remove the token without shuffling? Is this stated anywhere?

That would be my assumption.  You would draw a card, but you don't.

With your seeing an inconsistency between "would gain" and would draw": I think this is where the whole empty pile being on the blue dog article comes in.  When your opponent plays Witch, you *would* gain a Curse.  That should be enough to trigger Trader, but the pile says "nope, I'm empty" - it's basically saying "When you would gain a card from here, if I'm empty, don't."  And this happens before other "would gain" triggers.  Whereas if your deck and discard are empty, you still try to draw a card if you play, say, Smithy - you just fail.  But if the -1 Card token is there, there's a "would draw" thing that happens before you actually "when draw".  Maybe coming up against an empty deck/discard is a "when draw" rather than a "would draw" trigger?
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: chipperMDW on March 22, 2016, 08:31:06 pm
I'm confused. You seem to be contradicting this:

It's the exact same thing I've been saying all along. I don't know what part you think contradicts. I guess I can annotate my statements or something...

Ok, let me name a couple of my pseudocode functions, then I'll put my annotations in bold inside the quotes I think you're talking about.

GainSpecificCard
Code: [Select]
Player P gains specific card C:
fire a "P would gain C" event
if the event triggered something that vetoed the gain
nothing happens
else
move card C to the discard pile (I know it's not that simple)
fire a "P gains C" event

GainCardMatchingName
Code: [Select]
Player P gains a card specified by name N:
if there's a card C with name N visible in the supply
(currently, there can be no more than one such card)
player P gains specific card C
else
nothing happens

Quote
But in order to instruct someone to gain a card   In order to call GainSpecificCard...

(at least as far as what Trader's looking for),   (GainSpecificCard is the thing that fires a "p would gain c" event)

you must ultimately tell them a specific card to gain.   GainSpecificCard takes a card parameter, so you can't call it without that parameter

Gaining a card takes a "parameter."   Ditto.

If you can't point someone to a specific card, you can't instruct them to gain it.   More ditto.

When Witch tells someone to "gain a Curse,"   The Witch card has this text. That corresponds to calling GainCardMatchingName with a "Curse" parameter.

that's not doing the thing Trader is looking for   Trader is looking for the event that gets fired in GainSpecificCard. Witch is directly calling GainCardMatchingName, which does not fire that event

(yet);   Of course, GainCardMatchingName can wind up calling GainSpecificCard, which will fire the event.

that's just a shorthand for "if there's a card named Curse visible in the supply, gain that card."   That's, like, the entirety of GainCardMatchingName. EDIT: It performs the gain of the specific card decided upon by calling the lower-level GainSpecificCard, passing it that specific card.

If there are no Curses, no actual gain instruction is issued.   If there are no Curses, the "else" branch of GainCardMatchingName gets taken. Nothing happens there.

So instructing someone to gain a Curse when Curses are empty doesn't trigger Trader because the instructions bail out before a gain is attempted.   If GainCardMatchingName never calls GainSpecificCard because it took the "else" branch, then no event is ever fired because that only happens in GainSpecificCard.

Quote
I'm saying the gain instruction that takes a parameter for which specific card to gain   That's GainSpecificCard. It's the one that takes that parameter.

absolutely does fire a "gain" event right away. That's the very first thing it does.   That's the first line in GainSpecificCard.

The thing that carries out an "if"   GainCardMatchingName would be an example of such a function. It has the "if" statement that bails out if it can't find any Curses.

is a higher-level instruction that does not have a parameter for which specific card to gain.   It doesn't. It has a "name" parameter. You can imagine other high-level functions that might take a combination of cost ranges and types as parameters.

Its parameters would be a set of conditions deciding which cards are eligible to select   In this case, the set of conditions are "Cards visible in the Supply named Curse."

(or maybe there's just one eligible and that's it).   If there's more than one Curse visible in the Supply, something has gone wrong.

EDIT: On further reflection, I really can't define "gain" without recognizing the high-level part that doesn't fire an event and the low-level part that does; it's not an arbitrary split. If we were just talking about Trader, it might not matter much, but since we have Possession, we know that "would gain" events can actually operate on the card you would have gained, so you really can't fire a "would gain" event before you have a specific card to talk about gaining. So my definition for gain is not "non-common sense" at all.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: chipperMDW on March 22, 2016, 08:34:22 pm
Another question: I take it that when the token is on an empty deck, but you have cards in your discard, you remove the token without shuffling? Is this stated anywhere?

Correct. That was stated earlier in this thread:
Similarly if you have to draw one card, would have to shuffle to draw it, and have the -1 Card token, you don't shuffle.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Jeebus on March 23, 2016, 01:00:53 am
So in my previous post I was referring to your definition of a "gain" instruction, like on Witch: "gains a Curse". That is, this is your high-level instruction, and it doesn't issue a gain command right away, unlike your high-level instruction for draw. That's the distinction that I don't think there is any basis for.

There might be some misconceptions here.

All gain instructions that let you choose a card to gain, have an implicit "choose" instruction first. The choose part is not really part of the gain instruction. (I can point you to the relevant ruling on this.) So all actual gain instructions have an explicit card as a parameter. Workshop really says: "Choose a card costing up to $4. Gain it." But Witch just says: "Gain a Curse" (for each other player).

You're right that a gain instruction first fires when-would-gain, before the actual gain. But that doesn't mean that the high-level part doesn't have the card as a parameter. Actually it does. A gain instruction always has a specific card in mind. Workshop doesn't let you choose an empty pile, because you have to choose a specific card, not a pile. (I can point you to the relevant ruling on this too.) So the high-level gain instruction, which comes after the choose instruction, will have a specific card as a parameter. For Witch it's the top Curse card in the Curse pile. For Workshop it's the specific chosen card. For Thief it's the specific trashed card.

Similarly, a draw instruction references the top card of the player's deck. So as far as I see, there is no difference between the gain and the draw instructions. Logically, they both first check if the specified card exists in the specified location; then potentially fire "when-would" abilities; then potentially move the card and fire "when" abilities (currently not existing for draw).
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Davio on March 23, 2016, 03:11:08 am
I must admit I do love these nitpicky discussions about things that aren't really an issue in practice.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: chipperMDW on March 23, 2016, 03:54:34 am
(Ugh. Apologies for the long posts.)

So in my previous post I was referring to your definition of a "gain" instruction, like on Witch: "gains a Curse". That is, this is your high-level instruction, and it doesn't issue a gain command right away, unlike your high-level instruction for draw. That's the distinction that I don't think there is any basis for.
Well, like you said earlier, I'm just making definitions that do what the rulings say. My only basis is the rulings that exist.

Quote
All gain instructions that let you choose a card to gain, have an implicit "choose" instruction first. The choose part is not really part of the gain instruction. (I can point you to the relevant ruling on this.)
Agreed. The implicit "choose" would be in the high-level function. For example, there might be GainCardMatchingCostRange function that Workshop could use, and it would include a choice.

I also agree that the "choose" part is not really part of the gain instruction. That's one of the points I've been trying to get across: the low-level gain function is the only thing that counts for things like Trader. The high-level function might use the word "gain," but it encompasses things that happen before really gaining (namely, the determination of the specific card to gain), and it might fail to lead to an actual gain in come circumstances.

Quote
So all actual gain instructions have an explicit card as a parameter.
Yes!

Quote
Workshop really says: "Choose a card costing up to $4. Gain it."
Exactly.

Quote
But Witch just says: "Gain a Curse" (for each other player).
I'm not sure what distinction you're making here. I'd say that it "really" says something like: "Select a/the Curse visible in the Supply. Gain it." Either way, I hope we agree that "gain a curse" ultimately means you do an actual (Trader-visible) gain on the specific card that's the Curse on top of the Curse pile, unless the Curse pile is empty, in which case no (Trader-visible) gain occurs.

Quote
You're right that a gain instruction first fires when-would-gain, before the actual gain. But that doesn't mean that the high-level part doesn't have the card as a parameter. Actually it does.
I disagree.

We already agree that there's an implicit "choose" that's not part of the actual gain. The high-level instruction is the thing that does that choosing. (That's the entire reason I make the distinction in the first place.) You can't pass the specific card that got chosen... as a parameter to the thing that's going to choose it!

What the high-level instruction has as parameters are the criteria for selecting specific card.

Here's a high-level instruction that Workshop might use. Its parameters are a min cost and max cost. Workshop would call it with MIN = $0 and MAX = $4:

GainCardMatchingCostRange
Code: [Select]
Player P gains a card with (MIN <= cost <= MAX):
find all cards visible in the supply with (MIN <= cost <= MAX)
if any cards were found:
player P chooses a specific card C from them
player P gains specific card C # using GainSpecificCard(P, C)
else
nothing happens

Quote
A gain instruction always has a specific card in mind. Workshop doesn't let you choose an empty pile, because you have to choose a specific card, not a pile. (I can point you to the relevant ruling on this too.)
We agree on this. That's consistent with the high-level instruction I just said Workshop might use. You choose a card from among the ones visible in the supply that are in the given price range. There's no way to select an empty pile; there's no way to select a pile at all.

Quote
So the high-level gain instruction, which comes after the choose instruction,
No. The thing I'm calling the high-level instruction is the implicit choose instruction.

Quote
will have a specific card as a parameter.
No. Again, you can't pass the chosen card as a parameter before it's been chosen.

Quote
For Witch it's the top Curse card in the Curse pile. For Workshop it's the specific chosen card. For Thief it's the specific trashed card.
Correct, correct, and correct. But they don't get passed to the high-level instruction; they get passed to the low-level instruction, which is the one that takes a specific card as a parameter.


Quote
Similarly, a draw instruction references the top card of the player's deck.
It references it internally, yes. Once it exists (and assuming it ever does exist).

But the draw instruction doesn't get passed the specific card as a parameter (i.e. the specific card doesn't get chosen by the thing that issued the draw instruction). That specific card may not even exist (rather, may not be known) at the time you begin the draw instruction. The thing that tells you to "draw a card" can't say "draw(this here card on top of your deck)" because your deck might be empty at that point.

Rather, the thing that says "draw a card" simply says "draw_a_card." Or "draw." It doesn't know or care what card is ultimately going to get moved. The draw instruction is the thing that takes care of determining the specific card (if any) and moving it.

Now, ok, you could say that "draw_a_card" is analogous to the high-level gain instructions that determine a specific card. And you could say that there's a corresponding low-level draw instruction that takes a specific card as a parameter and moves it into your hand. You'd call that low-level instruction after the high-level draw instruction determined a specific card (after maybe reshuffling). In the case of a -1 Card Token, the low-level draw instruction would never happen.

But, unlike with gaining, making such a distinction with drawing doesn't really buy you anything. With gaining, you make the distinction because the rulings suggest that events don't occur until the low-level, "specific-card" gain happens. But the rulings for the token suggest that events occur on the high-level "draw_a_card" instruction at a time when it doesn't yet know what specific card it's going to draw.

So yeah, you can split off a lower-level draw instruction that operates on specific card by moving it, but it won't trigger any events, so there's no point in making that distinction.

I guess you could change the rules to trigger events off such a low-level draw instruction, but that'd be a different game. You'd have to reshuffle before removing the token, and you couldn't get rid of the token by drawing when your deck and discard were empty.

Quote
So as far as I see, there is no difference between the gain and the draw instructions. Logically, they both first check if the specified card exists in the specified location;
Yes, but gain checks if the specified card exists up in the implicit "choose," which we seemed to agree is not actually part of a (Trader-visible) gain instruction. By contrast, draw checks if the specified card exists as part of the (-1-Card-Token-visible) "draw_a_card" instruction.

Why are they different? Well, "would gains" sorta have to fire on the low-level instruction, after an implicit choosing of a specific card. Otherwise, you couldn't have cards like Possession that manipulate the chosen card you "would have gained." And Trader would let you gain Sivers when you got Witched when the Curses were out, which wouldn't make any sense.

Drawing, I suppose, could have been defined either way. And it didn't really matter until Adventures. But if you had events on a low-level draw instruction, you'd have weird token interactions described above. And your hypothetical card wouldn't gain you $ on an empty deck. I think that would just seem wrong. The token-removal and the hypothetical $ shouldn't replace a card; they should replace a draw.

Quote
then potentially fire "when-would" abilities;
It happens in that order for gain.

But if draw fired these events after it made the checks for existence, that wouldn't fit with the rulings we have.

So, to match with current rulings, draw has to fire "when-would" abilities before it starts doing any reshuffling or checking for existence of cards. All that stuff is part of drawing.

Quote
then potentially move the card and fire "when" abilities (currently not existing for draw).
Right.


EDIT:
Look, say I rename GainCardMatchingName and GainCardMatchingCostRange to FindCardMatchingNameThenGainIt and ChooseCardInCostRangeThenGainIt.  Is that what you're getting hung up on?  Does that make it clear that I'm saying those high-level instructions are not part of the actual gain, and that the low-level function (which takes a specific card determined by a higher-level function) is the only thing that's doing an actual gain?

Because I'm pretty sure we're defining gain the exact same way, and we're just using different terminology:

You say Workshop's instruction is really an implicit choose followed by an actual gain of the chosen card.  I say Workshop performs a high-level instruction that first has a player choose a card and then performs a low-level gain instruction on that specific card.

(I believe) you say Witch determines a specific Curse card (the one on top of the pile), then performs an actual gain on that card.  I say Witch performs a high-level instruction that first determines a specific card in the supply and then performs a low-level gain instruction on that specific card.

You say the choose part is not really part of the gain instruction.  I say the high-level instruction itself doesn't count as a gain as far as "would gain" and "did gain" events are concerned; only the low-level instruction fires those events.

I mean, I really don't see what's different to the point that you think I have misconceptions about how gaining works.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Jeebus on March 23, 2016, 02:40:03 pm
No. Again, you can't pass the chosen card as a parameter before it's been chosen.
You keep saying this, in different ways, but you fail to take into account that in my model, which was obviously the one I was talking about, the "choose" instruction comes first, so the card is already specified.

Quote
I'm not sure what distinction you're making here. I'd say that it "really" says something like: "Select a/the Curse visible in the Supply. Gain it."
You not being sure about that distinction, is the reason you fail to understand my point. Only Workshop lets you choose. Witch already knows exactly which card to gain - the top card of the Curse pile. That's the instruction, independently of whether or not that card actually exists. Compare it with Upgrade telling you to gain a card based on the trashed card. In this case the specified card is the trashed card, independently of whether or not that card actually exists. That's the instruction. Then, when carrying it out, you check whether the card exists. If it doesn't, the instruction fails.

Quote
We already agree that there's an implicit "choose" that's not part of the actual gain. The high-level instruction is the thing that does that choosing. (That's the entire reason I make the distinction in the first place.)
I actually said that the "choose" is not part of the actual gain, it's a separate (implicit) instruction that comes first. There is no choosing in Witch. Anyway, that's not the entire reason you made the distinction. We need the distinction because of "when-would-gain" coming first. And I agree with that part.

This is how I see gain and draw behaving. (Note: Just like "gain 2 Coppers" is actually two gain instructions, "Draw two cards" is two draw instructions.)

Witch:
Code: [Select]
Draw {you, the top card, your deck}
Draw {you, the top card, your deck}
for each other player, Gain {the player, the top Curse card, the supply}

Gain {Player, Card, FromLocation}
Code: [Select]
if Card is in FromLocation
fire When-would-gain abilities
if Card is in FromLocation and gain was not prevented
move Card from FromLocation to Player's discard pile
fire When-gain abilities
else
nothing happens
else
nothing happens

Draw {Player, Card, FromLocation}
Code: [Select]
if Card is in FromLocation
fire When-would-draw abilities
if Card is in FromLocation and draw was not prevented
move Card from FromLocation to Player's hand
fire When-draw abilities (don't exist in the game)
else
nothing happens
else
nothing happens

Alternatively we can imagine the card and location hardcoded into Draw:

Draw {Player}
Code: [Select]
Card = the top card
FromLocation = Player's deck
(etc...)
And the instruction on Witch would be: Draw {the player}

We can also have "choose" be part of the Gain function, the result is the same. We can invent an instruction in the Gain function that is called first and which specifies a card. If it's Workshop, it lets the player choose; if it's Witch, it just says that it's the top Curse of the pile. In both cases it can end up that the card will not exist. So we need to check that first in any case, in the Gain function, before getting to when-would-gain. It would be the same for Draw (except that for Draw there is no "choose" (like Workshop), just specify (like Witch)).

Quote
Yes, but gain checks if the specified card exists up in the implicit "choose," which we seemed to agree is not actually part of a (Trader-visible) gain instruction. By contrast, draw checks if the specified card exists as part of the (-1-Card-Token-visible) "draw_a_card" instruction.
"Choose" (on Workshop) can end up referring to no card. So can the gain instruction on Witch - which I do not call "choose" but even if you do, it's the same (see above). So can a draw instruction, which is analogous to the gain instruction on Witch. It references a card in a specific location, which can end up not existing.

What I'm saying is that a gain instruction that references a card that is supposed to be in a specific location (the top of the Curse pile) is the same as a draw instruction that references a card that is supposed to be in a specific location (the top of your deck).

You say that you are making definitions to fit the ruling. I agree. I'm saying that there is no reason to define gain and draw your way, other than to shoehorn it into the ruling without having to acknowledge that "when you would" is defined inconsistently. Yes, gain had to be defined with having a when-would-gain first, because of Trader, but I don't view this definition of gain as just an arbitrary ruling because of when-would-gain abilities, I view it as a definition of how events work in Dominion. We now know that gain checks if the card exists before doing when-would, but that didn't come into existence because of Trader, Trader just made it known. So we must assume that all events in Dominion work the same way. (You actually say that it could work that way for draw, it's just not necessary. Well, it's necessary for events in Dominion to work the same way, which to me is the default assumption not knowing anything to the contrary.)

Quote
Drawing, I suppose, could have been defined either way. And it didn't really matter until Adventures. But if you had events on a low-level draw instruction, you'd have weird token interactions described above. And your hypothetical card wouldn't gain you $ on an empty deck. I think that would just seem wrong.

To me the opposite would seem wrong, and non-intuitive, especially knowing that when-would-gain doesn't do anything on an empty pile. And actually i don't think it would get you $ on an empty deck, as I mentioned. I don't think when-would-draw would be defined that way. I think this is just a matter of the -1 Card token having an unfortunate shorthand text, while really it's just a matter of viewing the token as a card when we're instructed to draw.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: chipperMDW on March 24, 2016, 01:18:48 am
Quote
I'm not sure what distinction you're making here. I'd say that it "really" says something like: "Select a/the Curse visible in the Supply. Gain it."
You not being sure about that distinction, is the reason you fail to understand my point. Only Workshop lets you choose. Witch already knows exactly which card to gain - the top card of the Curse pile. That's the instruction, independently of whether or not that card actually exists. Compare it with Upgrade telling you to gain a card based on the trashed card. In this case the specified card is the trashed card, independently of whether or not that card actually exists. That's the instruction. Then, when carrying it out, you check whether the card exists. If it doesn't, the instruction fails.

The phrase "the top card of the Curse pile," as you're using it here, doesn't represent what I'd call a "specific card."  It represents a set of instructions that can be evaluated at a later time to determine a specific card.  It might fail to determine any card at the moment it's evaluated.

The phrase is like a "card specifier."  You don't get a specific card until you evaluate a specifier (and not even then if it fails to specify a card).

Yes, only Workshop has a player make a choice.  But Witch still has to take the "top Curse in the supply" specifier and resolve it into a specific card (or fail).

You say Witch already knows exactly what to gain.  But your Witch doesn't determine a specific card and pass that to your Gain.  Your Witch determines a card specifier, "the top Curse card," and passes that to Gain.  Gain does the work of evaluating the (simple) instructions in the specifier and determining a specific card (or failing to do so).  If it found a specific card, it fires events and maybe goes on to move the card.

My Witch calls GainCardMatchingName with the name "Curse."  GainCardMatchingName forms the same "top Curse in the supply" specifier and evaluates its instructions to determine a specific card (or fail).  If it found a specific card, it calls GainSpecificCard, which fires events and maybe goes on to move the card.

Both ways are equivalent.  The difference is just whether the specifier is evaluated inside the lowest-level gain instruction (like in your model) or outside it (like in mine).

It's a somewhat arbitrary decision as long as the results are the same, but I find your definition of Gain non-intuitive in that it doesn't have a one-to-one correspondence with the idea of a "gain event."  Not all of your Gains "would gain."  Part of what you do in Gain (resolving the card specifier) happens before you "would gain."

I chose my definition of GainSpecificCard because that has a one-to-one correspondence with gain events.  The moment when you can lay your hands on a specific card is the moment you're done fiddling around with choosing cards and evaluating card specifiers and are definitively about to gain something.  Each call to GainSpecificCard corresponds to a "would gain" (and usually a "gain").

Quote
What I'm saying is that a gain instruction that references a card that is supposed to be in a specific location (the top of the Curse pile) is the same as a draw instruction that references a card that is supposed to be in a specific location (the top of your deck).

I agree they both involve "card specifiers." I'm just saying that the specifier has already been resolved into a specific card at the time a "would gain" event happens, but not at the time a "would draw" event happens. According to current rulings.

Quote
You say that you are making definitions to fit the ruling. I agree. I'm saying that there is no reason to define gain and draw your way, other than to shoehorn it into the ruling without having to acknowledge that "when you would" is defined inconsistently.

Ok, sure. It's arbitrary. I don't think I'm shoehorning anything, though. I'm just giving definitions that make sense to me. I guess it's possible they only make sense to me because I'm familiar with the rules and they fit with the rules.

Quote
To me the opposite would seem wrong, and non-intuitive, especially knowing that when-would-gain doesn't do anything on an empty pile. And actually i don't think it would get you $ on an empty deck, as I mentioned. I don't think when-would-draw would be defined that way. I think this is just a matter of the -1 Card token having an unfortunate shorthand text, while really it's just a matter of viewing the token as a card when we're instructed to draw.

Well, I completely disagree with all that, but it probably doesn't matter. We may never know.

EDIT: I think the thing that seems the most wrong to me about your model is the case where you have cards in your discard pile, but not in your deck. There, your model has you reshuffling before getting the +$. I can't imagine someone guessing that you're supposed to reshuffle for a result that doesn't involve the cards at all.



Just for fun, would you expect something like this (http://magiccards.info/on/en/61.html) to work if you had no cards to draw?
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Jeebus on March 24, 2016, 10:55:58 am
I agree that both ways are equivalent. And whichever model you choose, it should be the same for draw as for gain. I can't see that you have replied to my arguments for this. If you have a high level instruction first evaluating whether "top Curse in the supply pile" exists, then you also have a high level instruction first evaluating whether "top card in player's deck" exists.

As I said, compare with Upgrade referring to "the trashed card". Does this call a high level instruction first, to evaluate whether the card exists? To me it's simpler and more intuitive that "the trashed card" is a specific card, that may or may not exist, and then we check whether the specific card exists before proceeding. If you want to put in some high level instruction first, go ahead. The result is the same. Another example of an "event" that should work the same as for "gain" or for "draw".

I think this is just a matter of the -1 Card token having an unfortunate shorthand text, while really it's just a matter of viewing the token as a card when we're instructed to draw.
Well, I completely disagree with all that, but it probably doesn't matter. We may never know.
Well, Donald wrote: "There is only so much room on a token. The -1 Card token reduces how many cards you draw when told to draw cards. It doesn't put it like that on the token but that's what it does."
I think this is a pretty strong indication for what I wrote.

Quote
EDIT: I think the thing that seems the most wrong to me about your model is the case where you have cards in your discard pile, but not in your deck. There, your model has you reshuffling before getting the +$. I can't imagine someone guessing that you're supposed to reshuffle for a result that doesn't involve the cards at all.
I agree that that's the kind of thing that needs to be specified in a FAQ. (And as I said, I can't imagine someone guessing that you get +$ with no cards to draw.) It also comes back to the question posed by Davio: when is the reshuffle timed? The reshuffle happens when you actually need a card from your deck. Whether this is before or after "would draw" is not really defined. It could be that you "would draw" a card just because you have cards in your discard pile, although I agree that it seems like there should be a physical card on top of your deck before you can say that you "would draw". In any case, sometimes following the rules to their logical and consistent conclusion does get you weird results (like a Possessed player not getting a bonus from Ironworks).

Quote
Just for fun, would you expect something like this (http://magiccards.info/on/en/61.html) to work if you had no cards to draw?
You already said that it does work. To me I would think that it doesn't, but I don't know the rules of Magic. Going by the rules of Dominion, I don't think it would work.

EDIT:
I agree they both involve "card specifiers." I'm just saying that the specifier has already been resolved into a specific card at the time a "would gain" event happens, but not at the time a "would draw" event happens. According to current rulings.
There is no ruling on exactly what "when you would draw" means, only on how the -1 Card token is supposed to work. Donald has not said that the text on the token invokes a general "when you would draw" timing (as I said, I think he indicated the opposite). I'm saying that according to the ruling on the token, the "when you would draw" text on it, taken literally, is inconsistent with how "when you would gain" works. You're saying that it's not, because you're interpreting "draw" and "gain" differently (inconsistently!) so as to make those two when-woulds consistent.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: chipperMDW on March 24, 2016, 04:53:41 pm
I agree that both ways are equivalent. And whichever model you choose, it should be the same for draw as for gain. I can't see that you have replied to my arguments for this. If you have a high level instruction first evaluating whether "top Curse in the supply pile" exists, then you also have a high level instruction first evaluating whether "top card in player's deck" exists.
I can't agree that, just because the definition of "gain" does not encompass the evaluation of a card specifier, the definition of "draw" cannot encompass the evaluation of a card specifier (or is inconsistent if it does).  Why shouldn't it be possible to define events at different levels of abstraction?

Imagine there's a new instruction called "profit."  For a player to profit means for him to gain a card costing up to $3.  Some cards also do something when a player "would profit" (maybe gain a Gold instead or get +$5 instead; whatever); the intent is that these cards are supposed to work whenever a player is told to profit, even when there are no suitable cards left.

Profit and gain are two events defined at different levels of abstraction.  Profit is an operation on a player that encompasses the evaluation of a card specifier ("a card visible in the supply costing up to $3") and (potentially) entails a gain.  Gain is an operation on a player and a specific card, so it requires any card specifiers to have been evaluated before it can happen.

Now imagine there's a card called Profit whose only instruction is "profit."  Playing Profit and playing Workshop result in the exact same logic being followed: choose a card matching a set of criteria from the supply, then, if you found one, gain it.  Yet things that happen when you "would profit" happen before the choice (just on Profit, clearly), while things that happen when you "would gain" happen after the choice, and only if you were able to choose a card (on both Profit and Workshop).

Just because Profit does the same thing as Workshop doesn't mean "would profit" is required to happen at the same time as "would gain."  If it did mean that, there would be no way to create anything like "profit" because you would be forced to make it identical to gain, so you couldn't make it do what you want.

So why would the fact that "would gain" works at one level of abstraction mean that "would draw" should happen at the exact same level of abstraction?  Why shouldn't you be able to define draw at a higher level of abstraction, similar to that of "profit"?  Especially if defining it that way keeps other things consistent? (Yeah, I know; I understand that you don't think the token is a real "would draw" so you don't think it's inconsistent.)

Or do you think that, since "gain" is already defined to work at one level of abstraction, there should be no other events at any other level of abstraction, so defining something like "profit" would actually be impossible without being inconsistent?
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Jeebus on March 24, 2016, 06:21:47 pm
I think defining "profit" in Dominion is possible without being inconsistent. (Although, part of your argument for why "draw" doesn't have a check for the existence of a card, was that it doesn't need it. I'm not sure how having an event that does the same as another event can do, can fit into your idea of how Dominion works.)

I agree with your premise that it introduces another level of abstraction, in that it gives a name to something that is already defined by using another name ("gain") + some criteria. I also agree that "when you would profit" would work as you say. However, I believe that if "profit" existed in Dominion, there would never be a "when you would profit", because the whole point of "when you would" is to change the event. As you say, "profit", unlike "gain", could end up actually firing without any possible card to gain. Since profit is defined as a gain, the whole point of a "when you would" would be to change the gain, so therefore it would in practice instead be "when you would gain a card costing up to $3". That would be clearer and work consistently with normal "when you would gain" (Trader).

We both agree that your definition of "draw" and mine are possible. I just see no reason to define it your way, making an unnecessary distinction between "draw" and "gain". Similarly I see no reason to ever have "when you would profit", since it creates an unnecessary level of abstraction (as you put it) that makes it inconsistent with how Trader works.

I guess I just think that simpler is better (contrary to what it seems judging by this discussion :P), and in line with how Dominion usually is built.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: chipperMDW on March 25, 2016, 02:45:44 am

I think defining "profit" in Dominion is possible without being inconsistent. (Although, part of your argument for why "draw" doesn't have a check for the existence of a card, was that it doesn't need it.

I argued that you didn't need to check for a card before initiating (my definition of) draw (because the check is internal to the draw).  That'd be analogous to not needing to check for the existence of a suitable card before initiating a profit (because the choice is internal to profit).  I intended both to be events that always "would" happen when you were instructed to do them.


Quote
I'm not sure how having an event that does the same as another event can do, can fit into your idea of how Dominion works.)

Well, "buy" is an event that does some stuff followed by initiating a "gain" event.  So, in some sense, that idea already exists in Dominion.


Quote
Since profit is defined as a gain, the whole point of a "when you would" would be to change the gain, so therefore it would in practice instead be "when you would gain a card costing up to $3". That would be clearer and work consistently with normal "when you would gain" (Trader).

Right, but that wouldn't be an equivalent definition.  Now, those cards would trigger on Workshop; the original definition limited them to triggering on cards that specifically had you profit.  (Plus the changed interaction with Trader, but you said that.)


Quote
We both agree that your definition of "draw" and mine are possible. I just see no reason to define it your way, making an unnecessary distinction between "draw" and "gain". Similarly I see no reason to ever have "when you would profit", since it creates an unnecessary level of abstraction (as you put it) that makes it inconsistent with how Trader works.

I guess I just think that simpler is better (contrary to what it seems judging by this discussion :P), and in line with how Dominion usually is built.

Your alternative is to say the -1 Card Token is a fake card that's there only while you're drawing*.  So you have to define what "while you're drawing" means.

In order to match the rulings, "while you're drawing" must begin after you've been instructed to draw (obviously), and at a point when you wouldn't have reshuffled yet (because you'd remove the token instead of reshuffling).  So, at this start point, you check whether the player has his token and put a null card on top of his deck.  If you placed a null card, the player draws it immediately, and you take the token away from him.

(And I guess "while you're drawing" ends once you've either moved a card, removed the token, or decided there's no card to move.  But the end condition isn't too important because there's never any need to do anything at that time; any null card will already be gone.)

So "while you're drawing" starts before you know whether or not you have a card to draw.  "While you're drawing" always starts whenever you're instructed to draw.  That sounds familiar...

Well, hey, the point where you want your "while you're drawing" to begin is the exact same point where I want to fire my "would draw" event.  And where you want to remove the token and place a null card to prevent the remaining draw instructions from having an effect, I just want to replace the draw event with getting rid of the token.

So you're actually using something like my definition of draw to make your fake token appear at the right time.  You're just calling it "while you're drawing" instead of a draw event. And you're just faking out the instructions with a null card instead of canceling a draw event outright.

So... I guess it's subjective, but to me, it's much simpler to just define the "would draw" to happen at the specified point (thereby defining a "draw" event as something that always "would happen" when you're instructed to draw, which does make it different from a "gain" event) and then, when the token is there, remove it instead of carrying out the draw event.  That way, I use the existing event concept, and I don't have to bother with defining or placing the null card.  Or reinterpreting what the token says.


Now, whether the "would draw" on the token is representative of a real "would draw" we might see on future cards? Maybe or maybe not. If those got defined to have different timings (like if your hypothetical didn't get $ on an empty deck), then I'd obviously need define something (DrawSpecificCard) similar to your idea of a draw event in order to handle those.


* Ok, you actually said "when you're drawing" and I changed it to "while."
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Jeebus on March 25, 2016, 02:01:50 pm
Right, but that wouldn't be an equivalent definition.  Now, those cards would trigger on Workshop; the original definition limited them to triggering on cards that specifically had you profit.
Yes, that was my point. In practice the game would not have "when you would profit", for the reasons I stated, and that means it won't have that definition.

Quote
Your alternative is to say the -1 Card Token is a fake card that's there only while you're drawing*.  So you have to define what "while you're drawing" means.
Quote
So you're actually using something like my definition of draw to make your fake token appear at the right time.  You're just calling it "while you're drawing" instead of a draw event.
I already said all this in previous posts in this thread. I just used a sloppy expression now - "when you're drawing".

My first post:
Now, we could treat the -1 Card Token as a card that is only there when drawing. In effect this means that the token actually triggers when you are instructed to draw a card, rather than when you would draw a card (using the same definition of "when you would" as on Trader and Possession). The actual token uses the "when you would" wording though, so yeah, "when you would" is not consistent with Trader then.

And later:
I think this is just a matter of the -1 Card token having an unfortunate shorthand text, while really it's just a matter of viewing the token as a card when we're instructed to draw.

So... I guess it's subjective, but to me, it's much simpler to just define the "would draw" to happen at the specified point (thereby defining a "draw" event as something that always "would happen" when you're instructed to draw, which does make it different from a "gain" event) and then, when the token is there, remove it instead of carrying out the draw event.  That way, I use the existing event concept, and I don't have to bother with defining or placing the null card.  Or reinterpreting what the token says.
You're not using the existing "event concept" that is already defined via "gain" though (which includes "would gain"), you're making up a new one.
You're right I'm reinterpreting the token in my assumption. But it was based on the post from Donald that I quoted, and also the knowledge that mechanics like this are often developed in Dominion with physical cards, and the fact that the token resembles a card and is actually placed on the deck. But even without this assumption (about the text on the token), it's true that "when you would" is inconsistent on Trader and on the token (unless you "redefine" the draw event).

So, to sum up/repeat, and hopefulle conclude: To me the default position is to assume that "would gain" was not just arbitrarily made up because Donald preferred that you couldn't use Trader on an empty supply pile, but rather that it tells us something about how "when you would" events actually are supposed to happen in Dominion. And then accept whatever follows from that. You see it differently, but I guess we've said all we can say about it.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: chipperMDW on March 25, 2016, 06:38:26 pm
You're not using the existing "event concept" that is already defined via "gain" though (which includes "would gain"), you're making up a new one.
I'm not making up a new one because my event concept is not defined via gain.  My concept of an event is just a sequence of instructions that you distinguish with a name and refer to in other instructions.  You can trigger things when the event happens (just after the event's last instruction), and you can also trigger things when the event would happen (just before the event's first instruction) that possibly result in skipping the entirety of the event's instructions (meaning the event didn't happen).

You want to place a restriction (derived from gain) on what sequences of instructions can be called events. Can you give a simple rule that describes exactly what restriction you want to use?
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Jeebus on March 25, 2016, 08:30:31 pm
Ok, let's go with calling them "events", as we have sometimes done in this thread, although "instructions" would be better probably.

Movement events (the essence of the event is to move a card or cards)
call - move from Tavern mat to play area
discard - move from specified location (or else: hand) to discard pile
draw - move from top of deck to hand
gain - move from specified location (or else: supply) to discard pile, but the destination can be changed by the gain instruction (or Nomad Camp) before actually moving the card
set aside - move from specified location to set-aside area
trash - move from specified location to trash pile
put - move from specified location to specified location

Events to give players information, but in terms of game state they are also movement events:
look at from deck - move from deck to "set-aside area"
reveal from deck - move from deck to "set-aside area"

Non-movement events
buy - pay the cost of the chosen card (when-buy happens after this) [see below]
play - nothing (when-play happens after this, whether or not the card was moved in the put event) [see below]
choose - information is given to the game
resolve - carry out the specified events

(There are also book-keeping events like pay and +$ and +Actions etc.)

Often a shorthand is used in ability texts:

* All of the movement events that could move just one or some of several possible cards ("discard", "gain", "set aside", "trash", "put") sometimes entail a choose event first (meaning, before the movement event), from the specified location. For example "discard 2 cards from your hand" really means "choose two cards from your hand, and discard the chosen cards".

* "Buy" always entails a choose event before the buy event, from the specified location (or else: supply), and then entails a gain event after the buy event. (You said that buy is an event that initiates a gain, but as we can see from when-buy abilities, the gain has to happen after the buy is completed.)

* "Play" always entails a put event before the play event, from the specified location to the play area, and then entails a resolve event after the play event. (So actually the play event itself does nothing except trigger when-play abilities (like Moat): Even if you can't move the card to the play area, you still trigger when-play, and then resolve the played card.)

Quote
You can trigger things when the event happens (just after the event's last instruction), and you can also trigger things when the event would happen (just before the event's first instruction) that possibly result in skipping the entirety of the event's instructions (meaning the event didn't happen).
I agree with this, except as part of all movement events in Dominion, they first thing they do is to make sure the card exists. If not, the event fails outright. For a gain event, would-gain only triggers after that check is successful. And I say the same is true of all the movement events. Note that abilities like "when-would" and "when" always trigger on the actual events, not the shorthands. I think this model is self-consistent and aligned with how timing in Dominion actually works, and see no reason why any of the movement events would be different from each other when it comes to "when would".
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: chipperMDW on March 26, 2016, 02:32:34 am
Ok, let's go with calling them "events", as we have sometimes done in this thread, although "instructions" would be better probably.

The things you listed are what I would call instructions.  Not all of those need to be thought of as generating events.  I think we're really not speaking the same language when it comes to events.

Quote
I agree with this, except as part of all movement events in Dominion, they first thing they do is to make sure the card exists. If not, the event fails outright. For a gain event, would-gain only triggers after that check is successful.

To me, it violates causality to have an event that has to begin happening before it decides whether it "would" or wouldn't happen.

Quote
And I say the same is true of all the movement events. Note that abilities like "when-would" and "when" always trigger on the actual events, not the shorthands.

Except, from what you describe, you don't have "when-would" triggering just before the thing you call the actual event begins to happen... you have it triggering in the middle of the event, after the instructions in the event make a check to see if... itself... is "really" going to happen. In which case, why make the distinction that the check is "a part" of the event rather than saying it's an instruction that's always present leading up to the event?

I mean, for me, the "when-would" and "when" are the things that define the boundaries of an event. The whole reason to call something an event in the first place is because something triggers on one or both of those things and you need to figure out the timing of the triggered things with respect to what happens in between.  It's meaningless to me to say that some instruction happens before "when-would," but is still "part of" the event somehow.

Quote
I think this model is self-consistent and aligned with how timing in Dominion actually works, and see no reason why any of the movement events would be different from each other when it comes to "when would".

I agree that your event timing works out, but I don't like that you require a definition of draw that makes the token not work with events. But ok, I'll try not to argue about that anymore.


All right, well, I didn't mean to type that much in this post. I got the hint that you want to wrap this up; I'm trying to get there, but I'm apparently not doing a very good job of it. Sorry.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Jeebus on March 26, 2016, 03:17:06 pm
It seems that you're just nitpicking now, and I can't really see the relevance of what you're saying.

All we're doing is grouping things into "events" or "instructions" to make a clear picture of the game mechanics. There are several ways of grouping things that all make sense and end up the same. If it's important to you what can be called an "event" (even though you agree that the model in my last post works out), I'll address it by saying the following.

My usage of "event" does not violate causality. The movement events are like the two Gain and Draw functions I wrote earlier. First they check, then they trigger "when would" abilities, then they check if the movement is cancelled, then they do the movement, then they trigger "when" abilities. Even if I called that whole sequence e.g. gain, it doesn't mean that gain refers to both the whole sequence and the actual movement in isolation, as you seem to think. If you want to separate the actual movement into a low level function called gain, and call the high level funtion initiate_gain, whatever. It makes no difference.

I can't see that you yourself have a clear definition of an event. You seem to contradict yourself. You say, "My concept of an event is just a sequence of instructions that you distinguish with a name and refer to in other instructions." And you say that the tings I called events are instructions to you. Ok, so an event is a collection of instructions, like maybe for instance "buy", which contains the instructions to first choose, then pay, then gain. But then you say that this event can have triggers just before or after it, and these define the boundaries of the event. That doesn't fit at all with the other definition. That's actually at a lower level than my events (what you called instructions). Is an event like a matryoshka doll, that contains instructions which themselves contain more events? Is it events, events, events all the way down?
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: GendoIkari on March 26, 2016, 04:16:55 pm
Did anyone ask about Ironworks/Possession ever before Trader came out?
No.

I'm willing to bet that most people played it incorrectly and took the bonuses. With Possession, the correct ruling feels less intuitive than it does with Trader (I guess because the card it still being gained). I remember in the initial Blue Dog thread that you said that it is an unfortunate side effect of the ruling that Possession/Ironworks no longer works.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: chipperMDW on March 27, 2016, 05:07:43 pm
Even if I called that whole sequence e.g. gain, it doesn't mean that gain refers to both the whole sequence and the actual movement in isolation, as you seem to think.
Then I think we agree on that, at least.  I thought we had agreed about that earlier, but it seemed like you were saying the opposite in your last post.  I think the problem was I read "first" as "the first instruction of" when I guess you meant "just before."

Quote
Is an event like a matryoshka doll, that contains instructions which themselves contain more events?
Yeah.  Similar to how a programming language procedure is made of statements, some of which may be calls to other procedures.  Or a mathematical function is composed of expressions, some of which may be the evaluation of other functions.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Jeebus on March 27, 2016, 06:34:56 pm
Yeah.  Similar to how a programming language procedure is made of statements, some of which may be calls to other procedures.  Or a mathematical function is composed of expressions, some of which may be the evaluation of other functions.
I'm aware of this, and even (as I was actually thinking when I posted that semi-serious sentence), that a procedure can be recursive, i.e. call itself. But that was not what I meant. I meant that your definition of an event was both that it was at a higher level than an instruction and at a lower level, while you also say that these instructions are not events. So actually I have no idea what constitutes an event in your mind.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: chipperMDW on March 28, 2016, 05:24:47 pm
So actually I have no idea what constitutes an event in your mind.

Short answer: an event is anything that needs to be handled with this general logic:
Code: [Select]
Event:
handle "when-would"
if still happening:
carry out instructions comprising event
handle "when"
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Jeebus on March 28, 2016, 07:16:27 pm
Now I'm even more confused. So there are only two events in Dominion then, gaining and drawing?
And you're now doing what you accused me of, having what "comprises the event" as a sub-part of the actual event! Your "boundaries" ("when-would" and "would") are inside the event.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: chipperMDW on March 28, 2016, 11:40:35 pm
Quote
So there are only two events in Dominion then, gaining and drawing?

I said events are things that need to follow that general logic. Either of the two trigger instructions might never do anything and could therefore be ignored, meaning nobody has to care exactly when it happens.  (Well, "when would" still has to care when the event ends so it knows what goes inside the conditional.)  Of course, if neither ever does anything, there's no real point in identifying the instructions between as an event.

(Note also that another implication of that being general logic is that the "instructions comprising the event" might themselves be blank. For something like "At the beginning of your turn," the event doesn't need to "do" anything itself; it just needs to trigger other things.)

Now, the two events you identified are the only ones (along with +$ for the other token) where it's necessary to define the timing of "when would."  No other event can currently have something happen "when it would" happen, so it's sufficient to understand "when" for everything else.

You could go ahead and describe where you imagine the event begins in anticipation of there someday being "when-would" effects for it. I'd probably imagine "trash" being defined analogously to gain, and would place the "when would" just after a specific card has been determined and before a move happens. But a (currently) equivalent definition would be to just have the entirety of the "trash" event be a null sequence of instructions (just like "beginning of turn") occurring immediately after a card is moved to the trash. It's a distinction without a difference until something needs "when you would trash."


Quote
And you're now doing what you accused me of, having what "comprises the event" as a sub-part of the actual event! Your "boundaries" ("when-would" and "would") are inside the event.

I don't particularly care whether you call the trigger instructions part of the event or say they're like parentheses around it.  That's irrelevant.  What's relevant is for people to agree that things like "choose" come before "when-would" when dealing with a gain event. I describe that as "choose" not being part of the event. (And we do agree about the timing, if not the terminology.)

However, I pretty clearly did not identify the trigger instructions as "instructions comprising the event." I said that an event (i.e. the instructions comprising the event) needs to be handled with that general logic: stuff might happen just before it happens; some of that stuff might stop it from happening after all; and other stuff might happen after it's done if it actually happens.

Long ago, when I designed a system for handling events in a Magic rules engine (hobby program, never even close to finished), the events were essentially objects with an "occur" method that performed the "instructions comprising the event" (i.e. just that one line of "code" in my previous post). An event object could be examined to see what type of event it represented (damage, life gain, etc.) and what parameters it had (how much damage, to what, from what...), and its parameters could even be modified (gain twice that much life).

An event object was passed to an event handler that would examine the event type and parameters to see if it matched what some registered replacement effect (a "when-would") or triggered ability (a "when") was looking for. The event manager would handle running any relevant replacement effects (which might modify the event or replace it with a different event) and deciding whether to go through with calling the event's "occur" method and subsequently running any relevant triggered abilities that matched what it did. (It also logged the event if it occurred so there was a way for things to examine what had happened in the past: functionality that might be relevant for something like Smuggler in Dominion.)

So in that implementation, the "when-would" and "would" were distinctly not a part of any event itself, but were part of a separate event manager where they were used to handle all events. That's how I tend to think of it.

If I were implementing a Dominion program (sometimes this thread feels like that's what I'm doing), I think that full-fledged event objects and an event manager would be overkill. I would probably just have functions that looked like what I wrote above, which made sure that the "when-would," the "instructions comprising the event," and the "when" happened with the correct logic for the relatively small number of existing events.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Jeebus on March 29, 2016, 12:26:05 am
Oh man.

I don't particularly care whether you call the trigger instructions part of the event or say they're like parentheses around it.  That's irrelevant.
That's what I've been saying, because you argue about the definiton of "event" instead of actually addressing the substance of my posts. I think you're just arguing to avoid conceding some points now. Too bad, because some of the stuff you write is interesting. I agree about your event handler, and have been thinking that it would be the best and most robust way to handle it, but you might be right that it would be overkill. (And I definitely think that should work the same for gain and trash. I mean, if you don't have any cards to trash, you can't say that you would have trashed a card, it's pretty obvious. But not to you I guess. Sigh.)
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: chipperMDW on March 29, 2016, 02:15:28 am
That's what I've been saying, because you argue about the definiton of "event" instead of actually addressing the substance of my posts.

I've been arguing the definition because you told me the -1 Card Token can't be represented using the existing event concept.  Even though it can be handled using the same logic used to handle events.  I was trying to figure out what about your definition of events precludes such a representation. Or to try to convince you to consider a broader definition.

Quote
(And I definitely think that should work the same for gain and trash. I mean, if you don't have any cards to trash, you can't say that you would have trashed a card, it's pretty obvious. But not to you I guess. Sigh.)

I do agree that that's obviously how it should work.  I mean, I said that's the way I would define it.  I just also said that it doesn't really matter how I'd define it because nothing requires that concept yet.  I'm being descriptive, not prescriptive.

Quote
I think you're just arguing to avoid conceding some points now.

Ok, here's a point conceded.  If I were implementing "when you draw a card," I'd definitely expect to be using the "movement event" you describe for draw.  Not the event that I proposed using for the -1 Card Token.  "When you draw a card" should not happen on an empty deck.

If the token was described in terms of an event, maybe it would be better to refer to that event as "when you would attempt to draw."  I recall the same thing had to happen in the Magic implementation: you needed two different events to handle drawing correctly.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Jeebus on March 29, 2016, 09:22:16 pm
I do agree that that's obviously how it should work.  I mean, I said that's the way I would define it.
I'm sorry, I misread your last post to say the opposite.

Quote
Ok, here's a point conceded.  If I were implementing "when you draw a card," I'd definitely expect to be using the "movement event" you describe for draw.  Not the event that I proposed using for the -1 Card Token.  "When you draw a card" should not happen on an empty deck.
Did you mean to say "when you would draw a card" instead if  "when you draw a card" here? Because there's never been any dispute about "when you draw a card" - of course that happens after you actually draw a card. If that's what you meant, I guess you're conceding that my hypothetical card would probably not produce $ on an empty deck.

Quote
If the token was described in terms of an event, maybe it would be better to refer to that event as "when you would attempt to draw."  I recall the same thing had to happen in the Magic implementation: you needed two different events to handle drawing correctly.
Yes, as I mentioned earlier, it would be something like "when you're instructed to draw a card".
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: markusin on June 20, 2016, 01:42:39 pm
*Gasp* I just realized that the -1 Card Token finally makes it so that rearranging your top cards when choosing to put them back with your Oracle is no longer pointless.
Title: Re: Let's Discuss Adventures Cards: Relic
Post by: Seprix on June 20, 2016, 01:48:39 pm
*Gasp* I just realized that the -1 Card Token finally makes it so that rearranging your top cards when choosing to put them back with your Oracle is no longer pointless.

!!!