Skip to content

Commit

Permalink
Merge pull request mtgred#7333 from NBKelly/more-cleanup
Browse files Browse the repository at this point in the history
More spring cleaning
  • Loading branch information
NoahTheDuke authored Mar 28, 2024
2 parents 158e047 + 75d4672 commit 61f23e9
Show file tree
Hide file tree
Showing 8 changed files with 59 additions and 34 deletions.
40 changes: 25 additions & 15 deletions src/clj/game/cards/agendas.clj
Original file line number Diff line number Diff line change
Expand Up @@ -193,21 +193,31 @@
{:interactive (req true)
:async true
:msg "look at the top 5 cards of R&D"
:prompt (msg "The top cards of R&D are (top->bottom): " (enumerate-str (map :title (take 5 (:deck corp)))))
:choices ["OK"]
:req (req (not-empty (:deck corp)))
:effect (effect (continue-ability
{:prompt "Choose a card to install"
:choices (cancellable (filter corp-installable-type? (take 5 (:deck corp))))
:async true
:effect (effect (corp-install eid target nil
{:ignore-all-cost true
:install-state :rezzed-no-cost}))
:cancel-effect (effect (system-msg (str "declines to use "
(get-title card)
" to install any of the top 5 cards of R&D"))
(effect-completed eid))}
card nil))}})
;; this is explicitly so the prompt shows up before we look at the menu
:effect (req (continue-ability
state side
{:prompt (msg "The top cards of R&D are (top->bottom): "
(enumerate-str (map :title (take 5 (:deck corp)))))
:choices ["OK"]
:async true
:req (req (not-empty (:deck corp)))
:effect (effect (continue-ability
{:prompt "Choose a card to install"
:choices (cancellable (filter corp-installable-type?
(take 5 (:deck corp))))
:async true
:effect (effect (corp-install
eid target nil
{:ignore-all-cost true
:install-state :rezzed-no-cost}))
:cancel-effect
(effect (system-msg
(str "declines to use "
(get-title card)
" to install any of the top 5 cards of R&D"))
(effect-completed eid))}
card nil))}
card nil))}})

(defcard "Armed Intimidation"
{:on-score
Expand Down
1 change: 1 addition & 0 deletions src/clj/game/cards/assets.clj
Original file line number Diff line number Diff line change
Expand Up @@ -3093,6 +3093,7 @@
(derez target))}]
{:derezzed-events [corp-rez-toast]
:events [{:event :corp-turn-begins
:interactive (req true)
:async true
:effect (req (wait-for (resolve-ability state side install card nil)
(continue-ability state side derez card nil)))}]}))
Expand Down
5 changes: 3 additions & 2 deletions src/clj/game/cards/events.clj
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
[game.core.installing :refer [install-as-condition-counter install-locked?
runner-can-install? runner-install]]
[game.core.link :refer [get-link]]
[game.core.mark :refer [identify-mark-ability]]
[game.core.mark :refer [identify-mark-ability mark-changed-event]]
[game.core.memory :refer [available-mu]]
[game.core.moving :refer [as-agenda flip-facedown forfeit mill move
swap-ice trash trash-cards]]
Expand Down Expand Up @@ -543,11 +543,13 @@

(defcard "Carpe Diem"
{:makes-run true
:events [mark-changed-event]
:on-play
{:async true
:effect (req (wait-for
(resolve-ability state side identify-mark-ability card nil)
(let [marked-server (:mark @state)]
(update! state :runner (assoc card :card-target (central->name marked-server)))
(system-msg state side (str "uses " (:title card) " to gain 4 [Credits]"))
(wait-for (gain-credits state :runner 4)
(continue-ability
Expand Down Expand Up @@ -3968,7 +3970,6 @@
(effect-completed eid))}
{:event :run-ends
:req (req (and (not (get-in card [:special :run-again]))
(= :rd (target-server context))
this-card-run))
:prompt "Choose a remote server to run"
:choices (req (cancellable
Expand Down
5 changes: 3 additions & 2 deletions src/clj/game/cards/hardware.clj
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
[jinteki.utils :refer :all]
[game.core.set-aside :refer [set-aside get-set-aside]]
[game.core.sabotage :refer [sabotage-ability]]
[game.core.mark :refer [identify-mark-ability]]))
[game.core.mark :refer [identify-mark-ability mark-changed-event]]))

;; Card definitions

Expand Down Expand Up @@ -2525,7 +2525,8 @@

(defcard "Virtuoso"
{:static-abilities [(mu+ 1)]
:events [(assoc identify-mark-ability :event :runner-turn-begins)
:events [mark-changed-event
(assoc identify-mark-ability :event :runner-turn-begins)
{:event :successful-run
:req (req (and (:marked-server target)
(first-event? state side :successful-run #(:marked-server (first %)))))
Expand Down
5 changes: 3 additions & 2 deletions src/clj/game/cards/identities.clj
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
[game.core.initializing :refer [make-card]]
[game.core.installing :refer [corp-install install-locked? runner-can-pay-and-install? runner-install]]
[game.core.link :refer [link+ update-link]]
[game.core.mark :refer [identify-mark-ability]]
[game.core.mark :refer [identify-mark-ability mark-changed-event]]
[game.core.memory :refer [mu+]]
[game.core.moving :refer [mill move swap-ice trash trash-cards]]
[game.core.optional :refer [get-autoresolve never? set-autoresolve]]
Expand Down Expand Up @@ -1592,7 +1592,8 @@
abi2]}))

(defcard "Nyusha \"Sable\" Sintashta: Symphonic Prodigy"
{:events [(assoc identify-mark-ability :event :runner-turn-begins)
{:events [mark-changed-event
(assoc identify-mark-ability :event :runner-turn-begins)
{:event :successful-run
:interactive (req true)
:req (req (and (:marked-server target)
Expand Down
5 changes: 3 additions & 2 deletions src/clj/game/cards/programs.clj
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
[game.core.installing :refer [install-locked? runner-can-install? runner-can-pay-and-install?
runner-install]]
[game.core.link :refer [get-link]]
[game.core.mark :refer [identify-mark-ability]]
[game.core.mark :refer [identify-mark-ability mark-changed-event]]
[game.core.memory :refer [available-mu update-mu]]
[game.core.moving :refer [flip-facedown mill move swap-cards swap-ice trash trash-cards
trash-prevent]]
Expand Down Expand Up @@ -3341,7 +3341,8 @@
:effect trash-if-5}]}))

(defcard "Tunnel Vision"
(auto-icebreaker {:events [(assoc identify-mark-ability :event :runner-turn-begins)]
(auto-icebreaker {:events [mark-changed-event
(assoc identify-mark-ability :event :runner-turn-begins)]
:abilities [(break-sub 2 2 "All" {:req (req (= (:mark @state) (first (:server run))))})
(strength-pump 2 2)]}))

Expand Down
8 changes: 5 additions & 3 deletions src/clj/game/cards/resources.clj
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
[game.core.installing :refer [install-locked? runner-can-install? runner-can-pay-and-install?
runner-install]]
[game.core.link :refer [get-link link+]]
[game.core.mark :refer [identify-mark-ability is-mark?]]
[game.core.mark :refer [identify-mark-ability mark-changed-event is-mark?]]
[game.core.memory :refer [available-mu]]
[game.core.moving :refer [as-agenda flip-faceup forfeit mill move
remove-from-currently-drawing trash trash-cards
Expand Down Expand Up @@ -410,7 +410,8 @@
(all-active-installed state :runner))
ordered (sort-by :index stitches)]
(= (:index (first ordered)) (:index card))))]
{:events [(assoc identify-mark-ability :event :runner-turn-begins)
{:events [mark-changed-event
(assoc identify-mark-ability :event :runner-turn-begins)
{:event :encounter-ice
:async true
:interactive (req true)
Expand Down Expand Up @@ -1695,7 +1696,8 @@
:value -1}]})

(defcard "Info Bounty"
{:events [(assoc identify-mark-ability :event :runner-turn-begins)
{:events [mark-changed-event
(assoc identify-mark-ability :event :runner-turn-begins)
{:event :run-ends
:async true
:interactive (req true)
Expand Down
24 changes: 16 additions & 8 deletions src/clj/game/core/mark.clj
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
(ns game.core.mark
(:require
[game.core.say :refer [system-msg]]
[game.core.servers :refer [central->name]]
[game.core.update :refer [update!]]
[game.macros :refer [req]]))
[game.core.engine :refer [trigger-event]]
[game.core.say :refer [system-msg]]
[game.core.servers :refer [central->name]]
[game.core.update :refer [update!]]
[game.macros :refer [req]]))

(defn set-mark
[state new-mark]
(swap! state assoc :mark new-mark))
(swap! state assoc :mark new-mark)
(trigger-event state :runner :mark-changed nil))

(defn is-mark?
[state s]
Expand All @@ -17,8 +19,14 @@
[state]
(let [new-mark (nth [:hq :rd :archives] (rand-int 3))]
(set-mark state new-mark)
(system-msg state :runner (str "identifies their mark to be " (central->name new-mark)))))
(system-msg state :runner (str "identifies their mark to be " (central->name new-mark)))
(trigger-event state :runner :mark-changed nil)))

(def identify-mark-ability
{:effect (req (when (nil? (:mark @state)) (identify-mark state))
(update! state :runner (assoc card :card-target (central->name (:mark @state)))))})
{:effect (req (when (nil? (:mark @state)) (identify-mark state)))})

(def mark-changed-event
{:event :mark-changed
:silent (req true)
:interactive (req false)
:effect (req (update! state :runner (assoc card :card-target (central->name (:mark @state)))))})

0 comments on commit 61f23e9

Please sign in to comment.