Skip to content
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

Generator mist #17245

Open
wants to merge 17 commits into
base: master
Choose a base branch
from
Open

Generator mist #17245

wants to merge 17 commits into from

Conversation

breadhunt
Copy link
Contributor

@breadhunt breadhunt commented Feb 28, 2025

About The Pull Request

Completion of #16889 because it got merged early

Adds psychic mist, which the thermo-bluespace generator emits when it explodes, serving as having "re-corrupted" the generators to keep generating strategic/tactical points for the hive

Psychic mist emits in a 12 tile radius circle around where the generator exploded. Walking through it will cause your character to cough and drain stamina (robots are not affected)

Geothermals can no longer be corrupted, bluespace generators are now solely responsible for psy gen
^If this is bad I can instead move psy gen to a xeno subsystem

Why It's Good For The Game

This was supposed to be part of the original PR
Also funny mist is spooky

Changelog

🆑
add: Thermo-bluespace generator now emits a psychic mist when destroyed, continuing to produce strategic/tactical points at the same rate as before the generator was destroyed
add: Psychic mist causes coughing when humans (not robots) walk through it, draining stamina
fix: Geothermal generators are no longer treated as thermo-bluespace generators by psy calculations
remove: Geothermal generators can no longer be corrupted
/:cl:

@github-actions github-actions bot added Fix Fixes an issue with the game. Feature New interesting mechanics with new interesting bugs labels Feb 28, 2025
@github-actions github-actions bot added the Map Edit One or more changes to .dmm files. label Feb 28, 2025
Comment on lines 602 to 604
/obj/machinery/mist_origin
name = ""
resistance_flags = RESIST_ALL|PROJECTILE_IMMUNE|DROPSHIP_IMMUNE
Copy link
Member

Choose a reason for hiding this comment

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

Why is this a machine and not an effect

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Effects don't have process()

Copy link
Contributor Author

Choose a reason for hiding this comment

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

update: moving it to an effect because processing can be moved to gamemode process

Comment on lines 620 to 621
if(!(length(GLOB.humans_by_zlevel["2"]) > 0.2 * length(GLOB.alive_human_list_faction[FACTION_TERRAGOV])))
return
Copy link
Member

Choose a reason for hiding this comment

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

Hardcoded turf z, can you make this based on traits for upcoming multiz stuff

SSpoints.add_tactical_psy_points(hivenumber, points_generated*0.25)

/obj/machinery/mist_origin/Destroy()
GLOB.total_bluespace_generators-- //Remove bluespace generator from psy-gen equation, since we're no longer producing points
Copy link
Member

Choose a reason for hiding this comment

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

This seems confusion to have this be affected by a mist

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I agree but I couldn't think of a better name

resistance_flags = RESIST_ALL|PROJECTILE_IMMUNE|DROPSHIP_IMMUNE
icon = 'icons/effects/weather_effects.dmi'
icon_state = "light_ash"
color = "#7f16c5"
Copy link
Member

Choose a reason for hiding this comment

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

Define for color?

@TiviPlus
Copy link
Member

TiviPlus commented Mar 4, 2025

Phone review fyi

@@ -455,7 +388,8 @@ GLOBAL_VAR_INIT(active_bluespace_generators, 0)
current_apc.emp_act(2)

addtimer(CALLBACK(src, PROC_REF(trigger_alarms)), 3 SECONDS)
addtimer(CALLBACK(src, PROC_REF(finish_meltdown)), 60 SECONDS)
addtimer(CALLBACK(src, PROC_REF(finish_meltdown)), 55 SECONDS)
QDEL_IN(src, 56 SECONDS) //Destroy generator after big explosion happens
Copy link
Contributor

Choose a reason for hiding this comment

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

why is this even a separate timer? can't this just be in finish meltdown?

corruption_on = TRUE
start_processing()

/obj/machinery/power/geothermal/tbg/proc/corrupt(hivenumber)
Copy link
Contributor

Choose a reason for hiding this comment

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

autodoc. Also new proc definitions go after existing ones, you have them all over the place throughout this file.

if(corrupted && corruption_on)
if(!GLOB.total_bluespace_generators) //Prevent division by 0
return PROCESS_KILL
if((length(GLOB.humans_by_zlevel["2"]) > 0.2 * length(GLOB.alive_human_list_faction[FACTION_TERRAGOV])))
Copy link
Contributor

Choose a reason for hiding this comment

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

check by ground z level, or for that matter just use src's z?

Comment on lines 622 to 628
if(GLOB.total_bluespace_generators) //Avoid dividing by 0
var/points_generated = GENERATOR_PSYCH_POINT_OUTPUT / GLOB.total_bluespace_generators
SSpoints.add_strategic_psy_points(hivenumber, points_generated)
SSpoints.add_tactical_psy_points(hivenumber, points_generated*0.25)

/obj/machinery/mist_origin/Destroy()
GLOB.total_bluespace_generators-- //Remove bluespace generator from psy-gen equation, since we're no longer producing points
Copy link
Contributor

Choose a reason for hiding this comment

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

Why not just have the gamemode itself generate the points based on the glob? This seems kinda fucky

)
AddElement(/datum/element/connect_loc, connections)

/// Psychic mist is difficult to breathe in, even with a mask on
Copy link
Contributor

Choose a reason for hiding this comment

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

this is uh, incorrect isn't it? You are early returning if they have smoke protection, so a mask does in fact completely negate this.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I don't think so
image

@github-actions github-actions bot added the Merge Conflict Pull request is in a conflicted state with base branch. label Mar 7, 2025
@github-actions github-actions bot removed the Merge Conflict Pull request is in a conflicted state with base branch. label Mar 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature New interesting mechanics with new interesting bugs Fix Fixes an issue with the game. Map Edit One or more changes to .dmm files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants