mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-27 17:41:50 +00:00
* Assorted Ordnance Code+Map Quality Pass and QoL (#67097) Three main things I do: Reinforce the remap that i have made with code changes, making the atmos control devices sane and easy to put if someone else stumbles upon this part of the code again. (a4aea1e - f16e620) Splits the ordnance areas and renames them, kills ordnance misc and things that have nothing to do with ordnance (anymore?) moves them to exp_lab (useful stuff here) and aux_lab (fluff stuff here like laser range in delta or second circuit lab in tram). (0c99f9f- 3c82a88) Adds a roundstart program disk containing nt frontier to the ordnance office table. Added a hint to file manager there too to help give players a nudge on how to publish papers. (fd747dc) First one: Makes mapping these things not require varedit, nicer for other people that dont know how the atmos control stuffs works. Second one: Misc lab has nothing to do with ordnance jesus christ. Also ord hallway is now irrelevant, our ordnance labs are very far from box now. Will probably make downstreams a bit angry for a while though since they might not be fully up to date on the ordnance maps. Third one: Pretty much justified it in the about section. Why is this not atomic: This touches all five maps and needs code backing, so I might as well combine them into one maintenance PR instead of giving my peers merge conflict three times. * Assorted Ordnance Code+Map Quality Pass and QoL * set 1 * revert * Update CentCom_skyrat.dmm Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com> Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com> Co-authored-by: John Doe <gamingskeleton3@gmail.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
55 lines
1.8 KiB
Plaintext
55 lines
1.8 KiB
Plaintext
/datum/round_event_control/anomaly
|
|
name = "Anomaly: Energetic Flux"
|
|
typepath = /datum/round_event/anomaly
|
|
|
|
min_players = 1
|
|
max_occurrences = 0 //This one probably shouldn't occur! It'd work, but it wouldn't be very fun.
|
|
weight = 15
|
|
|
|
/datum/round_event/anomaly
|
|
var/area/impact_area
|
|
var/obj/effect/anomaly/anomaly_path = /obj/effect/anomaly/flux
|
|
announceWhen = 1
|
|
|
|
|
|
/datum/round_event/anomaly/proc/findEventArea()
|
|
var/static/list/allowed_areas
|
|
if(!allowed_areas)
|
|
//Places that shouldn't explode
|
|
var/static/list/safe_area_types = typecacheof(list(
|
|
/area/station/ai_monitored/turret_protected/ai,
|
|
/area/station/ai_monitored/turret_protected/ai_upload,
|
|
/area/station/engineering,
|
|
/area/station/solars,
|
|
/area/station/holodeck,
|
|
/area/shuttle,
|
|
/area/station/maintenance,
|
|
))
|
|
|
|
//Subtypes from the above that actually should explode.
|
|
var/static/list/unsafe_area_subtypes = typecacheof(list(/area/station/engineering/break_room))
|
|
|
|
allowed_areas = make_associative(GLOB.the_station_areas) - safe_area_types + unsafe_area_subtypes
|
|
var/list/possible_areas = typecache_filter_list(GLOB.sortedAreas,allowed_areas)
|
|
if (length(possible_areas))
|
|
return pick(possible_areas)
|
|
|
|
/datum/round_event/anomaly/setup()
|
|
impact_area = findEventArea()
|
|
if(!impact_area)
|
|
CRASH("No valid areas for anomaly found.")
|
|
var/list/turf_test = get_area_turfs(impact_area)
|
|
if(!turf_test.len)
|
|
CRASH("Anomaly : No valid turfs found for [impact_area] - [impact_area.type]")
|
|
|
|
/datum/round_event/anomaly/announce(fake)
|
|
priority_announce("Localized energetic flux wave detected on long range scanners. Expected location of impact: [impact_area.name].", "Anomaly Alert")
|
|
|
|
/datum/round_event/anomaly/start()
|
|
var/turf/T = pick(get_area_turfs(impact_area))
|
|
var/newAnomaly
|
|
if(T)
|
|
newAnomaly = new anomaly_path(T)
|
|
if (newAnomaly)
|
|
announce_to_ghosts(newAnomaly)
|