From 9cc9322639586aa434381e9d04fa51fcc7d92e19 Mon Sep 17 00:00:00 2001 From: NB Kelly Date: Fri, 26 Dec 2025 15:20:22 +1300 Subject: [PATCH 1/5] fix rotations, add rules insert cycle --- edn/cycles.edn | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/edn/cycles.edn b/edn/cycles.edn index f9d72e2b..3827da26 100644 --- a/edn/cycles.edn +++ b/edn/cycles.edn @@ -81,17 +81,17 @@ {:id "kitara" :name "Kitara" :position 21 - :rotated false + :rotate true :size 6} {:id "reign-and-reverie" :name "Reign and Reverie" :position 22 - :rotated false + :rotated true :size 1} {:id "magnum-opus" :name "Magnum Opus" :position 23 - :rotated false + :rotated true :size 1} {:id "napd-multiplayer" :name "NAPD Multiplayer" @@ -111,7 +111,7 @@ {:id "magnum-opus-reprint" :name "Magnum Opus Reprint" :position 28 - :rotated false + :rotated true :size 1} {:id "salvaged-memories" :name "Salvaged Memories" @@ -126,7 +126,7 @@ {:id "system-update-2021" :name "System Update 2021" :position 31 - :rotated false + :rotated true :size 1} {:id "borealis" :name "Borealis" @@ -141,5 +141,10 @@ {:id "elevation" :name "Elevation" :position 34 + :rotated false + :size 1} + {:id "rules" + :name "Rules" + :position 99 :rotated true :size 1}] From 910da9f94bdf759619732c5e15ed10717744bfed Mon Sep 17 00:00:00 2001 From: NB Kelly Date: Fri, 26 Dec 2025 15:20:36 +1300 Subject: [PATCH 2/5] add rules insert set --- edn/sets.edn | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/edn/sets.edn b/edn/sets.edn index 597cb508..7ac5989c 100644 --- a/edn/sets.edn +++ b/edn/sets.edn @@ -747,4 +747,14 @@ :name "Elevation" :position 1 :set-type :data-pack - :size 82}] + :size 82} + {:code "rules" + :cycle-id "rules" + :date-release "2025-04-24" + :deluxe false + :ffg-id nil + :id "rules" + :name "Rules" + :position 1 + :set-type :rules + :size 9}] From 51f67a308b277fcd39aca876e4e6ec81bf4882ba Mon Sep 17 00:00:00 2001 From: NB Kelly Date: Fri, 26 Dec 2025 15:32:39 +1300 Subject: [PATCH 3/5] sides and types for rules inserts --- edn/sides.edn | 4 +++- edn/types.edn | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/edn/sides.edn b/edn/sides.edn index ac4a61f0..f51d39b5 100644 --- a/edn/sides.edn +++ b/edn/sides.edn @@ -1,4 +1,6 @@ [{:id :corp :name "Corp"} {:id :runner - :name "Runner"}] + :name "Runner"} + {:id :rules-insert + :name "Rules Insert"}] diff --git a/edn/types.edn b/edn/types.edn index 16264746..eed3ed69 100644 --- a/edn/types.edn +++ b/edn/types.edn @@ -17,4 +17,6 @@ {:id :resource :name "Resource"} {:id :program - :name "Program"}) + :name "Program"} + {:id :rules-insert + :name "Rules Insert"}) From a42870a8111b29464243b7a4975af05597304c61 Mon Sep 17 00:00:00 2001 From: NB Kelly Date: Fri, 26 Dec 2025 15:33:03 +1300 Subject: [PATCH 4/5] set and cards for rules inserts --- edn/cards/agenda-requirements.edn | 7 +++++ edn/cards/charge.edn | 7 +++++ edn/cards/core-damage.edn | 7 +++++ edn/cards/corp-turn.edn | 7 +++++ edn/cards/making-a-run.edn | 7 +++++ edn/cards/mark.edn | 7 +++++ edn/cards/runner-turn.edn | 7 +++++ edn/cards/sabotage.edn | 7 +++++ edn/cards/threat.edn | 7 +++++ edn/set-cards/rules.edn | 45 +++++++++++++++++++++++++++++++ 10 files changed, 108 insertions(+) create mode 100644 edn/cards/agenda-requirements.edn create mode 100644 edn/cards/charge.edn create mode 100644 edn/cards/core-damage.edn create mode 100644 edn/cards/corp-turn.edn create mode 100644 edn/cards/making-a-run.edn create mode 100644 edn/cards/mark.edn create mode 100644 edn/cards/runner-turn.edn create mode 100644 edn/cards/sabotage.edn create mode 100644 edn/cards/threat.edn create mode 100644 edn/set-cards/rules.edn diff --git a/edn/cards/agenda-requirements.edn b/edn/cards/agenda-requirements.edn new file mode 100644 index 00000000..4beaed7e --- /dev/null +++ b/edn/cards/agenda-requirements.edn @@ -0,0 +1,7 @@ +{:side :rules-insert + :id "agenda-points" + :title "Agenda Points" + :text "Corp decks contain the agendas that define victory for both players. The agendas in a Corp deck must add up to a specific number of agenda points based on how many cards are in the deck:\n\nDeck Size\tAgenda Points Required\n30 - 34\t 14-15\n\n35 - 39\t 16-17\n\n40 - 44\t 18-19\n\n45 - 49\t 20-21\n\n50 - 44\t 22-23\n\nDecks with over 54 cards require 2 extra points for every 5 cards added." + :stripped-text "Corp decks contain the agendas that define victory for both players. The agendas in a Corp deck must add up to a specific number of agenda points based on how many cards are in the deck:\n\nDeck Size\tAgenda Points Required\n30 - 34\t 14-15\n\n35 - 39\t 16-17\n\n40 - 44\t 18-19\n\n45 - 49\t 20-21\n\n50 - 44\t 22-23\n\nDecks with over 54 cards require 2 extra points for every 5 cards added." + :type :rules-insert + :stripped-title "Agenda Points"} diff --git a/edn/cards/charge.edn b/edn/cards/charge.edn new file mode 100644 index 00000000..a6dc1629 --- /dev/null +++ b/edn/cards/charge.edn @@ -0,0 +1,7 @@ +{:side :rules-insert + :id "charge" + :title "Charge" + :text "To \"charge\" a card, if it has at least 1 power counter on it, simply place 1 more power counter on it.\n\nMost charge effects let you charge any of your installed cards. You can choose any card with a power counter as the target for these effects. You can never charge a card that does not have any hosted power counters." + :stripped-text "To \"charge\" a card, if it has at least 1 power counter on it, simply place 1 more power counter on it.\n\nMost charge effects let you charge any of your installed cards. You can choose any card with a power counter as the target for these effects. You can never charge a card that does not have any hosted power counters." + :type :rules-insert + :stripped-title "Charge"} diff --git a/edn/cards/core-damage.edn b/edn/cards/core-damage.edn new file mode 100644 index 00000000..20440b53 --- /dev/null +++ b/edn/cards/core-damage.edn @@ -0,0 +1,7 @@ +{:side :rules-insert + :id "core-damage" + :title "Core Damage" + :text "Like net and meat damage, \"core damage\" forces the Runner to trash cards from their grip at random. Unlike other damage, each point of core damage also permanently reduces the Runner's maximum hand size by 1.\n\nIf the Runner ever ends their turn with a negative maximum hand size, they flatline and lose the game, just as if they had suffered more damage than the number of cards in their grip. A maximum hand size of exactly 0 does not cause a flatline.\n\nNote: Older cards write core damage as \"brain damage\". For gameplay purposes, these terms are interchangeable." + :stripped-text "Like net and meat damage, \"core damage\" forces the Runner to trash cards from their grip at random. Unlike other damage, each point of core damage also permanently reduces the Runner's maximum hand size by 1.\n\nIf the Runner ever ends their turn with a negative maximum hand size, they flatline and lose the game, just as if they had suffered more damage than the number of cards in their grip. A maximum hand size of exactly 0 does not cause a flatline.\n\nNote: Older cards write core damage as \"brain damage\". For gameplay purposes, these terms are interchangeable." + :type :rules-insert + :stripped-title "Core Damage"} diff --git a/edn/cards/corp-turn.edn b/edn/cards/corp-turn.edn new file mode 100644 index 00000000..2b1c8ca0 --- /dev/null +++ b/edn/cards/corp-turn.edn @@ -0,0 +1,7 @@ +{:side :rules-insert + :id "corp-turn" + :title "Corp Turn" + :text "" + :stripped-text "" + :type :rules-insert + :stripped-title "Corp Turn"} diff --git a/edn/cards/making-a-run.edn b/edn/cards/making-a-run.edn new file mode 100644 index 00000000..dff193db --- /dev/null +++ b/edn/cards/making-a-run.edn @@ -0,0 +1,7 @@ +{:side :rules-insert + :id "making-a-run" + :title "Making a Run" + :text "This is a pictograph sorry. Click the run timing tab in the chat log for a detailed (text form) explanation" + :stripped-text "This is a pictograph sorry. Click the run timing tab in the chat log for a detailed (text form) explanation" + :type :rules-insert + :stripped-title "Making a Run"} diff --git a/edn/cards/mark.edn b/edn/cards/mark.edn new file mode 100644 index 00000000..2eb311c0 --- /dev/null +++ b/edn/cards/mark.edn @@ -0,0 +1,7 @@ +{:side :rules-insert + :id "mark" + :title "Mark" + :text "When an ability instructs you to \"identify your mark\", choose a central server (HQ, R&D or Archives) at random. That server becomes \"your mark\" for the remainder of the turn. A server being your mark doesn't do anything on its own, but cards can make use of it in a variety of ways.\n\nIf you already have a mark this turn and you are instructed to identify your mark again, don't randomize a new mark. The same server remains your mark." + :stripped-text "When an ability instructs you to \"identify your mark\", choose a central server (HQ, R&D or Archives) at random. That server becomes \"your mark\" for the remainder of the turn. A server being your mark doesn't do anything on its own, but cards can make use of it in a variety of ways.\n\nIf you already have a mark this turn and you are instructed to identify your mark again, don't randomize a new mark. The same server remains your mark." + :type :rules-insert + :stripped-title "Mark"} diff --git a/edn/cards/runner-turn.edn b/edn/cards/runner-turn.edn new file mode 100644 index 00000000..49f4e8fe --- /dev/null +++ b/edn/cards/runner-turn.edn @@ -0,0 +1,7 @@ +{:side :rules-insert + :id "runner-turn" + :title "Runner Turn" + :text "" + :stripped-text "" + :type :rules-insert + :stripped-title "Runner Turn"} diff --git a/edn/cards/sabotage.edn b/edn/cards/sabotage.edn new file mode 100644 index 00000000..c3f2b667 --- /dev/null +++ b/edn/cards/sabotage.edn @@ -0,0 +1,7 @@ +{:side :rules-insert + :id "sabotage" + :title "Sabotage" + :text "When you \"Sabotage N\", the Corp must trash a total of N cards from HQ and the top of R&D.\n\nThe Corp decides which cards to trash from HQ, but they only get to choose how many cards to trash from the top of R&D. All of the choices are made first, and then everything is trashed simultaneously. The trashed cards enter Archives facedown, and the Corp may not look at the cards they trashed from R&D until the sabotage effect is fully resolved.\n\nIf there are fewer than N cards in HQ or R&D, the Corp must make their choices in a way that trashes the full N cards. If there are fewer than N cards in HQ and R&D combined, the Corp trashes all of the cards from both zones" + :stripped-text "When you \"Sabotage N\", the Corp must trash a total of N cards from HQ and the top of R&D.\n\nThe Corp decides which cards to trash from HQ, but they only get to choose how many cards to trash from the top of R&D. All of the choices are made first, and then everything is trashed simultaneously. The trashed cards enter Archives facedown, and the Corp may not look at the cards they trashed from R&D until the sabotage effect is fully resolved.\n\nIf there are fewer than N cards in HQ or R&D, the Corp must make their choices in a way that trashes the full N cards. If there are fewer than N cards in HQ and R&D combined, the Corp trashes all of the cards from both zones" + :type :rules-insert + :stripped-title "Sabotage"} diff --git a/edn/cards/threat.edn b/edn/cards/threat.edn new file mode 100644 index 00000000..fabd83c0 --- /dev/null +++ b/edn/cards/threat.edn @@ -0,0 +1,7 @@ +{:side :rules-insert + :id "threat" + :title "Threat" + :text "The [b]threat level[/b] is the greatest number of agenda points in any player's score area. For example, if the Runner has 4 agenda points and the Corp has 3 agenda points, the threat level is 4.\n\n[b]Threat abilities[/b] are marked with a new ability flag, \"Threat N →\", and are only active if the threat level is equal to or greater than the given numher N. If the threat level is less than N, the corresponding ability is inactive and cannot be triggered or applied to the game state." + :stripped-text "The threat level is the greatest number of agenda points in any player's score area. For example, if the Runner has 4 agenda points and the Corp has 3 agenda points, the threat level is 4.\n\nThreat abilities are marked with a new ability flag, \"Threat N →\", and are only active if the threat level is equal to or greater than the given numher N. If the threat level is less than N, the corresponding ability is inactive and cannot be triggered or applied to the game state." + :type :rules-insert + :stripped-title "Threat"} diff --git a/edn/set-cards/rules.edn b/edn/set-cards/rules.edn new file mode 100644 index 00000000..24391196 --- /dev/null +++ b/edn/set-cards/rules.edn @@ -0,0 +1,45 @@ +[{:card-id "sabotage" + :code "99001" + :position 1 + :quantity 1 + :set-id "rules"} + {:card-id "mark" + :code "99002" + :position 2 + :quantity 1 + :set-id "rules"} + {:card-id "charge" + :code "99003" + :position 3 + :quantity 1 + :set-id "rules"} + {:card-id "core-damage" + :code "99004" + :position 4 + :quantity 1 + :set-id "rules"} + {:card-id "threat" + :code "99005" + :position 5 + :quantity 1 + :set-id "rules"} + {:card-id "runner-turn" + :code "99006" + :position 6 + :quantity 1 + :set-id "rules"} + {:card-id "corp-turn" + :code "99007" + :position 7 + :quantity 1 + :set-id "rules"} + {:card-id "making-a-run" + :code "99008" + :position 8 + :quantity 1 + :set-id "rules"} + {:card-id "agenda-points" + :code "99009" + :position 9 + :quantity 1 + :set-id "rules"}] From 552d50d467b573156a70d1cda1a757adc449193b Mon Sep 17 00:00:00 2001 From: NB Kelly Date: Fri, 2 Jan 2026 11:47:29 +1300 Subject: [PATCH 5/5] fix rotations --- edn/cycles.edn | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/edn/cycles.edn b/edn/cycles.edn index 3827da26..156566ee 100644 --- a/edn/cycles.edn +++ b/edn/cycles.edn @@ -61,7 +61,7 @@ {:id "red-sand" :name "Red Sand" :position 12 - :rotated false + :rotated true :size 6} {:id "terminal-directive" :name "Terminal Directive" @@ -71,7 +71,7 @@ {:id "unreleased" :name "Unreleased" :position 14 - :rotated true + :rotated false :size 1} {:id "revised-core" :name "Revised Core" @@ -81,7 +81,7 @@ {:id "kitara" :name "Kitara" :position 21 - :rotate true + :rotated true :size 6} {:id "reign-and-reverie" :name "Reign and Reverie"