As those who were on the old Sirlin Games Tabletop Discord server might be aware, a few years ago there was a user on there called Punf. As part of writing a digital implementation of Codex, he started asking sharpo some awkward rules questions, which I thought I’d start archiving here before the server disappears.
The first set is below, more to follow. Some of these questions might have since been answered more succinctly in the rules questions thread, but I thought the resulting discussion might interesting for those who want to see how long discussions about particular rules can run.
Tracking multiple sources of armour, and sharpo makes a dangerous offer
25/04/2019
Punf
if a unit has multiple sources of armor and takes damage, what order does the armor get lost in? (this matters if the sources have different durations)
intuitively i would expect the shortest duration armor to get lost first, is this the case?GRAG
I think it all just sort of goes into a pool
overall though I think the answer is usually going to be “whatever benefits the active player most”Punf
well say i have a 1/1, safe attacking in play, and sensei’s advice on it so it has 1 armor. i attack a 1/1 with it, so it has 2 armor while attacking and takes 1 damage. after attacking does it still have 1 armor from sensei’s advice?GRAG
yes
if it has 2 armor and takes 1 damage, it loses 1 armor
buuuuut armor effectively disappears at the end of your turn anyway, so unless that unit can also somehow attack twice in one turn, it’s sort of mootPunf
well theres tons of ways to unexhaust it so it could well matterGRAG
are there?
Vigilance doesn’t require exhausting to attack, but can only attack once
Elephant is so rare in being able to ready itself after attacking that it includes explicit helper text saying it can attack twice
(in which case, yeah, armor persists until it’s all used up or until it expires on its own)Punf
off the top of my head, ready or not and that green thing that can attack twice
my confusion is when the expiring occurs when the armor came from multiple sources
like, under the ‘pool’ interpretation, i could see it being: your unit has 2 armor, it loses 1 from attacking, and then loses 1 from safe attacking expiring so it ends up with noneGRAG
spells do their thing and then go into discard
safe attacking is an upgrade, which you can’t lose during your own turn anyway (probably?)
yeah, you’re right about Ready or Not
so yeah, those two cards do make attacking twice in one turn plausiblePunf
is ‘whatever benefits the controller the most’ reasonable? (not necessarily active player since you could have multiple sources of armor on a patroller)GRAG
well, while you’re patrolling, you don’t have armor except from being squad leaderPunf
which comes out as ‘lose the shortest duration armor first’ and ‘lose the armor that regenerates first’GRAG
armor only exists on your own turnPunf
ironbark treant can get regenerating armor when patrolling
and the art of war gives onimaru armor while hes patrollingGRAG
fair Ironbark Treant
but that’s also only while patrolling
in those cases, said armor disappears during your turn
because by definition, your heroes/units can’t be patrolling during your own turn
their patrol begins when your turn endsPunf
iirc squad leader and ironbark regenerate each turn but art of war doesnt, which matters in ffaGRAG
aha, hmmPunf
so presumably you lose the regenerating part first, and get it back on the next player’s turnGRAG
free-for-all does throw a wrench into this
@sharpobject is probably a better source for rulings, but my gut says “you get patrol armor bonuses once, and they do not regenerate between opponent turns”
so when you end your turn and patrol Ironbark Treant, it gets +2 armor (and maybe +1 from leader) and that’s it until your turn comes up againPunf
the squad leader thing has been asked a bunch, that one definitely regenerates each turnGRAG
okay, I’m getting a little confused here
I’m pretty sure at least that squad leader regenerates each turn, but only each of your own turn
like, when patrol beginsPunf
it regenerates on opponents’ turns
so in ffa you can absorb a spark from each opponentGRAG
really? hmm
I may simply not remember this rule!
at a glance, I don’t see anything in the rulebook about armor during FFAPunf
heres sharpobject: DiscordGRAG
you can lend patrollers, but again, patrol only happens when it is not your turn
aha, huh
this is news to me!
Sorry : oPunf
oh i missed this earlier but he appears to rule on my question here Discord
this seems to imply that if i have a 1/1 with sensei’s advice and safe attacking in play, and attack a 1/1, i end up with 0 armorGRAG
huh
I must grant that I’ve only played FFA a few times, and it was a while ago now ^^;Punf
(for whatever its worth im not just asking this to be annoying, i need a rigorous definition of armor because im coding a codex thing)GRAG
right, yeah, that’s perfectly fine!
I intended to help but quickly found out that I was out of my league ^^;
good luck!Punf
so as far as i can tell from sharpobject’s ruling how it works is:
- when a new effect giving +armor occurs, add that amount to the unit’s armor stat (without recording the source)
- when an effect giving +armor ends, subtract that amount from the unit’s armor stat (without caring where the subtracted armor is from)
- when the unit takes damage, subtract that amount from the unit’s armor stat (again source is irrelevant)
- when a unit starts being squad lead it gets +1, and when it stops it gets -1
- squad lead gives -1 then +1 each turn (so no effect if the unit has armor, but if it has 0 armor then it now has 1 armor) and same for treant with -2/+2, which is what causes the armor regeneration
i think this is the most consistent way to implement that ruling, but it has some weird consequences (like the sensei’s advice/safe attacking thing)GRAG
wait, I thought SQL gave +1 no matter what
unless you mean, like, between opponent turns
in which case, that makes sensePunf
well yeah it gets the +1 when it starts being SQL, and then start of each opponent’s turn it gets -1 and +1 (which only matters in ffa)GRAG
ah, OK, so maybe treat it as “-1 at end of an opponent turn, then +1 when an opponent turn starts”Punf
which sort of makes sense if we think of it as ‘your units stop patrolling and then start patrolling again against the new opponent’GRAG
yeah
also, very cool that you are working on rule enforcement for Codex
maybe one day there can be an official rules-enforced digital version ^^Punf
a related question would be, what if your SQL loses its armor, gets zaned out of SQL, and then gets grappling hooked back? id assume it gets a new armorGRAG
…huh
I feel like the bonuses happen once per turn
but that’s a very good and interesting question
yeah, I dunno if the SQL armor is a thing that happens once at the beginning of the patrol turn, or if it’s an inherent characteristic of the slot that is granted upon being moved there
I have trouble imagining why an opponent would push an opposing patroller into SQL, but that’s irrelevant to the discussion of what should happen then
the rest are easy enough to deal with since they’re just ongoing traitsPunf
its kinda weird because elite is just continuous - you always have +1 atk for as long as youre elite - but SQL isnt - you lose the armor the moment you take a damage, despite still being SQLGRAG
rightPunf
yeahGRAG
so we’re assuming SQL gets hit, Zane maxbands and pushes to other slot, then also in the same turn that player also uses Grappling Hook to put it back in SQL
that’s a really interesting question and I kind of hate it!Punf
i guess if we want it to be more realistic it could be a different opponent grappling hooking you back into SQL
which makes more sense as a politics tactic than one guy changing his mindGRAG
in that case it seems much easier to just say “upon arriving in SQL for the first time in a patrolling turn, unit/hero gets armor”Punf
well my own intuition is that it should work and you should get another point of armorGRAG
hmmmm
I guess the big question is, do the cards “remember”Punf
to put it another way, if it was never in SQL but then it got grappling hooked there, i would expect to get an armorGRAG
right
same herePunf
wheres sharpobject to save us from this purgatoryGRAG
other question: if Grappling Hooked out (no damage) then pushed back in by Zane (damage after arriving in slot), would it then have two armor?
because SQL says on the board “+1 armor”
although I guess, wait, duh
it loses the armor when leaving SQL (in theory?)
wait, yeah, of course it doesPunf
it would be mega weird if it didnt, and make grappling hook a much weaker cardGRAG
that’s how we’ve always played
I’m Galaxy Braining this
okay, yeah
in that case, my gut says “card gets +1 armor for arriving in SQL”
if it was originally SQL then it lost that armor for being removed from SQL
then if it gets put back, it should get that armor back, instead of the armor just vanishingsharpobject
hi
a unit or hero just tracks how much armor it currently has, and it loses armor as armor-granting effects expire
basically you always get the worst possible outcome for the player who is stacking armor-granting effects
I think if you use zane and grappling hook like that the squad leader slot will grant new armor when you move the unit back into it
can i play your codex thing…
26/04/2019
sharpobject
Punf I’m happy to answer other questions, other people who said they would make this sort of thing got me to decide basically everything alreadyPunf
@ people who want to play it: dont get your hopes up, im making this more as an excuse to learn javascript than as a HOLY SHIT MEGA AWESOME CODEX ONLINE VERSION
like im currently planning to just have it be offline (so you can play it vs. yourself to test some strategies or vs. a friend at your place), or vs. a (probably pretty mediocre) bot
Codex timing, attack resolution steps, and state-based actions
26/04/2019
Punf
can i ask the million dollar question: how does codex timing work
my understanding is that it uses a queue, but you can have other queues that can interrupt existing queues?
like, say you play final smash, which tells you to do three things: A,B,C
A is destroy a unit, so that could trigger more things, D,E,F,G
my understanding is you queue up D,E,F,G in any order of your choice and they go before B and C?
and if E triggers more things H,I,J then that creates a new subqueue and those things go before F and G?
the alternative (where theres just one queue) would suggest you do all three final smash things before resolving any death triggers from the first thing destroyed, which seems super weird
i searched queue and the only ruling i found was that some things are faster than other things (basically die effects that make it not go into the discard pile have to be faster to work). ok, but im confused about how the queue(s?) work at allSotek
I believe your description is accurate but sharpo is the true knowerPunf
also what if a triggered ability has two parts and one of those parts triggers something, does that create a new subqueue that resolves before the second part
although im not sure if this ever happens? off the top of my head the only trigger with two parts is brick thief and i dont think the first part ever triggers anything
also a much less important question, does the ‘another’ on brick thief imply you cant target the same thing twice
i guess it would but it matters so little and its marginally more effort to implementSotek
I think he can “heal” a thing that’s at full HP so yeah
or … can he? it matters a bit if he can’t\Punf
theres an existing ruling that he can heal a full hp thingSotek
ok thenPunf
but can you damage something and then heal that same thing? ‘another’ seems to imply you cant
and its even harder than the addon thing to come up with a case where youd want toSotek
yeah lol
when would you NOT want to heal your basesharpobject
hello
timing in codex!!!
things happen at more times than they happen in magic
for example, in final smash, there are distinct times at which things happen, whereas in magic, all the ETB triggers from hypergenesis are going on the stack at the same timePunf
right, state-based actions are just ‘after anything resolves’, i think?
or not even resolves, just like, a part of it resolvessharpobject
rightPunf
and they can make their own triggers i guess, oh geezsharpobject
ok but there’s no nesting system
I think what you described is closer to hearthstone/FFG, not what we havePunf
huh, so why do death triggers from the first thing final smash kills trigger before the other things final smash does?sharpobject
they don’tPunf
oh really? huh
wait but the thing still dies before the rest of it resolves, right?sharpobject
yes
if you play final smash and you have harmony in play, your queue according to the rules is:
[Final Smash] [Harmony Trigger]Punf
so it actually goes into the discard pile?sharpobject
but a reasonable implementation that is equivalent to the rules is:
[Final Smash A] [Final Smash B] [Final Smash C] [Final Smash Ends] [Harmony Trigger]Punf
does that screw with graveyard/second chances/whatever the third thing was?
or are those triggers ‘special’ and actually do interrupt the queue?sharpobject
yes, those things are ‘special’
sorry !Punf
so would a reasonable summary be ‘there really is one queue and everything waits for final smash to resolve, except three special triggers that interrupt it’sharpobject
yesPunf
that seems pretty implementable since i dont think the special triggers ever trigger anything themselves
wait what about sentry
i guess that trigger is also special?sharpobject
ok, so when you kill the enemy technician with part A you end up with
[Final Smash B] [Final Smash C] [Final Smash Ends] [Harmony Trigger] [Technician Trigger]
sentry has to work at a weird timing that nothing else works atPunf
a full list of all things that can interrupt would be nice if you could provide it
currently i have [three things that interrupt dying, sentry]sharpobject
I think I sent this to someone, so I should be able to find it
to be honest, I’m about to just look at all the cards, since there aren’t that manyPunf
from what i can see none of the interrupts ever create their own triggers or require targeting, so it should be managable
and i guess stuff like flagbearer is sort of a trigger that interrupts, but i have it implemented as static anyway so thats finesharpobject
oh, you may want to know that targets are chosen as late as possible, and this matters for resist and the resist + flagbearer interactionPunf
yeah im pretty sure ive got targeting with resist + flagberaer downsharpobject
ok greatPunf
oh wait, i guess that makes smoker another trigger that interrupts?sharpobject
yes, smoker and illusionsPunf
how does that interact with ember volley
do you choose all targets, assign the 5 damage among them in any way, and then illusions die/smoker returns?sharpobject
you must assign at least 1 damage to each thing you choose
then illusions die and smoker returns
then other things take damagePunf
but if (insert crazy edge case) you could assign 2 damage to an illusion in order to assign less to other things?sharpobject
surePunf
all right, that makes sense
so if there are multiple interrupt triggers on death, active player chooses the order?
and only the first one does anything?sharpobject
yes, the other ones will do nothingPunf
does that still use up their uses (for second chances/reteller)?sharpobject
but there are some more details that I will tell you when I remember or readPunf
also thats super annoying because it means ill have to interrupt execution of the original thing to get a user choice on trigger order, blehsharpobject
yes sorryPunf
maybe a better ruling would be ‘if you have second chances and reteller in play together, you lose the game for being annoying’Sotek
lolsharpobject
though note you already had to do that for normally timed triggers (?)Punf
oh right because you have to pick queue order immediatelysharpobject
reteller says “the first two times each turn one of your non-token illusion units dies” which refers pretty clearly to which events it applies toPunf
i guess theres sort of already a natural gap in execution when something dies so thats not too badsharpobject
second chances says something more annoying, and I’m going to go look up what I said about second chances beforePunf
well, ‘leaves play’ is still reasonablesharpobject
I mean it says “once-per-turn” and not “the first time each turn”Punf
i feel like the full list of codex trigger timings isnt even that long
theres arrives, attacks, dies (which sometimes have subtimings, dies can be an interrupt or normal, attacks can be before or after)
theres sentry which is a weird interrupt that triggers on damage being dealt
i actually cant think of any more off the top of my headsharpobject
I think “attacks: X” is at the same timing as obliterate
Rampaging Elephant has “after attacking”Punf
well ogre recruiter has to take effect after the actual attack to check whether the ogre is still alivesharpobject
yeah
wow
can someone fix the templating in a patchPunf
i guess doubling barbarbarian is sort of ‘on gain stats’ but eh its more static than triggeredsharpobject
yeah
I am putting stuff like that, cost changing abilities, targeting restrictions, etc. in a different bucket
cursed crow has “deals damage” timingPunf
so does molting firebirdsharpobject
which is presumably between obliterate and rampaging elephantPunf
is this a decent summary of attack:
- choose a legal target
- resolve all attack triggers
- if target is dead, choose a new legal target
- attack your target from 1) or 3)
- resolve all damage triggers
- resolve all after-attack triggers
its kinda weird because if you think of attacking as one action, attack triggers jump the queue, but i guess it makes sense if you think of attacking as multiple actions?
unless im completely wrong and attack triggers take place after the actual attack but im pretty sure obliterate is before
i guess i shouldnt use the word ‘target’ since its not a target in game terms, but like just a choicesharpobject
I am not clear on the details of 3) but I think if the target has stopped patrolling, you should still get to choose a new target
this matters if your cinderblast dragon was attacking a flying immortalPunf
oh, huh
actually how wacky would it be if you just got to choose a new target no matter what
would that cause any issuessharpobject
hopefully the UI can hide that choice if there were no attack triggers lolPunf
like, is step 1 necessary or can we just have choosing the attack target after attack triggerssharpobject
one possible issue is setsuki
oh
I’m not sure about that
I think you may be safe to get rid of step 1Punf
man that sounds super sweetSotek
are there any target-based attack triggers?sharpobject
yeah
my 2 concerns arePunf
there are some that sort of are like wightsharpobject
is there a situation where there are no valid attack targets for a unit or hero?
are there any “attacks an X” triggers?Punf
huh, im pretty sure no?sharpobject
if it’s no to both I think you can scrap part 1 thereSotek
yes to the first
it’s really dumb
but yesPunf
uh ohsharpobject
oh?
how do you make it happen
I thought we got rid of all the stuff like thisSotek
lawbringer gryphonsharpobject
ok greatSotek
you need him, your base, no tech buildings, and no non-flying unitssharpobject
so if you have a trojan duck, and I have lawbringer gryphon and no tech buildings, you can’t attack mePunf
hmm, what if we replaced step 1 with ‘verify that there is at least one legal target’ but dont require you to actually pick a targetsharpobject
lmaoPunf
does it work then?sharpobject
yes that worksSotek
yeah
actuallyPunf
oh what happens if you have duck against lawbringer and two random 1/1ssharpobject
UI wise I would sort of want the flow you pasted anyway, since I want to drag from my guy to the guy I am attacking and most of my guys don’t have “attacks” triggersPunf
you obliterate the 1/1s then cant do the actual attack?sharpobject
you obliterate the 1/1s and then sort of stop
yeahSotek
yeah that’s what happens therePunf
so it sounds like picking the target after attack triggers makes way more sense, hooraySotek
unfortunately there’s a case where the outcome is affectedsharpobject
?Sotek
lawbringer gryphon, a tech building, and base.Punf
kinda weird to have attack triggers trigger when you didnt actually attack, oh wellSotek
trojan duck obliterates the gryphon but MUST attack the tech buildingsharpobject
oh goshPunf
so step 1 actually is necessary and we need weird rules on when step 3 lets you retarget?sharpobject
if we are huge pedants, yesPunf
either that, or weird rules on what you can pick in step 3 based on what you could have picked in step 1
but even then you should really be locking in the choice earlier in case your attack triggers give you new informationSotek
that said maybe we don’t match the rules 100% here, lolPunf
well if i can get official permission from the rules manager to ditch step 1 ill be happy to obeysharpobject
ditching step 1 doesn’t sound like a big dealPunf
sweetsharpobject
but like I said above, in a UI for a card game I want to attack by dragging an arrow from my guy to the thing I am attacking
and this vaguely implies the workflow that includes step 1Punf
interesting, personally id rather have the attack triggers occur before i pick my target
it feels super weird to target, obliterate things, and then retarget
in the normal case where there are no attack triggers, it works the same whether you target in step 1 or step 3sharpobject
Rules Questions thread - #2383 by sharpobject
here’s what I said about Second Chances
including pedantry about “x times per turn” vs “the first x times each turn”
Rambasa Twin has a 4th ability that happens at that timing that I left out of a lot of posts
I also got to be sad about wandering mimic vs crypt crawler all over again
though I’m not sure whether to be sad about it or proud to not have imported rule 613.7 from mtgSotek
lolsharpobject
oh I got to the end of the post I linked where I said “Getting a derived state where Escaped Shapeshifter is the only creature with flying seems like a bug to me. So I don’t think this setup is significantly better than the one we have in Codex.”
that’s greatSotek
lolsharpobject
re: UI with attack triggers, yes I agree, but the vast majority of attacks have no attack triggers
oh that’s another fix I guess
you could say “if my guy has no attack triggers, drag to defender to attack, otherwise drag anywhere on the other side of the board to attack”
that’s very reasonablePunf
well nuking step 1 means there probably has to be a separate ‘attack’ button (it cant just be clicking the attacker attacks, because what if you wanted to use an activated ability on it)
having two click attacks (click attacker, click defender) means reintroducing step 1 and possibly having to change your targetsharpobject
I really think it should be what I said, if I was a big budget digital card game company
like in hearthstone, I left click my dude and drag to the enemy dudePunf
possibly changing target midway through is super ugh from a rules standpoint but i guess it makes the ui bettersharpobject
if my dude happens to be plague lord, instead I’m not allowed to drag to the other dude, and some huge red overlay thing comes up over the enemy board, and dragging to anywhere on that just does the attack trigger
after that I’m forced to choose a thing to attack with plague lord
right click → attack is fine for non-big-budget digital card gamesPunf
well i currently have right click → view zoomed in version of the card
i figure people with small screens will just be completely unable to play the game if theres not some way to zoom in on cards
and right click is way more convenient than having a separate magnifying glass or somethingSotek
hehPunf
also im not getting the second chances thing
my understanding is once-per-turn = ‘this can only trigger once per turn’
so if you have 2 second chances and 3 things leave simultaneously, what stops both of them from randomly choosing the same thing
(in which case youd only get that one thing back)sharpobject
Rules Questions thread - #2394 by sharpobjectPunf
so one resolves immediately, and then the other resolves when the first rescued thing isnt there any more?sharpobject
yeah
it won’t be able to pick that thing, so it will have to pick something elsePunf
but then how does the 2 second chances, 1 thing leaving thing work?
the first one resolves immediately, and then the second has no possible targets but still has its use used up?sharpobject
rightPunf
so the use gets used up from trying to trigger despite having no possible targets? seems weird but i guess consistent…
27/04/2019
Punf
is ‘things that should die die’ the only state-based action in codex?
i guess ‘you lose the game if you dont have a base’ might be one too?Faulty Ice
Rules Questions thread - #1038 by sharpobjectMollytheBard
If you use Promise of Payment and can’t pay next upkeep, you loseFaulty Ice
but that is a trigger, not a statebased actionMollytheBard
OkayPunf
oh damn that seems opFaulty Ice
?Punf
what happens if both bases are destroyed at the same time?
im guessing active player wins?Faulty Ice
How would both players bases take damage at the same time?Punf
burning volleyGRAG
Codex Card Database | Careless Musketeer
“And,” rather than “then”Faulty Ice
I would assume a tie, as all state based actions happen at the same timePunf
i think careless musketeer actually does the first thing then the second thing? i dunnoFaulty Ice
it does both at the same time, it would need to be on dfifferent lines for them them to happen one after the other
*paragraphssharpobject
punf, maybe “tokens in most zones cease to exist”Punf
oh rightsharpobject
tie if both bases die at the same time I guessPunf
huh, newlines have a mechanical effect in codex? kinda strangesharpobject
do we have a rule about + and - runes cancelling?Faulty Ice
that is in your list of statebased actions sharposharpobject
wow great lets just use that listFaulty Ice
@Punf yes, statebased actions are checked inbetween lines, this can be very important (for instance if Earthquake can end up dealing no damgae to an opponents base, if it starts undamaged and a tech building/add on is destroyed by the earthquake)sharpobject
I dont think its exactly “newlines” but this is the thing we chatted about with final smashPunf
oh what about destroyed tech buildings dealing 2 damage to your base?Faulty Ice
statebased
again in the listPunf
hrm im not seeing itFaulty Ice
If a unit or hero just took deathtouch damage or a unit, hero, or building has lethal damage marked on it, it dies. If it was a hero, an opposing hero gets 2 levels. If it was a tech building or addon, that player’s base takes 2 damage.Punf
oh, all rightFaulty Ice
it is mixed in with a lot of other things, can be hard to spot straight off the bat.