From da5bfd3b0f0a6d93dafd275d2cd03ead383ce394 Mon Sep 17 00:00:00 2001 From: "johnsonmt88@gmail.com" Date: Wed, 27 Jun 2012 06:16:31 +0000 Subject: [PATCH] Setting people's criminal status via SecHUDs now require the user to be alive, and to actually be wearing the HUD. Set the solar control computers to 'off' by default since you have to set them off then back on again to get them working properly anyway. Fixed a typo in glass/attackby() causing lit-glass tiles to not be created. Fixes issue 593 Moved certain procs in human/life.dm() into an if(stat != DEAD). This means that certain procs will update only if the mob is alive. Affected procs: - handle_virus_updates() - handle_changeling() - handle_mutations_and_radiation() - handle_chemicals_in_body() - handle_disabilities() - handle_random_events() - update_canmove() - - If dead, it forces mob.canmove to 0, meaning you don't get to be the walking dead. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3925 316c924e-a436-60f5-8080-3fe189b3f50e --- code/game/objects/stacks/glass.dm | 2 +- .../mob/living/carbon/human/examine.dm | 3 + code/modules/mob/living/carbon/human/life.dm | 59 ++++++++++--------- .../mob/living/carbon/human/update_icons.dm | 2 +- code/modules/power/solar.dm | 2 +- maps/tgstation.2.0.9.dmm | 12 ++-- tgstation.dme | 1 - 7 files changed, 44 insertions(+), 37 deletions(-) diff --git a/code/game/objects/stacks/glass.dm b/code/game/objects/stacks/glass.dm index 4e1dc4d136f..8ecc24d8145 100644 --- a/code/game/objects/stacks/glass.dm +++ b/code/game/objects/stacks/glass.dm @@ -20,7 +20,7 @@ SHARDS CC.use(5) src.use(1) user << "\blue You attach wire to the [name]." - new/obj/item/stack/light_w(user.loc) + new /obj/item/stack/light_w(user.loc) if(CC.amount <= 0) user.u_equip(CC) del(CC) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 8168aa73407..13b53211186 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -244,6 +244,9 @@ if(istype(usr, /mob/living/carbon/human)) var/mob/living/carbon/human/H = usr if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud)) + if(usr.stat || H != usr) //|| !usr.canmove || usr.restrained()) Fluff: Sechuds have eye-tracking technology and sets 'arrest' to people that the wearer looks and blinks at. + return //Non-fluff: This allows sec to set people to arrest as they get disarmed or beaten + var/perpname = "wot" var/criminal = "None" diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 7f4a194b409..f7bdaae699a 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -21,54 +21,59 @@ //TODO: seperate this out var/datum/gas_mixture/environment = loc.return_air() - if(stat != DEAD) //still breathing - //First, resolve location and get a breath - if(air_master.current_cycle%4==2) - //Only try to take a breath every 4 seconds, unless suffocating - spawn(0) breathe() + + + + //No need to update all of these procs if the guy is dead. + if(stat != DEAD) + if(air_master.current_cycle%4==2) //First, resolve location and get a breath + spawn(0) breathe() //Only try to take a breath every 4 seconds, unless suffocating else //Still give containing object the chance to interact if(istype(loc, /obj/)) var/obj/location_as_object = loc location_as_object.handle_internal_lifeform(src, 0) - //Apparently, the person who wrote this code designed it so that - //blinded get reset each cycle and then get activated later in the - //code. Very ugly. I dont care. Moving this stuff here so its easy - //to find it. + //Disease Check + handle_virus_updates() + + //Changeling things + handle_changeling() + + //Mutations and radiation + handle_mutations_and_radiation() + + //Chemicals in the body + handle_chemicals_in_body() + + //Disabilities + handle_disabilities() + + //Random events (vomiting etc) + handle_random_events() + + update_canmove() //TODO: remove from life() if viable ~Carn + //Removed for dead people, that's at least a small step closer to removing it! - Nodrak + + else if(stat == DEAD) + canmove = 0 //Since canmove doesn't update if they're dead, force this var 0. + + //These should be updated whether the mob is dead or alive blinded = null //Update Mind update_mind() - //Disease Check - handle_virus_updates() - - //Changeling things - handle_changeling() - //Handle temperature/pressure differences between body and environment handle_environment(environment) - //Mutations and radiation - handle_mutations_and_radiation() - - //Chemicals in the body - handle_chemicals_in_body() - //stuff in the stomach handle_stomach() - //Disabilities - handle_disabilities() - - //Random events (vomiting etc) - handle_random_events() //Status updates, death etc. UpdateLuminosity() handle_regular_status_updates() //TODO: optimise ~Carn - update_canmove() //TODO: remove from life() if viable ~Carn (read as: if it won't cause massive problems) //Update our name based on whether our face is obscured/disfigured name = get_visible_name() //TODO: this was broken by the dismemberment revert ~Carn diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 058e3e4ff32..a160a62955b 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -40,7 +40,7 @@ There are several things that need to be remembered: update_inv_gloves() update_inv_shoes() update_inv_w_uniform() - update_inv_glassed() + update_inv_glasse() update_inv_l_hand() update_inv_r_hand() update_inv_belt() diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index 7463e5fbacb..67c5b290652 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -167,7 +167,7 @@ var/cdir = 0 var/gen = 0 var/lastgen = 0 - var/track = 2 // 0= off 1=timed 2=auto (tracker) + var/track = 0 // 0= off 1=timed 2=auto (tracker) var/trackrate = 600 // 300-900 seconds var/trackdir = 1 // 0 =CCW, 1=CW var/nexttime = 0 diff --git a/maps/tgstation.2.0.9.dmm b/maps/tgstation.2.0.9.dmm index 9067df1f97b..ad5e43e24a9 100644 --- a/maps/tgstation.2.0.9.dmm +++ b/maps/tgstation.2.0.9.dmm @@ -1123,7 +1123,7 @@ "avE" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor,/area/hallway/secondary/entry) "avF" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "avG" = (/turf/simulated/wall/r_wall,/area/maintenance/auxsolarport) -"avH" = (/obj/machinery/power/solar_control{id = "auxsolareast"; name = "Fore Port Solar Control"; track = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) +"avH" = (/obj/machinery/power/solar_control{id = "auxsolareast"; name = "Fore Port Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) "avI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) "avJ" = (/obj/effect/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) "avK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) @@ -1216,7 +1216,7 @@ "axt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/crew_quarters/fitness) "axu" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/crew_quarters/fitness) "axv" = (/turf/simulated/wall/r_wall,/area/maintenance/auxsolarstarboard) -"axw" = (/obj/machinery/power/solar_control{id = "auxsolareast"; name = "Fore Starboard Solar Control"; track = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) +"axw" = (/obj/machinery/power/solar_control{id = "auxsolareast"; name = "Fore Starboard Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "axx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "axy" = (/obj/structure/rack,/obj/item/clothing/mask/gas,/obj/effect/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "axz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry) @@ -5486,7 +5486,7 @@ "cbz" = (/obj/machinery/camera{c_tag = "Virology South"; dir = 1; network = "SS13"; pixel_x = 22},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cbA" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating/airless,/area/solar/port) "cbB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/maintenance/portsolar) -"cbC" = (/obj/machinery/power/solar_control{id = "portsolar"; name = "Aft Port Solar Control"; track = 2},/obj/structure/cable,/turf/simulated/floor/plating,/area/maintenance/portsolar) +"cbC" = (/obj/machinery/power/solar_control{id = "portsolar"; name = "Aft Port Solar Control"; track = 0},/obj/structure/cable,/turf/simulated/floor/plating,/area/maintenance/portsolar) "cbD" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/turf/simulated/floor/plating,/area/maintenance/portsolar) "cbE" = (/obj/machinery/power/apc{dir = 4; name = "Aft Port Solar APC"; pixel_x = 23; pixel_y = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/camera{c_tag = "Aft Port Solar Control"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/portsolar) "cbF" = (/obj/machinery/light/small{dir = 8},/obj/structure/closet/wardrobe/black,/turf/simulated/floor/plating,/area/maintenance/aft) @@ -5665,7 +5665,7 @@ "ceW" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/gloves/yellow,/obj/item/weapon/storage/belt/utility,/turf/simulated/floor,/area/engine/engineering) "ceX" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/weapon/tank/emergency_oxygen/engi,/obj/item/weapon/tank/emergency_oxygen/engi,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 31},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/engine/engineering) "ceY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) -"ceZ" = (/obj/machinery/power/solar_control{id = "starboardsolar"; name = "Aft Starboard Solar Control"; track = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/turf/simulated/floor/plating,/area/maintenance/starboardsolar) +"ceZ" = (/obj/machinery/power/solar_control{id = "starboardsolar"; name = "Aft Starboard Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "cfa" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = "90Curve"},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "cfb" = (/obj/effect/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "cfc" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/lattice,/turf/space,/area) @@ -7520,7 +7520,7 @@ "cOF" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/airless,/area/solar/derelict_starboard) "cOG" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "Starboard Solar APC"; pixel_y = 24},/turf/simulated/floor,/area/derelict/solar_control) "cOH" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/derelict/solar_control) -"cOI" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar_control{id = "derelictsolar"; name = "Primary Solar Control"; track = 2},/turf/simulated/floor,/area/derelict/solar_control) +"cOI" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar_control{id = "derelictsolar"; name = "Primary Solar Control"; track = 0},/turf/simulated/floor,/area/derelict/solar_control) "cOJ" = (/obj/machinery/light/small{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/derelict/solar_control) "cOK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/derelict/solar_control) "cOL" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/turf/simulated/floor/plating/airless,/area/solar/derelict_starboard) @@ -8019,7 +8019,7 @@ "cYk" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) "cYl" = (/turf/simulated/floor/plating/airless,/area/derelict/bridge/ai_upload) "cYm" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) -"cYn" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/power/solar_control{id = "derelictsolar"; name = "Primary Solar Control"; track = 2},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) +"cYn" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/power/solar_control{id = "derelictsolar"; name = "Primary Solar Control"; track = 0},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) "cYo" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 8; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/plating/airless,/area/derelict/bridge/ai_upload) "cYp" = (/obj/item/weapon/paper{desc = ""; info = "The Syndicate have cunningly disguised a Syndicate Uplink as your PDA. Simply enter the code \"678 Bravo\" into the ringtone select to unlock its hidden features.

Objective #1. Kill the God damn AI in a fire blast that it rocks the station. Success!
Objective #2. Escape alive. Failed."; name = "Mission Objectives"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/bridge/ai_upload) "cYq" = (/obj/machinery/light/small{dir = 4},/obj/item/clothing/head/helmet/space/syndicate,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) diff --git a/tgstation.dme b/tgstation.dme index 11bbc797517..918412c688f 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -188,7 +188,6 @@ #define FILE_DIR "icons/vending_icons" #define FILE_DIR "interface" #define FILE_DIR "maps" -#define FILE_DIR "maps/backup" #define FILE_DIR "maps/RandomZLevels" #define FILE_DIR "sound" #define FILE_DIR "sound/AI"