1
Dominion General Discussion / Re: Marchland
« on: April 08, 2024, 05:27:57 pm »
More like Aprilland.
We can imagine that it's actually using the slightly-altered card, Farryman, which always picks the Farrier pile.Is it just me, or is there a mistake in the recommended sets of 10? The Bounty of the hunt preset has Farrier selected for Ferryman's additional pile, but unless I'm mistaken, Farrier costs and Ferryman calls for a or cost card.It's a mistake. For now the ruling is, for that recommended set, make Farrier the card for Ferryman anyway.
My gut says that the answer is going to Be that called cards aren't playedI think your gut got it.
But I mean they are... I just played that coin. It's not like it was discarded, it literally goes into play.You played it at one time; that gave you a coin and put it on the tavern mat. Highwayman would have replaced that with doing nothing. But calling a card on the tavern mat is indeed not playing it despite the fact that doing so puts it into play.
I can only repeat what I said: There is nothing in the rules that say that they are different. Why would we have an "Instance of playing a card" and an "Instance of gaining a card" that work in opposite ways? There is certainly nothing in the rules to suggest it. Yes, Donald has ruled that Ways/Ench/Reckl work a particular way, but that is not because there is something special about the act of playing cards itself that is different than all other things you can do in Dominion.
Quote from: chipperMDWQuoteIf "Instance of a card" is whatever you end up doing as a result of playing that card, then Adventures tokens, Priest's +$2, another Cultist, etc., are all included.It's not everything that happens "as a result of" playing that card; it's every instruction issued by the instance, and nothing that triggered as a result.
Ways and Enchantress specifically triggered as a result.
def way_trigger_instructions(player, card, instance):
global way_save
instance.instructions_to_follow = way_save.instructions
They change what instructions are going to be followed. And that's all.Quote from: chipperMDWWhy would we use the Instance model for gaining, though? As you demonstrated, it doesn't give the intended results there. If we use an Instance model for playing cards because it gives the intended results there, why would that mean we were forced to use it in other places?
Because there is nothing in the rules that say that they are different. If "Instance of playing a card" refers to whatever we were going to do from that and ALSO something that has been substituted, why shouldn't the same be true for "Instance of gaining a card"?
Quote from: chipperMDWI mean, I feel like I explained a way it can work. The ultimate test, I guess, is can I explain it to a computer and have it give the expected results?
So I threw together a little Python script both as a sanity check and an attempt to explain what I'm trying to say.
You have defined "Instance" as something that is created when you play a card, and points to which instructions to follow when you get to the "follow the card's on-play instructions" part. And Ways are special-coded to change that pointer in the Instance. And then you have Harbor Village check what you got from following the Instance's instructions. Of course you get the intended result in that case. Note that you would also have to special-code Enchantress and Reckless in the same way - and Reckless is not "instead".
You have decided that Ways get hooked to the Instance, but you could have programmed that however you wanted. Why doesn't the Adventures token get hooked to the Instance? Why doesn't Priest's "+$2"? Why does Reckless's "follow the instructions an extra time"?
By making these choices, you decide what cards/tokens that will count as "things you get from playing the card" and which won't. But there is no explanation in the program for why, it's just chosen arbitrarily to be that way. I don't see that the program answers anything.
You have defined "Instance of playing the card" for the sole purpose of interactions with Harbor Village, Moat, Elder and Lantern. Other abilities (as far as we have found) don't care. Imagine that Harbor Village was actually ruled to check everything that happens from announcing the card until you are done with everything that triggered off of that. And Moat could be ruled the same way, which means it would protect you from the whole chain of Cultists. Same with Elder and Lantern. Then we would have to define "Instance of the card" differently, to include everything. There would be nothing in the rules to proclude such a definition either, and it would work in accordance with those rulings. I get that that's what you're trying to do, with the actual rulings. But defining the concept of Instance to match exactly the rulings doesn't actually address the problems I have brought up.
Note that you would also have to special-code Enchantress and Reckless in the same way - and Reckless is not "instead".
For Ways, it's the rules for Ways that change which instructions you're following, and for Enchantress, it's Enchantress itself.Ok, I agree. Ways don't trigger directly; the rules for ways set up a delayed ability.
But the actual instructions you end up following, are instructions given on Enchantress ("+1 Card, +1 Action") and on the Way card. This is straight-forward.They are printed on those things, but they are not given by those things. "Printed on" and "given by" need not be equivalent. You keep saying they have to be, and I keep saying they don't. I think you have to allow for them being different concepts in order the get a clean solution, here. I dunno; let's see if the script at the end of this post helps out at all.
3.1. With Ways/Enchantress, you're following the Way's/Enchantress's instructions (pretty sure everybody has agreed with this). Why does that count as something the Instance "does" anymore than Adventures tokens would?You're following the instructions printed on Way/Enchantress, but the Instance is what's issuing the instructions. Why does it count as something the instance does? Well, I guess it's because the instance is what was going to do something all along, and the Way came along and changed what it was going to do. Why doesn't that apply to Adventures tokens? Because there, the triggered effect is not to change what instructions the instance is going to "do"; the triggered effect is to actually do the thing (e.g. +$1) itself.
If "Instance of a card" is whatever you end up doing as a result of playing that card, then Adventures tokens, Priest's +$2, another Cultist, etc., are all included.It's not everything that happens "as a result of" playing that card; it's every instruction issued by the instance, and nothing that triggered as a result.
If "Instance of a card" is supposed to exclude all those things, then it has to refer to just the card's instructions.It doesn't have to specifically refer to the card's instructions; it refers to whichever instructions the instance is going to issue. Maybe instructions printed on the card, and maybe instructions printed on a Way.
If it's also supposed to include instructions from Ways or Enchantress, then we would have to define that specifically somehow (either with tagging instructions, or by calling out Ways/Enchantress by name or similar).Or by saying that the instance issues instructions that are printed on a Way/Enchantress. By separating those concepts.
To illustrate the problem with your model: Let's say gaining a card with Ironworks creates an Instance of gaining a card, which is set to the card you've chosen to gain, and then Trader 1E triggers and changes the Instance's pointer to Silver instead. So the Instance of gaining which was "gain a Mill" is now "gain a Silver" instead. Is the card you gained with Ironworks Silver? Well, that would mean Ironworks gives you +$1 for gaining a Treasure. And if Ways worked like that, it would mean the Way's instructions count as the card's instructions. What if there were a Farber Village that asked if playing the Ironworks made you gain a Silver? The answer should be no, but with the Instance model it seems to be yes.Why would we use the Instance model for gaining, though? As you demonstrated, it doesn't give the intended results there. If we use an Instance model for playing cards because it gives the intended results there, why would that mean we were forced to use it in other places?
Then how the frack do we solve it*? It's remarkable to me that nobody can answer this and still claim that this ruling makes any sense.
$ python demo.py
Player 1 plays Smithy:
Play as Way of the Sheep? n
Player 1 gets +$1 [issued by delayed ability set up by +$1 Token rules]
Player 1 draws 3 cards [issued by instance #0 (of Smithy)]
Player 1 plays Smithy:
Play as Way of the Sheep? y
Player 1 gets +$1 [issued by delayed ability set up by +$1 Token rules]
Player 1 gets +$2 [issued by instance #1 (of Smithy)]
Player 1 plays Smithy:
Play as Way of the Sheep? n
Player 1 gets +$1 [issued by delayed ability set up by +$1 Token rules]
Player 1 draws 3 cards [issued by instance #2 (of Smithy)]
Player 1 plays Smithy:
Play as Way of the Sheep? y
Player 1 gets +$1 [issued by delayed ability set up by +$1 Token rules]
Player 1 gets +$2 [issued by instance #3 (of Smithy)]
Player 1 gets +$1 [issued by delayed ability set up by Harbor Village]
class Card:
def __init__(self, name, instructions):
self.name = name
self.instructions = instructions
class Way:
def __init__(self, name, instructions):
self.name = name
self.instructions = instructions
class Trigger:
def __init__(self, cond, effect):
self.condition = cond
self.effect = effect
def handle_triggers(triggers, player, card, instance):
for trigger in triggers:
if trigger.condition(player, card, instance):
trigger.effect(player, card, instance)
class Instance:
id = 0
def __init__(self, card, player):
self.id = Instance.id
Instance.id += 1
self.name = "instance #{} (of {})".format(self.id, card.name)
self.instructions_to_follow = card.instructions
self.player = player
def resolve(self):
self.instructions_to_follow(self.player, self.name)
# just a log of instances that gave coins (for Harbor Village)
coin_log = []
class Player:
def __init__(self, id):
self.id = id
def plus_cards(self, count, issuer):
print "\tPlayer {} draws {} cards [issued by {}]".format(
self.id, count, issuer)
def plus_coins(self, count, issuer):
print "\tPlayer {} gets +${} [issued by {}]".format(
self.id, count, issuer)
global coin_log
coin_log.append(issuer)
def play_a_card(self):
# player always plays Smithy in this example
the_card = smithy
print "Player {} plays {}:".format(self.id, the_card.name)
instance = Instance(the_card, self)
# Handle "when you play, instead" triggers
handle_triggers(on_play_instead_triggers, self, the_card, instance)
# Handle "when you play, first" triggers
handle_triggers(on_play_first_triggers, self, the_card, instance)
instance.resolve()
# Handle "after you play" triggers
handle_triggers(after_play_triggers, self, the_card, instance)
#
# Smithy definition
#
def smithy_instructions(player, issuer):
player.plus_cards(3, issuer)
smithy = Card("Smithy", smithy_instructions)
#
# +$1 Token definition
#
def token_trigger_cond(player, card, instance):
return player.id == 1 and card.name == "Smithy"
def token_trigger_instructions(player, card, instance):
player.plus_coins(1, "delayed ability set up by +$1 Token rules")
on_play_first_triggers = [
Trigger(token_trigger_cond, token_trigger_instructions)]
#
# Way of the Sheep definition
#
def way_of_the_sheep_instructions(player, issuer):
player.plus_coins(2, issuer)
ways = [Way("Way of the Sheep", way_of_the_sheep_instructions)]
#
# General rule for Ways
#
def way_trigger_cond(player, card, instance):
global way_save
for way in ways:
if raw_input("\tPlay as {}? ".format(way.name))[:1] == 'y':
way_save = way
return True
return False
def way_trigger_instructions(player, card, instance):
global way_save
instance.instructions_to_follow = way_save.instructions
on_play_instead_triggers = [
Trigger(way_trigger_cond, way_trigger_instructions)]
#
# Harbor Village delayed ability definition
#
def harbor_village_trigger_cond(player, card, instance):
return True
def harbor_village_trigger_instructions(player, card, instance):
global coin_log
if instance.name in coin_log:
player.plus_coins(1, "delayed ability set up by Harbor Village")
coin_log = []
#
# Main program
#
# first two plays don't use Harbor Village
after_play_triggers = []
p = Player(1)
p.play_a_card()
p.play_a_card()
# second two plays do use Harbor Village
after_play_triggers = [
Trigger(harbor_village_trigger_cond, harbor_village_trigger_instructions)]
p.play_a_card()
p.play_a_card()
First of all, Ways are Enchantress are, and need to be defined as, triggered abilities, with specific timings...Ok, I think I see why. I had missed that Enchantress and Highwayman are supposed to be "reorderable" with Ways. The way I believed Ways worked (which was the way I thought Donald X. was describing them to work), you would not have been able to "override" an Enchantress with a Way. Given that you're supposed to be able to do that, I agree with you that Ways do need to "trigger."
So the rules for playing a card have not been expanded for Ways...Ok, agreed. I was mistaken there.
No, you completely misinterpreted the bit in parentheses. I was not saying "In a different manner from what would happen if you tried to read instructions from a shapeshifted card." I was saying "Not in any alternate location you might propose, including, for example, a hypothetical card that has been shapeshifted to have Way of the Sheep's instructions (primarily because such a card does not exist in this scenario as no shapeshifting has occurred)."Quote from: chipperMDWBut I think Donald X. meant it only as #1. You're following instructions that are printed on WotS (as opposed to, like, instructions on a card that's been shapeshifted).Sidenote: Your parenthesis is dead wrong. If a card has been shapeshifted, anything referring to the instructions of that card (or in any way talking about the effects of it) only sees the shapeshifted instructions. That much is beyond any doubt. That is the whole reason why shapeshifting was practically eliminated.
As I said (and you deleted): that's what instructions are, in all games, text telling you to do something.Yes, I deleted that because I agreed with it and didn't feel like I needed to respond. But ok, I agree with all the things: instructions are text telling players to do stuff, players are the only ones that "really" do stuff, and all instructions are ultimately followed because players are following instructions in the rulebook.
(In your example, I will skip the "someone tells you" part, because I think by mistake you added an unnecessary first step in the chain.)No, I actually added the first step because the rulebook is ultimately what tells anyone to do anything. I figured if me-pretending-to-be-a-card gave an instruction without any prompting, you'd tell me that cards have no free will and could not simply decide to give an instruction out of the blue, and that my "doing" anything must have been a result of someone following a rulebook-derived instruction somewhere else. 'Cuz the analogy was always meant to be super accurate (it was not meant to be super accurate).
But I do think you’re right that this is the first card to rely solely on “until your next turn” as a form of “having something to do”.
But Way of the Sheep's +$2 is triggered.No, I don't think it is.
Even Donald X. acknowledged that you're following Way of the Sheep's instructions.So, the possessive could be interpreted in at least two different ways in that sentence:
You're saying that the Instance of playing Chapel tells you to follow Way of the Sheep's instructions. Again, it's the rulebook, specifically the rule for Ways, that tells you that. (Or, for Enchantress, it's Enchantress's instructions that tell you to follow "+1 Card, +1 Action" instead of following the card's instructions.)If "the instructions of Way of the Sheep" means "the instructions printed on WotS," then no, I don't disagree.
What the Way rules say is, when you play Chapel, instead of the normal rule of following the on-play instructions of Chapel, you follow the instructions of Way of the Sheep. Do you disagree with this?
When you follow Way of the Sheep's instructions, Way of the Sheep tells you to do stuff.But that sentence is where I disagree for sure. WotS is not telling me to do stuff; an Instance of playing Chapel is still what's telling me to do stuff. It's just telling me to do stuff that's printed on WotS instead of what's printed on Chapel, like Instances of Chapel usually tell me to do.
When you use Way of the Sheep, you are certainly following Way of the Sheep's instructions.
The thing is, that definition doesn't match your conclusion that Smithy "does what the Way does". The other definition ("with Way of the Sheep, when playing Smithy, you get +$2 from following Smithy's instructions") does match that ruling. I still don't see a third option; this has been my point.
If we look at the natural reading of the sentence, “it” seems to be “the playing of the attack card”.
Harbor Village is referring to that play of the card; further plays don't interest it.
Reckless's extra follow-instructions is part of the play of the card.
Yes; Reckless looks for a play of a card causing its instructions to be followed.
is there still wandering winder? he was always good at realizing when you should just play money.
Nope. I responded to a post which responded to this post:Cage is not even indirectly giving you money, is it?
You can of course read „indirectly giving money“ as gaining … but that is a fetch given that you could also read thinning as increasing the average Coin yield of your deck or drawing cards as a way to play more Coin producing stuff or whatever.
While most Treasures do produce Coins, Horn of Plenty, War Chest, Sunken Treasure and Tools are gainers and plenty of other Treasures do not unconditionally produce Coins. For example Tiara and King's Cache are Thrones can theoretically fail to yield Coins and Crown is a Throne that fatils to do so quite often.
So the notion that all Treasures should somehow always produce Coins is pretty weird given that this has not been the case for over 10 years.
You can do meterology without catastrophes.The magnitude of the event is beside the point. Being interested in meteorology also doesn't require you to be happy that it's raining.
What you said there seems like the nonsense to me. That's like saying someone must be happy a tornado destroyed their house because they're interested in meteorology.Did you read what he said? He is trying to keep track of what rules are changing so he can continue to follow them - which he already said has nothing to do with if he likes the rulings or not.That's nonsense. If you use your spare free time to make the effort to design a rule document for a game you obviously like that stuff, i.e. rule changes and rule details.
Original Trader canceled the gain before you gained the card, so it was never yours. Possession works exactly the same way.Well, if you bought an Inherited Estate, it did briefly become yours long enough to trigger the when-buy. If you then cancelled the gain with Trader, that would also have needed to make the Estate not yours or else it'd be sitting in the Supply belonging to you for an arbitrary period of time.
The buy thing is interesting, since by definition you gain the card anyway unless instructed otherwise. Does that mean a Possessed player technically owned a bought card before the Possessor did? Also, have there been any cases where 1. You buy a card. 2. It is interrupted by some trigger, and never subsequently gained. 3. It is still acquired by end of the turn. 4. And none of the other methods we listed above occurred (which would cause it to be acquired regardless)? If not, then I’m not as concerned
Do you mean that the Black Market deck will be constructed after Black Market is selected, and that the bane pile should be selected after Young Witch is selected? If so, and you’re feeling compelled to follow the setup rules for Young Witch exactly as written, there’s no way for Black Market to be selected as the bane, so the question is not applicable.Yes, that's why I said it was "apparently impossible": because it's not possible for it to be generated by following the setup rules as written. We appear to agree, right?
If you’re not following the setup rules for Young Witch exactly as written, the Black Market pile could definitely be a bane pile, and if so, where is the problem? If I draw Young Witch as one of my ten first randomizer cards for a specific kingdom, I always draw eleven randomizer cards and choose the last 2 or 3 cost card drawn to be the bane. This could very well be Black Market.Just because someone's following a non-standard setup procedure (especially if they're doing so out of necessity because they encountered an "error") doesn't necessarily mean they're ok with ending up with a kingdom that would have been impossible to generate under normal circumstances. I was just pointing out a case where AJD's proposed solution could result in such an "impossible" kingdom. Some people would balk at that; others would be fine with it.
Thanks, it was as I expected, then. My point is that if you have a situation like they proposed, with Black Market being selected as the bane, nothing except setup is affected by this fact (which is already «compromised» if you find yourself in that situation), and therefore, I don’t see why it should matter at all once you start playing. Because of this, I find the issue a moot point.Indeed, such a kingdom would work fine if you wanted to play it. I even pointed that out, saying "it doesn't hurt anything aside from being apparently impossible." I wonder if you thought I meant "impossible to play" rather than "impossible to generate."
If you go to the online client and go to the Leaderboard tab, there are a couple of buttons in the upper right. "Implementation" goes to a Shuffle IT forum post and "Glicko-2" goes to a PDF; I figure those are where you go if you want to learn more about how the system actually works.Thanks awaculus for clarifying that. Although I’m still not sure on how all that works. I just wished it was more like leveling up in a video game, where you can lose your level. So if I’m 0.44 what’s the highest you can go and the Lowest you can go.
It is a pretty complicated system and I don't understand the details either, but the big picture is easy enough to understand. The point is to measure your skill level relative to the average player, so being able to lose points when you lose games necessarily has to be a part of it, otherwise people who play the most would have the most points even if they're not the best players.