From dbe2564e08f33855c04ff871c20d745c47e82b1c Mon Sep 17 00:00:00 2001 From: NB Kelly Date: Sun, 8 Mar 2026 07:00:40 +1300 Subject: [PATCH 1/3] lampades is whenever. Can-pay works properly. --- src/clj/game/cards/programs.clj | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/clj/game/cards/programs.clj b/src/clj/game/cards/programs.clj index a4c6f75eb3..8203d51d12 100644 --- a/src/clj/game/cards/programs.clj +++ b/src/clj/game/cards/programs.clj @@ -1951,12 +1951,11 @@ {:access-ability {:async true :trash? true - :once :per-turn :label "Trash card" :req (req (and (not (:disabled card)) (not (agenda? target)) (not (in-discard? target)) - (can-pay? state side eid card [(->c :power 1) (->c :credit (:cost target 0) {:stealth :all-stealth})]))) + (can-pay? state side eid card nil [(->c :power 1) (->c :credit (:cost target 0) {:stealth :all-stealth})]))) :waiting-prompt true :effect (req (let [accessed-card target play-or-rez (:cost target)] From 920df0780ad61ef27c7e48506fb6c2f6bac03311 Mon Sep 17 00:00:00 2001 From: NB Kelly Date: Sun, 8 Mar 2026 07:27:51 +1300 Subject: [PATCH 2/3] tests for lampades cost, lampades multiple times per turn --- test/clj/game/cards/programs_test.clj | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/test/clj/game/cards/programs_test.clj b/test/clj/game/cards/programs_test.clj index 5143ab9889..6cf59c1a85 100644 --- a/test/clj/game/cards/programs_test.clj +++ b/test/clj/game/cards/programs_test.clj @@ -5257,6 +5257,26 @@ (is (= 1 (count (:discard (get-corp))))) (is (= 0 (count (:discard (get-runner)))) "0 in discard")))) +(deftest lampades-not-once-per-turn + (do-game + (new-game {:corp {:hand ["Tiered Subscription" "Tiered Subscription"]} + :runner {:hand ["Lampades" "Jailbreak"]}}) + (take-credits state :corp) + (play-cards state :runner "Lampades" ["Jailbreak" "HQ"]) + (run-continue-until state :success) + (click-prompts state :runner "[Lampades] Trash card" "[Lampades] Trash card") + (is (= 2 (count (:discard (get-corp)))) "Trashed both"))) + +(deftest lampades-cost-actually-checks + (do-game + (new-game {:corp {:hand ["PAD Campaign" "PAD Campaign"]} + :runner {:hand ["Lampades" "Jailbreak"]}}) + (take-credits state :corp) + (play-cards state :runner "Lampades" ["Jailbreak" "HQ"]) + (run-continue-until state :success) + (is (= ["Pay 4 [Credits] to trash" "No action"] (prompt-titles :runner)) + "Can't pay without sufficient stealth credits"))) + (deftest lamprey ;; Lamprey - Corp loses 1 credit for each successful HQ run; trashed on purge (do-game From 9e21d37f63ea5e2b6aeec458183a28b4b35c1aee Mon Sep 17 00:00:00 2001 From: NB Kelly Date: Sun, 8 Mar 2026 07:28:21 +1300 Subject: [PATCH 3/3] fixed can-pays that do nothing --- src/clj/game/cards/programs.clj | 2 +- src/clj/game/core/ice.clj | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/clj/game/cards/programs.clj b/src/clj/game/cards/programs.clj index 8203d51d12..b0e92970d1 100644 --- a/src/clj/game/cards/programs.clj +++ b/src/clj/game/cards/programs.clj @@ -230,7 +230,7 @@ break-ability no-unbreakable-subs (pos? unbroken-subs) - (can-pay? state side eid card total-cost)) + (can-pay? state side eid card nil total-cost)) [{:dynamic :auto-pump-and-break :cost total-cost :cost-label (build-cost-label total-cost) diff --git a/src/clj/game/core/ice.clj b/src/clj/game/core/ice.clj index 4678ff6dbb..6acf3d2ad1 100644 --- a/src/clj/game/core/ice.clj +++ b/src/clj/game/core/ice.clj @@ -816,7 +816,7 @@ no-unbreakable-subs can-auto-break (pos? unbroken-subs) - (can-pay? state side eid card total-cost)) + (can-pay? state side eid card nil total-cost)) [{:dynamic :auto-pump-and-break :cost total-cost :cost-label (build-cost-label total-cost) @@ -826,7 +826,7 @@ (:title current-ice))}]) (when (and pump-ability (pos? times-pump) - (can-pay? state side eid card total-pump-cost)) + (can-pay? state side eid card nil total-pump-cost)) [{:dynamic :auto-pump :cost total-pump-cost :cost-label (build-cost-label total-pump-cost)