From 1a98660522e67110af9b7909dca42d3919ef8155 Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Mon, 22 Aug 2016 21:47:18 -0700 Subject: [PATCH 01/14] Fixes a runtime when an airlock set to `autoclose` is deleted --- code/game/machinery/doors/door.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 18879cfdc9b..2a0de29c9ca 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -270,7 +270,7 @@ /obj/machinery/door/proc/autoclose() var/obj/machinery/door/airlock/A = src - if(!A.density && !A.operating && !A.locked && !A.welded && A.autoclose) + if(!qdeleted(src) && A && !A.density && !A.operating && !A.locked && !A.welded && A.autoclose) close() return @@ -308,4 +308,4 @@ /obj/machinery/door/proc/disable_lockdown() if(!stat) //Opens only powered doors. - open() //Open everything! \ No newline at end of file + open() //Open everything! From ea669191d5a55de92e27e0c58e3ab76a76892366 Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Tue, 23 Aug 2016 02:50:27 -0700 Subject: [PATCH 02/14] Moves airlocks to the `addtimer` system --- code/controllers/Processes/timer.dm | 2 ++ code/game/machinery/doors/airlock.dm | 9 ++++++++- code/game/machinery/doors/door.dm | 21 +++++++++++++-------- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/code/controllers/Processes/timer.dm b/code/controllers/Processes/timer.dm index de68a01ef51..bda5ad5f650 100644 --- a/code/controllers/Processes/timer.dm +++ b/code/controllers/Processes/timer.dm @@ -62,6 +62,8 @@ var/global/datum/controller/process/timer/timer_master event.thingToCall = thingToCall event.procToCall = procToCall event.timeToRun = world.time + wait + // Make the tag portion of the hash be independent + args[1] = "\ref[thingToCall]" event.hash = jointext(args, null) if(args.len > 4) event.argList = args.Copy(5) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 3f21e952a36..4cb724c1a01 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -374,6 +374,13 @@ About the new airlock wires panel: /obj/machinery/door/airlock/bumpopen(mob/living/simple_animal/user as mob) ..(user) + +/obj/machinery/door/airlock/autoclose() + autoclose_timer = 0 + if(!qdeleted(src) && !density && !operating && !locked && !welded && autoclose) + close() + return + /obj/machinery/door/airlock/proc/isElectrified() if(src.electrified_until != 0) return 1 @@ -1088,4 +1095,4 @@ About the new airlock wires panel: unlock() electrified_until = 0 open() - safe = TRUE \ No newline at end of file + safe = TRUE diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 2a0de29c9ca..735ca761a8e 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -18,6 +18,7 @@ var/p_open = 0 var/operating = 0 var/autoclose = 0 + var/autoclose_timer var/glass = 0 var/normalspeed = 1 var/heat_proof = 0 // For glass airlocks/opacity firedoors @@ -58,6 +59,9 @@ air_update_turf(1) update_freelook_sight() airlocks -= src + if(autoclose_timer) + deltimer(autoclose_timer) + autoclose_timer = 0 return ..() /obj/machinery/door/Bumped(atom/AM) @@ -220,12 +224,9 @@ air_update_turf(1) update_freelook_sight() - if(autoclose && normalspeed) - spawn(150) - autoclose() - if(autoclose && !normalspeed) - spawn(5) - autoclose() + // The `addtimer` system has the advantage of being cancelable + if(autoclose) + autoclose_timer = addtimer(src, "autoclose", normalspeed ? 150 : 5, unique = 1) return 1 @@ -236,6 +237,10 @@ return operating = 1 + if(autoclose_timer) + deltimer(autoclose_timer) + autoclose_timer = 0 + do_animate("closing") src.layer = closed_layer sleep(5) @@ -269,8 +274,8 @@ return 1 /obj/machinery/door/proc/autoclose() - var/obj/machinery/door/airlock/A = src - if(!qdeleted(src) && A && !A.density && !A.operating && !A.locked && !A.welded && A.autoclose) + autoclose_timer = 0 + if(!qdeleted(src) && !density && !operating && autoclose) close() return From 7a75910bb02702a6b6c188850a81036762a97d07 Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Tue, 23 Aug 2016 02:50:51 -0700 Subject: [PATCH 03/14] Peoples' limbs are no longer given a wound cleanup timer if they don't need it --- code/modules/surgery/organs/organ_external.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/surgery/organs/organ_external.dm b/code/modules/surgery/organs/organ_external.dm index e2702b36afe..4033379ed64 100644 --- a/code/modules/surgery/organs/organ_external.dm +++ b/code/modules/surgery/organs/organ_external.dm @@ -411,8 +411,8 @@ This function completely restores a damaged organ to perfect condition. last_dam = brute_dam + burn_dam if(germ_level) return 1 - if(!wound_cleanup_timer) - wound_cleanup_timer = addtimer(src, "cleanup_wounds", SecondsToTicks(600), 1, wounds) + if(!wound_cleanup_timer && wounds.len) + wound_cleanup_timer = addtimer(src, "cleanup_wounds", SecondsToTicks(600), unique = 1, wounds) if(update_icon()) owner.UpdateDamageIcon(1) From c059c7646bea4b1d28f166e34edbe5b21e7bb374 Mon Sep 17 00:00:00 2001 From: FreeStylaLT Date: Tue, 23 Aug 2016 16:57:53 +0300 Subject: [PATCH 04/14] fixes --- _maps/map_files/cyberiad/cyberiad.dmm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index fae8995287a..b3e9545c0c7 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -556,7 +556,7 @@ "akJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel,/area/security/range) "akK" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/range) "akL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/closet/crate,/obj/item/target/syndicate,/obj/item/target/syndicate,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/range) -"akM" = (/obj/structure/stool/bed/roller,/obj/machinery/atmospherics/unary/vent_pump,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/security/medbay) +"akM" = (/turf/space,/area/security/securearmoury) "akN" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/medbay) "akO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/medbay) "akP" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 100; on = 1; pressure_checks = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/medbay) @@ -5880,6 +5880,7 @@ "cjd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (SOUTHWEST)"; icon_state = "whiteblue"; dir = 10},/area/medical/medbay2) "cje" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) "cjf" = (/obj/structure/stool/bed/chair/comfy/teal{dir = 4},/obj/machinery/power/apc{dir = 2; name = "Medbay APC"; pixel_y = -24},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-whiteblue"; icon_state = "whiteblue"},/area/medical/medbay2) +"cjg" = (/obj/structure/stool/bed/roller,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/security/medbay) "cjh" = (/obj/structure/stool/bed/chair/comfy/teal{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) "cji" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/hologram/holopad,/obj/machinery/vending/cola,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) "cjj" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay2) @@ -6439,6 +6440,7 @@ "ctR" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_sit) "ctS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/computer/station_alert,/turf/simulated/floor/plasteel,/area/engine/break_room) "ctT" = (/obj/machinery/computer/arcade,/turf/simulated/floor/plasteel,/area/engine/break_room) +"ctU" = (/turf/simulated/wall/r_wall/coated,/area/maintenance/incinerator) "ctV" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/table,/turf/simulated/floor/plasteel,/area/engine/break_room) "ctW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/wall/r_wall,/area/atmos/control) "ctX" = (/obj/machinery/computer/general_air_control{frequency = 1441; name = "Tank Monitor"; sensors = list("n2_sensor" = "Nitrogen", "o2_sensor" = "Oxygen", "co2_sensor" = "Carbon Dioxide", "tox_sensor" = "Toxins", "n2o_sensor" = "Nitrous Oxide", "waste_sensor" = "Gas Mix Tank")},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor/plasteel,/area/atmos/control) @@ -9072,7 +9074,7 @@ bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbi bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbFldiVdiVdiVbFlbikcVGdiZdjbdjadelbikbFldiVdiVdiVbFlbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikacgacgacgacgacgacgachacidqPackaclaiWaalacmbikbikbikbikbikbikaabaabaabdqRabLabLbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdgwdgNdgwdgwdgwdgwdgwdgwdgwdgSdgwdgwdgwdgwdgwdgwdgwdgNdgwbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcVGdiZdjbdjadelbikbikbikbikbikbikbikcVGdiZdjbdjadelbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikacgacnacoacpacqacracsacdaalaalaalaalaalbikbikbikbikbikbikbikbikbikaabactactactacuacvactactactabKabKabKabKabKbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdgHdgNdgTdgTdgTdgTdgTdgTdgmdgUdgmdgTdgTdgTdgTdgTdgTdgNdgJbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikacgacwacxacyaczacAacBacCaalacDacEacEacEacEacEbikbikbikbikbikbikbikbikactacHacIacJacKacLacMactabLabLabLabLabLabKbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdgVdgXdgWdgZanqdhadgmdgSdgwdgSdgwdgSdgmdhcdhbdhedhddgXdhfbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikacgacNacOacPacQacRacSacCaalacEacEacUacTacVacEacEacEbikbikbikbikbikbikactacWacXacYacXacXacZactadaadaadaadaadaadaabLadbbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdgOdgXdgydgydgydhgdgmdgydgydgydgydgydgmdgydgydhhdgydgXdgRbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikacgacNacOacPacQacRacSacCaalacEacEacUacTacVacEacEakMbikbikbikbikbikbikactacWacXacYacXacXacZactadaadaadaadaadaadaabLadbbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdgOdgXdgydgydgydhgdgmdgydgydgydgydgydgmdgydgydhhdgydgXdgRbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikacgacgacgacgacgacgadcaddacEacEadeadgadfadiadhacEacEbikbikbikbikbikbikactadjadkadladmadnadoactadpadqadradsadtaduadvbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdgmdhjdhidhldhkdhmdgmdhndgydgydgydhodgmarWdgydhsdhrdhjdgmbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabaabaabaabaaladBadCacEadEadDadGadFadIadHadJacEbikbikbikbikbikbikactadKadLadMadNacXadOactadPadtadtadtadtaduadvbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdgmdhtdhtdgwdgwdgwdgmdhudgydgydgydhvdgmdgwdgwdgwdhtdhtdgmbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabbikbikbikbikbikaabaalachacdacEadWadVadYadFaeaadZaebacEbikbikbikbikbikaesactaecaedadAaeeacXaefactaeiadtaejadtadtaduadvbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdgLdhwdhwdgFbikbikdgmdhxdgydgydgydhydgmbikbikdgLdhwdhwdgFbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik @@ -9087,7 +9089,7 @@ bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbi bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikacGbikaabbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaeAafAafyaiJamdafAafyaiKaeAamcaabaabaabaabadwagTaiOaigaiwaeEaatakoaiSagvaimaiUaiVdqQaiuaiYaihaijaiiajgajfahYaioaiyaixaiEaiDaiHaiGaiCaiLahAaieaieaieaieaieaieaieaieahAagQagQajjaabagQagQagQagQagQagQagQagQagQagQagQagQagQagQaabaabajkajlajmaabaabagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaVydmddmkdmjdmldmddmddmmdmddmddmnbikbikbikbikbikbikbikbikbikafxaabajnaabafxbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikaeAajoajpajqajrajoajpajqajsajtajtajtajtajtajtajuajuafdaiAagSafHaoIaofajGajGajNahIajEajFajGaiRaiPaiMaiNaipaiTajaajwaixaiEajhajiaiGajMajvajOaieaieaieaieaieaieaieaieahAaabaabaabaabaabaabbikaabbikaabaabaabaabaabaabaabaabbikbikbikajkajPajmbikbikagQbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdmpdmodmrdmqdmtdmsdmsdmsdmvdmudmwbikbikbikacGacGacGafxafxaabaabbikajQbikaabaabafxafxacGacGacGbikbikbikbikbikbikbikbikbikbikbikbikaeAajRajSajTafyajUajVajWakcajubSoclqajcajAajyajDajuahDahCajJajxajLahHajBakjakkaklakmaiFajFaiRakiakaaiRajIaiRahUalhajKakbajYakpakdakzaiCakAaieaieaieaieaieaieaieaieahAaabakBakCakCakCakDakCakCakCakCakDakCakCakCakCakEaabbikbikbikajkajPajmbikbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdmxdmodmzdmydmsdmAdmAdmAdmAdmAdmBbikbikbikacGbikbikaabbikaabbikbikajQbikbikaabbikaabbikbikacGbikbikbikbikbikbikbikbikbikbikbikbikaeAakFafyakGakHakIakJakKakLajuakMakNakOakOakPajZajuaivainaiBaizakrahHakWakXakYakZalaalbajdaknakwakuakqaksaktakTalBakSalcakUalealdaiCalfajOaieaieaieaieaieaieaieaieahAaabaloaabaabaabaloaabbikbikaabaloaabaabbikbikaloaabbikaabaabajkajPajmbikbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdmxdmodmzdmydmsdmAdmAdmAdmAdmAdmBbikbikbikacGbikbikaabbikaabbikbikajQbikbikaabbikaabbikbikacGbikbikbikbikbikbikbikbikbikbikbikbikaeAakFafyakGakHakIakJakKakLajucjgakNakOakOakPajZajuaivainaiBaizakrahHakWakXakYakZalaalbajdaknakwakuakqaksaktakTalBakSalcakUalealdaiCalfajOaieaieaieaieaieaieaieaieahAaabaloaabaabaabaloaabbikbikaabaloaabaabbikbikaloaabbikaabaabajkajPajmbikbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdmCdmodmEdmDdmAdmAdmAdmAdmGdmFdmwbikbikbikacGaabalpalpalpalpalpbikalqbikalpalpalpalpalpaabacGbikbikbikbikbikbikbikbikbikbikbikbikaeAalralsakGafyaltakJalualvajualwalxalyalzakQakxajuampaiQakRaiZalEajzajBalFalGaklalHalIajFaliahPaljaljallalCalgalJajXakfakealMakeakhakgahAahAahAahAahAahAahAahAahAahAaabaloaabbikajkajlajmbikbikajkajlajmbikbikajkajlajmaabaabbikajkajPajmbikbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaXhdmddmddmddmldmddmddmmdmddmddmIbikbikbikacGbikalSalTalTalTalTalUalValWalXalXalXalXalYbikacGbikbikbikamaalZaowanxambbikbikbikamcaeAamdamdamdamdamealKamgamdajuamfamiamjamkamhamlajualNajHammalQamnakvajGamsamtaXNamvaYjajGamXamDamqanlamYdoHaocaoNdoIasvaiCateauydoNalkahAamKamKamKamKamKbikbikbikbikaabaloaabbikajkajPajmbikbikajkajPajmbikbikajkajPajmbikbikbikajkajPajmbikbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikacGaabamLamLamLamLamLbikamMbikamLamLamLamLamLaabacGbikbikbikamOamNamQamPamOamRamSamSamTamUamVamWalnakVamZanaanbancajuajuandaneajuajualmajualAalAaufalAauLalDajGajBajCanjajEajFajGdoOatgdoPaiRaiRaiRahUahUannalLdoSalOahUahAalPahAanrantansansanubikbikbikbikbikaloaabbikajkajPajmbikbikajkajPajmbikbikajkajPajmbikbikbikajkajPajmbikbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik @@ -9172,7 +9174,7 @@ bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbi bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcnHcnIcnJcnKcnJcnLcnMcnNcnOcnPcnQcjKdnobUTbUTdnJcjMcjMcjMcjMcjMcjMcjMdnKdntdnCdnCdnCdnCdnLdnCdnCdntcnRcelcjMbikclkcnScnTcnUcnVcjScnWcnXcnYcnZciLcltcgdcbkchqcodcoccodciPciPciPckJcofclAclAcogcohceCbGycoicklcoocokcolcomcomcoqcojcnhcomcomcopclHcrCcklcrNcfdcupcxVcxVcxUcxVcxVcxNcEickDcowcoxcoyckDcozcuscoicoAcoAcoAcoAcoAcoDcoDcoDcoAcoAbikbikbikbikckPctdcoFckKcnCcoHcoIcoJcoKcoLcoMcoNcoOcoPcoQcoRcoScoTcoUcnCcuncoWcvtcoYcoZcoZcoZcoZcoZcoZcoZcoZcoZcoZcoZcoZcoZcoZcoZcoZcoZcoZcpacpbbWhbZubWhbXZbXZbXZbXZbXZbXZbXZbWhbWhaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcnHcpccpdcpecpfcmBcpgcphcpicmBcpjcpkdnMchobUTcqscjMbikbikbikbikbikcjMcqsdnldnAdnOdnCdnCdnCdnCdnPdnNcplcpmcjMbikcpncjOcpocjQcppcjScjScpqcprcpscptcpucpvcwqchqcodcpycpzcpAcpBcpCceDcpDclAclAclAcpEceCbGybGycpFcpFcpGcpHcpIcpIcrDcyFcrEcpJcpJcpKcpFcpGcpFcqQcfdcrLdbAbjVcEYdbndbmcxNclRckDcoucpNcovckDbGycuscoAcoAaabaabbikbikbikbikbikbikbikbikbikbikbikcpRcpScpTcpUcpVcpWcpXcpXcpYcpXcpXcpXcpXcpXcpZcqacqbcqccqdbwocvvbXSbwobwoaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbWhcqhcqicqjbWhbWhbXZbXZcqkbXZbXZbWhbWhaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcnHcqlcnJcqmcnJcqncqocqpcqqcnNcqrcjKdoAcwNbUTcfQcejbikbikbikbikbikcejdnRdntdnSdnSdnAdnUdnTdnCdnVdntcqscelcejbikbikbikbikciEcqtcqucqvcqvciLcqwciLcqxcgdcbkcqyckQcqAcqBcqCcqCcqCcqDcqEclAcqFclAcqGceCbGybGycpFcqHcrFcqJcqKcqLcsPcpFcsUcqMcqKcqNcsVcqPcpFczecyWczgdbAdbpdbodbrdbqdbsctcckDcpOcpPcpQckDbGycuscoAcvyaabaabaabbikbikbikbikbikbikbikbikbikbikcpRcqUcqVcqWcqXcqYcqZcracrbcpXcpXcrccpXcpXcpZcqbcqbcqbcrdbwocvzbxXbwoaabaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbWfcrhcribZvbWgbWhbWhbXZbYabXZbWhbWhaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcjKcjKcjKcjKcjKcjKdnWcrjcrjcrjcrjcrjdnQcwUcwUcwUcrjcrjcrjcrjcrjcrjcrjcwUcwUcwUdntdntdntdntdntdntdntcekcrlcrmcrmcrmcrmcrmciEciLciLciLciLciLciLciLcrncgdcbkcroclZcrqcrrcrscrtcrucmpcrwcrxcrycrzcrAceCbGybGycpFcuicsYcvocujcujcvpcpFcwicujcujcwjcujcwkcpMbGwbGwbGwcEjdbudbtdbvdbmdbxctcdbydbydbycoAcoAbGycuscoDcwpbikaabaabaabbikbikbikbikbikbikbikbikbikcpRczNczPcoBcrOcrPcrQcrRcrScpXcpXcpXcpXcrTcrUcrVcrWcrXcrYbwocvzbxXbwobikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbWfbWfbWfbWfbWgbWgbWhbWhbWhbWhbWiaabaabbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikctUctUctUctUctUcjKdnWcrjcrjcrjcrjcrjdnQcwUcwUcwUcrjcrjcrjcrjcrjcrjcrjcwUcwUcwUdntdntdntdntdntdntdntcekcrlcrmcrmcrmcrmcrmciEciLciLciLciLciLciLciLcrncgdcbkcroclZcrqcrrcrscrtcrucmpcrwcrxcrycrzcrAceCbGybGycpFcuicsYcvocujcujcvpcpFcwicujcujcwjcujcwkcpMbGwbGwbGwcEjdbudbtdbvdbmdbxctcdbydbydbycoAcoAbGycuscoDcwpbikaabaabaabbikbikbikbikbikbikbikbikbikcpRczNczPcoBcrOcrPcrQcrRcrScpXcpXcpXcpXcrTcrUcrVcrWcrXcrYbwocvzbxXbwobikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbWfbWfbWfbWfbWgbWgbWhbWhbWhbWhbWiaabaabbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikaSecsdctvdnZctvdoBcsdcsecsfcsgcsgcshcsicspcskcslcsmcsncsocsrcsqcsqcsscsqcstctzctzctAcsvcswcsxcsycsxcsxcsxcswcsxcsxcszcsAcsBcsCcgdcbkcsDcmQcsFcnBcodcoeckIcoEcorcsKcsLcsMcsNcsObGybGycpFcwlcsQcsRcsScsTcwmcpFdehcsTcsWcsXdlFdqVcwrbikbikbikcEjdbAdbzdbAdbAdbCdbBdbEdbDcoGcwFbVibGycuscoDcwpbikbikaabaabaabbikbikbikbikbikbikbikbikctdckPcxGckSctdctfctgcthctictjctkctlcpXcpXctmctnctoctpctqbwocvzbxXcxHbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikaabaabaabaabbikbikbikbikaabaabaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaSecsdctvctvctvdoBcsdctuctvctwctvctxctyctDctCdmedcYdmedmfcxnctEctFctEctEctGcblcblctEctHctEctEctEctEctEctEctEctEctEctEctIctJctKctLctMctNcqzctPctQcyqctSctTbEbctVctWctXciFctZcuacnqcubcuccudcuecufcugcuhdqWcpFdqXcqKcugcukcqKculcwrbikbikbikdbFcmkdbGdbJdbIdbCdbKdbMdbLcrpdbNceFceJdbPcoDcwpbikbikbikaabaabaabbikbikbikbikbikbikbikckPcurczQcutckPcnCcnCcnCcnCcnCcnCcuuctlcuvcuwcuxcuycnCcnCbwocvzbxXcxHbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaSedobctvdocctvdoBcuBdodcuCcuDcuEcuFcuGcuHcuIcuJcuKcuLcuMcuNcuOcuPcuQdoeceAcuSceAcuNcuTcuNcuNcuNcuNcuNcuNcuNcuNcuNcuNcuUctEcuVcuWcuXcuYcuZcvacvbcvccvdcvecvfcvgcvhcvicvjcvkcsLceJcvlcvmcvncqKcqJcqKcqKdqYcpFdqZcqKcqKcqNcqKcyGcwrbikbikbikdbFdbRdbQdbTdbSdbVdbUdbXdbWcoGbGychCcyHcuscoAbikbikbikbikbikaabckPckPckPckPckPckPckPckPckPcvucxScvwcwAcxOcxOcyIckPaabcnCcnCcvAcnCcvBcvCcvDcnCcyKcyJcvzbxXcxHbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik From de6b37942ee598c411e74d89a4226f95d8c30715 Mon Sep 17 00:00:00 2001 From: FreeStylaLT Date: Tue, 23 Aug 2016 18:44:15 +0300 Subject: [PATCH 05/14] adds shielding to turbine --- _maps/map_files/cyberiad/cyberiad.dmm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index b3e9545c0c7..4aec305efd4 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -8118,7 +8118,6 @@ "daf" = (/obj/structure/disposalpipe/segment,/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "dag" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "dah" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/visible/purple,/turf/simulated/floor/plating,/area/maintenance/turbine) -"dai" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/wall/r_wall,/area/maintenance/turbine) "daj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/glass{autoclose = 0; frequency = 1449; heat_proof = 1; icon_state = "door_locked"; id_tag = "gas_turbine_interior"; locked = 1; name = "Turbine Interior Airlock"; req_access_txt = "32"},/turf/simulated/floor/engine,/area/maintenance/turbine) "dak" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/simulated/floor/plating,/area/maintenance/asmaint) "dal" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-y"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/asmaint) @@ -9208,8 +9207,8 @@ bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbi bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcMucTccSMcPacPacOjcMucTdcSEcTebikddfddgbikbikbikbikbikdlmbikbikbikdlodlnbikcSEcSEcTdcECcMHcECcCKcTgcEVcTgcCKcTgcEVcTgcCKcThcEVcTicCKaabcUkbikacGaabaabcYhcZscZucZtcZvcZhcZxcZwcZycYPcZAcZzcGvcdcbGycZBcQmbVicoAbikbikbikbikbikaabbikbikbikbikbikbikbikbikbikbwocZCczfcyJcZDbxXcyJbikbikbikbikcyJbxXbxXcNRcqecqecqfcqgcqebikaabaabaabaabcZEaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcMucTjcOZcPacPacTkcMucTlcTmcSEbikddcaacbikbikaabaabaabaabaabbikbikaacddcbikcSEcTncTocECcTpcECcCKcTqcTrcTscCKcTtcTucTvcCKcTwcTxcTycCKaabcUkbikacGbikaabcZGcZFcZucZHcZJcZIcZLcZKcYicZMcQmbVicQmcZNbVicZOcQmcozcoAcoDcoDcoDazybikaabbikbikbikbikbikbikbikbikbikbwocZPcyJcyJcHxbxXcyJcyJcxHcxHcyJcyJbxXcZQczfcqecQDcrfcrgcqebikbikaabaabbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaaccMucMucMucMucMucMucMucECcSDcSEbikddcaaccSQaabaabdlqdlpdlraabcTzbikaacddcbikcSEcSDcECcECcMHcECcCKcTAcTBcTAcCKcTCcTDcTCcCKcTEcTFcTEcCKaabcUkbikacGbikbikcYhcZRcZTcZScZucZUcZWcZVcYicZXcZZcZYdaacAhbGycGvcGvdabdaddacbGydaeazybikaabbikcxHcxHcxHbwobwobwobwobwobwodafcyKcyJdagbxXbxXcyJbxXbxXbxXbxXcYqbxXcPAcqecrZcsacsbcqeaabbikbikbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaacaabaacaacaabaabaabacGacGcECcECcTGcSEbikddfddgbikbikaabdlscTHdltaabbikbikdlodlnbikcSEcTJcECcECcMHcECcCKcTAcTKcTAcCKcTCcTLcTCcCKcTEcTMcTEcCKaabcUkbikacGbikbikcYhcYhcYhdahcYhdaidajdaicYicZXdakbGycGzdalcFicHrcGvdamcoAcoDcoDcoDdanaabaabbikcxHdaodapcyJbxXdaqdarcNRcyJdasbxXcyJdatbxXbxXdaubxXbwobwobwocxHcxHbwocqectrctscttcqeaabbikaabbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabbikaabaabbikbikaabaabacGcECcECcSDcSEbikddcaacbikcTNaabdlvdludlwaabaabcSQaacddcbikcSEcSDcECcECcMHcECcCKcCKcCKcCKcCKcCKcCKcCKcCKcCKcCKcCKcCKaabcUkbikaqZbikbikbikbikbikdavcYhdawdaydaxcYibGydazbGybGydaAdaBcGqdaDdaCcoAbikbikbikbikbikaabbikcxHdaEdaFdaubxXcQobxXbxXdaucZobxXcyJcyJcyJcyJcyJbxXbwoaabbikbikbikaabcuzcuzcuAcuzcuzaabaabczraabaabcZEaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaacaabaacaacaabaabaabacGacGcECcECcTGcSEbikddfddgbikbikaabdlscTHdltaabbikbikdlodlnbikcSEcTJcECcECcMHcECcCKcTAcTKcTAcCKcTCcTLcTCcCKcTEcTMcTEcCKaabcUkbikacGbikbikcYhcYhcYhdahcrBcrkdajcrkcrBcZXdakbGycGzdalcFicHrcGvdamcoAcoDcoDcoDdanaabaabbikcxHdaodapcyJbxXdaqdarcNRcyJdasbxXcyJdatbxXbxXdaubxXbwobwobwocxHcxHbwocqectrctscttcqeaabbikaabbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabbikaabaabbikbikaabaabacGcECcECcSDcSEbikddcaacbikcTNaabdlvdludlwaabaabcSQaacddcbikcSEcSDcECcECcMHcECcCKcCKcCKcCKcCKcCKcCKcCKcCKcCKcCKcCKcCKaabcUkbikaqZbikbikbikbikbikdavcrBdawdaydaxcrBbGydazbGybGydaAdaBcGqdaDdaCcoAbikbikbikbikbikaabbikcxHdaEdaFdaubxXcQobxXbxXdaucZobxXcyJcyJcyJcyJcyJbxXbwoaabbikbikbikaabcuzcuzcuAcuzcuzaabaabczraabaabcZEaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabcECcTncTocSEbikddcaacbikbikaabaabaabaabaabbikbikaacddcbikcSEcTlcTmcECcUscECcECcECcECcUvcTScTScTScTScTScTScTScTScTScTScUwbikacGaabaabaabaabaabdaGcrBcrkdaHcrkcrBcoAdaIcFicFidaJdaLdaKcoAcoAcoAbikbikbikbikbikaabbikcxHdaodaMcyJcNRbxXbxXdaNcyJdaObxXbxXbxXbxXbxXbxXbxXbwoaabbikbikbikaabbikcuzcvEcuzbikaabbikaabbikbikaabbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikaabcECcTdcSEcTPbikddfddgbikbikbikaabbikbikbikbikbikdlodlnbikcSEcSEcTdcECddhddjddicMHddkcUwbikbikbikbikbikbikbikbikbikbikbikbikacGaabaabaabaabaabdaGcrBdaPdaRdaQdaSaabcoAcoAcoDdaTcoDcoAcoAbikaabbikbikbikbikbikaabaabcxHcxHcxHbwobwobwobxXcyJbwodaUbwobwocNRbFeczfbzNczMbwoaabbikbikbikaabbikcuzcwMcuzbikaabbikaabbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabcECcTXcTYdddaabddcaaccSQbikbikcSQbikbikbikbikcSQaacddcbikddecUacUbcECddlcECcECcECcECcECcECacGacGacGaqZacGacGacGacGacGacGacGacGaahbikbikbikbikdaGcrBcrBdaVcrBcrBbikaabbikbikdaWbikbikbikbikbikbikbikbikbikbikbikaabaabbikbikbikbikbwodaFdaXbwocGxaabbwobwocxHcxHczMbwobikaabbikbikbikaabbikbikcxZbikbikaabbikaabbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik From d3c5c6dbbbc1cba5d005d887ec7cb216a80f86c9 Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Tue, 23 Aug 2016 13:44:06 -0700 Subject: [PATCH 06/14] Adds the name back to the hash --- code/controllers/Processes/timer.dm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/code/controllers/Processes/timer.dm b/code/controllers/Processes/timer.dm index bda5ad5f650..711412608ba 100644 --- a/code/controllers/Processes/timer.dm +++ b/code/controllers/Processes/timer.dm @@ -62,9 +62,10 @@ var/global/datum/controller/process/timer/timer_master event.thingToCall = thingToCall event.procToCall = procToCall event.timeToRun = world.time + wait - // Make the tag portion of the hash be independent - args[1] = "\ref[thingToCall]" - event.hash = jointext(args, null) + var/hashlist = args.Copy() + + hashlist[1] = "[thingToCall](\ref[thingToCall])" + event.hash = jointext(hashlist, null) if(args.len > 4) event.argList = args.Copy(5) From ed850342e7722b13229d97ed0b8adeff5364a352 Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Tue, 23 Aug 2016 16:22:00 -0700 Subject: [PATCH 07/14] timeofdeath is now set and used consistently --- code/game/gamemodes/changeling/powers/fakedeath.dm | 4 ++-- code/modules/mob/living/carbon/alien/death.dm | 4 ++-- code/modules/mob/living/carbon/alien/larva/death.dm | 4 ++-- code/modules/mob/living/carbon/brain/death.dm | 6 +++--- code/modules/mob/living/carbon/human/death.dm | 4 ++-- code/modules/mob/living/silicon/ai/death.dm | 4 ++-- code/modules/mob/living/silicon/robot/component.dm | 2 +- code/modules/mob/living/silicon/robot/death.dm | 6 +++--- code/modules/pda/utilities.dm | 4 ++-- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/code/game/gamemodes/changeling/powers/fakedeath.dm b/code/game/gamemodes/changeling/powers/fakedeath.dm index 03ea7d14894..dc7454ff7eb 100644 --- a/code/game/gamemodes/changeling/powers/fakedeath.dm +++ b/code/game/gamemodes/changeling/powers/fakedeath.dm @@ -18,7 +18,7 @@ if(user.stat != DEAD) user.emote("deathgasp") - user.timeofdeath = worldtime2text() + user.timeofdeath = world.time spawn(800) if(user && user.mind && user.mind.changeling && user.mind.changeling.purchasedpowers) @@ -33,4 +33,4 @@ return if(!user.stat && alert("Are we sure we wish to fake our death?",,"Yes","No") == "No")//Confirmation for living changelings if they want to fake their death return - return ..() \ No newline at end of file + return ..() diff --git a/code/modules/mob/living/carbon/alien/death.dm b/code/modules/mob/living/carbon/alien/death.dm index de954cb3c75..645259b1fda 100644 --- a/code/modules/mob/living/carbon/alien/death.dm +++ b/code/modules/mob/living/carbon/alien/death.dm @@ -54,7 +54,7 @@ update_canmove() update_icons() - timeofdeath = worldtime2text() - if(mind) mind.store_memory("Time of death: [timeofdeath]", 0) + timeofdeath = world.time + if(mind) mind.store_memory("Time of death: [worldtime2text(timeofdeath)]", 0) return ..(gibbed) diff --git a/code/modules/mob/living/carbon/alien/larva/death.dm b/code/modules/mob/living/carbon/alien/larva/death.dm index 03eeeaa5c81..6db93c4ddd2 100644 --- a/code/modules/mob/living/carbon/alien/larva/death.dm +++ b/code/modules/mob/living/carbon/alien/larva/death.dm @@ -8,8 +8,8 @@ visible_message("[src] lets out a waning high-pitched cry.") update_canmove() - timeofdeath = worldtime2text() - if(mind) mind.store_memory("Time of death: [timeofdeath]", 0) + timeofdeath = world.time + if(mind) mind.store_memory("Time of death: [worldtime2text(timeofdeath)]", 0) living_mob_list -= src return ..(gibbed) diff --git a/code/modules/mob/living/carbon/brain/death.dm b/code/modules/mob/living/carbon/brain/death.dm index 9e6a1d08a42..255f3c03897 100644 --- a/code/modules/mob/living/carbon/brain/death.dm +++ b/code/modules/mob/living/carbon/brain/death.dm @@ -10,8 +10,8 @@ see_in_dark = 8 see_invisible = SEE_INVISIBLE_LEVEL_TWO - timeofdeath = worldtime2text() - if(mind) mind.store_memory("Time of death: [timeofdeath]", 0) //mind. ? + timeofdeath = world.time + if(mind) mind.store_memory("Time of death: [worldtime2text(timeofdeath)]", 0) //mind. ? return ..(gibbed) @@ -39,4 +39,4 @@ qdel(loc)//Gets rid of the brain item spawn(15) if(animation) qdel(animation) - if(src) qdel(src) \ No newline at end of file + if(src) qdel(src) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 384f581cce3..c1d8ec9a187 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -128,10 +128,10 @@ if(!gibbed) update_canmove() - timeofdeath = worldtime2text() + timeofdeath = world.time med_hud_set_health() med_hud_set_status() - if(mind) mind.store_memory("Time of death: [timeofdeath]", 0) + if(mind) mind.store_memory("Time of death: [worldtime2text(timeofdeath)]", 0) if(ticker && ticker.mode) // log_to_dd("k") sql_report_death(src) diff --git a/code/modules/mob/living/silicon/ai/death.dm b/code/modules/mob/living/silicon/ai/death.dm index 4d2cb361b41..1c977296a8a 100644 --- a/code/modules/mob/living/silicon/ai/death.dm +++ b/code/modules/mob/living/silicon/ai/death.dm @@ -39,7 +39,7 @@ if(istype(loc, /obj/item/device/aicard)) loc.icon_state = "aicard-404" - timeofdeath = worldtime2text() - if(mind) mind.store_memory("Time of death: [timeofdeath]", 0) + timeofdeath = world.time + if(mind) mind.store_memory("Time of death: [worldtime2text(timeofdeath)]", 0) return ..(gibbed) diff --git a/code/modules/mob/living/silicon/robot/component.dm b/code/modules/mob/living/silicon/robot/component.dm index f51325f546b..6943105132b 100644 --- a/code/modules/mob/living/silicon/robot/component.dm +++ b/code/modules/mob/living/silicon/robot/component.dm @@ -204,7 +204,7 @@ to_chat(user, "\t Key: Electronics/Brute") to_chat(user, "\t Damage Specifics: [BU] - [BR]") if(M.timeofdeath && M.stat == DEAD) - to_chat(user, "Time of Disable: [M.timeofdeath]") + to_chat(user, "Time of Disable: [worldtime2text(M.timeofdeath)]") var/mob/living/silicon/robot/H = M var/list/damaged = H.get_damaged_components(1,1,1) to_chat(user, "Localized Damage:") diff --git a/code/modules/mob/living/silicon/robot/death.dm b/code/modules/mob/living/silicon/robot/death.dm index b0dc5062a95..4b7d0a04a27 100644 --- a/code/modules/mob/living/silicon/robot/death.dm +++ b/code/modules/mob/living/silicon/robot/death.dm @@ -63,9 +63,9 @@ see_in_dark = 8 see_invisible = SEE_INVISIBLE_LEVEL_TWO update_icons() - timeofdeath = worldtime2text() - if(mind) mind.store_memory("Time of death: [timeofdeath]", 0) + timeofdeath = world.time + if(mind) mind.store_memory("Time of death: [worldtime2text(timeofdeath)]", 0) sql_report_cyborg_death(src) - return ..(gibbed) \ No newline at end of file + return ..(gibbed) diff --git a/code/modules/pda/utilities.dm b/code/modules/pda/utilities.dm index 837d0c439f5..7b168507317 100644 --- a/code/modules/pda/utilities.dm +++ b/code/modules/pda/utilities.dm @@ -49,7 +49,7 @@ user.show_message("\t Key: Suffocation/Toxin/Burns/Brute", 1) user.show_message("\t Body Temperature: [C.bodytemperature-T0C]°C ([C.bodytemperature*1.8-459.67]°F)", 1) if(C.timeofdeath && (C.stat == DEAD || (C.status_flags & FAKEDEATH))) - user.show_message("\t Time of Death: [C.timeofdeath]") + user.show_message("\t Time of Death: [worldtime2text(C.timeofdeath)]") if(istype(C, /mob/living/carbon/human)) var/mob/living/carbon/human/H = C var/list/damaged = H.get_damaged_organs(1,1) @@ -162,7 +162,7 @@ // JMO 20140705: Makes scanned document show up properly in the notes. Not pretty for formatted documents, // as this will clobber the HTML, but at least it lets you scan a document. You can restore the original // notes by editing the note again. (Was going to allow you to edit, but scanned documents are too long.) - var/raw_scan = sanitize_simple(P.info, list("\t" = "", "ÿ" = "")) + var/raw_scan = sanitize_simple(P.info, list("\t" = "", "�" = "")) var/formatted_scan = "" // Scrub out the tags (replacing a few formatting ones along the way) // Find the beginning and end of the first tag. From 4e4215391a44d3b4f13fcc62a86c5d335bb25425 Mon Sep 17 00:00:00 2001 From: Crazylemon64 Date: Wed, 24 Aug 2016 10:25:56 -0700 Subject: [PATCH 08/14] D: --- code/modules/pda/utilities.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/pda/utilities.dm b/code/modules/pda/utilities.dm index 7b168507317..558af083eb8 100644 --- a/code/modules/pda/utilities.dm +++ b/code/modules/pda/utilities.dm @@ -162,7 +162,7 @@ // JMO 20140705: Makes scanned document show up properly in the notes. Not pretty for formatted documents, // as this will clobber the HTML, but at least it lets you scan a document. You can restore the original // notes by editing the note again. (Was going to allow you to edit, but scanned documents are too long.) - var/raw_scan = sanitize_simple(P.info, list("\t" = "", "�" = "")) + var/raw_scan = sanitize_simple(P.info, list("\t" = "", "ÿ" = "")) var/formatted_scan = "" // Scrub out the tags (replacing a few formatting ones along the way) // Find the beginning and end of the first tag. From 6e1a913d4f3a1af5da38cf3828dd6bf29becd1c9 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Wed, 24 Aug 2016 20:59:30 -0400 Subject: [PATCH 09/14] Automatic changelog generation for PR #5530 --- html/changelogs/AutoChangeLog-pr-5530.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5530.yml diff --git a/html/changelogs/AutoChangeLog-pr-5530.yml b/html/changelogs/AutoChangeLog-pr-5530.yml new file mode 100644 index 00000000000..1288b54c3dc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5530.yml @@ -0,0 +1,6 @@ +author: FreeStylaLT +delete-after: True +changes: + - rscadd: "Added additional coating to Turbine room." + - bugfix: "Fixed leftover vent in Brig Physician's office" + - bugfix: "Fixed missing coated rwalls in Incinerator" From 04e9bb6814cd7e8f4f31c3b0c1b1703ff9aaacfd Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Thu, 25 Aug 2016 01:41:01 -0400 Subject: [PATCH 10/14] Simple Animals Resting Refactor --- code/modules/mob/living/simple_animal/bot/bot.dm | 1 + code/modules/mob/living/simple_animal/simple_animal.dm | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index 3cc10b39d42..359df7e14b7 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -853,6 +853,7 @@ Pass a positive integer as an argument to override a bot's default speed. update_controls() /mob/living/simple_animal/bot/handle_state_icons() + return /mob/living/simple_animal/bot/proc/update_icon() icon_state = "[initial(icon_state)][on]" diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 816ec1979a9..4c36c091e50 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -122,15 +122,15 @@ if(1 to 5) healths.icon_state = "health6" if(0) healths.icon_state = "health7" -/mob/living/simple_animal/Life() - . = ..() - handle_state_icons() - /mob/living/simple_animal/proc/process_ai() handle_automated_movement() handle_automated_action() handle_automated_speech() +/mob/living/simple_animal/lay_down() + ..() + handle_state_icons() + /mob/living/simple_animal/proc/handle_state_icons() if(resting && icon_resting && stat != DEAD) icon_state = icon_resting From 9bba0a7342cd4df83647dd4a9a2f260639a2a5fd Mon Sep 17 00:00:00 2001 From: Krausus Date: Thu, 25 Aug 2016 04:24:27 -0400 Subject: [PATCH 11/14] Changeling Swap Form-related fixes --- code/datums/mind.dm | 4 +-- code/game/gamemodes/changeling/changeling.dm | 30 +++++++++++++++---- .../gamemodes/changeling/changeling_power.dm | 6 ---- .../gamemodes/changeling/evolution_menu.dm | 1 + .../gamemodes/changeling/powers/absorb.dm | 5 ++-- .../gamemodes/changeling/powers/hivemind.dm | 4 +-- .../gamemodes/changeling/powers/swap_form.dm | 8 +++-- code/modules/mob/login.dm | 15 +++++----- 8 files changed, 44 insertions(+), 29 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 7c9d7f4a85c..e85b3f9290f 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -79,17 +79,17 @@ var/mob/living/carbon/human/zealot_master = null /datum/mind/proc/transfer_to(mob/living/new_character) + var/datum/atom_hud/antag/hud_to_transfer = antag_hud //we need this because leave_hud() will clear this list if(!istype(new_character)) log_to_dd("## DEBUG: transfer_to(): Some idiot has tried to transfer_to() a non mob/living mob. Please inform Carn") if(current) //remove ourself from our old body's mind variable current.mind = null + leave_all_huds() //leave all the huds in the old body, so it won't get huds if somebody else enters it nanomanager.user_transferred(current, new_character) if(new_character.mind) //remove any mind currently in our new body's mind variable new_character.mind.current = null - var/datum/atom_hud/antag/hud_to_transfer = antag_hud//we need this because leave_hud() will clear this list - leave_all_huds() //leave all the huds in the old body, so it won't get huds if somebody else enters it current = new_character //link ourself to our new body new_character.mind = src //and link our new body to ourself transfer_antag_huds(hud_to_transfer) //inherit the antag HUD diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index d812296b916..9fb2402f889 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -224,7 +224,7 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" var/list/absorbed_dna = list() var/list/absorbed_languages = list() var/list/protected_dna = list() //DNA that is not lost when capacity is otherwise full. - var/dna_max = 4 //How many extra DNA strands the changeling can store for transformation. + var/dna_max = 5 //How many total DNA strands the changeling can store for transformation. var/absorbedcount = 1 //Would require at least 1 sample to take on the form of a human var/chem_charges = 20 var/chem_recharge_rate = 0.5 @@ -253,7 +253,6 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" changelingID = "[honorific] [changelingID]" else changelingID = "[honorific] [rand(1,999)]" - absorbed_dna.len = dna_max /datum/changeling/proc/regenerate() chem_charges = min(max(0, chem_charges + chem_recharge_rate - chem_recharge_slowdown), chem_storage) @@ -265,14 +264,35 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" if(dna_owner == DNA.real_name) return DNA -/datum/changeling/proc/has_dna(var/datum/dna/tDNA) +/datum/changeling/proc/find_dna(var/datum/dna/tDNA) for(var/datum/dna/D in (absorbed_dna + protected_dna)) if(tDNA.unique_enzymes == D.unique_enzymes && tDNA.uni_identity == D.uni_identity && tDNA.species == D.species) - return 1 + return D + return null + +/datum/changeling/proc/has_dna(var/datum/dna/tDNA) + if(find_dna(tDNA)) + return 1 return 0 +// A changeling's DNA is "stale" if their current form's DNA is the oldest DNA in a full list +/datum/changeling/proc/using_stale_dna(var/mob/living/carbon/user) + var/current_dna = find_dna(user.dna) + if(absorbed_dna.len < dna_max) + return 0 // Still more room for DNA + if(!current_dna || !(current_dna in absorbed_dna)) + return 1 // Oops, our current DNA was somehow not absorbed; force a transformation + if(absorbed_dna[1] == current_dna) + return 1 // Oldest DNA is the current DNA + return 0 + +/datum/changeling/proc/trim_dna() + absorbed_dna -= null + if(absorbed_dna.len > dna_max) + absorbed_dna.Cut(1, (absorbed_dna.len - dna_max) + 1) + /datum/changeling/proc/can_absorb_dna(var/mob/living/carbon/user, var/mob/living/carbon/target) - if(absorbed_dna[1] == user.dna)//If our current DNA is the stalest, we gotta ditch it. + if(using_stale_dna(user))//If our current DNA is the stalest, we gotta ditch it. to_chat(user, "We have reached our capacity to store genetic information! We must transform before absorbing more.") return diff --git a/code/game/gamemodes/changeling/changeling_power.dm b/code/game/gamemodes/changeling/changeling_power.dm index 8e8e824d85e..6d03a864692 100644 --- a/code/game/gamemodes/changeling/changeling_power.dm +++ b/code/game/gamemodes/changeling/changeling_power.dm @@ -73,12 +73,6 @@ return 0 return 1 -/obj/effect/proc_holder/changeling/proc/transfer_changeling_powers(var/mob/living/carbon/user, var/mob/living/carbon/target) - if(istype(target, /mob/living/carbon)) // so we don't runtime, I don't even know why it's necessary as it needs a grab - var/datum/changeling/c = user.mind.changeling - var/datum/changeling/t = target.mind.changeling - c.purchasedpowers = t.purchasedpowers - //used in /mob/Stat() /obj/effect/proc_holder/changeling/proc/can_be_used_by(var/mob/user) if(!ishuman(user)) diff --git a/code/game/gamemodes/changeling/evolution_menu.dm b/code/game/gamemodes/changeling/evolution_menu.dm index 7efcb3f09a1..43f08584823 100644 --- a/code/game/gamemodes/changeling/evolution_menu.dm +++ b/code/game/gamemodes/changeling/evolution_menu.dm @@ -376,6 +376,7 @@ var/list/sting_paths var/mob/living/carbon/C = src //only carbons have dna now, so we have to typecaste mind.changeling.absorbed_dna |= C.dna + mind.changeling.trim_dna() return 1 //Used to dump the languages from the changeling datum into the actual mob. diff --git a/code/game/gamemodes/changeling/powers/absorb.dm b/code/game/gamemodes/changeling/powers/absorb.dm index 6dbcc48dc2f..3800597709a 100644 --- a/code/game/gamemodes/changeling/powers/absorb.dm +++ b/code/game/gamemodes/changeling/powers/absorb.dm @@ -86,8 +86,6 @@ //Absorbs the target DNA. /datum/changeling/proc/absorb_dna(mob/living/carbon/T, var/mob/user) - if(absorbed_dna.len) - absorbed_dna.Cut(1,2) T.dna.real_name = T.real_name //Set this again, just to be sure that it's properly set. var/datum/dna/new_dna = T.dna.Clone() //Steal all of their languages! @@ -104,4 +102,5 @@ if(E.target_real_name == new_dna.real_name) protected_dna |= new_dna return - absorbed_dna |= new_dna \ No newline at end of file + absorbed_dna |= new_dna + trim_dna() diff --git a/code/game/gamemodes/changeling/powers/hivemind.dm b/code/game/gamemodes/changeling/powers/hivemind.dm index 1032f84635f..0976f0da36d 100644 --- a/code/game/gamemodes/changeling/powers/hivemind.dm +++ b/code/game/gamemodes/changeling/powers/hivemind.dm @@ -62,7 +62,7 @@ var/list/datum/dna/hivemind_bank = list() if(!..()) return var/datum/changeling/changeling = user.mind.changeling - if(changeling.absorbed_dna[1] == user.dna)//If our current DNA is the stalest, we gotta ditch it. + if(changeling.using_stale_dna(user))//If our current DNA is the stalest, we gotta ditch it. to_chat(user, "We have reached our capacity to store genetic information! We must transform before absorbing more.") return return 1 @@ -84,8 +84,6 @@ var/list/datum/dna/hivemind_bank = list() if(!chosen_dna) return - if(changeling.absorbed_dna.len) - changeling.absorbed_dna.Cut(1,2) changeling.store_dna(chosen_dna, user) to_chat(user, "We absorb the DNA of [S] from the air.") feedback_add_details("changeling_powers","HD") diff --git a/code/game/gamemodes/changeling/powers/swap_form.dm b/code/game/gamemodes/changeling/powers/swap_form.dm index 188c5fb437b..ce8bda64d03 100644 --- a/code/game/gamemodes/changeling/powers/swap_form.dm +++ b/code/game/gamemodes/changeling/powers/swap_form.dm @@ -38,10 +38,12 @@ to_chat(target, "[user] tightens their grip as a painful sensation invades your body.") + changeling.absorbed_dna -= changeling.find_dna(user.dna) + changeling.protected_dna -= changeling.find_dna(user.dna) + changeling.absorbedcount -= 1 if(!changeling.has_dna(target.dna)) changeling.absorb_dna(target, user) - changeling.protected_dna -= user.dna - changeling.absorbed_dna -= user.dna + changeling.trim_dna() var/mob/dead/observer/ghost = target.ghostize(0) user.mind.transfer_to(target) @@ -52,6 +54,6 @@ user.Paralyse(2) target.add_language("Changeling") user.remove_language("Changeling") - transfer_changeling_powers(user, target) to_chat(target, "Our genes cry out as we swap our [user] form for [target].") + return 1 diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index eec1b92e63d..9c880666f4e 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -82,11 +82,12 @@ // Calling update_interface() in /mob/Login() causes the Cyborg to immediately be ghosted; because of winget(). // Calling it in the overriden Login, such as /mob/living/Login() doesn't cause this. /mob/proc/update_interface() - if(client) - if(winget(src, "mainwindow.hotkey_toggle", "is-checked") == "true") - update_hotkey_mode() - else - update_normal_mode() + spawn() // Spawn off so winget/winset don't delay callers. + if(client) + if(winget(src, "mainwindow.hotkey_toggle", "is-checked") == "true") + update_hotkey_mode() + else + update_normal_mode() /mob/proc/update_hotkey_mode() var/hotkeyname = "hotkeymode" @@ -94,7 +95,7 @@ var/hotkeys = client.hotkeylist[client.hotkeytype] hotkeyname = hotkeys[client.hotkeyon ? "on" : "off"] client.hotkeyon = 1 - winset(src, null, "mainwindow.macro=[hotkeyname] hotkey_toggle.is-checked=true mapwindow.map.focus=true input.background-color=#F0F0F0") + winset(src, null, "mainwindow.macro=[hotkeyname] hotkey_toggle.is-checked=true mapwindow.map.focus=true input.background-color=#F0F0F0") /mob/proc/update_normal_mode() var/hotkeyname = "macro" @@ -102,4 +103,4 @@ var/hotkeys = client.hotkeylist[client.hotkeytype]//get the list containing the hotkey names hotkeyname = hotkeys[client.hotkeyon ? "on" : "off"]//get the name of the hotkey, to not clutter winset() to much client.hotkeyon = 0 - winset(src, null, "mainwindow.macro=[hotkeyname] hotkey_toggle.is-checked=false input.focus=true input.background-color=#D3B5B5") + winset(src, null, "mainwindow.macro=[hotkeyname] hotkey_toggle.is-checked=false input.focus=true input.background-color=#D3B5B5") From 9c8b2b624dab73d3776b8e87f2332b19b4e3c5b3 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Thu, 25 Aug 2016 08:17:00 -0400 Subject: [PATCH 12/14] tweaks --- code/game/gamemodes/miniantags/morph/morph.dm | 3 --- code/modules/mob/living/simple_animal/bot/bot.dm | 4 ---- .../mob/living/simple_animal/simple_animal.dm | 13 +++++++------ 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/code/game/gamemodes/miniantags/morph/morph.dm b/code/game/gamemodes/miniantags/morph/morph.dm index ac3bfdf7c1e..9bf6be0bbdc 100644 --- a/code/game/gamemodes/miniantags/morph/morph.dm +++ b/code/game/gamemodes/miniantags/morph/morph.dm @@ -124,9 +124,6 @@ morph_time = world.time + MORPH_COOLDOWN -/mob/living/simple_animal/hostile/morph/handle_state_icons() - return - /mob/living/simple_animal/hostile/morph/death(gibbed) if(morphed) visible_message("[src] twists and dissolves into a pile of green flesh!", \ diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index 359df7e14b7..bc72ba66cde 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -132,7 +132,6 @@ ..() icon_living = icon_state icon_dead = icon_state - icon_resting = icon_state access_card = new /obj/item/weapon/card/id(src) //This access is so bots can be immediately set to patrol and leave Robotics, instead of having to be let out first. access_card.access += access_robotics @@ -852,9 +851,6 @@ Pass a positive integer as an argument to override a bot's default speed. ejectpai(usr) update_controls() -/mob/living/simple_animal/bot/handle_state_icons() - return - /mob/living/simple_animal/bot/proc/update_icon() icon_state = "[initial(icon_state)][on]" diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 4c36c091e50..cf710f716dd 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -129,13 +129,14 @@ /mob/living/simple_animal/lay_down() ..() - handle_state_icons() + handle_resting_state_icons() -/mob/living/simple_animal/proc/handle_state_icons() - if(resting && icon_resting && stat != DEAD) - icon_state = icon_resting - else if(stat != DEAD) - icon_state = icon_living +/mob/living/simple_animal/proc/handle_resting_state_icons() + if(icon_resting) + if(resting && stat != DEAD) + icon_state = icon_resting + else if(stat != DEAD) + icon_state = icon_living /mob/living/simple_animal/handle_regular_status_updates() if(..()) //alive From ae6c769eb1cf5f42a2dd53556ee3161c4eb965c7 Mon Sep 17 00:00:00 2001 From: monster860 Date: Thu, 25 Aug 2016 12:17:02 -0400 Subject: [PATCH 13/14] Fix href exploit with camera console. --- code/game/machinery/computer/camera.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index fd5dc873739..97a976ddc41 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -138,7 +138,10 @@ var/obj/machinery/camera/C = locate(href_list["switchTo"]) in cameranet.cameras if(!C) return 1 - + + if(!can_access_camera(C)) + return 1 // No href exploits for you. + switch_to_camera(usr, C) else if(href_list["reset"]) From df8eaa981d0224a0206d7901241cb3fef3b4506f Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Thu, 25 Aug 2016 22:54:56 -0400 Subject: [PATCH 14/14] Automatic changelog generation for PR #5545 --- html/changelogs/AutoChangeLog-pr-5545.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-5545.yml diff --git a/html/changelogs/AutoChangeLog-pr-5545.yml b/html/changelogs/AutoChangeLog-pr-5545.yml new file mode 100644 index 00000000000..30ab94f9517 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-5545.yml @@ -0,0 +1,4 @@ +author: Krausus +delete-after: True +changes: + - bugfix: "Changelings' Swap Form ability now actually deducts its cost upon use, and shouldn't arbitrarily fail to work properly."