Skip to content

Elevation #8079

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 34 commits into from
Apr 23, 2025
Merged

Elevation #8079

merged 34 commits into from
Apr 23, 2025

Conversation

NBKelly
Copy link
Collaborator

@NBKelly NBKelly commented Apr 20, 2025

There's a lot to unpack here. I'm not going to comment on the cards. Here are the features and bugfixes that got rolled in:

FEATURES/MAJOR CHANGES

  • I updated all the cards in the game for the NCIGS changes. I did this before the "things in a run during run" rule got added, so there are probably a few ways to waste resources that shouldn't be there, but for the most part this should be good
  • I updated the way runs are initiated for the run timing change. Runs now start n the initiation phase, and players may do whatever they like there before proceeding to approach/approach-server
  • I added functionality for the mechanic on Petty Cash
  • Added a system for the Dividends mechanic, and a helper to all the agendas for the old and the new way of doing it (beale works the same, dividends-beale would scale from sansan)
  • Updated the cost system so cards like Biawak can work
  • The 'do-nothing'/ncigs system got an overhaul. This means a lot of ice that can't do anything wont bother you to press useless buttons.
  • Support for :on-host and :in-rfg as a locations for events and static abilities
  • Support for on-forfeit events (this needs and auto-sets the :in-rfg key to work)
  • The prevention system needed a touch more work so it would play nice with shred
  • I had to update about 1200 unit tests to deal with the run timing change
  • We can apply specific sounds to rezzing specific cards now, and also suppress the rez sound for rezzing certain cards. Flyswatter does this is it doesn't overlap the purge and the rez sounds.
  • The turn-ends phase has a checkpoint when discarding cards. Also, discarding has a waiting-prompt so people can't fire abilities while you try to discard cards
  • The lein fetch command is now capable of using the -r --repo and -b --branch arguments to designate the repo (default is NoahTheDuke/netrunner-data) and branch (default is master) to pick the data from when running a fetch
  • As per the startup policy, startup decks can have 4 big agendas now
  • Cards are only displayed as new while you're not selecting a card via a prompt.
  • I added the new step into the run timing diagram
  • I updated the test framework for the run timing change. Tests that play events that make runs that aren't done through play-run-event basically have to rip a continue more in their code to not brick

BUGFIXES/QOL STUFF

  • Added a this-card-is-run-source def into macros, so we can easily check if a card is the run source. This should let us fix anything relating to doppelganger (eventually)
  • Expends now interact with undo-click
  • Corp-abilities on runner cards now properly display costs and card names
  • Added helpers in def-helpers for:
    • draw-abi `(draw-abi x) -> "side draws x cards"
    • draw-loud (draw-loud state side eid card n) -> draws a card loudly
    • run-server-ability (run-server-ability server) -> runs a server
    • run-any-server-ability runs any server (choice)
    • run-remote-server-ability runs any remote server
    • run-central-server-ability runs any central server
    • run-server-from-choices-ability (run-server-from-choices-ability [choices]) -> runs a server from among the choices
    • in-hand*? (in-hand*? [state card]) -> is the card playable as if it was in hand
    • all-cards-in-hand* (all-cards-in-hand* state side) -> all cards playable as if they were in the hand for a side)
    • corp-install-up-to-n-cards [n args]
    • gain-credits-ability [x]
    • drain-credits (drain-credits draining-side victim-side qty (opt: multiplier) (opt: tags-gained) -> for use with siphon-like effects)
    • trash-on-purge for our virus programs
  • Runs keep track of how many subroutines fired during them (required for phoenix)
  • Cost messages for installing cards are auto-generated now, so we not write the same stuff over and over
  • I added a few more helpers into the test framework
    • is-deck-stacked? [state side expected-deck] Is the deck stacked as we expect it to be? If you pick 3 cards out of a 30 card deck, that's still valid.
    • provides-mu [cname x] Does a card cname trivially provide x memory when installed by the runner.
  • The trash-like-cards option now no longer leaks info. Whoops! Closes "Offer to trash like cards" Showing corp cards being installed to the runner #8078

@NoahTheDuke
Copy link
Collaborator

i didn't read any of the card changed or test changes, but the engine changes all looked good to me.

@NBKelly NBKelly merged commit 6760d39 into mtgred:master Apr 23, 2025
3 checks passed
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.

"Offer to trash like cards" Showing corp cards being installed to the runner
2 participants