From a206224aa7b537b505247eba14c43c1a3dc7acbe Mon Sep 17 00:00:00 2001 From: LetterJay Date: Thu, 22 Mar 2018 22:34:35 -0500 Subject: [PATCH 01/35] Update shuttle.dm --- code/controllers/subsystem/shuttle.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index e661baacd7..8d31f84cd6 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -56,7 +56,7 @@ SUBSYSTEM_DEF(shuttle) var/lockdown = FALSE //disallow transit after nuke goes off - var/auto_call = 99000 //CIT CHANGE - time before in deciseconds in which the shuttle is auto called. Default is 2½ hours plus 15 for the shuttle. So total is 3. + var/auto_call = 1 //CIT CHANGE - time before in deciseconds in which the shuttle is auto called. Default is 2½ hours plus 15 for the shuttle. So total is 3. /datum/controller/subsystem/shuttle/Initialize(timeofday) ordernum = rand(1, 9000) From 39465f6a881edcb576a9b0f6ba0ed0e92aa12ecc Mon Sep 17 00:00:00 2001 From: LetterJay Date: Thu, 22 Mar 2018 22:53:17 -0500 Subject: [PATCH 02/35] actual update --- code/controllers/subsystem/shuttle.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index 8d31f84cd6..7ec9666aee 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -56,7 +56,7 @@ SUBSYSTEM_DEF(shuttle) var/lockdown = FALSE //disallow transit after nuke goes off - var/auto_call = 1 //CIT CHANGE - time before in deciseconds in which the shuttle is auto called. Default is 2½ hours plus 15 for the shuttle. So total is 3. + var/auto_call = 72000 //CIT CHANGE - time before in deciseconds in which the shuttle is auto called. Default is 2½ hours plus 15 for the shuttle. So total is 3. /datum/controller/subsystem/shuttle/Initialize(timeofday) ordernum = rand(1, 9000) From f25757e0113d1c69760d049ff821b33f59ed0825 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Mon, 26 Mar 2018 04:08:18 -0500 Subject: [PATCH 03/35] There is absolutely no way I'm modularizing this --- code/modules/events/anomaly_bluespace.dm | 12 ++++- code/modules/events/anomaly_flux.dm | 12 ++++- code/modules/events/anomaly_grav.dm | 11 +++- code/modules/events/anomaly_pyro.dm | 11 +++- code/modules/events/anomaly_vortex.dm | 11 +++- code/modules/events/blob.dm | 11 +++- code/modules/events/brand_intelligence.dm | 12 ++++- code/modules/events/carp_migration.dm | 11 +++- code/modules/events/electrical_storm.dm | 12 ++++- code/modules/events/mice_migration.dm | 12 ++++- code/modules/events/pirates.dm | 5 +- code/modules/events/prison_break.dm | 11 +++- code/modules/events/shuttle_loan.dm | 66 ++++++++++++++++++++--- 13 files changed, 173 insertions(+), 24 deletions(-) diff --git a/code/modules/events/anomaly_bluespace.dm b/code/modules/events/anomaly_bluespace.dm index d3f829011e..080cae81a3 100644 --- a/code/modules/events/anomaly_bluespace.dm +++ b/code/modules/events/anomaly_bluespace.dm @@ -10,8 +10,16 @@ /datum/round_event/anomaly/anomaly_bluespace/announce(fake) - priority_announce("Unstable bluespace anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") - + if(prob(50)) + priority_announce("Unstable bluespace anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + else + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak + for(var/obj/machinery/computer/communications/C in GLOB.machines) + if(!(C.stat & (BROKEN|NOPOWER)) && is_station_level(C.z)) + var/obj/item/paper/P = new(C.loc) + P.name = "Unstable bluespace anomaly" + P.info = "Unstable bluespace anomaly detected on long range scanners. Expected location: [impact_area.name]." + P.update_icon() /datum/round_event/anomaly/anomaly_bluespace/start() var/turf/T = safepick(get_area_turfs(impact_area)) diff --git a/code/modules/events/anomaly_flux.dm b/code/modules/events/anomaly_flux.dm index 30ae7e47af..31475c05a7 100644 --- a/code/modules/events/anomaly_flux.dm +++ b/code/modules/events/anomaly_flux.dm @@ -11,8 +11,16 @@ announceWhen = 3 /datum/round_event/anomaly/anomaly_flux/announce(fake) - priority_announce("Localized hyper-energetic flux wave detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") - + if(prob(50)) + priority_announce("Localized hyper-energetic flux wave detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + else + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak + for(var/obj/machinery/computer/communications/C in GLOB.machines) + if(!(C.stat & (BROKEN|NOPOWER)) && is_station_level(C.z)) + var/obj/item/paper/P = new(C.loc) + P.name = "Localized hyper-energetic flux wave" + P.info = "Localized hyper-energetic flux wave detected on long range scanners. Expected location: [impact_area.name]." + P.update_icon() /datum/round_event/anomaly/anomaly_flux/start() var/turf/T = safepick(get_area_turfs(impact_area)) diff --git a/code/modules/events/anomaly_grav.dm b/code/modules/events/anomaly_grav.dm index 6c4fa46b6c..d40caec23c 100644 --- a/code/modules/events/anomaly_grav.dm +++ b/code/modules/events/anomaly_grav.dm @@ -9,7 +9,16 @@ announceWhen = 20 /datum/round_event/anomaly/anomaly_grav/announce(fake) - priority_announce("Gravitational anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + if(prob(50)) + priority_announce("Gravitational anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + else + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak + for(var/obj/machinery/computer/communications/C in GLOB.machines) + if(!(C.stat & (BROKEN|NOPOWER)) && is_station_level(C.z)) + var/obj/item/paper/P = new(C.loc) + P.name = "Gravitational anomaly" + P.info = "Gravitational anomaly detected on long range scanners. Expected location: [impact_area.name]." + P.update_icon() /datum/round_event/anomaly/anomaly_grav/start() var/turf/T = safepick(get_area_turfs(impact_area)) diff --git a/code/modules/events/anomaly_pyro.dm b/code/modules/events/anomaly_pyro.dm index 85da9ca6d4..267eb3c121 100644 --- a/code/modules/events/anomaly_pyro.dm +++ b/code/modules/events/anomaly_pyro.dm @@ -9,7 +9,16 @@ announceWhen = 10 /datum/round_event/anomaly/anomaly_pyro/announce(fake) - priority_announce("Pyroclastic anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + if(prob(50)) + priority_announce("Pyroclastic anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + else + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak + for(var/obj/machinery/computer/communications/C in GLOB.machines) + if(!(C.stat & (BROKEN|NOPOWER)) && is_station_level(C.z)) + var/obj/item/paper/P = new(C.loc) + P.name = "Pyroclastic anomaly" + P.info = "Pyroclastic anomaly detected on long range scanners. Expected location: [impact_area.name]." + P.update_icon() /datum/round_event/anomaly/anomaly_pyro/start() var/turf/T = safepick(get_area_turfs(impact_area)) diff --git a/code/modules/events/anomaly_vortex.dm b/code/modules/events/anomaly_vortex.dm index 9fb75af002..0c8ac6f2ca 100644 --- a/code/modules/events/anomaly_vortex.dm +++ b/code/modules/events/anomaly_vortex.dm @@ -11,7 +11,16 @@ announceWhen = 3 /datum/round_event/anomaly/anomaly_vortex/announce(fake) - priority_announce("Localized high-intensity vortex anomaly detected on long range scanners. Expected location: [impact_area.name]", "Anomaly Alert") + if(prob(50)) + priority_announce("Localized high-intensity vortex anomaly detected on long range scanners. Expected location: [impact_area.name]", "Anomaly Alert") + else + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak + for(var/obj/machinery/computer/communications/C in GLOB.machines) + if(!(C.stat & (BROKEN|NOPOWER)) && is_station_level(C.z)) + var/obj/item/paper/P = new(C.loc) + P.name = "Vortex anomaly" + P.info = "Localized high-intensity vortex anomaly detected on long range scanners. Expected location: [impact_area.name]." + P.update_icon() /datum/round_event/anomaly/anomaly_vortex/start() var/turf/T = safepick(get_area_turfs(impact_area)) diff --git a/code/modules/events/blob.dm b/code/modules/events/blob.dm index 54ba811e02..b1629b9c67 100644 --- a/code/modules/events/blob.dm +++ b/code/modules/events/blob.dm @@ -14,7 +14,16 @@ fakeable = TRUE /datum/round_event/ghost_role/blob/announce(fake) - priority_announce("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/ai/outbreak5.ogg') + if(prob(50)) + priority_announce("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/ai/outbreak5.ogg') + else + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak + for(var/obj/machinery/computer/communications/C in GLOB.machines) + if(!(C.stat & (BROKEN|NOPOWER)) && is_station_level(C.z)) + var/obj/item/paper/P = new(C.loc) + P.name = "level 5 biohazard" + P.info = "Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak." + P.update_icon() /datum/round_event/ghost_role/blob/spawn_role() if(!GLOB.blobstart.len) diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index c777fea85b..e33cfbd25d 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -28,8 +28,16 @@ source = initial(example.name) else if(originMachine) source = originMachine.name - priority_announce("Rampant brand intelligence has been detected aboard [station_name()]. Please stand by. The origin is believed to be \a [source].", "Machine Learning Alert") - + if(prob(50)) + priority_announce("Rampant brand intelligence has been detected aboard [station_name()]. Please stand by. The origin is believed to be \a [source].", "Machine Learning Alert") + else + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak + for(var/obj/machinery/computer/communications/C in GLOB.machines) + if(!(C.stat & (BROKEN|NOPOWER)) && is_station_level(C.z)) + var/obj/item/paper/P = new(C.loc) + P.name = "Rampant brand intelligence" + P.info = "Rampant brand intelligence has been detected aboard [station_name()]. Please stand by. The origin is believed to be \a [source]." + P.update_icon() /datum/round_event/brand_intelligence/start() for(var/obj/machinery/vending/V in GLOB.machines) if(!is_station_level(V.z)) diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm index 0806d065ee..71f19e5fd7 100644 --- a/code/modules/events/carp_migration.dm +++ b/code/modules/events/carp_migration.dm @@ -14,7 +14,16 @@ startWhen = rand(40, 60) /datum/round_event/carp_migration/announce(fake) - priority_announce("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert") + if(prob(50)) + priority_announce("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert") + else + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak + for(var/obj/machinery/computer/communications/C in GLOB.machines) + if(!(C.stat & (BROKEN|NOPOWER)) && is_station_level(C.z)) + var/obj/item/paper/P = new(C.loc) + P.name = "Biological entities" + P.info = "Unknown biological entities have been detected near [station_name()], you may wish to break out arms." + P.update_icon() /datum/round_event/carp_migration/start() diff --git a/code/modules/events/electrical_storm.dm b/code/modules/events/electrical_storm.dm index 0ce5bdb32a..268a863ebc 100644 --- a/code/modules/events/electrical_storm.dm +++ b/code/modules/events/electrical_storm.dm @@ -12,8 +12,16 @@ announceWhen = 1 /datum/round_event/electrical_storm/announce(fake) - priority_announce("An electrical storm has been detected in your area, please repair potential electronic overloads.", "Electrical Storm Alert") - + if(prob(50)) + priority_announce("An electrical storm has been detected in your area, please repair potential electronic overloads.", "Electrical Storm Alert") + else + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak + for(var/obj/machinery/computer/communications/C in GLOB.machines) + if(!(C.stat & (BROKEN|NOPOWER)) && is_station_level(C.z)) + var/obj/item/paper/P = new(C.loc) + P.name = "Electrical Storm" + P.info = "An electrical storm has been detected in your area, please repair potential electronic overloads." + P.update_icon() /datum/round_event/electrical_storm/start() var/list/epicentreList = list() diff --git a/code/modules/events/mice_migration.dm b/code/modules/events/mice_migration.dm index 0b3a8d8ea9..b01ff4237e 100644 --- a/code/modules/events/mice_migration.dm +++ b/code/modules/events/mice_migration.dm @@ -18,10 +18,18 @@ var/movement = pick("migrated", "swarmed", "stampeded", "descended") var/location = pick("maintenance tunnels", "maintenance areas", "\[REDACTED\]", "place with all those juicy wires") - - priority_announce("Due to [cause], [plural] [name] have [movement] \ + if(prob(50)) + priority_announce("Due to [cause], [plural] [name] have [movement] \ into the [location].", "Migration Alert", 'sound/effects/mousesqueek.ogg') + else + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak + for(var/obj/machinery/computer/communications/C in GLOB.machines) + if(!(C.stat & (BROKEN|NOPOWER)) && is_station_level(C.z)) + var/obj/item/paper/P = new(C.loc) + P.name = "Rodent Migration" + P.info = "Due to [cause], [plural] [name] have [movement] into the [location]." + P.update_icon() /datum/round_event/mice_migration/start() SSsqueak.trigger_migration(rand(minimum_mice, maximum_mice)) diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm index 693e194d1c..07110b5aea 100644 --- a/code/modules/events/pirates.dm +++ b/code/modules/events/pirates.dm @@ -27,7 +27,7 @@ ship_name = pick(strings(PIRATE_NAMES_FILE, "ship_names")) /datum/round_event/pirates/announce() - priority_announce("Incoming subspace communication. Secure channel opened at all communication consoles.", "Incoming Message", 'sound/ai/commandreport.ogg') + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak if(!control) //Means this is false alarm, todo : explicit checks instead of using announceWhen return @@ -82,7 +82,8 @@ else notify_ghosts("Space pirates are waking up!", source = spawner, action=NOTIFY_ATTACK, flashwindow = FALSE) - priority_announce("Unidentified armed ship detected near the station.") + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') //CITADEL EDIT also metabreak here too + //Shuttle equipment diff --git a/code/modules/events/prison_break.dm b/code/modules/events/prison_break.dm index 96f5a3917d..89c7997421 100644 --- a/code/modules/events/prison_break.dm +++ b/code/modules/events/prison_break.dm @@ -30,7 +30,16 @@ /datum/round_event/grey_tide/announce(fake) if(areasToOpen && areasToOpen.len > 0) - priority_announce("Gr3y.T1d3 virus detected in [station_name()] door subroutines. Severity level of [severity]. Recommend station AI involvement.", "Security Alert") + if(prob(50)) + priority_announce("Gr3y.T1d3 virus detected in [station_name()] door subroutines. Severity level of [severity]. Recommend station AI involvement.", "Security Alert") + else + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak + for(var/obj/machinery/computer/communications/C in GLOB.machines) + if(!(C.stat & (BROKEN|NOPOWER)) && is_station_level(C.z)) + var/obj/item/paper/P = new(C.loc) + P.name = "Gr3y.T1d3 virus" + P.info = "Gr3y.T1d3 virus detected in [station_name()] door subroutines. Severity level of [severity]. Recommend station AI involvement." + P.update_icon() else log_world("ERROR: Could not initate grey-tide. No areas in the list!") kill() diff --git a/code/modules/events/shuttle_loan.dm b/code/modules/events/shuttle_loan.dm index d5fc7fc470..768be52a63 100644 --- a/code/modules/events/shuttle_loan.dm +++ b/code/modules/events/shuttle_loan.dm @@ -27,19 +27,73 @@ SSshuttle.shuttle_loan = src switch(dispatch_type) if(HIJACK_SYNDIE) - priority_announce("Cargo: The syndicate are trying to infiltrate your station. If you let them hijack your cargo shuttle, you'll save us a headache.","CentCom Counter Intelligence") + if(prob(50)) + priority_announce("Cargo: The syndicate are trying to infiltrate your station. If you let them hijack your cargo shuttle, you'll save us a headache.","CentCom Counter Intelligence") + else + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak + for(var/obj/machinery/computer/communications/C in GLOB.machines) + if(!(C.stat & (BROKEN|NOPOWER)) && is_station_level(C.z)) + var/obj/item/paper/P = new(C.loc) + P.name = "Cargo Report" + P.info = "Cargo: The syndicate are trying to infiltrate your station. If you let them hijack your cargo shuttle, you'll save us a headache." + P.update_icon() if(RUSKY_PARTY) - priority_announce("Cargo: A group of angry Russians want to have a party. Can you send them your cargo shuttle then make them disappear?","CentCom Russian Outreach Program") + if(prob(50)) + priority_announce("Cargo: A group of angry Russians want to have a party. Can you send them your cargo shuttle then make them disappear?","CentCom Russian Outreach Program") + else + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak + for(var/obj/machinery/computer/communications/C in GLOB.machines) + if(!(C.stat & (BROKEN|NOPOWER)) && is_station_level(C.z)) + var/obj/item/paper/P = new(C.loc) + P.name = "Cargo Report" + P.info = "Cargo: The syndicate are trying to infiltrate your station. If you let them hijack your cargo shuttle, you'll save us a headache." + P.update_icon() if(SPIDER_GIFT) - priority_announce("Cargo: The Spider Clan has sent us a mysterious gift. Can we ship it to you to see what's inside?","CentCom Diplomatic Corps") + if(prob(50)) + priority_announce("Cargo: The Spider Clan has sent us a mysterious gift. Can we ship it to you to see what's inside?","CentCom Diplomatic Corps") + else + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak + for(var/obj/machinery/computer/communications/C in GLOB.machines) + if(!(C.stat & (BROKEN|NOPOWER)) && is_station_level(C.z)) + var/obj/item/paper/P = new(C.loc) + P.name = "Cargo Report" + P.info = "Cargo: The Spider Clan has sent us a mysterious gift. Can we ship it to you to see what's inside?" + P.update_icon() if(DEPARTMENT_RESUPPLY) - priority_announce("Cargo: Seems we've ordered doubles of our department resupply packages this month. Can we send them to you?","CentCom Supply Department") + if(prob(50)) + priority_announce("Cargo: Seems we've ordered doubles of our department resupply packages this month. Can we send them to you?","CentCom Supply Department") + else + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak + for(var/obj/machinery/computer/communications/C in GLOB.machines) + if(!(C.stat & (BROKEN|NOPOWER)) && is_station_level(C.z)) + var/obj/item/paper/P = new(C.loc) + P.name = "Cargo Report" + P.info = "Cargo: Seems we've ordered doubles of our department resupply packages this month. Can we send them to you?" + P.update_icon() thanks_msg = "The cargo shuttle should return in 5 minutes." bonus_points = 0 if(ANTIDOTE_NEEDED) - priority_announce("Cargo: Your station has been chosen for an epidemiological research project. Send us your cargo shuttle to receive your research samples.", "CentCom Research Initiatives") + if(prob(50)) + priority_announce("Cargo: Your station has been chosen for an epidemiological research project. Send us your cargo shuttle to receive your research samples.", "CentCom Research Initiatives") + else + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak + for(var/obj/machinery/computer/communications/C in GLOB.machines) + if(!(C.stat & (BROKEN|NOPOWER)) && is_station_level(C.z)) + var/obj/item/paper/P = new(C.loc) + P.name = "Cargo Report" + P.info = "Cargo: Your station has been chosen for an epidemiological research project. Send us your cargo shuttle to receive your research samples." + P.update_icon() if (PIZZA_DELIVERY) - priority_announce("Cargo: It looks like a neighbouring station accidentally delivered their pizza to you instead", "CentCom Spacepizza Division") + if(prob(50)) + priority_announce("Cargo: It looks like a neighbouring station accidentally delivered their pizza to you instead.", "CentCom Spacepizza Division") + else + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak + for(var/obj/machinery/computer/communications/C in GLOB.machines) + if(!(C.stat & (BROKEN|NOPOWER)) && is_station_level(C.z)) + var/obj/item/paper/P = new(C.loc) + P.name = "Cargo Report" + P.info = "Cargo: It looks like a neighbouring station accidentally delivered their pizza to you instead." + P.update_icon() /datum/round_event/shuttle_loan/proc/loan_shuttle() priority_announce(thanks_msg, "Cargo shuttle commandeered by CentCom.") From 50d9ff9295f011791c2e0da8e3cf349ac7951e55 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Thu, 29 Mar 2018 15:26:53 -0500 Subject: [PATCH 04/35] ups the prob of anomaly reports, add dust --- code/modules/events/anomaly_bluespace.dm | 2 +- code/modules/events/anomaly_flux.dm | 2 +- code/modules/events/anomaly_grav.dm | 2 +- code/modules/events/anomaly_pyro.dm | 2 +- code/modules/events/anomaly_vortex.dm | 2 +- code/modules/events/blob.dm | 2 +- code/modules/events/major_dust.dm | 11 ++++++++++- 7 files changed, 16 insertions(+), 7 deletions(-) diff --git a/code/modules/events/anomaly_bluespace.dm b/code/modules/events/anomaly_bluespace.dm index 080cae81a3..44a66e0d27 100644 --- a/code/modules/events/anomaly_bluespace.dm +++ b/code/modules/events/anomaly_bluespace.dm @@ -10,7 +10,7 @@ /datum/round_event/anomaly/anomaly_bluespace/announce(fake) - if(prob(50)) + if(prob(90)) priority_announce("Unstable bluespace anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") else priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak diff --git a/code/modules/events/anomaly_flux.dm b/code/modules/events/anomaly_flux.dm index 31475c05a7..cc22abe5ab 100644 --- a/code/modules/events/anomaly_flux.dm +++ b/code/modules/events/anomaly_flux.dm @@ -11,7 +11,7 @@ announceWhen = 3 /datum/round_event/anomaly/anomaly_flux/announce(fake) - if(prob(50)) + if(prob(90)) priority_announce("Localized hyper-energetic flux wave detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") else priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak diff --git a/code/modules/events/anomaly_grav.dm b/code/modules/events/anomaly_grav.dm index d40caec23c..c240be50d4 100644 --- a/code/modules/events/anomaly_grav.dm +++ b/code/modules/events/anomaly_grav.dm @@ -9,7 +9,7 @@ announceWhen = 20 /datum/round_event/anomaly/anomaly_grav/announce(fake) - if(prob(50)) + if(prob(90)) priority_announce("Gravitational anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") else priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak diff --git a/code/modules/events/anomaly_pyro.dm b/code/modules/events/anomaly_pyro.dm index 267eb3c121..5a973db95a 100644 --- a/code/modules/events/anomaly_pyro.dm +++ b/code/modules/events/anomaly_pyro.dm @@ -9,7 +9,7 @@ announceWhen = 10 /datum/round_event/anomaly/anomaly_pyro/announce(fake) - if(prob(50)) + if(prob(90)) priority_announce("Pyroclastic anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") else priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak diff --git a/code/modules/events/anomaly_vortex.dm b/code/modules/events/anomaly_vortex.dm index 0c8ac6f2ca..b57fe9e67e 100644 --- a/code/modules/events/anomaly_vortex.dm +++ b/code/modules/events/anomaly_vortex.dm @@ -11,7 +11,7 @@ announceWhen = 3 /datum/round_event/anomaly/anomaly_vortex/announce(fake) - if(prob(50)) + if(prob(90)) priority_announce("Localized high-intensity vortex anomaly detected on long range scanners. Expected location: [impact_area.name]", "Anomaly Alert") else priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak diff --git a/code/modules/events/blob.dm b/code/modules/events/blob.dm index b1629b9c67..45968df0cf 100644 --- a/code/modules/events/blob.dm +++ b/code/modules/events/blob.dm @@ -14,7 +14,7 @@ fakeable = TRUE /datum/round_event/ghost_role/blob/announce(fake) - if(prob(50)) + if(prob(75)) priority_announce("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/ai/outbreak5.ogg') else priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak diff --git a/code/modules/events/major_dust.dm b/code/modules/events/major_dust.dm index 7fb00124a9..d1570ea09d 100644 --- a/code/modules/events/major_dust.dm +++ b/code/modules/events/major_dust.dm @@ -16,4 +16,13 @@ some mild debris is expected.", "A neighbouring station is throwing rocks at you. (Perhaps they've \ grown tired of your messages.)") - priority_announce(pick(reason), "Collision Alert") + if(prob(50)) + priority_announce(pick(reason), "Collision Alert") + else + priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') // CITADEL EDIT metabreak + for(var/obj/machinery/computer/communications/C in GLOB.machines) + if(!(C.stat & (BROKEN|NOPOWER)) && is_station_level(C.z)) + var/obj/item/paper/P = new(C.loc) + P.name = "Collision Alert" + P.info = "[pick(reason)]" + P.update_icon() \ No newline at end of file From 7b91a0765847a2bd81db092d69119ee86e60c82a Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 2 Apr 2018 19:53:36 -0700 Subject: [PATCH 05/35] kek --- modular_citadel/code/modules/arousal/toys/dildos.dm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm index 45f4f5a64a..587702762c 100644 --- a/modular_citadel/code/modules/arousal/toys/dildos.dm +++ b/modular_citadel/code/modules/arousal/toys/dildos.dm @@ -5,8 +5,9 @@ obj/item/dildo name = "dildo" desc = "Floppy!" icon = 'modular_citadel/icons/obj/genitals/dildo.dmi' - damtype = BRUTE - force = 0 + damtype = AROUSAL + force = 5 + hitsound = 'sound/weapons/tap.ogg' throwforce = 0 icon_state = "dildo_knotted_2" alpha = 192//transparent @@ -129,4 +130,4 @@ obj/item/dildo/custom can_customize = TRUE random_color = TRUE random_shape = TRUE - random_size = TRUE \ No newline at end of file + random_size = TRUE From 73efe7245c00b3a2b79e07e4af9be8316bf16e8c Mon Sep 17 00:00:00 2001 From: AnturK Date: Sun, 8 Apr 2018 11:59:33 +0200 Subject: [PATCH 06/35] Fixes slime latching (#37002) --- code/modules/mob/living/carbon/human/human.dm | 43 +++++++++++-------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index fe9bf5ef4a..15e1d83a7d 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -868,12 +868,17 @@ .["Toggle Purrbation"] = "?_src_=vars;[HrefToken()];purrbation=[REF(src)]" /mob/living/carbon/human/MouseDrop_T(mob/living/target, mob/living/user) - if((target != pulling) || (grab_state < GRAB_AGGRESSIVE) || (user != target) || !isliving(user) || stat || user.stat)//Get consent first :^) - . = ..() - return - buckle_mob(target, TRUE, TRUE) + //If they dragged themselves and we're currently aggressively grabbing them try to piggyback + if(user == target && can_piggyback(target) && pulling == target && grab_state >= GRAB_AGGRESSIVE && stat == CONSCIOUS) + buckle_mob(target,TRUE,TRUE) . = ..() +//Can C try to piggyback at all. +/mob/living/carbon/human/proc/can_piggyback(mob/living/carbon/C) + if(istype(C) && C.stat == CONSCIOUS) + return TRUE + return FALSE + /mob/living/carbon/human/buckle_mob(mob/living/M, force = FALSE, check_loc = TRUE) if(!force)//humans are only meant to be ridden through piggybacking and special cases return @@ -882,24 +887,28 @@ return var/datum/component/riding/human/riding_datum = LoadComponent(/datum/component/riding/human) riding_datum.ride_check_rider_incapacitated = TRUE - riding_datum.ride_check_ridden_incapacitated = TRUE riding_datum.ride_check_rider_restrained = TRUE riding_datum.set_riding_offsets(RIDING_OFFSET_ALL, list(TEXT_NORTH = list(0, 6), TEXT_SOUTH = list(0, 6), TEXT_EAST = list(-6, 4), TEXT_WEST = list( 6, 4))) if(buckled_mobs && ((M in buckled_mobs) || (buckled_mobs.len >= max_buckled_mobs)) || buckled || (M.stat != CONSCIOUS)) return - visible_message("[M] starts to climb onto [src]...") - if(do_after(M, 15, target = src)) - if(iscarbon(M)) - if(M.incapacitated(FALSE, TRUE) || incapacitated(FALSE, TRUE)) - M.visible_message("[M] can't hang onto [src]!") - return - if(!riding_datum.equip_buckle_inhands(M, 2)) //MAKE SURE THIS IS LAST!! - M.visible_message("[M] can't climb onto [src]!") - return - . = ..(M, force, check_loc) - stop_pulling() + if(can_piggyback(M)) + riding_datum.ride_check_ridden_incapacitated = TRUE + visible_message("[M] starts to climb onto [src]...") + if(do_after(M, 15, target = src)) + if(can_piggyback(M)) + if(M.incapacitated(FALSE, TRUE) || incapacitated(FALSE, TRUE)) + M.visible_message("[M] can't hang onto [src]!") + return + if(!riding_datum.equip_buckle_inhands(M, 2)) //MAKE SURE THIS IS LAST!! + M.visible_message("[M] can't climb onto [src]!") + return + . = ..(M, force, check_loc) + stop_pulling() + else + visible_message("[M] fails to climb onto [src]!") else - visible_message("[M] fails to climb onto [src]!") + . = ..(M,force,check_loc) + stop_pulling() /mob/living/carbon/human/species var/race = null From 5d1b06c2e341979295159c1102f794a3957d7fd2 Mon Sep 17 00:00:00 2001 From: CosmicScientist Date: Sun, 8 Apr 2018 22:24:27 +0100 Subject: [PATCH 08/35] Bird and Chasm phobias (#36430) CosmicScientist add: Top Nanotrasen scientists have diagnosed two new phobias! Birds and chasms! Good luck Chief Engineers and Miners. Modified fear of doctors to include plague doctor suit. Who isn't afraid of Medieval medicine? --- code/controllers/subsystem/traumas.dm | 26 +++++++++++++----- strings/phobia.json | 38 +++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 6 deletions(-) diff --git a/code/controllers/subsystem/traumas.dm b/code/controllers/subsystem/traumas.dm index e3d783d231..16bcbebc70 100644 --- a/code/controllers/subsystem/traumas.dm +++ b/code/controllers/subsystem/traumas.dm @@ -11,9 +11,10 @@ SUBSYSTEM_DEF(traumas) #define PHOBIA_FILE "phobia.json" /datum/controller/subsystem/traumas/Initialize() + //phobia types is to pull from randomly for brain traumas, e.g. conspiracies is for special assignment only phobia_types = list("spiders", "space", "security", "clowns", "greytide", "lizards", "skeletons", "snakes", "robots", "doctors", "authority", "the supernatural", - "aliens", "strangers") + "aliens", "strangers", "birds", "falling") phobia_words = list("spiders" = strings(PHOBIA_FILE, "spiders"), "space" = strings(PHOBIA_FILE, "space"), @@ -29,7 +30,9 @@ SUBSYSTEM_DEF(traumas) "the supernatural" = strings(PHOBIA_FILE, "the supernatural"), "aliens" = strings(PHOBIA_FILE, "aliens"), "strangers" = strings(PHOBIA_FILE, "strangers"), - "conspiracies" = strings(PHOBIA_FILE, "conspiracies") + "conspiracies" = strings(PHOBIA_FILE, "conspiracies"), + "birds" = strings(PHOBIA_FILE, "birds"), + "falling" = strings(PHOBIA_FILE, "falling") ) phobia_mobs = list("spiders" = typecacheof(list(/mob/living/simple_animal/hostile/poison/giant_spider)), @@ -44,7 +47,10 @@ SUBSYSTEM_DEF(traumas) /mob/living/simple_animal/hostile/clockwork, /mob/living/simple_animal/drone/cogscarab, /mob/living/simple_animal/revenant, /mob/living/simple_animal/shade)), "aliens" = typecacheof(list(/mob/living/carbon/alien, /mob/living/simple_animal/slime)), - "conspiracies" = typecacheof(list(/mob/living/simple_animal/bot/secbot, /mob/living/simple_animal/bot/ed209, /mob/living/simple_animal/drone)) + "conspiracies" = typecacheof(list(/mob/living/simple_animal/bot/secbot, /mob/living/simple_animal/bot/ed209, /mob/living/simple_animal/drone, + /mob/living/simple_animal/pet/penguin)), + "birds" = typecacheof(list(/mob/living/simple_animal/parrot, /mob/living/simple_animal/chick, /mob/living/simple_animal/chicken, + /mob/living/simple_animal/pet/penguin)) ) phobia_objs = list("snakes" = typecacheof(list(/obj/item/rod_of_asclepius)), @@ -91,7 +97,8 @@ SUBSYSTEM_DEF(traumas) /obj/item/storage/firstaid, /obj/item/storage/pill_bottle, /obj/item/device/healthanalyzer, /obj/structure/sign/departments/medbay, /obj/machinery/door/airlock/medical, /obj/machinery/sleeper, /obj/machinery/dna_scannernew, /obj/machinery/atmospherics/components/unary/cryo_cell, /obj/item/surgical_drapes, - /obj/item/retractor, /obj/item/hemostat, /obj/item/cautery, /obj/item/surgicaldrill, /obj/item/scalpel, /obj/item/circular_saw)), + /obj/item/retractor, /obj/item/hemostat, /obj/item/cautery, /obj/item/surgicaldrill, /obj/item/scalpel, /obj/item/circular_saw, + /obj/item/clothing/suit/bio_suit/plaguedoctorsuit, /obj/item/clothing/head/plaguedoctorhat, /obj/item/clothing/mask/gas/plaguedoctor)), "authority" = typecacheof(list(/obj/item/clothing/under/rank/captain, /obj/item/clothing/under/rank/head_of_personnel, /obj/item/clothing/under/rank/head_of_security, /obj/item/clothing/under/rank/research_director, @@ -122,14 +129,21 @@ SUBSYSTEM_DEF(traumas) /obj/item/clothing/head/helmet/abductor, /obj/structure/bed/abductor, /obj/structure/table_frame/abductor, /obj/structure/table/abductor, /obj/structure/table/optable/abductor, /obj/structure/closet/abductor, /obj/item/organ/heart/gland, /obj/machinery/abductor, /obj/item/crowbar/abductor, /obj/item/screwdriver/abductor, /obj/item/weldingtool/abductor, - /obj/item/wirecutters/abductor, /obj/item/wrench/abductor, /obj/item/stack/sheet/mineral/abductor)) + /obj/item/wirecutters/abductor, /obj/item/wrench/abductor, /obj/item/stack/sheet/mineral/abductor)), + + "birds" = typecacheof(list(/obj/item/clothing/mask/gas/plaguedoctor, /obj/item/reagent_containers/food/snacks/cracker, + /obj/item/clothing/suit/chickensuit, /obj/item/clothing/head/chicken, + /obj/item/clothing/suit/toggle/owlwings, /obj/item/clothing/under/owl, /obj/item/clothing/mask/gas/owl_mask, + /obj/item/clothing/under/griffin, /obj/item/clothing/shoes/griffin, /obj/item/clothing/head/griffin, + /obj/item/clothing/head/helmet/space/freedom, /obj/item/clothing/suit/space/freedom)) ) phobia_turfs = list("space" = typecacheof(list(/turf/open/space, /turf/open/floor/holofloor/space, /turf/open/floor/fakespace)), "the supernatural" = typecacheof(list(/turf/open/floor/clockwork, /turf/closed/wall/clockwork, /turf/open/floor/plasteel/cult, /turf/closed/wall/mineral/cult)), "aliens" = typecacheof(list(/turf/open/floor/plating/abductor, /turf/open/floor/plating/abductor2, - /turf/open/floor/mineral/abductor, /turf/closed/wall/mineral/abductor)) + /turf/open/floor/mineral/abductor, /turf/closed/wall/mineral/abductor)), + "falling" = typecacheof(list(/turf/open/chasm, /turf/open/floor/fakepit)) ) phobia_species = list("lizards" = typecacheof(list(/datum/species/lizard)), diff --git a/strings/phobia.json b/strings/phobia.json index 10fdbd9a0c..379dd1829a 100644 --- a/strings/phobia.json +++ b/strings/phobia.json @@ -219,5 +219,43 @@ "as (unknown)", "unknown", "stranger danger" + ], + +"birds": [ + "birdemic", + "bird", + "beak", + "poly", + "wing", + "claw", + "peck", + "cracker", + "kiki yaya", + "ki ki ya ya", + "vox", + "flap", + "feather", + "avian", + "aviary", + "owl", + "griffin", + "kakaw", + "ka kaw", + "eagle", + "chick", + "fowl" + ], + +"falling": [ + "hold on", + "hang in there", + "chasm", + "pit", + "hole", + "fall", + "fell", + "let go", + "i'll catch you", + "slip" ] } From 29fcf2d5aac633302b8446090231c17875e0de5f Mon Sep 17 00:00:00 2001 From: Spirono Date: Sun, 8 Apr 2018 22:59:50 +0100 Subject: [PATCH 10/35] Wrench Supermatter Shard to the ground (#36991) * Temporary concept code for PR I doubt this code is the standard method of doing things, but trying to understand this code is a bit AIDS * Using wrench_act() and default_unfasten_wrench() instead It actually works this time --- code/modules/power/supermatter/supermatter.dm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 5ed6b84a18..1662316447 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -137,6 +137,8 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) var/datum/looping_sound/supermatter/soundloop + var/moveable = TRUE + /obj/machinery/power/supermatter_shard/Initialize() . = ..() uid = gl_uid++ @@ -549,6 +551,10 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) radiation_pulse(src, 150, 4) +/obj/machinery/power/supermatter_shard/wrench_act(mob/user, obj/item/tool) + if (moveable) + default_unfasten_wrench(user, tool, time = 20) + return TRUE /obj/machinery/power/supermatter_shard/CollidedWith(atom/movable/AM) if(isliving(AM)) @@ -610,6 +616,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_shard) anchored = TRUE gasefficency = 0.15 explosion_power = 35 + moveable = FALSE /obj/machinery/power/supermatter_shard/crystal/engine is_main_engine = TRUE From d0075b37b317edff1c2e4ea3d0dbe211616df39c Mon Sep 17 00:00:00 2001 From: vuonojenmustaturska Date: Mon, 9 Apr 2018 03:22:22 +0300 Subject: [PATCH 12/35] Fixes a turf runtime (#37038) --- code/game/turfs/simulated/chasm.dm | 2 +- code/game/turfs/simulated/floor/misc_floor.dm | 2 +- code/game/turfs/simulated/floor/plating/asteroid.dm | 2 +- code/game/turfs/simulated/lava.dm | 2 +- code/game/turfs/space/space.dm | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/game/turfs/simulated/chasm.dm b/code/game/turfs/simulated/chasm.dm index 1bb2a2b798..93590e935c 100644 --- a/code/game/turfs/simulated/chasm.dm +++ b/code/game/turfs/simulated/chasm.dm @@ -21,7 +21,7 @@ GET_COMPONENT(chasm_component, /datum/component/chasm) chasm_component.drop(AM) -/turf/open/chasm/MakeSlippery() +/turf/open/chasm/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent) return /turf/open/chasm/MakeDry() diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm index d3f8d00be7..650a66adf1 100644 --- a/code/game/turfs/simulated/floor/misc_floor.dm +++ b/code/game/turfs/simulated/floor/misc_floor.dm @@ -129,7 +129,7 @@ burnt_states = list("noslip-scorched1","noslip-scorched2") slowdown = -0.3 -/turf/open/floor/noslip/MakeSlippery() +/turf/open/floor/noslip/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent) return /turf/open/floor/oldshuttle diff --git a/code/game/turfs/simulated/floor/plating/asteroid.dm b/code/game/turfs/simulated/floor/plating/asteroid.dm index 594fdabd70..4a28bfd004 100644 --- a/code/game/turfs/simulated/floor/plating/asteroid.dm +++ b/code/game/turfs/simulated/floor/plating/asteroid.dm @@ -33,7 +33,7 @@ /turf/open/floor/plating/asteroid/burn_tile() return -/turf/open/floor/plating/asteroid/MakeSlippery() +/turf/open/floor/plating/asteroid/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent) return /turf/open/floor/plating/asteroid/MakeDry() diff --git a/code/game/turfs/simulated/lava.dm b/code/game/turfs/simulated/lava.dm index a928c927d6..6cf3b64a20 100644 --- a/code/game/turfs/simulated/lava.dm +++ b/code/game/turfs/simulated/lava.dm @@ -14,7 +14,7 @@ /turf/open/lava/ex_act(severity, target) contents_explosion(severity, target) -/turf/open/lava/MakeSlippery() +/turf/open/lava/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent) return /turf/open/lava/acid_act(acidpwr, acid_volume) diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index 8f628efc5f..b7082f77b5 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -163,7 +163,7 @@ A.newtonian_move(A.inertia_dir) -/turf/open/space/MakeSlippery() +/turf/open/space/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent) return /turf/open/space/singularity_act() From a3f873e4b2578f5fbd3fc782124286676fa1e69c Mon Sep 17 00:00:00 2001 From: AnturK Date: Mon, 9 Apr 2018 02:22:58 +0200 Subject: [PATCH 14/35] Makes revheads always show on top of the check antags listing. (#37033) --- code/modules/antagonists/revolution/revolution.dm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/code/modules/antagonists/revolution/revolution.dm b/code/modules/antagonists/revolution/revolution.dm index eeeee03663..dae760933e 100644 --- a/code/modules/antagonists/revolution/revolution.dm +++ b/code/modules/antagonists/revolution/revolution.dm @@ -348,7 +348,20 @@ return result.Join() /datum/team/revolution/antag_listing_entry() - var/common_part = ..() + var/common_part = "" + var/list/parts = list() + parts += "[antag_listing_name()]
" + parts += "" + + var/list/heads = get_team_antags(/datum/antagonist/rev/head,TRUE) + + for(var/datum/antagonist/A in heads | get_team_antags()) + parts += A.antag_listing_entry() + + parts += "
" + parts += antag_listing_footer() + common_part = parts.Join() + var/heads_report = "Heads of Staff
" heads_report += "" for(var/datum/mind/N in SSjob.get_living_heads()) From 682db307463e47d24d686fbe57f184639c1753fe Mon Sep 17 00:00:00 2001 From: Ashe Higgs Date: Sun, 8 Apr 2018 20:27:07 -0400 Subject: [PATCH 16/35] Adds new drink sprites for Stinger, Grasshopper, and Quadruple/Quintuple Sec by Mickyan --- .../reagents/chemistry/reagents/alcohol_reagents.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index 952678caf7..a0259d9e01 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -1397,7 +1397,7 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#cc0000" boozepwr = 35 taste_description = "an invigorating bitter freshness which suffuses your being; no enemy of the station will go unrobusted this day" - glass_icon_state = "glass_red" + glass_icon_state = "quadruple_sec" glass_name = "Quadruple Sec" glass_desc = "An intimidating and lawful beverage dares you to violate the law and make its day. Still can't drink it on duty, though." @@ -1415,7 +1415,7 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "#ff3300" boozepwr = 80 taste_description = "THE LAW" - glass_icon_state = "glass_red" + glass_icon_state = "quintuple_sec" glass_name = "Quintuple Sec" glass_desc = "Now you are become law, destroyer of clowns." @@ -1436,7 +1436,7 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "00ff00" boozepwr = 25 taste_description = "chocolate and mint dancing around your mouth" - glass_icon_state = "glass_green" + glass_icon_state = "grasshopper" glass_name = "Grasshopper" glass_desc = "You weren't aware edible beverages could be that green." @@ -1447,7 +1447,7 @@ All effects don't start immediately, but rather get worse over time; the rate is color = "ccff99" boozepwr = 25 taste_description = "a slap on the face in the best possible way" - glass_icon_state = "glass_white" + glass_icon_state = "stinger" glass_name = "Stinger" glass_desc = "You wonder what would happen if you pointed this at a heat source..." From 83f13322299c19d55eee0db4fd603c2f879f78f1 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 8 Apr 2018 19:39:06 -0700 Subject: [PATCH 17/35] >wiped my flavortext accidently --- modular_citadel/code/modules/client/preferences.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_citadel/code/modules/client/preferences.dm b/modular_citadel/code/modules/client/preferences.dm index c2dee71a4f..d1fe2d3d73 100644 --- a/modular_citadel/code/modules/client/preferences.dm +++ b/modular_citadel/code/modules/client/preferences.dm @@ -253,7 +253,7 @@ if("input") switch(href_list["preference"]) if("flavor_text") - var/msg = stripped_multiline_input(usr,"Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!","Flavor Text",html_decode(features["flavor_text"]), MAX_MESSAGE_LEN*2, TRUE) as message + var/msg = stripped_multiline_input(usr,"Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!","Flavor Text",html_decode(features["flavor_text"]), MAX_MESSAGE_LEN*2, TRUE) as null|message if(msg != null) msg = copytext(msg, 1, MAX_MESSAGE_LEN*2) features["flavor_text"] = msg From cd38bccf01c586c8d997d1007803cf96cf51e7a1 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 8 Apr 2018 19:40:28 -0700 Subject: [PATCH 18/35] why --- code/__HELPERS/_cit_helpers.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/__HELPERS/_cit_helpers.dm b/code/__HELPERS/_cit_helpers.dm index 83211d7ee6..9e38d9cf1e 100644 --- a/code/__HELPERS/_cit_helpers.dm +++ b/code/__HELPERS/_cit_helpers.dm @@ -108,8 +108,8 @@ GLOBAL_VAR_INIT(miscreants_allowed, FALSE) set desc = "Sets an extended description of your character's features." set category = "IC" - var/new_flavor = (input(src, "Enter your new flavor text:", "Flavor text", null) as text|null) - if(new_flavor) + var/new_flavor = input(src, "Enter your new flavor text:", "Flavor text", null) as message|null + if(!isnull(new_flavor)) flavor_text = sanitize(new_flavor) to_chat(src, "Your flavor text has been updated.") From 820f4e7998465a4c6cb1c10ae4b69ea82b18e564 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 8 Apr 2018 19:40:57 -0700 Subject: [PATCH 19/35] Update preferences.dm --- modular_citadel/code/modules/client/preferences.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_citadel/code/modules/client/preferences.dm b/modular_citadel/code/modules/client/preferences.dm index d1fe2d3d73..741e6f0935 100644 --- a/modular_citadel/code/modules/client/preferences.dm +++ b/modular_citadel/code/modules/client/preferences.dm @@ -254,7 +254,7 @@ switch(href_list["preference"]) if("flavor_text") var/msg = stripped_multiline_input(usr,"Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!","Flavor Text",html_decode(features["flavor_text"]), MAX_MESSAGE_LEN*2, TRUE) as null|message - if(msg != null) + if(!isnull(msg)) msg = copytext(msg, 1, MAX_MESSAGE_LEN*2) features["flavor_text"] = msg From 37b8772f1cbf21326e5252cab639740bb0a326bf Mon Sep 17 00:00:00 2001 From: Dax Dupont Date: Mon, 9 Apr 2018 06:40:17 +0200 Subject: [PATCH 20/35] Adds an are you sure dialog when pressing delete note. (#37017) * Adds an are you sure dialog when pressing delete note. * The true is out there --- code/modules/admin/topic.dm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 5e8fe119cf..75263147eb 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1094,14 +1094,18 @@ else if(href_list["deletemessage"]) if(!check_rights(R_ADMIN)) return - var/message_id = href_list["deletemessage"] - delete_message(message_id) + var/safety = alert("Delete message/note?",,"Yes","No"); + if (safety == "Yes") + var/message_id = href_list["deletemessage"] + delete_message(message_id) else if(href_list["deletemessageempty"]) if(!check_rights(R_ADMIN)) return - var/message_id = href_list["deletemessageempty"] - delete_message(message_id, browse = 1) + var/safety = alert("Delete message/note?",,"Yes","No"); + if (safety == "Yes") + var/message_id = href_list["deletemessageempty"] + delete_message(message_id, browse = TRUE) else if(href_list["editmessage"]) if(!check_rights(R_ADMIN)) From 2c275be1c10ca7283c4341cb6b3e70eb2e19ce45 Mon Sep 17 00:00:00 2001 From: vuonojenmustaturska Date: Mon, 9 Apr 2018 12:53:02 +0300 Subject: [PATCH 22/35] Fixes an heirloom trait-related runtime that gets spammed in the logs (#37036) * honk * return * Update negative.dm * Update _trait.dm --- code/datums/traits/_trait.dm | 1 + code/datums/traits/negative.dm | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/code/datums/traits/_trait.dm b/code/datums/traits/_trait.dm index 1b51d6a190..a0090a94fa 100644 --- a/code/datums/traits/_trait.dm +++ b/code/datums/traits/_trait.dm @@ -56,6 +56,7 @@ /datum/trait/process() if(QDELETED(trait_holder)) + trait_holder = null qdel(src) return if(trait_holder.stat == DEAD) diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 8d161db9d5..dcaa4f4545 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -61,7 +61,7 @@ var/list/family_name = splittext(trait_holder.real_name, " ") heirloom.name = "\improper [family_name[family_name.len]] family [heirloom.name]" -/datum/trait/family_heirloom/process() +/datum/trait/family_heirloom/on_process() if(heirloom in trait_holder.GetAllContents()) trait_holder.SendSignal(COMSIG_CLEAR_MOOD_EVENT, "family_heirloom_missing") trait_holder.SendSignal(COMSIG_ADD_MOOD_EVENT, "family_heirloom", /datum/mood_event/family_heirloom) From 46b7b958971145240bffb4d8134fc5f3b0b4159c Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Mon, 9 Apr 2018 05:10:10 -0500 Subject: [PATCH 24/35] Finishes overflow roles (#37053) --- .../configuration/entries/game_options.dm | 5 ++++- code/controllers/subsystem/job.dm | 13 +++++++++++++ code/modules/holiday/holidays.dm | 2 +- code/modules/jobs/job_types/assistant.dm | 13 ++----------- config/game_options.txt | 7 +++++-- 5 files changed, 25 insertions(+), 15 deletions(-) diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index 4ac9910336..84cc15d142 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -224,10 +224,13 @@ /datum/config_entry/keyed_number_list/law_weight splitter = "," -/datum/config_entry/number/assistant_cap +/datum/config_entry/number/overflow_cap config_entry_value = -1 min_val = -1 +/datum/config_entry/string/overflow_job + config_entry_value = "Assistant" + /datum/config_entry/flag/starlight /datum/config_entry/flag/grey_assistants diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index e82da7dd6f..c19345f328 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -21,8 +21,21 @@ SUBSYSTEM_DEF(job) if(CONFIG_GET(flag/load_jobs_from_txt)) LoadJobs() generate_selectable_species() + set_overflow_role(CONFIG_GET(string/overflow_job)) ..() +/datum/controller/subsystem/job/proc/set_overflow_role(new_overflow_role) + var/datum/job/new_overflow = GetJob(new_overflow_role) + var/cap = CONFIG_GET(number/overflow_cap) + + new_overflow.spawn_positions = cap + new_overflow.total_positions = cap + + if(new_overflow_role != overflow_role) + var/datum/job/old_overflow = GetJob(overflow_role) + old_overflow.spawn_positions = initial(old_overflow.spawn_positions) + old_overflow.total_positions = initial(old_overflow.total_positions) + overflow_role = new_overflow_role /datum/controller/subsystem/job/proc/SetupOccupations(faction = "Station") occupations = list() diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm index 988c564245..4f740f4e61 100644 --- a/code/modules/holiday/holidays.dm +++ b/code/modules/holiday/holidays.dm @@ -153,7 +153,7 @@ begin_month = APRIL /datum/holiday/april_fools/celebrate() - SSjob.overflow_role = "Clown" + SSjob.set_overflow_role("Clown") SSticker.login_music = 'sound/ambience/clown.ogg' for(var/mob/dead/new_player/P in GLOB.mob_list) if(P.client) diff --git a/code/modules/jobs/job_types/assistant.dm b/code/modules/jobs/job_types/assistant.dm index a18fe78906..7601d2f245 100644 --- a/code/modules/jobs/job_types/assistant.dm +++ b/code/modules/jobs/job_types/assistant.dm @@ -6,8 +6,8 @@ Assistant flag = ASSISTANT department_flag = CIVILIAN faction = "Station" - total_positions = -1 - spawn_positions = -1 + total_positions = 5 + spawn_positions = 5 supervisors = "absolutely everyone" selection_color = "#dddddd" access = list() //See /datum/job/assistant/get_access() @@ -23,15 +23,6 @@ Assistant else return ..() -/datum/job/assistant/config_check() - var/ac = CONFIG_GET(number/assistant_cap) - if(ac != 0) - total_positions = ac - spawn_positions = ac - return 1 - return 0 - - /datum/outfit/job/assistant name = "Assistant" jobtype = /datum/job/assistant diff --git a/config/game_options.txt b/config/game_options.txt index 8896e6e3e7..b3d6f82a21 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -431,8 +431,11 @@ ROUNDSTART_RACES slimeperson ## Uncomment to give players the choice of joining as a human with mutant bodyparts before they join the game #JOIN_WITH_MUTANT_HUMANS -## Assistant slot cap. Set to -1 for unlimited. -ASSISTANT_CAP -1 +##Overflow job. Default is assistant +OVERFLOW_JOB Assistant + +## Overflow slot cap. Set to -1 for unlimited. If limited, it will still open up if every other job is full. +OVERFLOW_CAP -1 ## Starlight for exterior walls and breaches. Uncomment for starlight! ## This is disabled by default to make testing quicker, should be enabled on production servers or testing servers messing with lighting From 0372a042adec0bea6beae502e76664d018f5fa6e Mon Sep 17 00:00:00 2001 From: vuonojenmustaturska Date: Mon, 9 Apr 2018 13:23:04 +0300 Subject: [PATCH 26/35] Merge pull request #37042 from ninjanomnom/just-the-area-I-needed Fixes underlying area grabbing subtypes --- code/modules/shuttle/docking.dm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/code/modules/shuttle/docking.dm b/code/modules/shuttle/docking.dm index 1d9b0f769b..df41f1f9e6 100644 --- a/code/modules/shuttle/docking.dm +++ b/code/modules/shuttle/docking.dm @@ -46,7 +46,12 @@ // The underlying old area is the area assumed to be under the shuttle's starting location // If it no longer/has never existed it will be created - var/area/underlying_old_area = locate(underlying_area_type) in GLOB.sortedAreas + var/area/underlying_old_area + for(var/i in GLOB.sortedAreas) // Locate grabs subtypes and we want a particular type + var/area/place = i + if(place.type == underlying_area_type) + underlying_old_area = place + break if(!underlying_old_area) underlying_old_area = new underlying_area_type(null) From daeca4892e0c7e0a2467c0adb1f07c087babb6e0 Mon Sep 17 00:00:00 2001 From: AnturK Date: Sun, 8 Apr 2018 20:07:16 +0200 Subject: [PATCH 28/35] Makes spacemove check location. --- code/game/atoms_movable.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 3ecdbb61a1..144b7c16a2 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -381,6 +381,9 @@ if(throwing) return 1 + + if(!isturf(loc)) + return 1 if(locate(/obj/structure/lattice) in range(1, get_turf(src))) //Not realistic but makes pushing things in space easier return 1 From bdf2f65a8f06dcc26bd374b9262fe57449424fb0 Mon Sep 17 00:00:00 2001 From: AnturK Date: Sun, 8 Apr 2018 20:49:15 +0200 Subject: [PATCH 30/35] Fixes swarming runtime --- code/datums/components/swarming.dm | 44 ++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 code/datums/components/swarming.dm diff --git a/code/datums/components/swarming.dm b/code/datums/components/swarming.dm new file mode 100644 index 0000000000..c80b8ba13b --- /dev/null +++ b/code/datums/components/swarming.dm @@ -0,0 +1,44 @@ +/datum/component/swarming + var/offset_x = 0 + var/offset_y = 0 + var/is_swarming = FALSE + var/list/swarm_members = list() + +/datum/component/swarming/Initialize(max_x = 24, max_y = 24) + offset_x = rand(-max_x, max_x) + offset_y = rand(-max_y, max_y) + + RegisterSignal(COMSIG_MOVABLE_CROSSED, .proc/join_swarm) + RegisterSignal(COMSIG_MOVABLE_UNCROSSED, .proc/leave_swarm) + +/datum/component/swarming/proc/join_swarm(atom/movable/AM) + GET_COMPONENT_FROM(other_swarm, /datum/component/swarming, AM) + if(!other_swarm) + return + swarm() + swarm_members |= other_swarm + other_swarm.swarm() + other_swarm.swarm_members |= src + +/datum/component/swarming/proc/leave_swarm(atom/movable/AM) + GET_COMPONENT_FROM(other_swarm, /datum/component/swarming, AM) + if(!other_swarm || !(other_swarm in swarm_members)) + return + swarm_members -= other_swarm + if(!swarm_members.len) + unswarm() + other_swarm.swarm_members -= src + if(!other_swarm.swarm_members.len) + other_swarm.unswarm() + +/datum/component/swarming/proc/swarm() + var/atom/movable/owner = parent + if(!is_swarming) + is_swarming = TRUE + animate(owner, pixel_x = owner.pixel_x + offset_x, pixel_y = owner.pixel_y + offset_y, time = 2) + +/datum/component/swarming/proc/unswarm() + var/atom/movable/owner = parent + if(is_swarming) + animate(owner, pixel_x = owner.pixel_x - offset_x, pixel_y = owner.pixel_y - offset_y, time = 2) + is_swarming = FALSE \ No newline at end of file From f2717989c9c482ff45d7317ed2579c844005c4e5 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Mon, 9 Apr 2018 01:15:30 -0400 Subject: [PATCH 31/35] Fix an error message grammer --- code/controllers/configuration/configuration.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm index b662fd4f84..403ad06784 100644 --- a/code/controllers/configuration/configuration.dm +++ b/code/controllers/configuration/configuration.dm @@ -165,7 +165,7 @@ var/datum/config_entry/E = entry_type var/entry_is_abstract = initial(E.abstract_type) == entry_type if(entry_is_abstract) - CRASH("Tried to retrieve an abstract config_entry: [entry_type]") + CRASH("Tried to set an abstract config_entry: [entry_type]") E = entries_by_type[entry_type] if(!E) CRASH("Missing config entry for [entry_type]!") From a25b8ec1be094c087d4b5750889ac03210b99387 Mon Sep 17 00:00:00 2001 From: Davidj361 Date: Mon, 9 Apr 2018 14:04:58 -0400 Subject: [PATCH 33/35] Detective Scanner Fixes (#36915) * Fixed notes for detective's printed report * Added alt-click functionality to clear logs for detective scanner * Added a right click option to detective scanner to display logs without printing them * Made the display function as an action button. * Review changes done * review changes * review changes and a bad player message fix --- code/modules/detectivework/scanner.dm | 35 +++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm index aa80178030..e7589aa15f 100644 --- a/code/modules/detectivework/scanner.dm +++ b/code/modules/detectivework/scanner.dm @@ -16,6 +16,15 @@ var/list/log = list() var/range = 8 var/view_check = TRUE + actions_types = list(/datum/action/item_action/displayDetectiveScanResults) + +/datum/action/item_action/displayDetectiveScanResults + name = "Display Forensic Scanner Results" + +/datum/action/item_action/displayDetectiveScanResults/Trigger() + var/obj/item/device/detective_scanner/scanner = target + if(istype(scanner)) + scanner.displayDetectiveScanResults(usr) /obj/item/device/detective_scanner/attack_self(mob/user) if(log.len && !scanning) @@ -36,6 +45,7 @@ P.info += jointext(log, "
") P.info += "
Notes:
" P.info_links = P.info + P.updateinfolinks() if(ismob(loc)) var/mob/M = loc @@ -165,3 +175,28 @@ /proc/get_timestamp() return time2text(world.time + 432000, ":ss") + +/obj/item/device/detective_scanner/AltClick(mob/living/user) + // Best way for checking if a player can use while not incapacitated, etc + if(!user.canUseTopic(src, be_close=TRUE)) + return + if(!LAZYLEN(log)) + to_chat(user, "Cannot clear logs, the scanner has no logs.") + return + if(scanning) + to_chat(user, "Cannot clear logs, the scanner is in use.") + return + to_chat(user, "The scanner logs are cleared.") + log = list() + +/obj/item/device/detective_scanner/proc/displayDetectiveScanResults(mob/living/user) + // No need for can-use checks since the action button should do proper checks + if(!LAZYLEN(log)) + to_chat(user, "Cannot display logs, the scanner has no logs.") + return + if(scanning) + to_chat(user, "Cannot display logs, the scanner is in use.") + return + to_chat(user, "Scanner Report") + for(var/iterLog in log) + to_chat(user, iterLog) \ No newline at end of file From 126c610ccd8dd6d8caa39c21ceecb61b324e2f56 Mon Sep 17 00:00:00 2001 From: Tad Hardesty Date: Mon, 9 Apr 2018 12:14:36 -0700 Subject: [PATCH 35/35] Mark appearance_flags and sight as bitflags for VV --- code/_globalvars/bitfields.dm | 134 ++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 code/_globalvars/bitfields.dm diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm new file mode 100644 index 0000000000..f5c2f1ff26 --- /dev/null +++ b/code/_globalvars/bitfields.dm @@ -0,0 +1,134 @@ +GLOBAL_LIST_INIT(bitfields, list( + "appearance_flags" = list( + "LONG_GLIDE" = LONG_GLIDE, + "RESET_COLOR" = RESET_COLOR, + "RESET_ALPHA" = RESET_ALPHA, + "RESET_TRANSFORM" = RESET_TRANSFORM, + "NO_CLIENT_COLOR" = NO_CLIENT_COLOR, + "KEEP_TOGETHER" = KEEP_TOGETHER, + "KEEP_APART" = KEEP_APART, + "PLANE_MASTER" = PLANE_MASTER, + "TILE_BOUND" = TILE_BOUND, + "PIXEL_SCALE" = PIXEL_SCALE + ), + "sight" = list( + "SEE_INFRA" = SEE_INFRA, + "SEE_SELF" = SEE_SELF, + "SEE_MOBS" = SEE_MOBS, + "SEE_OBJS" = SEE_OBJS, + "SEE_TURFS" = SEE_TURFS, + "SEE_PIXELS" = SEE_PIXELS, + "SEE_THRU" = SEE_THRU, + "SEE_BLACKNESS" = SEE_BLACKNESS, + "BLIND" = BLIND + ), + "obj_flags" = list( + "EMAGGED" = EMAGGED, + "IN_USE" = IN_USE, + "CAN_BE_HIT" = CAN_BE_HIT, + "BEING_SHOCKED" = BEING_SHOCKED, + "DANGEROUS_POSSESSION" = DANGEROUS_POSSESSION, + "ON_BLUEPRINTS" = ON_BLUEPRINTS, + "UNIQUE_RENAME" = UNIQUE_RENAME, + "USES_TGUI" = USES_TGUI + ), + "datum_flags" = list( + "DF_USE_TAG" = DF_USE_TAG, + "DF_VAR_EDITED" = DF_VAR_EDITED + ), + "item_flags" = list( + "BEING_REMOVED" = BEING_REMOVED, + "IN_INVENTORY" = IN_INVENTORY, + "FORCE_STRING_OVERRIDE" = FORCE_STRING_OVERRIDE, + "NEEDS_PERMIT" = NEEDS_PERMIT + ), + "admin_flags" = list( + "BUILDMODE" = R_BUILDMODE, + "ADMIN" = R_ADMIN, + "BAN" = R_BAN, + "FUN" = R_FUN, + "SERVER" = R_SERVER, + "DEBUG" = R_DEBUG, + "POSSESS" = R_POSSESS, + "PERMISSIONS" = R_PERMISSIONS, + "STEALTH" = R_STEALTH, + "POLL" = R_POLL, + "VAREDIT" = R_VAREDIT, + "SOUNDS" = R_SOUNDS, + "SPAWN" = R_SPAWN, + "AUTOLOGIN" = R_AUTOLOGIN, + "DBRANKS" = R_DBRANKS + ), + "interaction_flags_atom" = list( + "INTERACT_ATOM_REQUIRES_ANCHORED" = INTERACT_ATOM_REQUIRES_ANCHORED, + "INTERACT_ATOM_ATTACK_HAND" = INTERACT_ATOM_ATTACK_HAND, + "INTERACT_ATOM_UI_INTERACT" = INTERACT_ATOM_UI_INTERACT, + "INTERACT_ATOM_REQUIRES_DEXTERITY" = INTERACT_ATOM_REQUIRES_DEXTERITY, + "INTERACT_ATOM_IGNORE_INCAPACITATED" = INTERACT_ATOM_IGNORE_INCAPACITATED, + "INTERACT_ATOM_IGNORE_RESTRAINED" = INTERACT_ATOM_IGNORE_RESTRAINED, + "INTERACT_ATOM_CHECK_GRAB" = INTERACT_ATOM_CHECK_GRAB, + "INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND" = INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND, + "INTERACT_ATOM_NO_FINGERPRINT_INTERACT" = INTERACT_ATOM_NO_FINGERPRINT_INTERACT + ), + "interaction_flags_machine" = list( + "INTERACT_MACHINE_OPEN" = INTERACT_MACHINE_OPEN, + "INTERACT_MACHINE_OFFLINE" = INTERACT_MACHINE_OFFLINE, + "INTERACT_MACHINE_WIRES_IF_OPEN" = INTERACT_MACHINE_WIRES_IF_OPEN, + "INTERACT_MACHINE_ALLOW_SILICON" = INTERACT_MACHINE_ALLOW_SILICON, + "INTERACT_MACHINE_OPEN_SILICON" = INTERACT_MACHINE_OPEN_SILICON, + "INTERACT_MACHINE_REQUIRES_SILICON" = INTERACT_MACHINE_REQUIRES_SILICON + ), + "pass_flags" = list( + "PASSTABLE" = PASSTABLE, + "PASSGLASS" = PASSGLASS, + "PASSGRILLE" = PASSGRILLE, + "PASSBLOB" = PASSBLOB, + "PASSMOB" = PASSMOB, + "PASSCLOSEDTURF" = PASSCLOSEDTURF, + "LETPASSTHROW" = LETPASSTHROW + ), + "movement_type" = list( + "GROUND" = GROUND, + "FLYING" = FLYING + ), + "resistance_flags" = list( + "LAVA_PROOF" = LAVA_PROOF, + "FIRE_PROOF" = FIRE_PROOF, + "FLAMMABLE" = FLAMMABLE, + "ON_FIRE" = ON_FIRE, + "UNACIDABLE" = UNACIDABLE, + "ACID_PROOF" = ACID_PROOF, + "INDESTRUCTIBLE" = INDESTRUCTIBLE, + "FREEZE_PROOF" = FREEZE_PROOF + ), + "reagents_holder_flags" = list( + "REAGENT_NOREACT" = REAGENT_NOREACT + ), + "flags_1" = list( + "STOPSPRESSUREDMAGE_1 / NOJAUNT_1 (turfs)" = STOPSPRESSUREDMAGE_1, + "NODROP_1 / UNUSED_TRANSIT_TURF_1 (turfs)" = NODROP_1, + "NOBLUDGEON_1 / CAN_BE_DIRTY_1 (turfs)" = NOBLUDGEON_1, + "MASKINTERNALS_1" = MASKINTERNALS_1, + "HEAR_1 / NO_DEATHRATTLE_1 (turfs)" = HEAR_1, + "CHECK_RICOCHET_1 / NO_RUINS_1 (turfs)" = CHECK_RICOCHET_1, + "CONDUCT_1 / NO_LAVA_GEN_1" = CONDUCT_1, + "ABSTRACT_1" = ABSTRACT_1, + "NODECONSTRUCT_1" = NODECONSTRUCT_1, + "OVERLAY_QUEUED_1" = OVERLAY_QUEUED_1, + "NOSLIP_1" = NOSLIP_1 + ), + "flags_2" = list( + "SLOWS_WHILE_IN_HAND_2" = SLOWS_WHILE_IN_HAND_2, + "NO_EMP_WIRES_2" = NO_EMP_WIRES_2, + "HOLOGRAM_2" = HOLOGRAM_2, + "FRONZE_2" = FROZEN_2, + "STATIONLOVING_2" = STATIONLOVING_2, + "INFORM_ADMINS_ON_RELOCATE_2" = INFORM_ADMINS_ON_RELOCATE_2, + "BANG_PROTECT_2" = BANG_PROTECT_2, + "HEALS_EARS_2" = HEALS_EARS_2, + "OMNITONGUE_2" = OMNITONGUE_2, + "TESLA_IGNORE_2" = TESLA_IGNORE_2, + "NO_MAT_REDEMPTION_2" = NO_MAT_REDEMPTION_2, + "LAVA_PROTECT_2" = LAVA_PROTECT_2 + ) + ))