[PTBF] [ready for review] Anomalous particulate processing objective. (#30649)

* pausing work on this till pickweight

* push

* more stuff

* proper file it

* these 2 would be interested

* and examine fix

* I should be more awake before resolving merge conflicts

* god you are stupid stop commiting every 2 seconds

* temp buff size change

* Event inhand descriptions

* behold the c o d e

* the rest of the owl

* sprite correction

* 2 more words to the list

* and this one

* yes I am having too much fun with this

* m o r e

* better glow, tech levels

* Apply suggestions from code review

Co-authored-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>
Signed-off-by: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com>

* message admins, variable

* Apply suggestions from code review

Co-authored-by: Taurtura <141481662+Taurtura@users.noreply.github.com>
Signed-off-by: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com>

* PPPProcessor

---------

Signed-off-by: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com>
Co-authored-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>
Co-authored-by: Taurtura <141481662+Taurtura@users.noreply.github.com>
This commit is contained in:
Qwertytoforty
2025-10-24 21:01:03 -04:00
committed by GitHub
parent 07b2f76367
commit 2ecff9033a
27 changed files with 1009 additions and 38 deletions
@@ -56,7 +56,7 @@
Get the job done, and we'll be one step closer to ending Nanotrasen's slave empire."
focus = 70
targeted_departments = list(DEPARTMENT_SCIENCE)
theft_targets = list(/datum/theft_objective/reactive, /datum/theft_objective/documents, /datum/theft_objective/hand_tele)
theft_targets = list(/datum/theft_objective/reactive, /datum/theft_objective/documents, /datum/theft_objective/hand_tele, /datum/theft_objective/anomalous_particulate)
/datum/antag_org/syndicate/electra // Mostly target Engineering
name = "Electra Dynamics"
@@ -64,7 +64,7 @@
Nanotrasen's burgeoning monopoly must be stopped. We've transmitted you local points of failure, ensure they fail."
focus = 70
targeted_departments = list(DEPARTMENT_ENGINEERING)
theft_targets = list(/datum/theft_objective/supermatter_sliver, /datum/theft_objective/plutonium_core, /datum/theft_objective/captains_modsuit, /datum/theft_objective/magboots)
theft_targets = list(/datum/theft_objective/supermatter_sliver, /datum/theft_objective/plutonium_core, /datum/theft_objective/captains_modsuit, /datum/theft_objective/magboots, /datum/theft_objective/anomalous_particulate)
/datum/antag_org/syndicate/spiderclan // Targets one syndicate agent and one non-mindshielded crewmember.
name = "Spider Clan"
@@ -0,0 +1,30 @@
/datum/event/anomalous_particulate_event
/datum/event/anomalous_particulate_event/start()
var/particulate_to_activate = 2
if(GLOB.anomaly_smash_track.smashes)
for(var/obj/effect/anomalous_particulate/particulate_chosen in GLOB.anomaly_smash_track.smashes)
if(particulate_to_activate)
if(particulate_chosen.being_drained)
continue
new /obj/effect/visible_anomalous_particulate(particulate_chosen.drop_location())
GLOB.anomaly_smash_track.num_drained++
qdel(particulate_chosen)
particulate_to_activate--
continue
break
var/location_sanity = 0
while(particulate_to_activate && location_sanity < 100)
var/turf/chosen_location = get_safe_random_station_turf_equal_weight()
// We don't want them close to each other - at least 1 tile of separation
var/list/nearby_things = range(1, chosen_location)
var/obj/effect/anomalous_particulate/what_if_i_have_one = locate() in nearby_things
var/obj/effect/visible_anomalous_particulate/what_if_i_had_one_but_its_used = locate() in nearby_things
if(what_if_i_have_one || what_if_i_had_one_but_its_used)
location_sanity++
continue
new /obj/effect/visible_anomalous_particulate(chosen_location)
particulate_to_activate--
+2 -1
View File
@@ -192,7 +192,8 @@ GLOBAL_LIST_EMPTY(event_last_fired)
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Disease Outbreak", /datum/event/disease_outbreak, 50, list(ASSIGNMENT_MEDICAL = 30), TRUE),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Door Runtime", /datum/event/door_runtime, 50, list(ASSIGNMENT_ENGINEER = 25, ASSIGNMENT_AI = 150), TRUE),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Tourist Arrivals", /datum/event/tourist_arrivals, 100, list(ASSIGNMENT_SECURITY = 15), TRUE),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Shuttle Loan", /datum/event/shuttle_loan, 100, list(ASSIGNMENT_CARGO = 15, ASSIGNMENT_SECURITY = 10), is_one_shot = TRUE)
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Shuttle Loan", /datum/event/shuttle_loan, 100, list(ASSIGNMENT_CARGO = 15, ASSIGNMENT_SECURITY = 10), is_one_shot = TRUE),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Anomalous Particulate", /datum/event/anomalous_particulate_event, 250, is_one_shot = TRUE),
)
/datum/event_container/major
@@ -359,12 +359,15 @@
var/datum/atom_hud/data/human/medadv = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED]
var/datum/atom_hud/data/human/secbasic = GLOB.huds[DATA_HUD_SECURITY_BASIC]
var/datum/atom_hud/data/human/secadv = GLOB.huds[DATA_HUD_SECURITY_ADVANCED]
var/datum/atom_hud/data/anomalous = GLOB.huds[DATA_HUD_ANOMALOUS]
if((H in medbasic.hudusers) || (H in medadv.hudusers))
have_hudtypes += EXAMINE_HUD_MEDICAL_READ
if(H in secadv.hudusers)
have_hudtypes += EXAMINE_HUD_SECURITY_READ
if(H in secbasic.hudusers)
have_hudtypes += EXAMINE_HUD_SKILLS
if(H in anomalous.hudusers)
have_hudtypes += ANOMALOUS_HUD
var/user_accesses = M.get_access()
var/secwrite = has_access(null, list(ACCESS_SECURITY, ACCESS_FORENSICS_LOCKERS), user_accesses) // same as obj/machinery/computer/secure_data/req_one_access
@@ -468,7 +468,7 @@ Difficulty: Hard
var/obj/effect/anomaly/bluespace/A = new(spot, time_to_use, FALSE)
A.mass_teleporting = FALSE
if(GRAV)
var/obj/effect/anomaly/grav/A = new(spot, time_to_use, FALSE, FALSE)
var/obj/effect/anomaly/grav/A = new(spot, time_to_use, FALSE)
A.knockdown = TRUE
if(PYRO)
var/obj/effect/anomaly/pyro/A = new(spot, time_to_use, FALSE)
+1
View File
@@ -76,6 +76,7 @@
IMPTRACK_HUD = 'icons/mob/hud/sechud.dmi',
PRESSURE_HUD = 'icons/effects/effects.dmi',
MALF_AI_HUD = 'icons/mob/hud/malfhud.dmi',
ANOMALOUS_HUD = 'icons/effects/effects.dmi',
)
for(var/hud in hud_possible)
@@ -1070,7 +1070,7 @@
var/obj/effect/anomaly/flux/A = new(L, 30 SECONDS, FALSE)
A.explosive = FALSE
if(GRAVITATIONAL_ANOMALY)
new /obj/effect/anomaly/grav(L, 25 SECONDS, FALSE, FALSE)
new /obj/effect/anomaly/grav(L, 25 SECONDS, FALSE)
if(BLUESPACE_ANOMALY)
new /obj/effect/anomaly/bluespace(L, 24 SECONDS, FALSE, FALSE, TRUE)