Skip to content

Enables proper "green shifts" (goals, sec level) in dynamic - #15727

Open
Putnam3145 wants to merge 5 commits into
citadel-station:masterfrom
Putnam3145:dynamic-station-goals
Open

Enables proper "green shifts" (goals, sec level) in dynamic#15727
Putnam3145 wants to merge 5 commits into
citadel-station:masterfrom
Putnam3145:dynamic-station-goals

Conversation

@Putnam3145

Copy link
Copy Markdown
Contributor

About The Pull Request

  1. Lower threat levels can have more station goals: below 30, you'll always have at least 2.
  2. Modes can now set their own station goal budgets. All of them are 1 for now, except dynamic, which has a different one depending on threat level (extended hardcoded gets every station goal, still).
  3. "Peaceful Waypoint" dynamic rounds are greenshifts for all intents and purposes now: they have ever station goal and start in green alert instead of blue.

Why It's Good For The Game

Well, people keep asking for this. I guess it's for something to keep busy on in long rounds, but, like, I'm an atmos tech main, so, uh, I entertain myself automatically and thus might need more feedback.

Changelog

🆑
add: Dynamic greenshifts
code: STATION_GOAL_BUDGET define changed to a gamemode-level var
/:cl:

@CitadelStationBot CitadelStationBot added Code Improvement Changes for adhering to code standards and codebase maintainability Mechanic labels Jul 28, 2022
@deathride58

Copy link
Copy Markdown
Member

Having hard tells for the state of the round in the form of the security level is something that has historically lead to quite a lot of genuinely awful player behavior. Notably, in the past, hard tells for green shifts have lead to people going out of their way to self-antag on the basis of "oh but there's no antags", and players refusing to ahelp during blue shifts due to the notion that self-antagging is exclusive to green shifts.

Personally I'm iffy on even having a hard tell present at all like there currently is. However, I think it might be worth experimenting in this regard, as dynamic means that the state of the round isn't necessarily a strict binary, especially during higher pop.

print_command_report(., "Central Command Status Summary", announce=FALSE)
priority_announce("A summary has been copied and printed to all communications consoles.", "Enemy communication intercepted. Security level elevated.", "intercept")
if(GLOB.security_level < SEC_LEVEL_BLUE)
set_security_level(SEC_LEVEL_BLUE)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The new send_intercept no longer sets the security level at all. The roundstart security level doesn't get set at all with this PR. raise_security_level() and lower_security_level() are defined in this PR, but they aren't actually used anywhere.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

this was a bug from a completely different PR, fixed in #15813

CitadelStationBot pushed a commit that referenced this pull request Aug 9, 2022
CitadelStationBot pushed a commit that referenced this pull request Aug 9, 2022
CitadelStationBot pushed a commit that referenced this pull request Aug 9, 2022
CitadelStationBot pushed a commit that referenced this pull request Aug 9, 2022
CitadelStationBot pushed a commit that referenced this pull request Aug 10, 2022
CitadelStationBot pushed a commit that referenced this pull request Aug 14, 2022
Comment on lines +260 to +266
/datum/game_mode/dynamic/generate_station_goals()
if(round(shown_threat) < 30)
if(length(current_players[CURRENT_LIVING_ANTAGS]))
station_goal_budget = 2
else if(round(shown_threat < 20))
station_goal_budget = INFINITY
return ..()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Shouldn't be able to be used as an antag check, which this is.

priority_announce("A summary has been copied and printed to all communications consoles.", "Enemy communication intercepted. Security level elevated.", "intercept")
if(GLOB.security_level < SEC_LEVEL_BLUE)
set_security_level(SEC_LEVEL_BLUE)
if(green_shift)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should be probability based to allow fake greens / fake blues like our non-dynamic modes have.

Comment on lines 273 to 275
if(!current_players[CURRENT_LIVING_ANTAGS].len)
. += "<b>Peaceful Waypoint</b></center><BR>"
. += "Your station orbits deep within controlled, core-sector systems and serves as a waypoint for routine traffic through Nanotrasen's trade empire. Due to the combination of high security, interstellar traffic, and low strategic value, it makes any direct threat of violence unlikely. Your primary enemies will be incompetence and bored crewmen: try to organize team-building events to keep staffers interested and productive."

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Why does this allow roundstart antag metaing?

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

Labels

Code Improvement Changes for adhering to code standards and codebase maintainability Mechanic

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants