2
<p>So instead of having the Ouroboros card have rules on it saying that it always returns to your hand when killed, it has an Unkillable sigil.</p>
Its deeply upsetting that the specification for `mailto:address?in-reply-to=message_id` is [26 years old](https://www.rfc-editor.org/rfc/rfc2368) and yet barely any software supports it besides Thunderbird :-( And the alternative option is downloading an e-mail message file (`.eml`), opening it, and replying to that; but how many people even have desktop e-mail clients setup any more?
<p>Inscryption has a neat bit of abstraction: cards have attack/health/cost and then some number of sigils.<br />There&#39;s no rules on the cards themselves, but each sigil has associated rules, which you can look up at any time.</p>
I understand the dislike for e-mail based patch workflows. I have a soft spot for sending my changes with `git send-email` but I don't think its a _good_ code review or change management process. But mailing lists... I don't really understand the dislike people have for mailing lists. Some of the best technical collaboration I've ever done has been via mailing lists. Most of them you don't even have to be a subscriber to start conversations on; they'll accept e-mails from anyone. And, unlike with forums, the replies come back to my e-mail inbox, which means its harder to forget about posts I've made. Of course there is something to be said about how e-mail tooling can be [obnoxiously minimalist](https://lore.kernel.org/linux-fsdevel/20241101135452.19359-1-erin.shepherd@e43.eu/T/#m0489d8e9a46e8ea24a1a1c54b875211d8a9c71df), arcane, or just a thing that people don't have setup any more in the same way as they did in the past.
<p>That times a billion. You can&#39;t do anything in the engine without checking 8 different conditions that only happen when you have some other rare item and it&#39;s in the right place</p>
<p>Of course you could always just pull a Nethack and make every line of code endless ternary conditions like the very idea of OO is an insult to K&amp;R themselves.</p><p>damage=weapon_damage*strength+(lane&gt;0 &amp;&amp; playfield[lane-1]==CARD_OXPECKER)?2:0)</p>
<p>How do you implement that without this becoming a nightmare of endless difficult-to-test specialized code?</p><p>That&#39;s the challenge</p>
<p>Like you have<br />* the Rat: 1 damage 1 health<br />* the Wolf: 3 damage 2 health<br />* the Armadillo: only takes damage on even numbered turns<br />* the Oxpecker: the card to the left has +2 health</p>
<p>Do you ever get the urge to program a deckbuilding game?</p><p>Because it&#39;d be such an interesting challenge to architect! A good deckbuilding game is full of cards/item/units that essentially alter the rules for that one card, and that&#39;s gonna be very interesting to implement.</p>