Skip to content

Vantage Point#8532

Draft
NBKelly wants to merge 50 commits intomtgred:masterfrom
NBKelly:vantage-point-spoilers-2
Draft

Vantage Point#8532
NBKelly wants to merge 50 commits intomtgred:masterfrom
NBKelly:vantage-point-spoilers-2

Conversation

@NBKelly
Copy link
Collaborator

@NBKelly NBKelly commented Feb 14, 2026

This should cover all the rest of the VP cards and mechanics in order as they become public.

I'm going to add notes for mechanics and stuff here as they come.

Also unless I specify at the bottom of the post, I've added unit tests for every card.

  • Melies-U has four faces (like biotech) and there are enough triggers that I felt it was worthwhile actually leaving the comments in. It also needs an entry in our image handling stuff.
  • Bad Publicity change: There's an evil hack I'm using for how the button interacts, and I need to fix that sooner or later and just have an endpoint and a frontend UI hook for it.
  • We could make the bad pub change optional for eternal or casual games. There's one single critical point in the code, so it's very easily doable.
  • Editorial Division is just having illicit as an option as well for the search hook for now. Whatever other details can be figured out later.
  • A couple of tests/cards rely on cancel maps from the other PR, I'll merge this weekend for that
  • Startup is going to 3x 3-pointers max again
  • Flagship requires access.clj to track the both the random-access-limit being throttled to zero, and installed cards being removed from candidacy for access (at least, on centrals).
  • For myoshu, we need to be able to work out of a scored agenda was installed this turn. The score event now also includes the card being scored (before modifications) as :card-scored.
  • There's a new option for prompts, :show-opponent-discard, which shows the opponents discard (like :show-discard does for us). Ansel 2.0 uses this, and a few other cards can be updated for it.
  • I added support for computing the costs of cards as if they were going to be hosted (ie, dhegder) - so you can pick them as targets for install abilities if you're on the credit threshold for those discounts now.

TODO:

  • I have no unit tests for Knowledge Seeker
  • Update other cards for show-opponent-discard. Hailstorm, ark lockdown, etc.

See Also: NoahTheDuke/netrunner-data#81

:waiting-prompt true
:yes-ability {:prompt "Choose a card"
:msg (msg "add " (:title target) " to HQ from R&D") ;; TODO - once the illicit->liability change is through, we can adjust this (or just leave it)
:choices (req (cancellable (filter #(has-any-subtype? % ["Illicit" "Black Ops" "Gray Ops" "Liability"]) (filter (complement agenda?) (:deck corp))) :sorted))
Copy link
Collaborator Author

@NBKelly NBKelly Feb 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Illicit is here as a placeholder for now. Since every illicit is now a liability, I don't see any harm in leaving it permanently.

:effect f
:card card
:selectable selectable
:offer-bad-pub? offer-bad-pub?
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the hook for the frontend

@NBKelly
Copy link
Collaborator Author

NBKelly commented Feb 16, 2026

We'll need to update how we do damage: previously, damage always had the runner trash the cards as per the ffg manual.
Now, the cards being trashed is being attributed to the source of the damage (this was an oversight for saisentan/au co, and is being silently ruled for this outcome now).

This means we can simplify a few cards. this is done

I also want to add a card-trashed event that fires alongside corp-trash/runner-trash/game-trash just to simplify some cards, but that's a job for later maybe.

(pay state side eid card (->c :credit (min choice (get-in @state [side :credit]))))
(effect-completed state side eid)))

(defn resolve-bad-pub-choice
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not smart enough to know how to make this bypass all the stuff in prompts.clj, that's a job for somebody else.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah the prompt stuff is a real pain in the ass, idk how to deal with it tbh

(take-credits state :runner)
(is (= (+ 3 total-corp-credits) (:credit (get-corp))) "Corp does not gain any extra c with agenda")))))

(letfn [(setup-state []
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

instead of this, you could use before-each.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants