From d7a2559065f582ebd2c73f2146d01fedff7ece73 Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 1 Mar 2015 20:35:07 +0100 Subject: [PATCH] Bug fixes galore --- code/game/gamemodes/changeling/changeling.dm | 2 +- .../gamemodes/changeling/powers/mutations.dm | 22 ++--- code/game/machinery/computer/computer.dm | 2 + code/game/machinery/computer/power.dm | 7 +- code/game/machinery/computer/xenos_shuttle.dm | 3 + code/game/machinery/cryo.dm | 3 - .../airlock_controllers.dm | 4 +- .../embedded_controller/airlock_program.dm | 88 +++++++++++-------- code/game/machinery/portable_turret.dm | 2 +- code/game/objects/items/weapons/explosives.dm | 2 +- code/game/objects/structures/displaycase.dm | 2 + code/modules/admin/holder2.dm | 14 +-- code/modules/client/preferences.dm | 2 + .../living/carbon/alien/humanoid/inventory.dm | 4 +- .../mob/living/carbon/human/inventory.dm | 44 +++++----- code/modules/nano/nanointeraction.dm | 2 +- maps/cyberiad.dmm | 5 +- nano/templates/crew_monitor.tmpl | 4 +- 18 files changed, 118 insertions(+), 94 deletions(-) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 4ff968b7b64..8edd5e0c664 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -120,8 +120,8 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" var/datum/objective/escape/escape_with_identity/identity_theft = new identity_theft.owner = changeling identity_theft.target = kill_objective.target - identity_theft.target_real_name = kill_objective.target.current.real_name //Whoops, forgot this. if(identity_theft.target && identity_theft.target.current) + identity_theft.target_real_name = kill_objective.target.current.real_name //Whoops, forgot this. var/mob/living/carbon/human/H = identity_theft.target.current if(H.species && H.species.flags && H.species.flags & NO_SCAN) // For species that can't be absorbed - should default to an escape objective instead return diff --git a/code/game/gamemodes/changeling/powers/mutations.dm b/code/game/gamemodes/changeling/powers/mutations.dm index e7205f6aa46..f1a9e3d1a52 100644 --- a/code/game/gamemodes/changeling/powers/mutations.dm +++ b/code/game/gamemodes/changeling/powers/mutations.dm @@ -22,12 +22,12 @@ /obj/effect/proc_holder/changeling/weapon/try_to_sting(var/mob/user, var/mob/target) if(istype(user.l_hand, weapon_type)) //Not the nicest way to do it, but eh - qdel(user.l_hand) + del(user.l_hand) user.visible_message("With a sickening crunch, [user] reforms his [weapon_name_simple] into an arm!", "We assimilate the [weapon_name_simple] back into our body.", "With a sickening crunch, [user] reforms his [weapon_name_simple] into an arm!", "We assimilate the [weapon_name_simple] back into our body.", "[H] casts off their [suit_name_simple]!", "We cast off our [suit_name_simple][genetic_damage > 0 ? ", temporarily weakening our genomes." : "."]", "You hear the organic matter ripping and tearing!") - qdel(H.wear_suit) - qdel(H.head) + del(H.wear_suit) + del(H.head) H.update_inv_wear_suit() H.update_inv_head() H.update_hair() @@ -140,7 +140,7 @@ /obj/item/weapon/melee/arm_blade/dropped(mob/user) user.visible_message("With a sickening crunch, [user] reforms his blade into an arm!", "We assimilate the blade back into our body.", "The end of [loc.name]\'s hand inflates rapidly, forming a huge shield-like mass!", "We inflate our hand into a strong shield.", "You hear organic matter ripping and tearing!") /obj/item/weapon/shield/changeling/dropped() - qdel(src) + del(src) /obj/item/weapon/shield/changeling/IsShield() if(remaining_uses < 1) @@ -224,7 +224,7 @@ var/mob/living/carbon/human/H = loc H.visible_message("With a sickening crunch, [H] reforms his shield into an arm!", "We assimilate our shield into our body", "[loc.name]\'s flesh turns black, quickly transforming into a hard, chitinous mass!", "We harden our flesh, creating a suit of armor!", "You hear organic matter ripping and tearing!") /obj/item/clothing/suit/armor/changeling/dropped() - qdel(src) + del(src) /obj/item/clothing/head/helmet/changeling name = "chitinous mass" @@ -335,4 +335,4 @@ flags_inv = HIDEEARS /obj/item/clothing/head/helmet/changeling/dropped() - qdel(src) + del(src) diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index b5e28c3b7a1..14011f549b5 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -140,6 +140,7 @@ return /obj/machinery/computer/attack_paw(mob/living/user) + user.changeNext_move(CLICK_CD_MELEE) user.do_attack_animation(src) if(circuit) if(prob(10)) @@ -153,6 +154,7 @@ "You hear a clicking sound.") /obj/machinery/computer/attack_alien(mob/living/user) + user.changeNext_move(CLICK_CD_MELEE) user.do_attack_animation(src) if(circuit) if(prob(80)) diff --git a/code/game/machinery/computer/power.dm b/code/game/machinery/computer/power.dm index fc325978682..06f8cfe5692 100644 --- a/code/game/machinery/computer/power.dm +++ b/code/game/machinery/computer/power.dm @@ -23,15 +23,14 @@ if(isturf(T)) attached = locate() in T if(attached) - powernet = attached.get_powernet() - - + powernet = attached.get_powernet() + /obj/machinery/power/monitor/attack_ai(mob/user) add_fingerprint(user) if(stat & (BROKEN|NOPOWER)) return - interact(user) + interact(user) /obj/machinery/power/monitor/attack_hand(mob/user) add_fingerprint(user) diff --git a/code/game/machinery/computer/xenos_shuttle.dm b/code/game/machinery/computer/xenos_shuttle.dm index cdcb5efce43..343c2717b76 100644 --- a/code/game/machinery/computer/xenos_shuttle.dm +++ b/code/game/machinery/computer/xenos_shuttle.dm @@ -93,6 +93,9 @@ /obj/machinery/computer/xenos_station/attack_paw(mob/user as mob) return attack_hand(user) + +/obj/machinery/computer/xenos_station/attack_alien(mob/user as mob) + return attack_hand(user) /obj/machinery/computer/xenos_station/attack_hand(mob/user as mob) if(!allowed(user)) diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 4a33f3511d7..0d92be24127 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -126,7 +126,6 @@ if(!node) return if(!on) - updateUsrDialog() return if(occupant) @@ -141,7 +140,6 @@ if(abs(temperature_archived-air_contents.temperature) > 1) network.update = 1 - updateUsrDialog() return 1 @@ -306,7 +304,6 @@ var/mob/M = G:affecting if(put_mob(M)) del(G) - updateUsrDialog() return /obj/machinery/atmospherics/unary/cryo_cell/update_icon() diff --git a/code/game/machinery/embedded_controller/airlock_controllers.dm b/code/game/machinery/embedded_controller/airlock_controllers.dm index 4a2a9c5e56e..fb909dee555 100644 --- a/code/game/machinery/embedded_controller/airlock_controllers.dm +++ b/code/game/machinery/embedded_controller/airlock_controllers.dm @@ -1,13 +1,15 @@ //base type for controllers of two-door systems /obj/machinery/embedded_controller/radio/airlock // Setup parameters only + radio_filter = RADIO_AIRLOCK var/tag_exterior_door var/tag_interior_door var/tag_airpump var/tag_chamber_sensor var/tag_exterior_sensor var/tag_interior_sensor - var/tag_mech_sensor + var/tag_airlock_mech_sensor + var/tag_shuttle_mech_sensor var/tag_secure = 0 /obj/machinery/embedded_controller/radio/airlock/initialize() diff --git a/code/game/machinery/embedded_controller/airlock_program.dm b/code/game/machinery/embedded_controller/airlock_program.dm index 24c49f9fa55..8cb3abb9980 100644 --- a/code/game/machinery/embedded_controller/airlock_program.dm +++ b/code/game/machinery/embedded_controller/airlock_program.dm @@ -1,8 +1,9 @@ //Handles the control of airlocks -#define STATE_WAIT 0 -#define STATE_DEPRESSURIZE 1 -#define STATE_PRESSURIZE 2 +#define STATE_IDLE 0 +#define STATE_PREPARE 1 +#define STATE_DEPRESSURIZE 2 +#define STATE_PRESSURIZE 3 #define TARGET_NONE 0 #define TARGET_INOPEN -1 @@ -16,9 +17,10 @@ var/tag_chamber_sensor var/tag_exterior_sensor var/tag_interior_sensor - var/tag_mech_sensor + var/tag_airlock_mech_sensor + var/tag_shuttle_mech_sensor - var/state = STATE_WAIT + var/state = STATE_IDLE var/target_state = TARGET_NONE /datum/computer/file/embedded_program/airlock/New(var/obj/machinery/embedded_controller/M) @@ -42,7 +44,8 @@ tag_chamber_sensor = controller.tag_chamber_sensor? controller.tag_chamber_sensor : "[id_tag]_sensor" tag_exterior_sensor = controller.tag_exterior_sensor tag_interior_sensor = controller.tag_interior_sensor - tag_mech_sensor = controller.tag_mech_sensor? controller.tag_mech_sensor : "[id_tag]_mech" + tag_airlock_mech_sensor = controller.tag_airlock_mech_sensor? controller.tag_airlock_mech_sensor : "[id_tag]_airlock_mech" + tag_shuttle_mech_sensor = controller.tag_shuttle_mech_sensor? controller.tag_shuttle_mech_sensor : "[id_tag]_shuttle_mech" memory["secure"] = controller.tag_secure spawn(10) @@ -157,7 +160,7 @@ /datum/computer/file/embedded_program/airlock/process() - if(!state) + if(!state) //Idle if(target_state) switch(target_state) if(TARGET_INOPEN) @@ -168,38 +171,45 @@ //lock down the airlock before activating pumps close_doors() - var/chamber_pressure = memory["chamber_sensor_pressure"] - var/target_pressure = memory["target_pressure"] - - if(memory["purge"]) - target_pressure = 0 - - if(chamber_pressure <= target_pressure) - state = STATE_PRESSURIZE - signalPump(tag_airpump, 1, 1, target_pressure) //send a signal to start pressurizing - - else if(chamber_pressure > target_pressure) - state = STATE_DEPRESSURIZE - signalPump(tag_airpump, 1, 0, target_pressure) //send a signal to start depressurizing - - //Check for vacuum - this is set after the pumps so the pumps are aiming for 0 - if(!memory["target_pressure"]) - memory["target_pressure"] = ONE_ATMOSPHERE * 0.05 + state = STATE_PREPARE else //make sure to return to a sane idle state if(memory["pump_status"] != "off") //send a signal to stop pumping signalPump(tag_airpump, 0) - //the airlock will not allow itself to continue to cycle when any of the doors are forced open. - if (state && !check_doors_secured()) + if ((state == STATE_PRESSURIZE || state == STATE_DEPRESSURIZE) && !check_doors_secured()) + //the airlock will not allow itself to continue to cycle when any of the doors are forced open. stop_cycling() switch(state) + if(STATE_PREPARE) + if (check_doors_secured()) + var/chamber_pressure = memory["chamber_sensor_pressure"] + var/target_pressure = memory["target_pressure"] + + if(memory["purge"]) + target_pressure = 0 + + if(memory["purge"]) + target_pressure = 0 + + if(chamber_pressure <= target_pressure) + state = STATE_PRESSURIZE + signalPump(tag_airpump, 1, 1, target_pressure) //send a signal to start pressurizing + + else if(chamber_pressure > target_pressure) + state = STATE_DEPRESSURIZE + signalPump(tag_airpump, 1, 0, target_pressure) //send a signal to start depressurizing + + //Check for vacuum - this is set after the pumps so the pumps are aiming for 0 + if(!memory["target_pressure"]) + memory["target_pressure"] = ONE_ATMOSPHERE * 0.05 + if(STATE_PRESSURIZE) if(memory["chamber_sensor_pressure"] >= memory["target_pressure"] * 0.95) cycleDoors(target_state) - state = STATE_WAIT + state = STATE_IDLE target_state = TARGET_NONE if(memory["pump_status"] != "off") @@ -216,7 +226,7 @@ else if(memory["chamber_sensor_pressure"] <= memory["target_pressure"] * 1.05) cycleDoors(target_state) - state = STATE_WAIT + state = STATE_IDLE target_state = TARGET_NONE //send a signal to stop pumping @@ -231,11 +241,11 @@ //these are here so that other types don't have to make so many assuptions about our implementation /datum/computer/file/embedded_program/airlock/proc/begin_cycle_in() - state = STATE_WAIT + state = STATE_IDLE target_state = TARGET_INOPEN /datum/computer/file/embedded_program/airlock/proc/begin_cycle_out() - state = STATE_WAIT + state = STATE_IDLE target_state = TARGET_OUTOPEN /datum/computer/file/embedded_program/airlock/proc/close_doors() @@ -243,11 +253,11 @@ toggleDoor(memory["exterior_status"], tag_exterior_door, 1, "close") /datum/computer/file/embedded_program/airlock/proc/stop_cycling() - state = STATE_WAIT + state = STATE_IDLE target_state = TARGET_NONE /datum/computer/file/embedded_program/airlock/proc/done_cycling() - return (state == STATE_WAIT && target_state == TARGET_NONE) + return (state == STATE_IDLE && target_state == TARGET_NONE) //are the doors closed and locked? /datum/computer/file/embedded_program/airlock/proc/check_exterior_door_secured() @@ -295,11 +305,19 @@ signalDoor(tag_exterior_door, command) signalDoor(tag_interior_door, command) +datum/computer/file/embedded_program/airlock/proc/signal_mech_sensor(var/command, var/sensor) + var/datum/signal/signal = new + signal.data["tag"] = sensor + signal.data["command"] = command + post_signal(signal) + /datum/computer/file/embedded_program/airlock/proc/enable_mech_regulation() - signalDoor(tag_mech_sensor, "enable") + signal_mech_sensor("enable", tag_shuttle_mech_sensor) + signal_mech_sensor("enable", tag_airlock_mech_sensor) /datum/computer/file/embedded_program/airlock/proc/disable_mech_regulation() - signalDoor(tag_mech_sensor, "disable") + signal_mech_sensor("disable", tag_shuttle_mech_sensor) + signal_mech_sensor("disable", tag_airlock_mech_sensor) /*---------------------------------------------------------- toggleDoor() @@ -355,7 +373,7 @@ send an additional command to open the door again. signalDoor(doorTag, doorCommand) -#undef STATE_WAIT +#undef STATE_IDLE #undef STATE_DEPRESSURIZE #undef STATE_PRESSURIZE diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index fa56228cc09..839eb562b84 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -357,7 +357,7 @@ /obj/machinery/porta_turret/bullet_act(obj/item/projectile/Proj) - if(Proj.damage_type == HALLOSS) + if(Proj.damage_type == HALLOSS || Proj.damage_type == STAMINA) return if(enabled) diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index f0208139b81..0d6d6c97311 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -82,7 +82,7 @@ log_game("[key_name(user)] planted C4 on [key_name(target)] with [timer] second fuse") else - message_admins("[key_name(user, user.client)](?) planted C4 on [target.name] at ([target.x],[target.y],[target.z] - JMP) with [timer] second fuse",0,1) + message_admins("[key_name(user, user.client)](?) planted C4 on [target.name] at ([target.x],[target.y],[target.z] - JMP) with [timer] second fuse",0,1) log_game("[key_name(user)] planted C4 on [target.name] at ([target.x],[target.y],[target.z]) with [timer] second fuse") target.overlays += image('icons/obj/assemblies.dmi', "plastic-explosive2") diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index ff47eec90fa..b7f18ced386 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -229,6 +229,8 @@ update_icon() else if(user.a_intent == "harm") + user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation(src) user.visible_message("\red [user.name] kicks \the [src]!", \ "\red You kick \the [src]!", \ "You hear glass crack.") diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm index 4a2c8fcf0d6..33fc2240830 100644 --- a/code/modules/admin/holder2.dm +++ b/code/modules/admin/holder2.dm @@ -49,21 +49,21 @@ proc/admin_proc() NOTE: it checks usr! not src! So if you're checking somebody's rank in a proc which they did not call you will have to do something like if(client.holder.rights & R_ADMIN) yourself. */ -/proc/check_rights(rights_required, show_msg=1) - if(usr && usr.client) +/proc/check_rights(rights_required, show_msg=1, var/mob/user = usr) + if(user && user.client) if(rights_required) - if(usr.client.holder) - if(rights_required & usr.client.holder.rights) + if(user.client.holder) + if(rights_required & user.client.holder.rights) return 1 else if(show_msg) - usr << "Error: You do not have sufficient rights to do that. You require one of the following flags:[rights2text(rights_required," ")]." + user << "Error: You do not have sufficient rights to do that. You require one of the following flags:[rights2text(rights_required," ")]." else - if(usr.client.holder) + if(user.client.holder) return 1 else if(show_msg) - usr << "Error: You are not an admin." + user << "Error: You are not an admin." return 0 //probably a bit iffy - will hopefully figure out a better solution diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index b23bf771db2..109a257ac03 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -500,6 +500,8 @@ datum/preferences HTML += " \[Yes]" else HTML += " \[No]" + if(job.alt_titles) + HTML += "
\[[GetPlayerAltTitle(job)]\]" HTML += "" continue /* diff --git a/code/modules/mob/living/carbon/alien/humanoid/inventory.dm b/code/modules/mob/living/carbon/alien/humanoid/inventory.dm index 138bd24f495..d279c11d0a5 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/inventory.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/inventory.dm @@ -6,11 +6,11 @@ if(I == r_store) r_store = null - update_inv_pockets(0) + update_inv_pockets() else if(I == l_store) l_store = null - update_inv_pockets(0) + update_inv_pockets() /mob/living/carbon/alien/humanoid/attack_ui(slot_id) var/obj/item/W = get_active_hand() diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 34e9801ef68..ce2298b3d46 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -118,7 +118,7 @@ wear_suit = null if(I.flags_inv & HIDEJUMPSUIT) update_inv_w_uniform() - update_inv_wear_suit(0) + update_inv_wear_suit() else if(I == w_uniform) if(r_store) unEquip(r_store, 1) //Again, makes sense for pockets to drop. @@ -129,69 +129,69 @@ if(belt) unEquip(belt) w_uniform = null - update_inv_w_uniform(0) + update_inv_w_uniform() else if(I == gloves) gloves = null - update_inv_gloves(0) + update_inv_gloves() else if(I == glasses) glasses = null - update_inv_glasses(0) + update_inv_glasses() else if(I == head) head = null if(I.flags & BLOCKHAIR || I.flags & BLOCKHEADHAIR) - update_hair(0) //rebuild hair - update_inv_head(0) + update_hair() //rebuild hair + update_inv_head() else if(I == r_ear) r_ear = null - update_inv_ears(0) + update_inv_ears() else if (I == l_ear) l_ear = null - update_inv_ears(0) + update_inv_ears() else if(I == shoes) shoes = null - update_inv_shoes(0) + update_inv_shoes() else if(I == belt) belt = null - update_inv_belt(0) + update_inv_belt() else if(I == wear_mask) wear_mask = null if(I.flags & BLOCKHAIR || I.flags & BLOCKHEADHAIR) - update_hair(0) //rebuild hair + update_hair() //rebuild hair if(internal) if(internals) internals.icon_state = "internal0" internal = null - update_inv_wear_mask(0) + update_inv_wear_mask() else if(I == wear_id) wear_id = null - update_inv_wear_id(0) + update_inv_wear_id() else if(I == wear_pda) wear_pda = null - update_inv_wear_pda(0) + update_inv_wear_pda() else if(I == r_store) r_store = null - update_inv_pockets(0) + update_inv_pockets() else if(I == l_store) l_store = null - update_inv_pockets(0) + update_inv_pockets() else if(I == s_store) s_store = null - update_inv_s_store(0) + update_inv_s_store() else if(I == back) back = null - update_inv_back(0) + update_inv_back() else if(I == handcuffed) handcuffed = null - update_inv_handcuffed(1) + update_inv_handcuffed() else if(I == legcuffed) legcuffed = null - update_inv_legcuffed(0) + update_inv_legcuffed() else if(I == r_hand) r_hand = null - update_inv_r_hand(0) + update_inv_r_hand() else if(I == l_hand) l_hand = null - update_inv_l_hand(0) + update_inv_l_hand() update_action_buttons() diff --git a/code/modules/nano/nanointeraction.dm b/code/modules/nano/nanointeraction.dm index d746c64d689..6deadd1927b 100644 --- a/code/modules/nano/nanointeraction.dm +++ b/code/modules/nano/nanointeraction.dm @@ -13,7 +13,7 @@ return STATUS_CLOSE // By default no mob can do anything with NanoUI /mob/dead/observer/can_use_topic() - if(check_rights(R_ADMIN, 0)) + if(check_rights(R_ADMIN, 0, src)) return STATUS_INTERACTIVE // Admins are more equal return STATUS_UPDATE // Ghosts can view updates diff --git a/maps/cyberiad.dmm b/maps/cyberiad.dmm index 20511c876e0..87c5d7c1073 100644 --- a/maps/cyberiad.dmm +++ b/maps/cyberiad.dmm @@ -133,7 +133,7 @@ "acC" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) "acD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/stool/bed,/turf/simulated/floor{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) "acE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "dark"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) -"acF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area) +"acF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/medical/research{name = "Research Division"}) "acG" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/permabrig) "acH" = (/obj/structure/rack,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/gun/projectile/shotgun/riot,/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/security/securearmoury) "acI" = (/obj/machinery/alarm{pixel_y = 23},/obj/structure/window/reinforced{dir = 1},/obj/structure/rack,/obj/item/ammo_box/shotgun/beanbag,/obj/item/ammo_box/shotgun/beanbag,/turf/simulated/floor{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/security/securearmoury) @@ -12996,7 +12996,6 @@ "ePV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "xenobio2"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/toxins/xenobiology) "ePW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall,/area/engine/break_room) "ePX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/turf/simulated/floor/plating,/area/medical/virology) -"ePY" = (/turf/simulated/wall/r_wall,/area/engine/equipmentstorage) "ePZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/turf/simulated/floor/plating,/area/medical/virology) "eQa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/medical/virology/lab) "eQb" = (/turf/simulated/wall,/area/medical/virology/lab) @@ -13201,7 +13200,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaaaaacuaaacqccqdcqeaaacqccqdcqeaaacqccqdcqeaabcqfaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIOcoacIQcqgcoocphcqhcoocoocoocqicoocqgcqgcoocoocoocoocqjcIScpjcqlclncqmbTWePNePNcqncoxcqocqpcqqcoxcqrcHKcqscqtcqucqvcITbVQbDgcqwbVQcqwbDgbDgbDgcmXbDgeOEeOFeOHeOHeOHeOGeOEeOEaaaePRcqycqzcqAePScqCchwchwcqDcqEcqFcqGcqEcqFcqGcqEcqFcqGePPaaaaabeOlePyePyePyePycqHcoTcqIcqJcqKcqLcqMcqNeOlaaaaaaaaaaaaaaacqOcqOcqOcnZaabaabaabaabcqPaabaabaabaabaabakUcqOcqOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaacuaaacqccqQcqeaaacqccqQcqeaaacqccqQcqeaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabcIOcoacIUcqgcqRcoocqScqTcqUcqUcpgcoocqgcqVcoocoocoocoocqWcIVcqYcqZbSCcracrbePTcrdcrecoxcqocrfcrgcoxcrhcHKcDNcIXcDIcIZcIYcJfcJacJucJjcJCcJacJacJacJDcJaeOEaaaaaaaaaaaaaaaaaaaabaaaePrcrlcnKcrmePUcrnchwchwcqDcrocrpcrqcrrcrpcrqcrrcrpcrsePPaabaabeOlcnNcnOcnPePVcrucnScrvcrwcrxcrycrzcrAeOlaaaaaaaaaaaaaaacqOaaaaabaaaaabaaaaaaaaacrBaaaaabaabaaaaaaaaaaaacqOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaagaaaaaaaaaakqaabcqccqQcqeaaacqccqQcqeaabcqccqQcqeaabaaaaaaaabaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaacJEcoacolcrCcoocrDcrEcrFcrGcrHcrGcrIcrGcrJcrKcojcrLcqgcqgcIScrMcrNcrOcrPcrQePWcrScrTcrUcrVcrWcrXcrYcrZcJXcsacsbcsccsdcsecsfcsgcshcsicsjcskcslcsmcsncKaaabaaaaaaaaaaaaaaaaaaaabaabePRcspcsqcsrcsscstchwchwchwcsuchwchwchwchwchwchwchwcsvePXaaaaaaeOlcoPcoPcoPcsxcoScoTcsycszcsAcsBcsCcsDeOleOleOleOlaaaaaacqOaaacsEcsEcsEcsEcsEaabcsFaabcsEcsEcsEcsEcsEaaacqOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaaabaaacqccqQcqeaabcqccqQcqeaaacqccqQcqeaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaaaaabaabaaaaaacKncsGcolcsHcsIcsIcsJcolcolcolcolcolcolcolcolcolcolcolcolcolcbWcsKcbWcKrcbWePYcsLcsMcsNcsOcsPcsQcsRcsScJXcsTcsbcsccsUcsVcsWcsXcsYcsZctactbctcctdctecKvaabctgctgctgctgctgaaaaaaaabePrcthcnKctictjctkctlchwchwctmchwchwchwchwchwctnchwctoePZaaaaaaeOlcoPcoPcoPePVctqcnSctrctscttctuctvctwctxctyctzeOlaaaaaacqOaabctActBctBctBctBctCctDctEctFctFctFctFctGaabcqOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaaaaaaaaaaaabaaacqccqQcqeaabcqccqQcqeaaacqccqQcqeaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaaaaabaabaaaaaacKncsGcolcsHcsIcsIcsJcolcolcolcolcolcolcolcolcolcolcolcolcolcbWcsKcbWcKrcbWcgXcsLcsMcsNcsOcsPcsQcsRcsScJXcsTcsbcsccsUcsVcsWcsXcsYcsZctactbctcctdctecKvaabctgctgctgctgctgaaaaaaaabePrcthcnKctictjctkctlchwchwctmchwchwchwchwchwctnchwctoePZaaaaaaeOlcoPcoPcoPePVctqcnSctrctscttctuctvctwctxctyctzeOlaaaaaacqOaabctActBctBctBctBctCctDctEctFctFctFctFctGaabcqOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaacuacuakqaabaaacqccqQcqeaabcqccqQcqeaaacqccqQcqeaabaaaaaaaaaaaaaaaaaaaaaaaaaabcKzcKwcKwcKwcKwcKncKncoacolctHctIctIctJeImctKctLctLctLctLctMctNctOctNctNctPctPctNctQeIoeIneIpeIpctRctSctTctUctVctWctWctXeIqctYctZcuacubcsVcuccsXcudcuecufcugcuhcuicujeIrculcumcuncuocupctgaaaaaacuqeQaeQbcureQceQbcuscutcuucuvcuycuwcuxcuycuzcuAcuBcuCcuDePPaaaaaaeOlePyePyePyePycuEcoTcsycuFcuGcuHcsCcoTcuIcoTcuJeOlaaaaaacqOaabcuKcuKcuKcuKcuKaaacsFaaacuKcuKcuKcuKcuKaabcqOaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaacuaaaaabaaaaabaabcuLaabaabaabcuLaabaaaaabcuLaabaaaaaaaaaaaaaaaaaaaaaaaaeIteIseIucuMcuNcuOeIvcuQcuRcuScolcolcuTcuUcolcolcuVcHqcHqcHqcHqeIweIyeIxeIyeIyeIyeIpeIpeIzeIAcuWcuXcuYctWcuZctTctWctWctWctWcvacJXcvbcvccubcubcsVcuccvdcudcuecvecvfcvgcvhcvieIBaabcvkcvlcupcvmctgaaaaaaaaaeQacvncvocvpeQbcvqcvrcvscvtcvucqGcqFcvucvvcvwcvxcqGcqFePPaaaaaaeOlcnNcnOcnPeQdcrucnScvzcvAcvBcvCcvDcvEcvFcvGcvHeOlaabaabcqOaaaaabaaaaabaabaabaaacsFaaaaabaaaaabaaaaabaaacqOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoXcoXcoXcoXcoXcoXcoXcoXcoXaaaaaaaaaakqaabcvIcvJcvJcvKcvLcvMcvMcvMcvLcvMcvMcvMcvLcvMcvMcvNcvJcvJcvJcvJcvJcvOcvPcvQcvRcvScvTcvUcvVcvWbYrcoacvXcolcolcolcolcvYcuVcHqcvZcwacwbcwccwdcwecwfcwgcwhcwicwjcwkcwlcwmcwncwocwpcwqctTcwrctWctWctWcwscJXcwtcwucubcwvcwwcwxcwycwzcwAcwBcwCcwDcwEcwFeIrcwGcumcwHcupcupctgaaaaaaaabeQacwIcvocwJeQbcwKcwLctlcwMcvucwNcwOcvucwPcwQcvxcwNcwRePPaaaaaaeOlcoPcoQcoPcwScoScoTcwTcvAcwUcwVcoTcwWePyePyePyeOlaaaaaacqOaaacsEcsEcsEcsEcsEaabcsFaabcsEcsEcsEcsEcsEaabcqOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/nano/templates/crew_monitor.tmpl b/nano/templates/crew_monitor.tmpl index c2e4199c357..f2d0af04f52 100644 --- a/nano/templates/crew_monitor.tmpl +++ b/nano/templates/crew_monitor.tmpl @@ -8,9 +8,9 @@ Used In File(s): \code\game\machinery\computer\crew.dm {{if value.sensor_type == 1}} {{:value.name}} ({{:value.assignment}}){{:value.dead ? "Deceased" : "Living"}}Not Available {{else value.sensor_type == 2}} - {{:value.name}} ({{:value.assignment}}){{:value.dead ? "Deceased" : "Living"}} ({{:value.oxy}}/{{:value.tox}}/{{:value.fire}}/{{:value.brute}})Not Available + {{:value.name}} ({{:value.assignment}}){{:value.dead ? "Deceased" : "Living"}} ({{:value.oxy}}/{{:value.tox}}/{{:value.fire}}/{{:value.brute}})Not Available {{else value.sensor_type == 3}} - {{:value.name}} ({{:value.assignment}}){{:value.dead ? "Deceased" : "Living"}} ({{:value.oxy}}/{{:value.tox}}/{{:value.fire}}/{{:value.brute}}){{:value.area}}({{:value.x}}, {{:value.y}}) + {{:value.name}} ({{:value.assignment}}){{:value.dead ? "Deceased" : "Living"}} ({{:value.oxy}}/{{:value.tox}}/{{:value.fire}}/{{:value.brute}}){{:value.area}}({{:value.x}}, {{:value.y}}) {{/if}} {{/for}} \ No newline at end of file