From 5232728ee747832bd31c71f98e871868ce481525 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Mon, 7 Oct 2019 05:25:47 +0200 Subject: [PATCH 001/144] Ports "Adds three new .38 ammo types", also lazily adding .357 AP --- code/game/machinery/computer/teleporter.dm | 4 +- .../objects/items/implants/implant_track.dm | 16 +++++- code/game/objects/items/teleportation.dm | 2 +- .../ammunition/ballistic/revolver.dm | 26 +++++++++- .../projectiles/boxes_magazines/ammo_boxes.dm | 21 ++++++++ .../projectile/bullets/revolver.dm | 49 +++++++++++++++++-- .../research/designs/weapon_designs.dm | 30 ++++++++++++ code/modules/research/techweb/all_nodes.dm | 12 ++--- code/modules/uplink/uplink_items.dm | 8 ++- 9 files changed, 151 insertions(+), 17 deletions(-) diff --git a/code/game/machinery/computer/teleporter.dm b/code/game/machinery/computer/teleporter.dm index b9b95eecd0..9e0bea08ab 100644 --- a/code/game/machinery/computer/teleporter.dm +++ b/code/game/machinery/computer/teleporter.dm @@ -124,12 +124,12 @@ L[avoid_assoc_duplicate_keys(A.name, areaindex)] = R for(var/obj/item/implant/tracking/I in GLOB.tracked_implants) - if(!I.imp_in || !isliving(I.loc)) + if(!I.imp_in || !isliving(I.loc) || !I.allow_teleport) continue else var/mob/living/M = I.loc if(M.stat == DEAD) - if(M.timeofdeath + 6000 < world.time) + if(M.timeofdeath + I.lifespan_postmortem < world.time) continue if(is_eligible(I)) L[avoid_assoc_duplicate_keys(M.real_name, areaindex)] = I diff --git a/code/game/objects/items/implants/implant_track.dm b/code/game/objects/items/implants/implant_track.dm index 913c577f2c..fc7539af9e 100644 --- a/code/game/objects/items/implants/implant_track.dm +++ b/code/game/objects/items/implants/implant_track.dm @@ -1,7 +1,19 @@ /obj/item/implant/tracking name = "tracking implant" desc = "Track with this." - activated = 0 + activated = FALSE + var/lifespan_postmortem = 6000 //for how many deciseconds after user death will the implant work? + var/allow_teleport = TRUE //will people implanted with this act as teleporter beacons? + +/obj/item/implant/tracking/c38 + name = "TRAC implant" + desc = "A smaller tracking implant that supplies power for only a few minutes." + var/lifespan = 3000 //how many deciseconds does the implant last? + allow_teleport = FALSE + +/obj/item/implant/tracking/c38/Initialize() + . = ..() + QDEL_IN(src, lifespan) /obj/item/implant/tracking/New() ..() @@ -21,7 +33,7 @@ var/dat = {"Implant Specifications:
Name: Tracking Beacon
Life: 10 minutes after death of host
- Important Notes: None
+ Important Notes: Implant also works as a teleporter beacon.

Implant Details:
Function: Continuously transmits low power signal. Useful for tracking.
diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm index 1ccc88d892..da806908df 100644 --- a/code/game/objects/items/teleportation.dm +++ b/code/game/objects/items/teleportation.dm @@ -80,7 +80,7 @@ else var/mob/living/M = W.loc if (M.stat == DEAD) - if (M.timeofdeath + 6000 < world.time) + if (M.timeofdeath + W.lifespan_postmortem < world.time) continue var/turf/tr = get_turf(W) diff --git a/code/modules/projectiles/ammunition/ballistic/revolver.dm b/code/modules/projectiles/ammunition/ballistic/revolver.dm index b45d01d7d8..6232ca4d69 100644 --- a/code/modules/projectiles/ammunition/ballistic/revolver.dm +++ b/code/modules/projectiles/ammunition/ballistic/revolver.dm @@ -6,6 +6,11 @@ caliber = "357" projectile_type = /obj/item/projectile/bullet/a357 +/obj/item/ammo_casing/a357/ap + name = ".357 armor-piercing bullet casing" + desc = "A .357 armor-piercing bullet casing." + projectile_type = /obj/item/projectile/bullet/a357/ap + // 7.62x38mmR (Nagant Revolver) /obj/item/ammo_casing/n762 @@ -20,9 +25,26 @@ name = ".38 rubber bullet casing" desc = "A .38 rubber bullet casing." caliber = "38" - projectile_type = /obj/item/projectile/bullet/c38 + projectile_type = /obj/item/projectile/bullet/c38/rubber /obj/item/ammo_casing/c38/lethal name = ".38 bullet casing" desc = "A .38 bullet casing" - projectile_type = /obj/item/projectile/bullet/c38lethal + projectile_type = /obj/item/projectile/bullet/c38 + +/obj/item/ammo_casing/c38/trac + name = ".38 TRAC bullet casing" + desc = "A .38 \"TRAC\" bullet casing." + projectile_type = /obj/item/projectile/bullet/c38/trac + +/obj/item/ammo_casing/c38/hotshot + name = ".38 Hot Shot bullet casing" + desc = "A .38 Hot Shot bullet casing." + caliber = "38" + projectile_type = /obj/item/projectile/bullet/c38/hotshot + +/obj/item/ammo_casing/c38/iceblox + name = ".38 Iceblox bullet casing" + desc = "A .38 Iceblox bullet casing." + caliber = "38" + projectile_type = /obj/item/projectile/bullet/c38/iceblox \ No newline at end of file diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index 7cd27e8592..ba6a8e2454 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -3,13 +3,19 @@ desc = "Designed to quickly reload revolvers." icon_state = "357" ammo_type = /obj/item/ammo_casing/a357 + caliber = "357" max_ammo = 7 multiple_sprites = 1 +/obj/item/ammo_box/a357/ap + name = "speed loader (.357 AP)" + ammo_type = /obj/item/ammo_casing/a357/ap + /obj/item/ammo_box/c38 name = "speed loader (.38 rubber)" desc = "Designed to quickly reload revolvers." icon_state = "38" + caliber = "38" ammo_type = /obj/item/ammo_casing/c38 max_ammo = 6 multiple_sprites = 1 @@ -19,6 +25,21 @@ name = "speed loader (.38)" ammo_type = /obj/item/ammo_casing/c38/lethal +/obj/item/ammo_box/c38/trac + name = "speed loader (.38 TRAC)" + desc = "Designed to quickly reload revolvers. TRAC bullets embed a tracking implant within the target's body." + ammo_type = /obj/item/ammo_casing/c38/trac + +/obj/item/ammo_box/c38/hotshot + name = "speed loader (.38 Hot Shot)" + desc = "Designed to quickly reload revolvers. Hot Shot bullets contain an incendiary payload." + ammo_type = /obj/item/ammo_casing/c38/hotshot + +/obj/item/ammo_box/c38/iceblox + name = "speed loader (.38 Iceblox)" + desc = "Designed to quickly reload revolvers. Iceblox bullets contain a cryogenic payload." + ammo_type = /obj/item/ammo_casing/c38/iceblox + /obj/item/ammo_box/c9mm name = "ammo box (9mm)" icon_state = "9mmbox" diff --git a/code/modules/projectiles/projectile/bullets/revolver.dm b/code/modules/projectiles/projectile/bullets/revolver.dm index d3af474d76..3bbfe437fe 100644 --- a/code/modules/projectiles/projectile/bullets/revolver.dm +++ b/code/modules/projectiles/projectile/bullets/revolver.dm @@ -13,16 +13,59 @@ // .38 (Detective's Gun) /obj/item/projectile/bullet/c38 + name = ".38 bullet" + damage = 25 + +/obj/item/projectile/bullet/c38/rubber name = ".38 rubber bullet" damage = 15 stamina = 48 -/obj/item/projectile/bullet/c38lethal - name = ".38 bullet" - damage = 25 +/obj/item/projectile/bullet/c38/trac + name = ".38 TRAC bullet" + damage = 10 + +/obj/item/projectile/bullet/c38/trac/on_hit(atom/target, blocked = FALSE) + . = ..() + var/mob/living/carbon/M = target + var/obj/item/implant/tracking/c38/imp + for(var/obj/item/implant/tracking/c38/TI in M.implants) //checks if the target already contains a tracking implant + imp = TI + return + if(!imp) + imp = new /obj/item/implant/tracking/c38(M) + imp.implant(M) + +/obj/item/projectile/bullet/c38/hotshot //similar to incendiary bullets, but do not leave a flaming trail + name = ".38 Hot Shot bullet" + damage = 20 + +/obj/item/projectile/bullet/c38/hotshot/on_hit(atom/target, blocked = FALSE) + . = ..() + if(iscarbon(target)) + var/mob/living/carbon/M = target + M.adjust_fire_stacks(6) + M.IgniteMob() + +/obj/item/projectile/bullet/c38/iceblox //see /obj/item/projectile/temp for the original code + name = ".38 Iceblox bullet" + damage = 20 + var/temperature = 100 + +/obj/item/projectile/bullet/c38/iceblox/on_hit(atom/target, blocked = FALSE) + . = ..() + if(isliving(target)) + var/mob/living/M = target + M.adjust_bodytemperature(((100-blocked)/100)*(temperature - M.bodytemperature)) + // .357 (Syndie Revolver) /obj/item/projectile/bullet/a357 name = ".357 bullet" damage = 60 + +/obj/item/projectile/bullet/a357/ap + name = ".357 armor-piercing bullet" + damage = 45 + armour_penetration = 45 \ No newline at end of file diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 214ef36afe..7dd85ea18c 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -17,6 +17,36 @@ id = "sec_38lethal" build_path = /obj/item/ammo_box/c38/lethal +/datum/design/c38_trac + name = "Speed Loader (.38 TRAC)" + desc = "Designed to quickly reload revolvers. TRAC bullets embed a tracking implant within the target's body." + id = "c38_trac" + build_type = PROTOLATHE + materials = list(MAT_METAL = 20000, MAT_SILVER = 5000, MAT_GOLD = 1000) + build_path = /obj/item/ammo_box/c38/trac + category = list("Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/c38_hotshot + name = "Speed Loader (.38 Hot Shot)" + desc = "Designed to quickly reload revolvers. Hot Shot bullets contain an incendiary payload." + id = "c38_hotshot" + build_type = PROTOLATHE + materials = list(MAT_METAL = 20000, MAT_PLASMA = 5000) + build_path = /obj/item/ammo_box/c38/hotshot + category = list("Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/c38_iceblox + name = "Speed Loader (.38 Iceblox)" + desc = "Designed to quickly reload revolvers. Iceblox bullets contain a cryogenic payload." + id = "c38_iceblox" + build_type = PROTOLATHE + materials = list(MAT_METAL = 20000, MAT_PLASMA = 5000) + build_path = /obj/item/ammo_box/c38/iceblox + category = list("Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + ////////////// //WT550 Mags// ////////////// diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 038a41b3cd..5a2493184f 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -508,7 +508,7 @@ display_name = "Subdermal Implants" description = "Electronic implants buried beneath the skin." prereq_ids = list("biotech", "datatheory") - design_ids = list("implanter", "implantcase", "implant_chem", "implant_tracking", "locator") + design_ids = list("implanter", "implantcase", "implant_chem", "implant_tracking", "locator", "c38_trac") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -676,12 +676,12 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750) export_price = 5000 -/datum/techweb_node/tech_shell - id = "tech_shell" - display_name = "Technological Shells" - description = "They're more technological than regular shot." +/datum/techweb_node/exotic_ammo + id = "exotic_ammo" + display_name = "Exotic Ammunition" + description = "They won't know what hit em." prereq_ids = list("weaponry", "ballistic_weapons") - design_ids = list("techshotshell") + design_ids = list("techshotshell", "c38_hotshot", "c38_iceblox") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500) export_price = 5000 diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 09e955d2f9..3b51b7c9a0 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -767,9 +767,15 @@ datum/uplink_item/stealthy_weapons/taeclowndo_shoes desc = "A speed loader that contains seven additional .357 Magnum rounds; usable with the Syndicate revolver. \ For when you really need a lot of things dead." item = /obj/item/ammo_box/a357 - cost = 4 + cost = 3 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/ammo/revolver/ap + name = ".357 Armor Piercing Speed Loader" + desc = "A speed loader that contains seven additional .357 AP Magnum rounds; usable with the Syndicate revolver. \ + Cuts through like a hot knife through butter." + item = /obj/item/ammo_box/a357/ap + /datum/uplink_item/ammo/a40mm name = "40mm Grenade" desc = "A 40mm HE grenade for use with the M-90gl's under-barrel grenade launcher. \ From b95f910a4e8d8a076bceca5de3573cd3a5512e3d Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Mon, 7 Oct 2019 17:32:16 +0200 Subject: [PATCH 002/144] macros --- code/game/objects/items/implants/implant_track.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/implants/implant_track.dm b/code/game/objects/items/implants/implant_track.dm index fc7539af9e..4398688cee 100644 --- a/code/game/objects/items/implants/implant_track.dm +++ b/code/game/objects/items/implants/implant_track.dm @@ -2,13 +2,13 @@ name = "tracking implant" desc = "Track with this." activated = FALSE - var/lifespan_postmortem = 6000 //for how many deciseconds after user death will the implant work? + var/lifespan_postmortem = 10 MINUTES //for how many deciseconds after user death will the implant work? var/allow_teleport = TRUE //will people implanted with this act as teleporter beacons? /obj/item/implant/tracking/c38 name = "TRAC implant" desc = "A smaller tracking implant that supplies power for only a few minutes." - var/lifespan = 3000 //how many deciseconds does the implant last? + var/lifespan = 5 MINUTES //how many deciseconds does the implant last? allow_teleport = FALSE /obj/item/implant/tracking/c38/Initialize() From b4e975ef75d231e892bb6053c750c41063831d38 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Wed, 9 Oct 2019 06:51:07 +0200 Subject: [PATCH 003/144] mitigates the ghost roles/mid-round antag lock out for suicide/cryo. And related fixes. --- code/__DEFINES/misc.dm | 3 +++ code/__HELPERS/game.dm | 2 +- code/controllers/subsystem/pai.dm | 5 +++++ code/game/machinery/cryopod.dm | 3 ++- .../clockcult/clock_items/construct_chassis.dm | 5 ++++- code/modules/awaymissions/corpse.dm | 4 ++-- code/modules/mob/dead/observer/observer.dm | 14 +++++++------- code/modules/mob/living/brain/posibrain.dm | 10 +++++++--- .../friendly/drone/drones_as_items.dm | 5 ++++- .../living/simple_animal/hostile/giant_spider.dm | 5 +++++ .../simple_animal/hostile/megafauna/colossus.dm | 3 +++ 11 files changed, 43 insertions(+), 16 deletions(-) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index ba5e105041..2823761444 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -221,6 +221,9 @@ GLOBAL_LIST_EMPTY(bloody_footprints_cache) //Same as above except gets the area instead #define get_area(A) (isarea(A) ? A : get_step(A, 0)?.loc) +//Used to prevent cryo/suicidees from coming back into the round as ghost roles or mid round antags before a given duration has passed. +#define SUICIDE_REENTER_ROUND_TIMER 40 MINUTES + //Ghost orbit types: #define GHOST_ORBIT_CIRCLE "circle" #define GHOST_ORBIT_TRIANGLE "triangle" diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index cc0bd3e0b4..00decafabd 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -446,7 +446,7 @@ var/list/candidates = list() for(var/mob/dead/observer/G in GLOB.player_list) - if(G.can_reenter_round) + if(G.reenter_round_timeout < world.realtime) candidates += G return pollCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category, flashwindow, candidates) diff --git a/code/controllers/subsystem/pai.dm b/code/controllers/subsystem/pai.dm index 2e2f7edd99..09087c8626 100644 --- a/code/controllers/subsystem/pai.dm +++ b/code/controllers/subsystem/pai.dm @@ -69,6 +69,11 @@ SUBSYSTEM_DEF(pai) candidate.comments = copytext(sanitize(candidate.comments),1,MAX_MESSAGE_LEN) if("submit") + if(isobserver(usr)) + var/mob/dead/observer/O = usr + if(O.reenter_round_timeout > world.realtime) + to_chat(O, "You are unable to reenter the round yet. Your ghost role blacklist will expire in [round((O.reenter_round_timeout - world.realtime)/600)] minutes.") + return if(candidate) candidate.ready = 1 for(var/obj/item/paicard/p in pai_card_list) diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index e358f10346..84cc27953a 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -411,7 +411,8 @@ // Ghost and delete the mob. if(!mob_occupant.get_ghost(1)) - mob_occupant.ghostize(0) // Players who cryo out may not re-enter the round + mob_occupant.suiciding = TRUE //to penalize them from making a ghost role / midround antag comeback right away. + mob_occupant.ghostize(0) QDEL_NULL(occupant) open_machine() diff --git a/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm b/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm index 12af249bee..fa15509c59 100644 --- a/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm +++ b/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm @@ -39,7 +39,10 @@ . = ..() //ATTACK GHOST IGNORING PARENT RETURN VALUE -/obj/item/clockwork/construct_chassis/attack_ghost(mob/user) +/obj/item/clockwork/construct_chassis/attack_ghost(mob/dead/observer/user) + if(user.reenter_round_timeout > world.realtime) + to_chat(user, "You are unable to reenter the round yet. Your ghost role blacklist will expire in [round((user.reenter_round_timeout - world.realtime)/600)] minutes.") + return if(!SSticker.mode) to_chat(user, "You cannot use that before the game has started.") return diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 74f81ec9a0..9d5c46fdf5 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -43,8 +43,8 @@ return if(isobserver(user)) var/mob/dead/observer/O = user - if(!O.can_reenter_round) - to_chat(user, "You are unable to reenter the round.") + if(O.reenter_round_timeout > world.realtime) + to_chat(user, "You are unable to reenter the round yet. Your ghost role blacklist will expire in [round((O.reenter_round_timeout - world.realtime)/600)] minutes.") return var/ghost_role = alert(latejoinercalling ? "Latejoin as [mob_name]? (This is a ghost role, and as such, it's very likely to be off-station.)" : "Become [mob_name]? (Warning, You can no longer be cloned!)",,"Yes","No") if(ghost_role == "No" || !loc) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index fefa032e4f..16fd99e9be 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -18,7 +18,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) invisibility = INVISIBILITY_OBSERVER hud_type = /datum/hud/ghost var/can_reenter_corpse - var/can_reenter_round = TRUE + var/reenter_round_timeout = 0 // used to prevent people from coming back through ghost roles/midround antags as they suicide/cryo for a duration set by SUICIDE_REENTER_ROUND_TIMER. var/datum/hud/living/carbon/hud = null // hud var/bootime = 0 var/started_as_observer //This variable is set to 1 when you enter the game as an observer. @@ -267,7 +267,7 @@ Works together with spawning an observer, noted above. var/mob/dead/observer/ghost = new(src) // Transfer safety to observer spawning proc. SStgui.on_transfer(src, ghost) // Transfer NanoUIs. ghost.can_reenter_corpse = can_reenter_corpse - ghost.can_reenter_round = (can_reenter_corpse && !suiciding) + ghost.reenter_round_timeout = suiciding ? world.realtime + SUICIDE_REENTER_ROUND_TIMER : 0 ghost.key = key return ghost @@ -282,7 +282,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp // CITADEL EDIT if(istype(loc, /obj/machinery/cryopod)) - var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you won't be able to re-enter this round! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") + var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you won't be able to re-enter this round for the next [SUICIDE_REENTER_ROUND_TIMER/600] minutes! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") if(response != "Ghost")//darn copypaste return var/obj/machinery/cryopod/C = loc @@ -295,7 +295,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(stat == DEAD) ghostize(1) else - var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you won't be able to re-enter this round! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") + var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you won't be able to re-enter this round for the next [SUICIDE_REENTER_ROUND_TIMER/600] minutes! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") if(response != "Ghost") return //didn't want to ghost after-all ghostize(0) //0 parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3 @@ -306,7 +306,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp set name = "Ghost" set desc = "Relinquish your life and enter the land of the dead." - var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you won't be able to re-enter this round! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") + var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you won't be able to re-enter this round for the next [SUICIDE_REENTER_ROUND_TIMER/600] minutes! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") if(response != "Ghost") return ghostize(0) @@ -617,8 +617,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp to_chat(src, "This isn't really a creature, now is it!") return 0 - if(!can_reenter_round) - to_chat(src, "You are unable to re-enter the round.") + if(reenter_round_timeout > world.realtime) + to_chat(src, "You are unable to re-enter the round yet. Your ghost role blacklist will expire in [round((reenter_round_timeout - world.realtime)/600)] minutes.") return FALSE if(can_reenter_corpse && mind && mind.current) diff --git a/code/modules/mob/living/brain/posibrain.dm b/code/modules/mob/living/brain/posibrain.dm index 9e0bb0428b..e52d53dca2 100644 --- a/code/modules/mob/living/brain/posibrain.dm +++ b/code/modules/mob/living/brain/posibrain.dm @@ -83,11 +83,15 @@ GLOBAL_VAR(posibrain_notify_cooldown) //Two ways to activate a positronic brain. A clickable link in the ghost notif, or simply clicking the object itself. /obj/item/mmi/posibrain/proc/activate(mob/user) - if(QDELETED(brainmob)) - return - if(is_occupied() || jobban_isbanned(user,"posibrain") || QDELETED(brainmob) || QDELETED(src) || QDELETED(user)) + if(QDELETED(brainmob) || is_occupied() || jobban_isbanned(user,"posibrain") || QDELETED(src) || QDELETED(user)) return + if(isobserver(user)) + var/mob/dead/observer/O = user + if(O.reenter_round_timeout > world.realtime) + to_chat(user, "You are unable to reenter the round yet. Your ghost role blacklist will expire in [round((O.reenter_round_timeout - world.realtime)/600)] minutes.") + return + var/posi_ask = alert("Become a [name]? (Warning, You can no longer be cloned, and all past lives will be forgotten!)","Are you positive?","Yes","No") if(posi_ask == "No" || QDELETED(src)) return diff --git a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm index a655bdf231..dd0b948299 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm @@ -40,7 +40,7 @@ . = ..() //ATTACK GHOST IGNORING PARENT RETURN VALUE -/obj/item/drone_shell/attack_ghost(mob/user) +/obj/item/drone_shell/attack_ghost(mob/dead/observer/user) if(jobban_isbanned(user,"drone") || QDELETED(src) || QDELETED(user)) return if(CONFIG_GET(flag/use_age_restriction_for_jobs)) @@ -49,6 +49,9 @@ if(user.client.player_age < DRONE_MINIMUM_AGE) to_chat(user, "You're too new to play as a drone! Please try again in [DRONE_MINIMUM_AGE - user.client.player_age] days.") return + if(user.reenter_round_timeout > world.realtime) + to_chat(user, "You are unable to reenter the round yet. Your ghost role blacklist will expire in [round((user.reenter_round_timeout - world.realtime)/600)] minutes.") + return if(!SSticker.mode) to_chat(user, "Can't become a drone before the game has started.") return diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index cfdf302d6b..c851e50be7 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -84,6 +84,11 @@ /mob/living/simple_animal/hostile/poison/giant_spider/proc/humanize_spider(mob/user) if(key || !playable_spider || stat)//Someone is in it, it's dead, or the fun police are shutting it down return 0 + if(isobserver(user)) + var/mob/dead/observer/O = user + if(O.reenter_round_timeout > world.realtime) + to_chat(O, "You are unable to reenter the round yet. Your ghost role blacklist will expire in [round((O.reenter_round_timeout - world.realtime)/600)] minutes.") + return var/spider_ask = alert("Become a spider?", "Are you australian?", "Yes", "No") if(spider_ask == "No" || !src || QDELETED(src)) return 1 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index b529d826c9..a9a49e3982 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -582,6 +582,9 @@ Difficulty: Very Hard if(.) return if(ready_to_deploy) + if(user.reenter_round_timeout > world.realtime) + to_chat(user, "You are unable to reenter the round yet. Your ghost role blacklist will expire in [round((user.reenter_round_timeout - world.realtime)/600)] minutes.") + return var/be_helper = alert("Become a Lightgeist? (Warning, You can no longer be cloned!)",,"Yes","No") if(be_helper == "Yes" && !QDELETED(src) && isobserver(user)) var/mob/living/simple_animal/hostile/lightgeist/W = new /mob/living/simple_animal/hostile/lightgeist(get_turf(loc)) From ac0b3629f1485e8463f5ad4dc04248fbf9905fae Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Wed, 9 Oct 2019 07:53:59 +0200 Subject: [PATCH 004/144] roundstart quitters --- code/__DEFINES/misc.dm | 3 ++- code/modules/mob/dead/observer/observer.dm | 18 ++++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 2823761444..9751030e8d 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -222,7 +222,8 @@ GLOBAL_LIST_EMPTY(bloody_footprints_cache) #define get_area(A) (isarea(A) ? A : get_step(A, 0)?.loc) //Used to prevent cryo/suicidees from coming back into the round as ghost roles or mid round antags before a given duration has passed. -#define SUICIDE_REENTER_ROUND_TIMER 40 MINUTES +#define SUICIDE_REENTER_ROUND_TIMER 30 MINUTES +#define ROUNDSTART_QUITTER_TIME_LIMIT 30 MINUTES //a game time threshold under which will be applied a proportional added penalty. //Ghost orbit types: #define GHOST_ORBIT_CIRCLE "circle" diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 16fd99e9be..f75d7016d3 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -267,7 +267,11 @@ Works together with spawning an observer, noted above. var/mob/dead/observer/ghost = new(src) // Transfer safety to observer spawning proc. SStgui.on_transfer(src, ghost) // Transfer NanoUIs. ghost.can_reenter_corpse = can_reenter_corpse - ghost.reenter_round_timeout = suiciding ? world.realtime + SUICIDE_REENTER_ROUND_TIMER : 0 + if(suiciding) + var/penalty = SUICIDE_REENTER_ROUND_TIMER + if(world.time < ROUNDSTART_QUITTER_TIME_LIMIT) //add up the time difference to their antag rolling penalty if they quit before half a (ingame) hour even passed. + penalty += ROUNDSTART_QUITTER_TIME_LIMIT - world.time + ghost.reenter_round_timeout = world.realtime + penalty ghost.key = key return ghost @@ -280,9 +284,12 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp set name = "Ghost" set desc = "Relinquish your life and enter the land of the dead." + var/penalty = SUICIDE_REENTER_ROUND_TIMER + if(world.time < ROUNDSTART_QUITTER_TIME_LIMIT) + penalty += ROUNDSTART_QUITTER_TIME_LIMIT - world.time // CITADEL EDIT if(istype(loc, /obj/machinery/cryopod)) - var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you won't be able to re-enter this round for the next [SUICIDE_REENTER_ROUND_TIMER/600] minutes! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") + var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you won't be able to re-enter this round for the next [round(penalty/600, 600)] minutes! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") if(response != "Ghost")//darn copypaste return var/obj/machinery/cryopod/C = loc @@ -295,7 +302,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(stat == DEAD) ghostize(1) else - var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you won't be able to re-enter this round for the next [SUICIDE_REENTER_ROUND_TIMER/600] minutes! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") + var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you won't be able to re-enter this round for the next [round(penalty/600, 600)] minutes! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") if(response != "Ghost") return //didn't want to ghost after-all ghostize(0) //0 parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3 @@ -306,7 +313,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp set name = "Ghost" set desc = "Relinquish your life and enter the land of the dead." - var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you won't be able to re-enter this round for the next [SUICIDE_REENTER_ROUND_TIMER/600] minutes! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") + var/penalty = SUICIDE_REENTER_ROUND_TIMER + if(world.time < ROUNDSTART_QUITTER_TIME_LIMIT) + penalty += ROUNDSTART_QUITTER_TIME_LIMIT - world.time + var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you won't be able to re-enter this round for the next [round(penalty/600, 600)] minutes! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") if(response != "Ghost") return ghostize(0) From f73516a17f086888d34ab445453d5d4a269e2292 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Thu, 17 Oct 2019 04:44:30 +0200 Subject: [PATCH 005/144] made it into config. --- code/__DEFINES/misc.dm | 4 -- .../configuration/entries/game_options.dm | 8 +++ code/game/machinery/cryopod.dm | 3 +- code/modules/client/verbs/suicide.dm | 2 +- code/modules/mob/dead/observer/observer.dm | 55 +++++++++---------- config/game_options.txt | 12 ++++ 6 files changed, 49 insertions(+), 35 deletions(-) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index afa9071aae..bccf1f28dd 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -221,10 +221,6 @@ GLOBAL_LIST_EMPTY(bloody_footprints_cache) //Same as above except gets the area instead #define get_area(A) (isarea(A) ? A : get_step(A, 0)?.loc) -//Used to prevent cryo/suicidees from coming back into the round as ghost roles or mid round antags before a given duration has passed. -#define SUICIDE_REENTER_ROUND_TIMER 30 MINUTES -#define ROUNDSTART_QUITTER_TIME_LIMIT 30 MINUTES //a game time threshold under which will be applied a proportional added penalty. - //Ghost orbit types: #define GHOST_ORBIT_CIRCLE "circle" #define GHOST_ORBIT_TRIANGLE "triangle" diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index cfd57b4850..95935a7066 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -132,6 +132,14 @@ min_val = 0 max_val = 1 +/datum/config_entry/number/suicide_reenter_round_timer + config_entry_value = 30 + min_val = 0 + +/datum/config_entry/number/roundstart_suicide_time_limit + config_entry_value = 30 + min_val = 0 + /datum/config_entry/number/shuttle_refuel_delay config_entry_value = 12000 min_val = 0 diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 84cc27953a..b856ee4c94 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -411,8 +411,7 @@ // Ghost and delete the mob. if(!mob_occupant.get_ghost(1)) - mob_occupant.suiciding = TRUE //to penalize them from making a ghost role / midround antag comeback right away. - mob_occupant.ghostize(0) + mob_occupant.ghostize(FALSE, penalize = TRUE) QDEL_NULL(occupant) open_machine() diff --git a/code/modules/client/verbs/suicide.dm b/code/modules/client/verbs/suicide.dm index 2e643cc05d..90c692c60e 100644 --- a/code/modules/client/verbs/suicide.dm +++ b/code/modules/client/verbs/suicide.dm @@ -49,7 +49,7 @@ if(!(damagetype & (BRUTELOSS | FIRELOSS | TOXLOSS | OXYLOSS) )) adjustOxyLoss(max(200 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) - death(FALSE) + death(FALSE, penalize = TRUE) return diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 835dcab9e2..eb5c968bd2 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -18,7 +18,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) invisibility = INVISIBILITY_OBSERVER hud_type = /datum/hud/ghost var/can_reenter_corpse - var/reenter_round_timeout = 0 // used to prevent people from coming back through ghost roles/midround antags as they suicide/cryo for a duration set by SUICIDE_REENTER_ROUND_TIMER. + var/reenter_round_timeout = 0 // used to prevent people from coming back through ghost roles/midround antags as they suicide/cryo for a duration set by CONFIG_GET(number/suicide_reenter_round_timer) and CONFIG_GET(number/roundstart_suicide_time_limit) var/datum/hud/living/carbon/hud = null // hud var/bootime = 0 var/started_as_observer //This variable is set to 1 when you enter the game as an observer. @@ -260,18 +260,20 @@ Transfer_mind is there to check if mob is being deleted/not going to have a body Works together with spawning an observer, noted above. */ -/mob/proc/ghostize(can_reenter_corpse = TRUE, special = FALSE) - if(!key || cmptext(copytext(key,1,2),"@") || (!special && SEND_SIGNAL(src, COMSIG_MOB_GHOSTIZE, can_reenter_corpse, special) & COMPONENT_BLOCK_GHOSTING)) +/mob/proc/ghostize(can_reenter_corpse = TRUE, special = FALSE, penalize = FALSE) + if(!key || cmptext(copytext(key,1,2),"@") || (!special && SEND_SIGNAL(src, COMSIG_MOB_GHOSTIZE, can_reenter_corpse) & COMPONENT_BLOCK_GHOSTING)) return //mob has no key, is an aghost or some component hijacked. stop_sound_channel(CHANNEL_HEARTBEAT) //Stop heartbeat sounds because You Are A Ghost Now var/mob/dead/observer/ghost = new(src) // Transfer safety to observer spawning proc. SStgui.on_transfer(src, ghost) // Transfer NanoUIs. ghost.can_reenter_corpse = can_reenter_corpse - if(suiciding) - var/penalty = SUICIDE_REENTER_ROUND_TIMER - if(world.time < ROUNDSTART_QUITTER_TIME_LIMIT) //add up the time difference to their antag rolling penalty if they quit before half a (ingame) hour even passed. - penalty += ROUNDSTART_QUITTER_TIME_LIMIT - world.time - ghost.reenter_round_timeout = world.realtime + penalty + if(penalize) //penalizing them from making a ghost role / midround antag comeback right away. + var/penalty = CONFIG_GET(number/suicide_reenter_round_timer) + var/roundstart_quit_limit = CONFIG_GET(number/roundstart_suicide_time_limit) + if(world.time < roundstart_quit_limit) //add up the time difference to their antag rolling penalty if they quit before half a (ingame) hour even passed. + penalty += roundstart_quit_limit - world.time + if(penalty) + ghost.reenter_round_timeout = world.realtime + penalty transfer_ckey(ghost, FALSE) return ghost @@ -287,29 +289,25 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(SEND_SIGNAL(src, COMSIG_MOB_GHOSTIZE, (stat == DEAD) ? TRUE : FALSE, FALSE) & COMPONENT_BLOCK_GHOSTING) return - var/penalty = SUICIDE_REENTER_ROUND_TIMER - if(world.time < ROUNDSTART_QUITTER_TIME_LIMIT) - penalty += ROUNDSTART_QUITTER_TIME_LIMIT - world.time -// CITADEL EDIT - if(istype(loc, /obj/machinery/cryopod)) - var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you won't be able to re-enter this round for the next [round(penalty/600, 600)] minutes! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") - if(response != "Ghost")//darn copypaste - return - var/obj/machinery/cryopod/C = loc - C.despawn_occupant() - return -// END EDIT + var/penalty = CONFIG_GET(number/suicide_reenter_round_timer) + var/roundstart_quit_limit = CONFIG_GET(number/roundstart_suicide_time_limit) + if(world.time < roundstart_quit_limit) + penalty += roundstart_quit_limit - world.time if(stat != DEAD) succumb() if(stat == DEAD) ghostize(1) else - var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you won't be able to re-enter this round for the next [round(penalty/600, 600)] minutes! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") + var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst alive you won't be able to re-enter this round [penalty ? "or play ghost roles for the next [round(penalty/600)] minutes" : ""]! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") if(response != "Ghost") return //didn't want to ghost after-all - ghostize(0) //0 parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3 - suicide_log(TRUE) + if(istype(loc, /obj/machinery/cryopod)) + var/obj/machinery/cryopod/C = loc + C.despawn_occupant() + else + ghostize(0, penalize = TRUE) //0 parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3 + suicide_log(TRUE) /mob/camera/verb/ghost() set category = "OOC" @@ -319,14 +317,15 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(SEND_SIGNAL(src, COMSIG_MOB_GHOSTIZE, FALSE, FALSE) & COMPONENT_BLOCK_GHOSTING) return - var/penalty = SUICIDE_REENTER_ROUND_TIMER - if(world.time < ROUNDSTART_QUITTER_TIME_LIMIT) - penalty += ROUNDSTART_QUITTER_TIME_LIMIT - world.time + var/penalty = CONFIG_GET(number/suicide_reenter_round_timer) + var/roundstart_quit_limit = CONFIG_GET(number/roundstart_suicide_time_limit) + if(world.time < roundstart_quit_limit) + penalty += roundstart_quit_limit - world.time - var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you won't be able to re-enter this round for the next [round(penalty/600, 600)] minutes! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") + var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst alive you won't be able to re-enter this round [penalty ? "or play ghost roles for the next [round(penalty/600)] minutes" : ""]! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") if(response != "Ghost") return - ghostize(0) + ghostize(0, penalize = TRUE) /mob/dead/observer/Move(NewLoc, direct) if(updatedir) diff --git a/config/game_options.txt b/config/game_options.txt index 2e346ce0ac..ca07d4e744 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -471,6 +471,18 @@ MIDROUND_ANTAG_TIME_CHECK 60 ## A ratio of living to total crew members, the lower this is, the more people will have to die in order for midround antag to be skipped MIDROUND_ANTAG_LIFE_CHECK 0.7 +## A time, in real-time deciseconds, applied upon suicide, cryosleep or ghosting whilst alive +## during which the player shouldn't be able to come back through +## midround playable roles or mob spawners. +## Set to 0 to completely disable it. +SUICIDE_REENTER_ROUND_TIMER 18000 + +## A time, in real-time deciseconds, below which the player receives +## a timed penalty, for purposes similar to the aforementioned one (can also stack) +## and equal to this config difference with world.time. +## Both configs are indipendent from each other, disabling one won't affect the other. +ROUNDSTART_SUICIDE_TIME_LIMIT 18000 + ##Limit Spell Choices## ## Uncomment to disallow wizards from using certain spells that may be too chaotic/fun for your playerbase From ec22088534dc3c005922e11b8695aa09d0948843 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sun, 20 Oct 2019 09:15:35 +0200 Subject: [PATCH 006/144] Complying with suggestions. Also stops dnr observers from getting ghost role notifications --- code/controllers/subsystem/pai.dm | 7 ++-- code/game/objects/effects/spiders.dm | 2 +- .../objects/structures/ghost_role_spawners.dm | 6 +-- .../clock_items/construct_chassis.dm | 7 ++-- code/modules/antagonists/cult/runes.dm | 4 +- code/modules/antagonists/swarmer/swarmer.dm | 2 +- code/modules/awaymissions/corpse.dm | 5 +-- code/modules/events/pirates.dm | 2 +- code/modules/mob/dead/observer/observer.dm | 37 ++++++++++++++----- code/modules/mob/living/brain/posibrain.dm | 7 ++-- .../friendly/drone/drones_as_items.dm | 7 ++-- .../simple_animal/hostile/giant_spider.dm | 13 +++---- .../hostile/megafauna/colossus.dm | 7 ++-- code/modules/mob/mob_helpers.dm | 4 +- .../mob/living/simple_animal/banana_spider.dm | 9 ++++- 15 files changed, 69 insertions(+), 50 deletions(-) diff --git a/code/controllers/subsystem/pai.dm b/code/controllers/subsystem/pai.dm index 09087c8626..18667053d4 100644 --- a/code/controllers/subsystem/pai.dm +++ b/code/controllers/subsystem/pai.dm @@ -71,9 +71,8 @@ SUBSYSTEM_DEF(pai) if("submit") if(isobserver(usr)) var/mob/dead/observer/O = usr - if(O.reenter_round_timeout > world.realtime) - to_chat(O, "You are unable to reenter the round yet. Your ghost role blacklist will expire in [round((O.reenter_round_timeout - world.realtime)/600)] minutes.") - return + if(!O.can_reenter_round()) + return FALSE if(candidate) candidate.ready = 1 for(var/obj/item/paicard/p in pai_card_list) @@ -153,6 +152,8 @@ SUBSYSTEM_DEF(pai) continue if(!(ROLE_PAI in G.client.prefs.be_special)) continue + if(!G.can_reenter_round()) // this should use notify_ghosts() instead one day. + return FALSE to_chat(G, "[user] is requesting a pAI personality! Use the pAI button to submit yourself as one.") addtimer(CALLBACK(src, .proc/spam_again), spam_delay) var/list/available = list() diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index c92721082c..08a3501be6 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -201,7 +201,7 @@ S.directive = directive if(player_spiders) S.playable_spider = TRUE - notify_ghosts("Spider [S.name] can be controlled", null, enter_link="(Click to play)", source=S, action=NOTIFY_ATTACK, ignore_key = POLL_IGNORE_SPIDER) + notify_ghosts("Spider [S.name] can be controlled", null, enter_link="(Click to play)", source=S, action=NOTIFY_ATTACK, ignore_key = POLL_IGNORE_SPIDER, ignore_dnr_observers = TRUE) qdel(src) diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index b820e93c7b..10f1f30e13 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -66,7 +66,7 @@ . = ..() var/area/A = get_area(src) if(A) - notify_ghosts("An ash walker egg is ready to hatch in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_key = POLL_IGNORE_ASHWALKER) + notify_ghosts("An ash walker egg is ready to hatch in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_key = POLL_IGNORE_ASHWALKER, ignore_dnr_observers = TRUE) /datum/outfit/ashwalker name ="Ashwalker" @@ -133,7 +133,7 @@ . = ..() var/area/A = get_area(src) if(!mapload && A) - notify_ghosts("\A [initial(species.prefix)] golem shell has been completed in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_key = POLL_IGNORE_GOLEM) + notify_ghosts("\A [initial(species.prefix)] golem shell has been completed in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_key = POLL_IGNORE_GOLEM, ignore_dnr_observers = TRUE) if(has_owner && creator) flavour_text = "You are a Golem. You move slowly, but are highly resistant to heat and cold as well as blunt trauma. You are unable to wear clothes, but can still use most tools. \ Serve [creator], and assist [creator.p_them()] in completing [creator.p_their()] goals at any cost." @@ -372,7 +372,7 @@ flavour_text = "You have been given a reprieve from your eternity of torment, to be [owner.name]'s friend for [owner.p_their()] short mortal coil. Be aware that if you do not live up to [owner.name]'s expectations, they can send you back to hell with a single thought. [owner.name]'s death will also return you to hell." var/area/A = get_area(src) if(!mapload && A) - notify_ghosts("\A friendship shell has been completed in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE) + notify_ghosts("\A friendship shell has been completed in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_dnr_observers = TRUE) objectives = "Be [owner.name]'s friend, and keep [owner.name] alive, so you don't get sent back to hell." spell = summoning_spell diff --git a/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm b/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm index 4519a2d6a2..f53796f02a 100644 --- a/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm +++ b/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm @@ -15,7 +15,7 @@ . = ..() var/area/A = get_area(src) if(A && construct_type) - notify_ghosts("A [construct_name] chassis has been created in [A.name]!", 'sound/magic/clockwork/fellowship_armory.ogg', source = src, action = NOTIFY_ATTACK, flashwindow = FALSE, ignore_key = POLL_IGNORE_CONSTRUCT) + notify_ghosts("A [construct_name] chassis has been created in [A.name]!", 'sound/magic/clockwork/fellowship_armory.ogg', source = src, action = NOTIFY_ATTACK, flashwindow = FALSE, ignore_key = POLL_IGNORE_CONSTRUCT, ignore_dnr_observers = TRUE) GLOB.poi_list += src LAZYADD(GLOB.mob_spawners[name], src) @@ -40,9 +40,8 @@ //ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/item/clockwork/construct_chassis/attack_ghost(mob/dead/observer/user) - if(user.reenter_round_timeout > world.realtime) - to_chat(user, "You are unable to reenter the round yet. Your ghost role blacklist will expire in [round((user.reenter_round_timeout - world.realtime)/600)] minutes.") - return + if(!user.can_reenter_round()) + return FALSE if(!SSticker.mode) to_chat(user, "You cannot use that before the game has started.") return diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index 2e233d26e4..1eac059d36 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -848,10 +848,10 @@ structure_check() searches for nearby cultist structures required for the invoca fail_invoke() log_game("Manifest rune failed - too many summoned ghosts") return list() - notify_ghosts("Manifest rune invoked in [get_area(src)].", 'sound/effects/ghost2.ogg', source = src) + notify_ghosts("Manifest rune invoked in [get_area(src)].", 'sound/effects/ghost2.ogg', source = src, ignore_dnr_observers = TRUE) var/list/ghosts_on_rune = list() for(var/mob/dead/observer/O in T) - if(O.client && !jobban_isbanned(O, ROLE_CULTIST) && !QDELETED(src) && !QDELETED(O)) + if(!QDELETED(O) && O.client && !jobban_isbanned(O, ROLE_CULTIST) && !QDELETED(src) && O.can_reenter_round()) ghosts_on_rune += O if(!ghosts_on_rune.len) to_chat(user, "There are no spirits near [src]!") diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm index 87cee7586d..ce455d9e67 100644 --- a/code/modules/antagonists/swarmer/swarmer.dm +++ b/code/modules/antagonists/swarmer/swarmer.dm @@ -33,7 +33,7 @@ . = ..() var/area/A = get_area(src) if(A) - notify_ghosts("A swarmer shell has been created in [A.name].", 'sound/effects/bin_close.ogg', source = src, action = NOTIFY_ATTACK, flashwindow = FALSE) + notify_ghosts("A swarmer shell has been created in [A.name].", 'sound/effects/bin_close.ogg', source = src, action = NOTIFY_ATTACK, flashwindow = FALSE, ignore_dnr_observers = TRUE) /obj/effect/mob_spawn/swarmer/attack_hand(mob/living/user) . = ..() diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 9d5c46fdf5..304d050630 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -43,9 +43,8 @@ return if(isobserver(user)) var/mob/dead/observer/O = user - if(O.reenter_round_timeout > world.realtime) - to_chat(user, "You are unable to reenter the round yet. Your ghost role blacklist will expire in [round((O.reenter_round_timeout - world.realtime)/600)] minutes.") - return + if(!O.can_reenter_round()) + return FALSE var/ghost_role = alert(latejoinercalling ? "Latejoin as [mob_name]? (This is a ghost role, and as such, it's very likely to be off-station.)" : "Become [mob_name]? (Warning, You can no longer be cloned!)",,"Yes","No") if(ghost_role == "No" || !loc) return diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm index 7256ddb6ea..1a8501f179 100644 --- a/code/modules/events/pirates.dm +++ b/code/modules/events/pirates.dm @@ -75,7 +75,7 @@ spawner.create(M.ckey) candidates -= M else - notify_ghosts("Space pirates are waking up!", source = spawner, action=NOTIFY_ATTACK, flashwindow = FALSE) + notify_ghosts("Space pirates are waking up!", source = spawner, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_dnr_observers = TRUE) priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg') //CITADEL EDIT also metabreak here too diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index eb5c968bd2..f2a24cd763 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -3,6 +3,8 @@ GLOBAL_LIST_EMPTY(ghost_images_simple) //this is a list of all ghost images as t GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) +#define CANT_REENTER_ROUND -1 + /mob/dead/observer name = "ghost" desc = "It's a g-g-g-g-ghooooost!" //jinkies! @@ -274,6 +276,8 @@ Works together with spawning an observer, noted above. penalty += roundstart_quit_limit - world.time if(penalty) ghost.reenter_round_timeout = world.realtime + penalty + if(ghost.reenter_round_timeout - SSshuttle.realtimeofstart > SSshuttle.auto_call + SSshuttle.emergencyCallTime + SSshuttle.emergencyDockTime + SSshuttle.emergencyEscapeTime) + ghost.reenter_round_timeout = CANT_REENTER_ROUND transfer_ckey(ghost, FALSE) return ghost @@ -289,17 +293,19 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(SEND_SIGNAL(src, COMSIG_MOB_GHOSTIZE, (stat == DEAD) ? TRUE : FALSE, FALSE) & COMPONENT_BLOCK_GHOSTING) return - var/penalty = CONFIG_GET(number/suicide_reenter_round_timer) - var/roundstart_quit_limit = CONFIG_GET(number/roundstart_suicide_time_limit) + var/penalty = CONFIG_GET(number/suicide_reenter_round_timer) MINUTES + var/roundstart_quit_limit = CONFIG_GET(number/roundstart_suicide_time_limit) MINUTES if(world.time < roundstart_quit_limit) penalty += roundstart_quit_limit - world.time + if(penalty + world.realtime - SSshuttle.realtimeofstart > SSshuttle.auto_call + SSshuttle.emergencyCallTime + SSshuttle.emergencyDockTime + SSshuttle.emergencyEscapeTime) + penalty = CANT_REENTER_ROUND if(stat != DEAD) succumb() if(stat == DEAD) ghostize(1) else - var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst alive you won't be able to re-enter this round [penalty ? "or play ghost roles for the next [round(penalty/600)] minutes" : ""]! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") + var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst alive you won't be able to re-enter this round [penalty ? "or play ghost roles [penalty != CANT_REENTER_ROUND ? "until the round is over" : "for the next [DisplayTimeText(penalty)]"]" : ""]! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") if(response != "Ghost") return //didn't want to ghost after-all if(istype(loc, /obj/machinery/cryopod)) @@ -317,16 +323,25 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(SEND_SIGNAL(src, COMSIG_MOB_GHOSTIZE, FALSE, FALSE) & COMPONENT_BLOCK_GHOSTING) return - var/penalty = CONFIG_GET(number/suicide_reenter_round_timer) - var/roundstart_quit_limit = CONFIG_GET(number/roundstart_suicide_time_limit) + var/penalty = CONFIG_GET(number/suicide_reenter_round_timer) MINUTES + var/roundstart_quit_limit = CONFIG_GET(number/roundstart_suicide_time_limit) MINUTES if(world.time < roundstart_quit_limit) penalty += roundstart_quit_limit - world.time + if(penalty + world.realtime - SSshuttle.realtimeofstart > SSshuttle.auto_call + SSshuttle.emergencyCallTime + SSshuttle.emergencyDockTime + SSshuttle.emergencyEscapeTime) + penalty = CANT_REENTER_ROUND - var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst alive you won't be able to re-enter this round [penalty ? "or play ghost roles for the next [round(penalty/600)] minutes" : ""]! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") + var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst alive you won't be able to re-enter this round [penalty ? "or play ghost roles [penalty != CANT_REENTER_ROUND ? "until the round is over" : "for the next [DisplayTimeText(penalty)]"]" : ""]! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") if(response != "Ghost") return ghostize(0, penalize = TRUE) +/mob/dead/observer/proc/can_reenter_round(silent = FALSE) + if(reenter_round_timeout != CANT_REENTER_ROUND && reenter_round_timeout <= world.realtime) + return TRUE + if(!silent) + to_chat(src, "You are unable to reenter the round[reenter_round_timeout != CANT_REENTER_ROUND ? " yet. Your ghost role blacklist will expire in [DisplayTimeText(reenter_round_timeout - world.realtime)]" : ""].") + return FALSE + /mob/dead/observer/Move(NewLoc, direct) if(updatedir) setDir(direct)//only update dir if we actually need it, so overlays won't spin on base sprites that don't have directions of their own @@ -613,6 +628,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp set name = "Possess!" set desc= "Take over the body of a mindless creature!" + if(reenter_round_timeout > world.realtime) + to_chat(src, "You are unable to re-enter the round yet. Your ghost role blacklist will expire in [DisplayTimeText(reenter_round_timeout - world.realtime)].") + return FALSE + var/list/possessible = list() for(var/mob/living/L in GLOB.alive_mob_list) if(istype(L,/mob/living/carbon/human/dummy) || !get_turf(L)) //Haha no. @@ -633,10 +652,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp to_chat(src, "This isn't really a creature, now is it!") return 0 - if(reenter_round_timeout > world.realtime) - to_chat(src, "You are unable to re-enter the round yet. Your ghost role blacklist will expire in [round((reenter_round_timeout - world.realtime)/600)] minutes.") - return FALSE - if(can_reenter_corpse && mind && mind.current) if(alert(src, "Your soul is still tied to your former life as [mind.current.name], if you go forward there is no going back to that life. Are you sure you wish to continue?", "Move On", "Yes", "No") == "No") return 0 @@ -881,3 +896,5 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp spawners_menu = new(src) spawners_menu.ui_interact(src) + +#undef CANT_REENTER_ROUND \ No newline at end of file diff --git a/code/modules/mob/living/brain/posibrain.dm b/code/modules/mob/living/brain/posibrain.dm index e52d53dca2..77af8d07d8 100644 --- a/code/modules/mob/living/brain/posibrain.dm +++ b/code/modules/mob/living/brain/posibrain.dm @@ -36,7 +36,7 @@ GLOBAL_VAR(posibrain_notify_cooldown) /obj/item/mmi/posibrain/proc/ping_ghosts(msg, newlymade) if(newlymade || GLOB.posibrain_notify_cooldown <= world.time) - notify_ghosts("[name] [msg] in [get_area(src)]!", ghost_sound = !newlymade ? 'sound/misc/server-ready.ogg':null, enter_link = "(Click to enter)", source = src, action = NOTIFY_ATTACK, flashwindow = FALSE, ignore_key = POLL_IGNORE_POSIBRAIN) + notify_ghosts("[name] [msg] in [get_area(src)]!", ghost_sound = !newlymade ? 'sound/misc/server-ready.ogg':null, enter_link = "(Click to enter)", source = src, action = NOTIFY_ATTACK, flashwindow = FALSE, ignore_key = POLL_IGNORE_POSIBRAIN, ignore_dnr_observers = TRUE) if(!newlymade) GLOB.posibrain_notify_cooldown = world.time + askDelay @@ -88,9 +88,8 @@ GLOBAL_VAR(posibrain_notify_cooldown) if(isobserver(user)) var/mob/dead/observer/O = user - if(O.reenter_round_timeout > world.realtime) - to_chat(user, "You are unable to reenter the round yet. Your ghost role blacklist will expire in [round((O.reenter_round_timeout - world.realtime)/600)] minutes.") - return + if(!O.can_reenter_round()) + return FALSE var/posi_ask = alert("Become a [name]? (Warning, You can no longer be cloned, and all past lives will be forgotten!)","Are you positive?","Yes","No") if(posi_ask == "No" || QDELETED(src)) diff --git a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm index 7ac718ee6f..948be53abc 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm @@ -21,7 +21,7 @@ . = ..() var/area/A = get_area(src) if(A) - notify_ghosts("A drone shell has been created in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_key = POLL_IGNORE_DRONE) + notify_ghosts("A drone shell has been created in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_key = POLL_IGNORE_DRONE, ignore_dnr_observers = TRUE) GLOB.poi_list |= src if(isnull(possible_seasonal_hats)) build_seasonal_hats() @@ -49,9 +49,8 @@ if(user.client.player_age < DRONE_MINIMUM_AGE) to_chat(user, "You're too new to play as a drone! Please try again in [DRONE_MINIMUM_AGE - user.client.player_age] days.") return - if(user.reenter_round_timeout > world.realtime) - to_chat(user, "You are unable to reenter the round yet. Your ghost role blacklist will expire in [round((user.reenter_round_timeout - world.realtime)/600)] minutes.") - return + if(!user.can_reenter_round()) + return FALSE if(!SSticker.mode) to_chat(user, "Can't become a drone before the game has started.") return diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index afe49e82dc..c780dd1e96 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -83,20 +83,19 @@ /mob/living/simple_animal/hostile/poison/giant_spider/proc/humanize_spider(mob/user) if(key || !playable_spider || stat)//Someone is in it, it's dead, or the fun police are shutting it down - return 0 + return FALSE if(isobserver(user)) var/mob/dead/observer/O = user - if(O.reenter_round_timeout > world.realtime) - to_chat(O, "You are unable to reenter the round yet. Your ghost role blacklist will expire in [round((O.reenter_round_timeout - world.realtime)/600)] minutes.") - return + if(!O.can_reenter_round()) + return FALSE var/spider_ask = alert("Become a spider?", "Are you australian?", "Yes", "No") if(spider_ask == "No" || !src || QDELETED(src)) - return 1 + return TRUE if(key) to_chat(user, "Someone else already took this spider.") - return 1 + return TRUE user.transfer_ckey(src, FALSE) - return 1 + return TRUE //nursemaids - these create webs and eggs /mob/living/simple_animal/hostile/poison/giant_spider/nurse diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index da8033205a..f45048632f 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -575,16 +575,15 @@ Difficulty: Very Hard if(..() && !ready_to_deploy) GLOB.poi_list |= src ready_to_deploy = TRUE - notify_ghosts("An anomalous crystal has been activated in [get_area(src)]! This crystal can always be used by ghosts hereafter.", enter_link = "(Click to enter)", ghost_sound = 'sound/effects/ghost2.ogg', source = src, action = NOTIFY_ATTACK) + notify_ghosts("An anomalous crystal has been activated in [get_area(src)]! This crystal can always be used by ghosts hereafter.", enter_link = "(Click to enter)", ghost_sound = 'sound/effects/ghost2.ogg', source = src, action = NOTIFY_ATTACK, ignore_dnr_observers = TRUE) /obj/machinery/anomalous_crystal/helpers/attack_ghost(mob/dead/observer/user) . = ..() if(.) return if(ready_to_deploy) - if(user.reenter_round_timeout > world.realtime) - to_chat(user, "You are unable to reenter the round yet. Your ghost role blacklist will expire in [round((user.reenter_round_timeout - world.realtime)/600)] minutes.") - return + if(!user.can_reenter_round()) + return FALSE var/be_helper = alert("Become a Lightgeist? (Warning, You can no longer be cloned!)",,"Yes","No") if(be_helper == "Yes" && !QDELETED(src) && isobserver(user)) var/mob/living/simple_animal/hostile/lightgeist/W = new /mob/living/simple_animal/hostile/lightgeist(get_turf(loc)) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 5519c9be95..c6c6cf3c09 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -352,12 +352,12 @@ It's fairly easy to fix if dealing with single letters but not so much with comp /mob/proc/reagent_check(datum/reagent/R) // utilized in the species code return 1 -/proc/notify_ghosts(var/message, var/ghost_sound = null, var/enter_link = null, var/atom/source = null, var/mutable_appearance/alert_overlay = null, var/action = NOTIFY_JUMP, flashwindow = TRUE, ignore_mapload = TRUE, ignore_key) //Easy notification of ghosts. +/proc/notify_ghosts(message, ghost_sound, enter_link, atom/source, mutable_appearance/alert_overlay, action = NOTIFY_JUMP, flashwindow = TRUE, ignore_mapload = TRUE, ignore_key, ignore_dnr_observers = FALSE) //Easy notification of ghosts. if(ignore_mapload && SSatoms.initialized != INITIALIZATION_INNEW_REGULAR) //don't notify for objects created during a map load return for(var/mob/dead/observer/O in GLOB.player_list) if(O.client) - if (ignore_key && O.ckey in GLOB.poll_ignore[ignore_key]) + if ((ignore_key && (O.ckey in GLOB.poll_ignore[ignore_key])) || (ignore_dnr_observers && !O.can_reenter_round(TRUE))) continue to_chat(O, "[message][(enter_link) ? " [enter_link]" : ""]") if(ghost_sound) diff --git a/modular_citadel/code/modules/mob/living/simple_animal/banana_spider.dm b/modular_citadel/code/modules/mob/living/simple_animal/banana_spider.dm index fdc271a158..b177687ab2 100644 --- a/modular_citadel/code/modules/mob/living/simple_animal/banana_spider.dm +++ b/modular_citadel/code/modules/mob/living/simple_animal/banana_spider.dm @@ -83,7 +83,7 @@ . = ..() var/area/A = get_area(src) if(A) - notify_ghosts("A banana spider has been created in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE) + notify_ghosts("A banana spider has been created in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_dnr_observers = TRUE) /mob/living/simple_animal/banana_spider/attack_ghost(mob/user) if(key) //please stop using src. without a good reason. @@ -91,12 +91,19 @@ if(CONFIG_GET(flag/use_age_restriction_for_jobs)) if(!isnum(user.client.player_age)) return + if(isobserver(user)) + var/mob/dead/observer/O = user + if(!O.can_reenter_round()) + return if(!SSticker.mode) to_chat(user, "Can't become a banana spider before the game has started.") return var/be_spider = alert("Become a banana spider? (Warning, You can no longer be cloned!)",,"Yes","No") if(be_spider == "No" || QDELETED(src) || !isobserver(user)) return + if(key) + to_chat(user, "Someone else already took this banana spider.") + return sentience_act() user.transfer_ckey(src, FALSE) density = TRUE From 7e8101abc3a1ff62d3cfcd1197be9c8b129f13e2 Mon Sep 17 00:00:00 2001 From: MrJWhit <48370570+MrJWhit@users.noreply.github.com> Date: Sun, 20 Oct 2019 03:30:18 -0400 Subject: [PATCH 007/144] Changes brain damage lines Adds the noise emotes, as well as makes the brain damage not lean towards OOC in IC language. --- strings/traumas.json | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/strings/traumas.json b/strings/traumas.json index 45e31f2367..c487926ace 100644 --- a/strings/traumas.json +++ b/strings/traumas.json @@ -70,7 +70,6 @@ "NO PRED CAN eVER CATCH MI", "SCIENCE GIB SHINK RAY PLS", "KILL PUNPUN 4 FUN xDD", - "ooc wow rly?", "i play @pick(roles) to only ORDER not DO", "CRAGO ORDER @pick(cargo) PLS", "erp?", @@ -84,18 +83,15 @@ "LINCH VIRO", "VIRO GIB SuPR VIrUS!!", "Ai plai vxtest2!", - "ahelp kan i b pick@(s_roles)???", ";taitor trie to make meh malk/?!1!!", ";ENGIE TATOR HE SET UP SINGULO!!!11", "WHEN NAGAS ADdED?/?", "SINDYIE ON SAtIONS GiB gUNS PLISE", "CcLOWN IV SlIPPING MI, SEc t BAR@", - "ahelp iT's RP vALiDZ!", "HYDROBONIX PLS WEED PLIESe PLIsE BLAzE IT1!!!", "HALP GOLIATH TENETCAL RAPPPP!!!!111", "DudSE it'S 4:20 LmAO BLAZZ IT xDDDDD", - "ahelp DUDE I JUT LOST MY JOBB!!", - "looc dude rly", + "dude rly", "pray can i heff spells", "aI state dem1!", "SINGULO eNGINE 2 DANGER, SOLARS PLS!", @@ -112,15 +108,13 @@ "HOW DO i VORE", "HOW DO i HAV SEX", "@pick(semicolon)how do u cum", - "@pick(semicolon)ahelp how do u use dildo", + "@pick(semicolon)how do u use dildo", ";AI LAW 3 OPEN THIS.", - "ahelp hos pwrgamre they have 24 inch dick", ";KERPTAN IS A KERNDUM", "@pick(semicolon)RESEARCH NANITES FIRST", "@pick(semicolon)how use comms?????????", "@pick(semicolon)im SICK of ths fuckign humans runin g my furry server", "@pick(semicolon)ai ROUGE", - "ahelp want a big titty @pick(create_nouns) gf to deepthroat my pp", "@pick(semicolon)CHEMISST MAKE HEXACROCON OR REPORT", "@pick(semicolon)drone 765 law 2 state LAWS NOW", "@pick(semicolon)SM ROGUE", @@ -128,13 +122,15 @@ "@pick(semicolon)lING DORMS i hear Suking noises!!!", "@pick(semicolon)@pick(roles) tator they have @pick(mutations)!!", "@pick(semicolon)aooc how do i steel @pick(cargo)?", - "@pick(semicolon)how do i play", - "ahelp help security powergaming with mindshields???", ";,g absorbing @pick(roles)", ";chemist can u @pick(create_verbs) holy @pick(mellens) for @pick(s_roles)???!!", "@pick(semicolon) LIZZARRD SPEAKIGN IN EVIL BULL LANGUAGE SCI!!", "@pick(semicolon)POST REBOOT MESSAGE LOLOL FUCK FUCK FUCK YOU", "@pick(semicolon)so, i was trying to talk to someone on rp today, and then a mime walks up and pies them in the face along with some other prankster--i thought that mimes and clowns are supposed to be hired to entertain not to be a nuisance, and that if entertainment comes at someone elses expense then it's not supposed to be done. is that enough to like submit a player complaint or some shit or am i just being petty?" + "@pick(semicolon)*nya", + "@pick(semicolon)*awoo", + "@pick(semicolon)*merp" + "@pick(semicolon)*weh" ], "mutations": [ From 6a73abfe32da5c191cd72743e1b9fe8880b8e930 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Sun, 20 Oct 2019 23:52:06 +0300 Subject: [PATCH 008/144] Adds ASSU suit+helmet and loadout stuff Also adds newlines reeeeeeeeeeee --- .../code/modules/client/loadout/_service.dm | 16 +++++++++++++++- .../code/modules/clothing/head/head.dm | 11 ++++++++++- .../code/modules/clothing/suits/suits.dm | 15 ++++++++++++++- modular_citadel/icons/mob/clothing/assu.dmi | Bin 0 -> 1078 bytes modular_citadel/icons/obj/clothing/assu.dmi | Bin 0 -> 593 bytes 5 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 modular_citadel/icons/mob/clothing/assu.dmi create mode 100644 modular_citadel/icons/obj/clothing/assu.dmi diff --git a/modular_citadel/code/modules/client/loadout/_service.dm b/modular_citadel/code/modules/client/loadout/_service.dm index 062e22f966..7872ddcf99 100644 --- a/modular_citadel/code/modules/client/loadout/_service.dm +++ b/modular_citadel/code/modules/client/loadout/_service.dm @@ -4,6 +4,20 @@ path = /obj/item/clothing/under/color/grey restricted_roles = list("Assistant") +/datum/gear/neetsuit + name = "ASSU suit" + category = SLOT_WEAR_SUIT + path = /obj/item/clothing/suit/assu_suit + restricted_roles = list("Assistant") + cost = 2 + +/datum/gear/neethelm + name = "ASSU helmet" + category = SLOT_HEAD + path = /obj/item/clothing/head/assu_helmet + restricted_roles = list("Assistant") + cost = 2 + /datum/gear/plushvar name = "Ratvar Plushie" category = SLOT_IN_BACKPACK @@ -16,4 +30,4 @@ category = SLOT_IN_BACKPACK path = /obj/item/toy/plush/narplush cost = 5 - restricted_roles = list("Chaplain") \ No newline at end of file + restricted_roles = list("Chaplain") diff --git a/modular_citadel/code/modules/clothing/head/head.dm b/modular_citadel/code/modules/clothing/head/head.dm index 7656766053..e15583be2c 100644 --- a/modular_citadel/code/modules/clothing/head/head.dm +++ b/modular_citadel/code/modules/clothing/head/head.dm @@ -17,4 +17,13 @@ //The "pocket" for the M1 helmet so you can tuck things into the elastic band /datum/component/storage/concrete/pockets/tiny/spacenam - attack_hand_interact = TRUE //So you can actually see what you stuff in there \ No newline at end of file + attack_hand_interact = TRUE //So you can actually see what you stuff in there + +/obj/item/clothing/head/assu_helmet + name = "ASSU helmet" + icon = 'modular_citadel/icons/obj/clothing/assu.dmi' + alternate_worn_icon = 'modular_citadel/icons/mob/clothing/assu.dmi' + icon_state = "assu_helmet" + item_state = "assu_helmet" + desc = "A cheap replica of old riot helmet without visor. It has \"A.S.S.U.\" written on the front." + flags_inv = HIDEHAIR diff --git a/modular_citadel/code/modules/clothing/suits/suits.dm b/modular_citadel/code/modules/clothing/suits/suits.dm index 5cce40ad09..0098386929 100644 --- a/modular_citadel/code/modules/clothing/suits/suits.dm +++ b/modular_citadel/code/modules/clothing/suits/suits.dm @@ -40,4 +40,17 @@ body_parts_covered = CHEST resistance_flags = NONE mutantrace_variation = NO_MUTANTRACE_VARIATION - armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 5, "bio" = 0, "rad" = 0, "fire" = -5, "acid" = -15) //nylon sucks against acid \ No newline at end of file + armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 5, "bio" = 0, "rad" = 0, "fire" = -5, "acid" = -15) //nylon sucks against acid + +/obj/item/clothing/suit/assu_suit + name = "ASSU suit" + desc = "A cheap replica of old SWAT armor. On its back, it is written: \"Assistance Skipping Special Unit\"." + icon = 'modular_citadel/icons/obj/clothing/assu.dmi' + alternate_worn_icon = 'modular_citadel/icons/mob/clothing/assu.dmi' + icon_state = "assu_suit" + item_state = "assu_suit" + blood_overlay_type = "armor" + body_parts_covered = CHEST|GROIN|ARMS|LEGS + flags_inv = HIDEJUMPSUIT + resistance_flags = NONE + mutantrace_variation = NO_MUTANTRACE_VARIATION diff --git a/modular_citadel/icons/mob/clothing/assu.dmi b/modular_citadel/icons/mob/clothing/assu.dmi new file mode 100644 index 0000000000000000000000000000000000000000..2592442dc5e0dae1f493356e5fefb8a795cfa7d0 GIT binary patch literal 1078 zcmV-61j+k}P)SXe+nKqMn0 zBO@ao9v&PV9632TfZbD)00001bW%=J06^y0W&i*Hc6wA;bVOxyV{&P5bZKvH004NL zQ&w6*pqEe7;XSijyd%6L^Gj_`VUCd=~-zICc_v8es^}C0p5j=M#1tSkExl|L`t2cLBl zS+r=;qD6}q{VvUY!SLoM?&bgd{KWHuF&BWZH@B3AW2wti?mV*=+I${L7Y)erZJb zK8XTE33;AFDWLe8F!@=Q5x!5ds;9P zE`0#pe#l8W?*E}6{~iDy=5p%*IQ{7UZaKNH)035qq<#Yj>-4TKT;G|r$G zT6aSrpu=E|0Np>^{O4XHz|?f1EizkksZxOJg&x=sJ`wa$OU$ac;HZIM-f0R09wklfeXIRF3v07*qoM6N<$g2F-22LJ#7 literal 0 HcmV?d00001 diff --git a/modular_citadel/icons/obj/clothing/assu.dmi b/modular_citadel/icons/obj/clothing/assu.dmi new file mode 100644 index 0000000000000000000000000000000000000000..63788a590d55d39b4a2b907cd90e730b8746ea20 GIT binary patch literal 593 zcmV-X0gwwM|Nl=`T0B5N6ciLXIyxI0 z8%Re-9UUFr-Q5=#7Znv1A0Q+kAR9+ZOB@^=K}Sk5F(@@PH7zSECMG5xo*Qrg0004W zQchCV=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ> zRWQ*r;NmRLOex6#a*U0*I5Sc+(=$pSoZ^zil2jm5DY3Y?G(ICWCpWc3iHkEOv#1y- zYRJWzR+N~V3SpzFEiTQ(sZv?N)z1a&3;_QkDIU@M>OnGG#Gi~oh)V{5o;MBxK;vaa2YRK7uW#+*lB{Tkf>JR6`BTs6Rk?NKsPqd>ALL-+yv+cz$_ud z;C2okxIHdQWH$()zYTM4JqOS$EKm#|&kWpmAo|1%2K6v-pMd)g(651>1IjAJ_-R%0 z|KU%7I}u|DUm?WE_6xBF*aJGzK?KwtKn%-g Date: Mon, 21 Oct 2019 01:04:56 +0300 Subject: [PATCH 009/144] Digi variant added --- modular_citadel/icons/mob/suit_digi.dmi | Bin 376073 -> 378019 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/modular_citadel/icons/mob/suit_digi.dmi b/modular_citadel/icons/mob/suit_digi.dmi index eba761ff793e98dbce1ac15840c342c44277ca66..8e8b2bd7592b5eba60d3d514e6484b52ab721f4b 100644 GIT binary patch delta 23209 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 delta 21249 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 From 6fb205c17bd4ce3b09fdbdb319a1ceaaef6b2afb Mon Sep 17 00:00:00 2001 From: MrJWhit <48370570+MrJWhit@users.noreply.github.com> Date: Sun, 20 Oct 2019 22:17:50 -0400 Subject: [PATCH 010/144] Update traumas.json --- strings/traumas.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/strings/traumas.json b/strings/traumas.json index c487926ace..83a186e2cc 100644 --- a/strings/traumas.json +++ b/strings/traumas.json @@ -129,7 +129,7 @@ "@pick(semicolon)so, i was trying to talk to someone on rp today, and then a mime walks up and pies them in the face along with some other prankster--i thought that mimes and clowns are supposed to be hired to entertain not to be a nuisance, and that if entertainment comes at someone elses expense then it's not supposed to be done. is that enough to like submit a player complaint or some shit or am i just being petty?" "@pick(semicolon)*nya", "@pick(semicolon)*awoo", - "@pick(semicolon)*merp" + "@pick(semicolon)*merp", "@pick(semicolon)*weh" ], From 142144ebadcbca5049b10f752f865ab52d2386bb Mon Sep 17 00:00:00 2001 From: MrJWhit <48370570+MrJWhit@users.noreply.github.com> Date: Sun, 20 Oct 2019 23:31:35 -0400 Subject: [PATCH 011/144] Update traumas.json --- strings/traumas.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/strings/traumas.json b/strings/traumas.json index 83a186e2cc..211fb10f1f 100644 --- a/strings/traumas.json +++ b/strings/traumas.json @@ -126,7 +126,7 @@ ";chemist can u @pick(create_verbs) holy @pick(mellens) for @pick(s_roles)???!!", "@pick(semicolon) LIZZARRD SPEAKIGN IN EVIL BULL LANGUAGE SCI!!", "@pick(semicolon)POST REBOOT MESSAGE LOLOL FUCK FUCK FUCK YOU", - "@pick(semicolon)so, i was trying to talk to someone on rp today, and then a mime walks up and pies them in the face along with some other prankster--i thought that mimes and clowns are supposed to be hired to entertain not to be a nuisance, and that if entertainment comes at someone elses expense then it's not supposed to be done. is that enough to like submit a player complaint or some shit or am i just being petty?" + "@pick(semicolon)so, i was trying to talk to someone on rp today, and then a mime walks up and pies them in the face along with some other prankster--i thought that mimes and clowns are supposed to be hired to entertain not to be a nuisance, and that if entertainment comes at someone elses expense then it's not supposed to be done. is that enough to like submit a player complaint or some shit or am i just being petty?", "@pick(semicolon)*nya", "@pick(semicolon)*awoo", "@pick(semicolon)*merp", From 32d24761120d1c423429df1fa959733df7e7312d Mon Sep 17 00:00:00 2001 From: Anonymous Date: Mon, 21 Oct 2019 15:24:06 +0300 Subject: [PATCH 012/144] Moves stuff from modular, updates sprites Also, digitigrade variant is corrected, hopefully. --- code/modules/clothing/head/misc.dm | 7 +++++++ code/modules/clothing/suits/miscellaneous.dm | 11 +++++++++++ icons/mob/head.dmi | Bin 196059 -> 196696 bytes icons/mob/suit.dmi | Bin 357654 -> 359124 bytes icons/obj/clothing/hats.dmi | Bin 94330 -> 94681 bytes icons/obj/clothing/suits.dmi | Bin 124394 -> 124947 bytes .../code/modules/clothing/head/head.dm | 11 +---------- .../code/modules/clothing/suits/suits.dm | 15 +-------------- modular_citadel/icons/mob/clothing/assu.dmi | Bin 1078 -> 0 bytes modular_citadel/icons/mob/suit_digi.dmi | Bin 378019 -> 378075 bytes modular_citadel/icons/obj/clothing/assu.dmi | Bin 593 -> 0 bytes 11 files changed, 20 insertions(+), 24 deletions(-) delete mode 100644 modular_citadel/icons/mob/clothing/assu.dmi delete mode 100644 modular_citadel/icons/obj/clothing/assu.dmi diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 041f0ba012..e222d53218 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -362,3 +362,10 @@ if(prob(3)) message += pick(" Honh honh honh!"," Honh!"," Zut Alors!") speech_args[SPEECH_MESSAGE] = trim(message) + +/obj/item/clothing/head/assu_helmet + name = "ASSU helmet" + icon_state = "assu_helmet" + item_state = "assu_helmet" + desc = "A cheap replica of old riot helmet without visor. It has \"A.S.S.U.\" written on the front." + flags_inv = HIDEHAIR diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index bc885868c5..bfc644377b 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -633,3 +633,14 @@ flags_inv = HIDEGLOVES|HIDEEARS|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS|HEAD alternate_worn_layer = UNDER_HEAD_LAYER + +/obj/item/clothing/suit/assu_suit + name = "ASSU suit" + desc = "A cheap replica of old SWAT armor. On its back, it is written: \"Assistance Skipping Special Unit\"." + icon_state = "assu_suit" + item_state = "assu_suit" + blood_overlay_type = "armor" + body_parts_covered = CHEST|GROIN|ARMS|LEGS + flags_inv = HIDEJUMPSUIT + resistance_flags = NONE + mutantrace_variation = NO_MUTANTRACE_VARIATION diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 842562b007521587aea8fcda09120da20a5ad73a..e591ecca4dc15d10aa8e68cd8f30acf83fd7df80 100644 GIT binary patch delta 18882 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�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 YjDEer6Hf-)zXzG^>FVdQ&MBb@0KifSzyJUM delta 18134 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 KT-G@yGywpny~HK} diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index 38ac61f318e15a69a5790a1bf16578b373d4ef89..7d9e372282370c8059cfc115c5c08328d31d9f07 100644 GIT binary patch delta 23193 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 z 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 delta 21687 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 diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index c8a007041bf0dfe9c1627ea1725ba005dac50057..0037787a3d95ca30a2f75ddec91605e8f323a4be 100644 GIT binary patch delta 19632 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 Gp#K91q@M}^ diff --git a/modular_citadel/code/modules/clothing/head/head.dm b/modular_citadel/code/modules/clothing/head/head.dm index e15583be2c..7656766053 100644 --- a/modular_citadel/code/modules/clothing/head/head.dm +++ b/modular_citadel/code/modules/clothing/head/head.dm @@ -17,13 +17,4 @@ //The "pocket" for the M1 helmet so you can tuck things into the elastic band /datum/component/storage/concrete/pockets/tiny/spacenam - attack_hand_interact = TRUE //So you can actually see what you stuff in there - -/obj/item/clothing/head/assu_helmet - name = "ASSU helmet" - icon = 'modular_citadel/icons/obj/clothing/assu.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/clothing/assu.dmi' - icon_state = "assu_helmet" - item_state = "assu_helmet" - desc = "A cheap replica of old riot helmet without visor. It has \"A.S.S.U.\" written on the front." - flags_inv = HIDEHAIR + attack_hand_interact = TRUE //So you can actually see what you stuff in there \ No newline at end of file diff --git a/modular_citadel/code/modules/clothing/suits/suits.dm b/modular_citadel/code/modules/clothing/suits/suits.dm index 0098386929..5cce40ad09 100644 --- a/modular_citadel/code/modules/clothing/suits/suits.dm +++ b/modular_citadel/code/modules/clothing/suits/suits.dm @@ -40,17 +40,4 @@ body_parts_covered = CHEST resistance_flags = NONE mutantrace_variation = NO_MUTANTRACE_VARIATION - armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 5, "bio" = 0, "rad" = 0, "fire" = -5, "acid" = -15) //nylon sucks against acid - -/obj/item/clothing/suit/assu_suit - name = "ASSU suit" - desc = "A cheap replica of old SWAT armor. On its back, it is written: \"Assistance Skipping Special Unit\"." - icon = 'modular_citadel/icons/obj/clothing/assu.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/clothing/assu.dmi' - icon_state = "assu_suit" - item_state = "assu_suit" - blood_overlay_type = "armor" - body_parts_covered = CHEST|GROIN|ARMS|LEGS - flags_inv = HIDEJUMPSUIT - resistance_flags = NONE - mutantrace_variation = NO_MUTANTRACE_VARIATION + armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 5, "bio" = 0, "rad" = 0, "fire" = -5, "acid" = -15) //nylon sucks against acid \ No newline at end of file diff --git a/modular_citadel/icons/mob/clothing/assu.dmi b/modular_citadel/icons/mob/clothing/assu.dmi deleted file mode 100644 index 2592442dc5e0dae1f493356e5fefb8a795cfa7d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmV-61j+k}P)SXe+nKqMn0 zBO@ao9v&PV9632TfZbD)00001bW%=J06^y0W&i*Hc6wA;bVOxyV{&P5bZKvH004NL zQ&w6*pqEe7;XSijyd%6L^Gj_`VUCd=~-zICc_v8es^}C0p5j=M#1tSkExl|L`t2cLBl zS+r=;qD6}q{VvUY!SLoM?&bgd{KWHuF&BWZH@B3AW2wti?mV*=+I${L7Y)erZJb zK8XTE33;AFDWLe8F!@=Q5x!5ds;9P zE`0#pe#l8W?*E}6{~iDy=5p%*IQ{7UZaKNH)035qq<#Yj>-4TKT;G|r$G zT6aSrpu=E|0Np>^{O4XHz|?f1EizkksZxOJg&x=sJ`wa$OU$ac;HZIM-f0R09wklfeXIRF3v07*qoM6N<$g2F-22LJ#7 diff --git a/modular_citadel/icons/mob/suit_digi.dmi b/modular_citadel/icons/mob/suit_digi.dmi index 8e8b2bd7592b5eba60d3d514e6484b52ab721f4b..0b8ccf9786bc9f1d8f7ccbe72a4b54e2870b7750 100644 GIT binary patch delta 25158 zcmZ5{1z1%<*Y2T_?oMftl&=?6YUq?Agq$S+myrE{Y;amm*0M7=Z(CT?2P{Yd1?*JE*&zvl9gJF*_$q-I+=V zcWB~Y8QItQmFF5kEG)E!&8&!*JFsk2qsW&@`UGVuHbYsOYki%I!wLY3B>7Du#cQHh ziHmt{YyR-9i?x**)4UU}>ffpdG;Q%+?QLD}+Bs`|jwIW=y4;Qw^>N_avY~B5$3R&R z2izTa-?4k#aQ_hyVtqBfVtEY>6m)2`Haeznz5s8SHLVN~(SKF=eOcAoxMEKD{q6klb*4_^Ec4H? zyl-(>YIm_QtR)S8tPg<&!m*v!#d@Q$BiX;wzFH^xn>}`q9QCi&PYm6QjRyV$-`xKS z{CE)GxxGFw;&^zO$%(fdZ5bn8&0{4w zn-~D-n+^lNU1^HfU)}VRFkVvyy`amUA1-?@D`GZ7)pJ+j%NWS%fsBxvqTTRgLh$*L?u@RL<#aNW>-N~}YO^MVKO^4Gis55Y z#W;WL)>&0SW*&`b^jF0qn;43mn`nqnIzZS$6kj%!FvVdpk1vs{`}9M4)j>qYt|ob% z^DoQQ4`pH|$4|Iyf^Mwrl(lUanaHKPtm!SCzw`yOY;qt2&Ws1Nd_h2iY-T6nu$1w6 zY53gS+Wa}+tmW!Ob~IWNTxlyi(dhZK@cSRC*cB@gaaSwyY+`lYp&UPr%4@ZLKPM~W z)wF6JYEP#$Q?$Q08l`BX$aT>u()@X#^KdaCt6R7|+~AEwM53WRRhIUe=GUjZ>hN2y zSeW;jDMe{^%$}|(+V2KH8{MG)PY=;v%=5r&qTz(+Ny+WcUIwQZhR(X$<0Y7%hBav+ zqGVf9N!mN-b_*#qyQtAP)QThL2e_WOebcgWCy^d;^ysGnFeK5#JM3 z4ItW|4&kArH0kqi-Uqt=vq`ct>NpZ)cSC$@jhTe@LM$rQj#w8#z=r{{z<9%NVa_}` zh@J{O`pQn3Fl%tOM@~lw;qnS@jmaIg3vT`mbESHByDJmb&cDei7n3}L^cWXq#jAM5MB>sUR>Nls#61Gi(>T-ludmvzQM+|Gn!ndJlxvxj8&1MD4g z5o@j&)9MI!&AIuo&{CQDbi^|0kjo9Kw{Lr^?Elml#*LGIkf4^?_Zub;J2+n2R@A?H z-Qu53^;<5!Q|4ttHLW>d<*)eF+B0;EXumY)B!x8Z2z#pKhnII&#ETSED(md+VNwhP zXmk;};p(_@8v0SL(5p{4oa&L`wD^Yim(CI?FP$@4y18I{D6d)D#0#$8>3d>^a!Tj2 zG;REhQi>r^gV^U1s7Y(XVi^ZV!u0Hra|Nh)$|E>z+9I5MUivTrbR{<`g^H`Js9d1} z+Ck3;Lu-MFP?Q5X77`^noAGhnZpZc0JNxJTQxml|K`*-Xwb%j~R{W*iQ}x7s4JCXH z{F+CmZ7u3AMtSA3U^nxtHZGSqEg+x0ONV+uB=qaD2?Bfd>`&jwmOaskmhvyS#XS+@1?@& zRIjU=Ra8(do#Z(F zPAH%2#{?IeObr=%s*lyIO?6Xo;KJqjETAvu0e#EMMkr)4a?n7dx(6F_S%_`&1T9fG1oeRIhlfU#$ zovwZOvo%gT7pC7^Q(1+m0{vE$!ONe+l0w;`jr0Oa-m3*SUvZsy3B_U>B=f6K=rb$R zjC>;hmiNMAxTa*Zy3raUh}kpoA!C7lZx9%cq_#L|Oi$&Ur$^1ONQ{9y^T&&SN>l8^ zW%rliJgDXlSa!{+7tY@~@?)`(UU)7zlJL(9$QG=3zdeeGiVd9;-G4?LEUUa7f%T@( z{!91qey`U&rCF0_@1l)@l@erfZVsM>m5h>i1%peyJaH=gr%%r)9gALrYOMFCYOSpr zL*7;Z{h5~B-#XV!SH>7X9mC*pU;@aii-^)iT5GyqTwPe$=cjrO`J{!Mq>_WGR4$lS zC!H9SstG5Uc+(MBtg>FS_ZXE2JJK&NFYkVL!|~JR<#@WGF^0)te<h&B*{i{l1SM^m*dt_sxVlJ;u*ozPzt1be~2oR!)X)^r9%O!Q0U) zUk$;ukv7sX(xbLAO%wiR#?whiP_t0d_N2hG!oYQG@Pe@!-C437$2!O=EAz)~VSd?P z&MC~&lJ#>|0xG!WZF|u_by*YQJ-lQqIrAT7_HWNwj$F3)abADv7m&B#zDFHvj#^Z2Ut@v)( zU_HZ-!c(+{CB_-FYzbwX-4*rnKllW6Xu{nakQ7%GF7eBjZNP_HT(^7W`nRksmFEwu zaWWu;ImRcRpuy}mof+h&}dXbtTk#0QcljE!ySWapn+?B z7O{qMDxgx5M2l&!)TEYo{L;^hGh7bFG%uc*n;X|)IaIi@kon>&StAjqQX{Yg>CKv_uY>t;7-Ef_hkV9-Mv-%hCJ6 z19tcOJujO8ahLzUw^S0hoHon1I*{&OriqQChk}k$F6?l43(MsueA)3iAovN(m0+!R z7R~E9ryD*nfAP<5#?019K}7}Qmr%z6p`7%_o>AKHJTn&L2eBukg1}Z_Y-|Sq0}zg=(4TipjvnS*@r&*gB8L1n;WOx46Q;BDH`-WTCiVvFRiC5S?ud3;yuV=E}Y2qD)WVK#R zvOw=gn|819g0X)!G>bU3yw*X+)|QnD2gf~YcDcG7xxuSvV;zrzBI;m-#DB?;g+%2J zkQ(i}xus1&xbU7A1PbTu!KG@NPnv;1hn5GLJv%Vjl1~(+0}wsm{UyS6eraXJC(VUK z;M_*~_}Qx1nv3A#FB&p6Quo^j0*dEb+?^DZuim=bcJosNa8;oO$`qiZGiu!~nH}1r zLTsB1l`9h}D=Uq-ZZx??2UAm1H!ce;sU|H^o3G{Z39IH7ffG6VcDuXt_W|~|=P)}D zWov7u&f1$*>$Q2}wW2Ryw5Qq04E-32zf50|=5kj;mtE>Y&QMJCeJA2u>he2YwP#Yf zx9LhKgeWp`vTGk*_6at}*y5iy`{xK(&mJzl>8 zxHjM#Oz$7j7A_tmP42m8=MX$R%J0@lnaHo-8Jm&?x0U*+Y4`I??*UbZn3mA_%U6#G z5I!K^r*$YN?**OdG7yxN=_RxQ5k_}8PEWX7q=25vsj4y%JfY%`dlH%`l@%=jCE zfBN4(4vfPCurj`V6SQqwl+@1>_BiJ`##VZz*oJMI<4uSw??B_uvnuRo!9nu4?M3HF z+1UZ@8E`1@_33HBsvEQEGsZMQ9FJzkg+TMKHNTbF)0vvv{*kwOhc@o(G4~$udgw4- zxbOXlckuDE#g^(tUvg>Ppmh0;op^DS<m!FN5CHN6u{&~D-1n*ZxqhtL3 zd`L-2Q7V+0+$x?#yUTTA1+GmDm`uVb^Hm+iy7U({ps$^nV|4fRjG?^m*xA_wSTFCg z=-v<-*nh*?7G}Gwm~wlBeNsCCj(c?V^uj81%6e`2H}9?vS>L{9y*&wFc!}%!2kpzS zU+vk6pZl7DM`J>@&I`5IyEkG{62>N~u*np`_O zh&i`^_|Pbs^YhtOifrD&6PG{Ej$Y8@lv{M;3QKr1exj~5cOkkjP62bb5;1qUBHOg@)DyV`sq7@>%kgE1Rp zBwk-#-0-NS&{CT=>(FQHznU$^44FH?2=rU4Bs6lxpFt#R{0m^Ml40+FTQ6h?)i)pG ze^bPj{?#|rM`Y@Ys|kFiPtGZmYFc-@2T95|!gdX1JL<;>DWIU3h$}4M)8UIR+a+}_ zM2fE}WJPjsQIs_`_sWD{?_W}CF3rr$_iVNj-!znsS^iR67^@usEQJ}bw9qJ%hFbg7p|zN&|*)`kn|I+HSLPycGG~4)@LK5 zq81hvAyLE*0`D8Z4cxh>V{gwM_f!1G*s!T|sb*eWTpUiG?v|3Bdkktv!GS9Ad*DQD zdaKWj$A1}5Oh!MQxJTxZCo8ARNtc}|#Z@F?1;N9h{_7nwly#1$>6F~G{ZJ}`cxZ27wo0XmB-%sErjRWG-dhR8qlhMcx9Md*?Tj1c?({-7cs?{R22 z^YR@X9aZfAh%b9JpXZwzLo4OaC}$2+iWEJ?`nfjPoWUJ1gI;c8x9`!Qsh+`_SSeG8 zBOY81I0eh$N_TBebg*}_b8x)Y)($F1nt(tlo?HCUsa{Gi_;%lc&`iPgjfT*kQ48Ew zcj;vbA9bkI-Y0kuqjEvln6;IFG^7Bx{!WceX>z=P1 zL@#HPi6&Pqaf_uz( z$SinHl6@kp@9i5p#;`(rZ&|pscEWe{D1(BD=|YrRu^QwGl}eKW3?dy9WKcG6FCv z#W*bW-oNH;l0ivf-J7^H@yl@4rdU*QlitWy82`?K8pG|;{yT_5=|Ks1$QIwCg(Xaw zty47grtqN8m~fw07E(rzcv*{+sIoS{C$6R7=75Fz^#1-g#Se~xY!3ta*+etOsEBh{ zshvVOiK6htxX7KZlfOtiXz#mu0J8r||Mvo$B%9=${hu{FWHAMOSY-cs;{O$mG)Kky z&lLS1$*_JNq_C$s`#%+^auyi~ptkV2=7oER6_V+K6cSmyt? zJF2qhDxxec1NCS;^;~Ja^iyeww}yQ*WB%`WF|-)jw@thM>B-Zcq;rF8S6+t%A>xwg z`6L$inSODfZ2LX1e%0Lboc}FGdhYs{3zCHFY$|`i-(RxJ_+z%gU9JWGJym$0^uHd+AU6SyB{~fDl#5~~Z%|4Cv`xNGeM?vF9lb0Nf zJs}mI-OD21!jPNuJ-}h96=mt069RQK_#}yh_VCGLQfoj#t)L0{*ry zEONG>`MgiUA|fJ%x!=3BDt>nYem>Zc*zX4<-VWC;el%hs!s59)v<*t1N#{y=3Kxk; z#3BGJyK5(Oo^8~mG!h(lD`iX9?+G9YE>!3UR3Yn| zTYKJr)K=1!h2xx<*M)IN^@y;=azPP%$hvTVFghYE721upS>Fe==hg z-|=O}5OKp5bb~*PbgFHhyk{9xc&Ui4^*EdQ+U2`5%qJOr2w{T)usBX~OBdgMUtSNp zhH~uELQH)B5I^1@wWIWR+{qaPCg$bE!(hI)MV9?o2xXY#(v;M};4**{6TNIKcDAWn zXSVc<)1b+Q6Ua4cA_#r82W?%)+8yhV({;=r@-3LWAf}+{ERVvEYZ`i3VU8h7Vt*D=Wd&Q4)}Q!W@rN zEe+pNF8(c(-r0Nbz?ZG;gX^wBC;TcTC^pS*--DkMAaDoRzoq>}RBRV+Ly&2N((D(doaMKNP`mO2j?d1u~ zSF}KQwcHGqv7ks9HfFG4h5Vmb3Q~wH`ki)~U{d@>CJ2 zya0{CW6rYuZP{*b15Dhg^&>ua=Ou<9cYA=oR1T`297EyPM3{c7A2`Dqd>-s1doNIU z+Szz@0kA^Y7>WwccKycfUj0LkRDJ=_i34ivBgaZ^PHN;Qx07{shKAB@tu19+|4RWb z3r&=f@psa9lpi3l3@rUT3aYf&u*Ks8j4SD%F~{?nFDS9I!6kSRCQLkRy!K_PyXAy~ zle0!yRW;geK7R;T5eVQVfVhC24B1uz$Xx@(KE(1R!N)3Z{H2iLk#|ZjfL#suw=bIS zK2DrmN8W#l%u_*01t3vr{_MXEwEQ5=m#3ud<0*Y!1dyb|wjq3C!uVvb$N7le$5n2B zjZ2TYq`do}9GzznqhM+Atb zSWhuztE3cFGA<~nQL+miP+iVc*d5Oq&b$AG&gm&6pz3+t@CjE;%2FV`V|R@}h#aET zc3HpA+kEIV(v<=}pmf|crV7n7rV^%U)IdY3Nu7MOZ0ZD;KnOs($MqhAM-8PRK~}Nu za{fo3UocO?<6$N8H@EP1gK%SK$CRVxwRYYtNH^d!^sZwUUh#?^5|B>VMFGW-n0be_U28w@!+1>9HHwMKV(kl3&?MZeGx%g;v?^;);xdVqp{nkTiL4 zqMu*%Z6=HSMhZP?l5NwiRo1Ts_<;(mL7MI2G&+I|S#@XQWDA@mD!A7q%?|7=aCx%V1+DHF z+NN921s`IszSX=l!m8NF77`H7{q*lQ1?0!r*eg4`ii$2ap-Of0z><=Z(&c3%i1hU# zngns=0k=_eJu2jz^V;#3t|cwr&eLAZ0JPvxnzaY-sZ!Zzn+yPA&Sxiv{xYqL(A-1Y z%pgYjpMR9ze!`4o=BIkidlnHB)zk0y8yWhUJMlGdL{wxrSPwQck)u`87Cs9ek%H*p ztSRry?a&6`sb>`59lOX6^vjv*$5yw8T8)?C;#GL8SmuAeYqcL9%KePf6(5BR(bb=S z&cuX5PM(~Y1SAC=*q6a?@5_~{-tS_N&5z?1OBsAi-_y*(Po%m#hPV!NCux!HSnbxSskfW(6QX%1dx;$j>pZGf+oz;3{)el-M(rnO8Q+kY zI!r115F4FwDfA0G&rbK2v`ptesG&wp`rcm6Xd*%MY79#rce9-9{q8+=OzT!U{o4Ly zId}F{zNwmpoF10t(R_Wzz;C+hfA0wCZv7{)+$Pgz!d!m{?FgfyyICO>+USQVAQQUwtmJ?lYdEbkbp0Xo{-fG&FlBvZ#nHBSFSpC zOfmetxJ){Sff8aNhTB`yvjx}mjDBXYE1zT1#dTf70YN}6Oj9qtWjpUU4-m9l?*h;q zyBSwYL)A9WT8wbo#&9xYf>)f-hFn0;$pVg3oQj*H7qobXI_v({WqdZU%H}1PyZgF= zK53_|qnyk;N^k_=G*>b`8xI6GUb#Eil0bg$q944R zo@O93qM(9pJ(>jpNaF>&!Z`BVh&=zbx9{Iu7uN4nnc8U^xZ`C0ZoFk~y9-mu=2Z*t zEWrP&>}>PT;Ysy5bTFdF&lHBWu2w`qH^A=CpM~T$fD}^C;>A5ZJ@ZLN{s;8(K5E#{ z2y__+o-FO)D~Axv4#z{17vpaiKU5EhuN_stUFWnm)vPnv^VlEn-tSr{l@|})fhBbDBa}>XSj!e%Du&hbGQi1 zL(^hW$J1vLKwqK>bQDZnp7fqtP4v8o&-|P3N75F}if&L>>odg6kKOMaXWa`-$8xA) z{=DjB1-BLr8MlAgQ@cj>A@v5?yFdI?LK&HVe%&QmF4J9?EJ3Vj@~{=4xQWWvD-!lg zN0qIbf*4-S*z?mheT$3#VCWVNlp8YZP~y0I6fAFatEyv1#Ki@hI73??(}z#r`@kwz zFJWkY6(+Mzmen07d+CjYfiW&yC)90apR8v3Ltx>ov*1~kx1Nz~r{;^4NLm;~kH# zK>DjW{>;VG5gpvk&7G`f7KW0E3Ah9~Tl2?TW|L0`GOsUAYEL-f+WVLy^>DgezyTr2 zIqQcrK*^a0-(F(gyd5H0?|uv}w9iy?T&N!nxGO~!zg!ea|Btojx&`)|+{&HpyTgpb z5aQwaS*Hhwv2;{{+6B@+K4@S>91$BS-_iMO@dtE)YSZr#@!=sttzf5w&5pmw7HD-#{?sCJB}eFPLPja7Dxwba zBpl>OJxv~+9CwL`#6XtDJE;%G3!>EHI5N($#W@Yn-jbH5!t8!)*R6TFU&~*=^tbu< zV%W)&`nvRKT6t85h~67)L>!#(qCHLO8t?tuFg(mOK;J19c1TI_DL7c$Px}ZjC`Jl2e2b<=KH^SNh=O_qCU z2&s_??(vE{9G1s{L@AUx6$6wZA3tcGw zRv%tbRqGk#GYbJl+o>D#?|&u8;Lv(H$&Q*@<^!|TL%vi+ym_TZ^y zG%1Ym+Pl>Y?$S<{kh4jn`0YJ7sO7@vXI+dF@G#>J0Dx0gammybhJ-^BA4jSM3&FLe*_*~78!uj? zjoR1~O+!E+I6&I`5V2dtlJIP6{QP8)GYS6n(%s?XqewQFaIi#+&#g@xkylaQgNVfA z@EZeexC#mT4M4~H$}Z;t5>h4cnnC3VwLPFQ z6FM%YiC1vTD89E5^Br%)b=t7z+XUtv=w4SFHjNzmfHqo|f`X#nyf4fo*7ZJ;{+BVl zI}pi0(uZ7X$7bb7Afs6**vRHF}s7!MeNA_ka(k z0NV;P**Xl@`o~y!iJ^)&EA!8}A0;tC|vUOAVmL^%G#-ulBYPu&>WcudZ*j9<%$UDCv|{NpwW z7Fim8GEJbjG-=PDU)UFexlu3)^bc-4oV)%cdK)dXZ~uVNqNjrf5-#j~kaa5v`pAdFd~H^I zGQ1x{c=ThcICX>IKqa^=E}p_U?vH}=cOfc7HO*# zlBQVZa=Das;r9;mRuh3crg#&e!oiMko3p)g>1G%5!_WlGLEpJU4X;4C$k}$g>=`jh z4&~+a&)eU$&_9PZ$d_ z!z;>Sb*e4zG7rR2R7DoI=tM=wck&+g_jAQIf!-}`ZS62$(#5RK(>xz}z7_fYmK}0nwas>z|+j-FFuyeQDNwnGV0}VwAy!fLgX^T7#pYrNzVlnGQ6sw$9F! zXR!JCd1-h$qq2VA6ZEADQzghl8d2KL^LupuJJF?4)_2A&mp{{l!vPN#G($w30}@69 zzv*FerN2Rde5Mq=|1>vQ;n*bm@!g7PNstUBI{8&pQ&;n zNUzu(?(z#n60htB4>8Nn5FpNq!r1s;MM@4K6rUP#T{1X32hC!W0(E~zbTD2i$!48l zfbbJn^Z<)!pUe^2-gr(Vh${IyV;VZ;CQZAc&EEQS-)ag=#Bn9Er*+o%l(6`DE2hz~ zr1_ijPO;(jignuoU`#bV)Rnf~s4(Gj=qr_Y*WqOJXV zAA^`2)A>2XBKO(I?>2sm7;sa0+b=eIZkTFCi?bGDw_vn&` z1CF^ak6ofshTgjT<}4isMxRqNV}i*cN1L^fzxZO=mMi980=5D`%i|iY*q#bJMc8xa zU0|5tZ-^}*1-bm3#ORybEEZf`QpO<0L3pvd%De5)x;4mhq2pifpCXv#?4Q;4fo09h zdhRpO)P5^-<>u-tpXD!)pF3YE@WGhfy!_c#g{Y!h$egsSqbN=9NX7=8k)5J2@xIwK z{ukdZzT*i1#?XaKTN8v&Gb3?@20@j0P!!%7GB#~KneTcOfXqT72tV^2-;oWvQ+cgo zFTN6VSb&TwAi-OTN+V`>F(-94ww(TfOAX*}R4Nrk(k9;`Ugm}|I*cExg5cxG*zIK? zepL{!muH0F+$iOxEQ6#Z$=uw!>SO3624uqp1?9alS5jCJZa~*0wCi5=>Q9cLH^?rm zS{#VX8>WBU+$wn&!wL2gHJ&iO{`XICYG^5E>N5~qTDJJx*5Una*TDHn?Zi18==%xJ z-?PP=epb{IkN}O4Tq&30D^=^?^f~TbakH^FgS9kYkBjj*k61Cfb(6WVJb#zPG&hke zO78ZBFCkYH|9hE6@AjE;hRZ$CvZM&{%rvv5%E-;*niUxyuDUw9i&;<}7AJOWMt5Wv zR-PE4aJbH>ChDenXJi@K0GQ?h{2Bq1B}g@dyj|y1I@gqrYje0J*xWtnG&u;d6-|Y& z{tTp>$bjsL^C{>soH8dE+{x|}fc*2wO4G~$q+ko&c<#Ja{Xu%P&xVX_JKJxjIWmN< zas1g1Hl7>V4GsAI$^11VLmS|BhiM!bUYo%`I~Ulx_B~y41+5#M?ilEgBm@z;0pm5& z-Dt8CDYA1L+RZfoD^|Fh&2QUvaM^ec(hAdheO>B=&)%R!v5X~7l7La4;t{NbKi8?6 zbH`nj+Mk>RA-Mwk^=orq+OWGj3eXzDf*&t9#gEg?@j*;jE;osOHV-0Vdc2k{xn3QY z0lBTe>L{4`Q!fC>9=g`@(?BAkFbH+VQSMeRvqO17ye&!;J17ng0%zeV@JNnd(MeCg z`@nyn(7OHJuTJx=Q%F2^*!G8%glR+m7W`9#lhPBk%cAlq#r?~Cz;YBV6;2$_N&ElF zO;Ki=T$rxSt_#3vI}%0m&u9U66f6j<)p!MM0lvSSSQ~wzHakLGu=byMiH?wNE8D<6 z8zh!=8DiFzoQ$z=-+$a(E}089Z8c6vB1uEg0<|kb)VTWEeU3wo3i>I*_772OcSp1q znQExy0pEVa=4qa9Zzbufwp9{w|zdad?7l4PVYC_!?W9xA-je&okG>=XE*<+w@ zZSUH@7WeWwVl`~jIEPdQle~> zY5DZOpPYqHWM>HApg~`tC>Z$Ia^X8*6t)Nw0_I!VJT3#?L{tk1W@fi}%@z{9gC*Sr zLhU7=DjsKVy9ac}t@H0^Ks6bhy^Ve~b;7|c%3MSb?>!@NBR>GOLebszMz_$eZyH-%<>WZb-WuWVk&$8rJ}6h9AN>1u`=AOAh6Z_F>uu z-TJux^sSE!@b=`{A4Cxt*uirS3XQ|aI8^B9y|aPnr?}F7?hd)eJ zD5ZqmiLRo%Ncq=e2cQvXf<{V;cqE5Kzvjt9lruqHq>OBPiSFm@wSUR6n5`eNbHJ{;nqamv=Q)rWra;HlO32E*9*!qIxwOhT} zp6=e4ix1qcPXThr4BHDi(p7{G&?6)4RABe>9-@T6jWGP^b)|suZJ38)5zh7%g3@BZ zoCFR8MuxssU`dyz=djv`46#qAp@BYz)+MTR)xn}GxI+$vJ`6%2y|HU;{p+JJ%n4Jn z_yw2tvX4{hR-jDs`@GK!4LdZvv zvnqr=(;MLP<0>$TiUnEz-#N+Kd;xf0J^wY2YiDpncsxv*U*A>X5z^p<8sS*_h#lde zIe3Z{%E_4@9|W!1hKx;zM#o3bAj$ujfPW%o`!0r8G}SEw(Rt5u1lgw3@|p;Aa&lG- zidpX~+2lr0R$j|fKN6(uMqm%6LJnvtLgE85v8-1}ceRsSeK1^vsZMdRkkPs=8j+9_ zIEYw3seJ~d-~NZ}oB(M^kWya&NqC4+8Ojtpmbo(#5IO0x4CTBtV?fdcePeMHD($9hKbGqS4K zkQ@k97;pU~UNHIDMo&*YA!4d*U`9QU?%dqkGt7rFEKBYD2^vh1aA5qQsGcjU_g6cFNC85oE_my<--1 z09TAWy4mFdV!C4v`c%*zX^1qwmBrT>MfASwoxDgJf#ok77#}5J8U`{NWvcYf#S3@a z@%vtk3E}DGQh{)V&CiU$?bvCLf`3-f<}B_`K^B1dc$8VFR&3Nrf7~Bp$^|RiZoQbW za&wdP3n22lLO}@VUt(4=yy7(|c53FR7RT3U0TqDBIc&+sA&JcrX^&n z?^h2)krwu@lw7`8t0v!anBc;fy%^AW1W%~%Qu~*s(5-7-!zDI%NB3}?j(Z2$E2N9-`m?Cl-O4uAJ0nkZw4C!KIA2X87jz- zF22MR;nqgA`=2RkK+5SJ=WdkhYCf^h6R~GQ^fz(qv`5nn1Y?c((pntenKZ=6g>t)Z zK@Z|&wcov48iho~#-_I4h48sJqbe&a_Z-%B_EPFRsSbDXRL#J3;irc={U6gvPvF7c zmlyw()~n{?3}aD={x)>Go?>b=`Qj^ost?X1U|>po4UF5xgXHl3BR=b-5FI;nr%%@< zb4;E}XnDrRRmj<^6H-lHEl2Yg+D}KyImi;HEKx74%*K3h^70|{DouQrVCf+*JUD8d zM21gD7p_qjY)HL)$o2g+uAa!xbh(0?wHLyz^FF}Dp)Iif4efJcti>d0C*R3|*TEUrh_t!4fO)2FWgn0PJXN$E7aTGn8y zQ`ZAJFLd^}Q6Wa+9$07fGBr4Z{kPE|GhuN-!wfbk%;A?k`&CWO5FsZ@xV!UjEg4K- z&aeLU+x8y_zIF_nF8EkK++7t?;(rCYl!4py!jovRw=el_JNZ9;U|@GnD{2)b`{3X9 zjJvDpHQ#@q0J78}476}e(8(tgb7}`wlAPy>m!|o2DMMDph0q*!9XEeT0WTv7HJi$Q zHp!^glND~09H=IR7-rTDCikVJ1Mw+Oo>1`cES4;K*WX+)vCJtx%jaVF7yMF`cQP#`nzefXpk1rIP zkStJk@|l95zwzfajPLgrBDSI{Lo=Qg>U4jXwth5k1Cby;_cg4Qb$tWe^`?g164^k76X{*N;pTJY(g?jN}eZfgm$G5GMgV7eRV zaRYK59yQy0xR)_5y1HbO#}wfyx7<~ZLj$8i_u_*sK=#74IMQ%e$|MZwRG8!;HlD2c z1A3lnCSW)QXQWmKF(2As2f}As_e4vcf}bTR~7agOt*G z3btnYe-wC!V3X959i}CGkYD zLdNZQwC!fDSHbwI3&tNSLza~R;u9#9f}sOo!C%}eiMLd~X86_?c@iH5jv$X36s)ZH zqe2YhRuRO&()YCgT$g;}`GcMqsPqNd8@L(q#pg4x=-H{_1}RXy!e?^2YVFbfx@zL! zStQ9T&8$flAN>k2-LRO_Z%(A${Zdn_a)(*pTB&06;tnI3MYzmj4yLZvSHR z@^Pt6Hs9BL1?mWp!R%y#{2kLS!s!R?3Yat%y$VYkGy~JFNZ-o(K|q8YE4f0Qz>$7n zAl(Jq6YO@nRWKuxULs*_o2UzadK%bItyFN|9T4^Zsp(ON$25mx`**r;c|d1K%dduL zWAH>`S8Dl2qOvY^bF;#-P^hbfcM?`L*TeOc%9jU#n*(87CHde(3G5?eT%meyUWI9{ z&e%Jns#9;|`Z3?q#IHtonoSAxiQ|^8ekl;qtc+>OxWZx7w>PG&;;ocztBb7O7w-TH zFaYDeBFYEjJXi|}%}Oko#dW?Is_3O!3AdR%Y3?m*lNs6o&6Y2fqU2+`l@6Y%1}sYK zaYw+Yc{=C;rGIM=01$dYIXHzMcbX6c)=IDz16pn`i8bi;^T!-QlU_1-oH%USEt#!( znJq|D=?TA!|JNPZZ7ii_|Fe_-CzM)Q9`gM z0@40q(zjgIZ_wHZLhWW_*7+6SxDL|x8vwY%iar6K!K{P6b@`Qn1)cpP!b1#{I?3@D zz}SgXNfQGM|B@^3apqB8Uv58PBMQ-5DHJj~YEbuOL{G!(h zUp%+X-y>jnl3P#sZt1}_{cN&(0MpVyPjWx|vI4jo%E#pvV_#x%dX5cZotd@x7vu7b zrZmd~H9KpOrAIi+xK>3V1$IwPfabDs`!cscKGg&E-^dGh3V>f`0Tz*xjjbDvPye*i zec4Q1*QL7ew9rQ2p@aWkB77t3k?9L~KJL@PZ501E6GwkTmNn|#yo(2m$U;mULf67|+DcnTD-)dERVk(*o`|n_}h9|A0h6XCI5x zLclqznyTvbtk6H>LLM7xojcfM77q9-Ioj5t_xF|Z6)w!QjB^SyEC=5 zTbsE+zuab!Q28ku9zTMoimai5s@c@mj)qy?|C;uFJ{x$~y7D8ECW5!%=?hB-_ zyR6=84`&1_Dn2Ql3^MRI;WeoE=;QOPN|;FBP!a%ILPSza_3qG(l1o>2?H@(`nz7Nb zI%B)*k9VrvW%a(T&>(U3*r@7p<>L#0NwpyM6|j|0V141k+)sqKV&WGW`72khPzXew zIrIwvS|E2?_+E3(^U}?JbX;0uCnh6nuzn$}Z9$Ag^)4z_@3iz@eEz{O%+N zK-F%6rfEGa-m6_5w@r*&sm1=KzBE=}0zESU+Y7Cy4G1Q!|`$ zi|(}N zcyD=WX{m8}Fpqm6*TZB&9}VK1`NaoyH``-WGxXl|(`rz8d;}CKBtXMv)iCB4yPx+A z7zF>$ku!L~9vqE&OE7BPPah52_q~&@tNVNK^lf%0k4YLs{#tArg zzyQYjghltFRGyqW_MQ%g)7!g}$__`}A5cy;KA`vgdX;Upt%jMG$2ELl{Ot0(em9!3 zRAu9XZU@%Z;9@x2pcWC3@qr5;G-~Y)STX#N=u2iqZ1m-F-I8GeU7MY(TuK)2v)ONm ziEFcqBBf=L4WC*!Kk&*1&Tzqg}pmP(wcP7#? z8jJ@ph?$PojVr&@lil`Lew}_Ry?j{(jZmaIYmK0v-CG`%a9?AHRN`#o&%bXw&1Ho0 zW69IV2vN`59YeE$%;jL7#w?(eS>JjeEKFi!Cd%l%HY)sH)|WAYUXae%r#sXm4p!6} z@SVg#(9lNRVw>ddJjz>76=Og9>RZmmggrboIQ@anK=fVYEkS^Nd%N@^7CMG)2vu=A z_ZK02jy+*56H|x)4+8E?^-&rME?I#}J8E_$|0&xjl5K~(YAR#h=G{7X5EQ-zyBS~B zZm0p&^b>s(kIswe`Zm0~b?Mr#BitX%r_y!);NB!R7To2f*8i;BT$abxjh#GfnX6sZ zKVimh79(51xA=LO{aAYe0gSE}{-Wkn{h<2o&?6H*@OFoF281Bk{C7a$J;n7!xV=hu z1X+TEHa4CLH?a;ri4j}7?=!tj<(+W|>7hmVknN~N(Q~(L$_neWFp?6={CH(@EXVHI zW;~PQ?^es>>9M)f7Nql4wjVsLF)D>(jQfsmO5Uf+hFCog;L}|*a#J4N)Aig|t|ZaN zqq4ZM1b87T?s`^&_8z_%hVLff7|Lni3LWD5sPG&V{)y>h=VSFDt@YSkaNE0b<+|4zlRCrG zXS%d{B__bZ!DP>sI^JW$?%|HXmOpb;^NZXVSs|xef~3?*j8hHumanUHvVM|VQeTjq znV2H@^ozH~H-5JctN*?e(NBeaU-okC4biOrwXEDD4e_h787ph@I!3Rq=ElIc4F83R zqK{5E5pL25{O`tWPU1YhH~88&d#$wgZxCW-GeBP#ak7vMH`GTN9#Pvx>6bt*Lu^z=K+*S# z44-CLHI*{FiAKIMpP57kta$!DR~&I0`SSg)PravMh~X%a-r6Z<{~SQAc`CinmtXe7 z=}B3#U$B{6&U={uZO$;H3B*KKdK-lt*U!qpxP**^BBp?NG)vctjoOMM1GKHb#ICAm z40|_K{>%CLml77))b#&D7lZ%9Bl~~x#s2r_Vi~L&|4&9)lc@@+h^e0(SAB+386sUn zdcFJHQ&!a*(K{>qe-YL=NdUplt6%T|2&@jRn4VX64uxEpG-2FTSOazZ%|x*!lTM+ZWF&EuC}xVpXBc!tw<40zCx;UH6%J-?tOH z=f_AH-J~+JYG6Leq7fJrWcv9>e_Sj=>R3H2l4+}6v<$zi{FGZLLQ!jw6GK` zP~TfyaUejB^u8(t7^x8C{b!&Wrk9C^@8`h}8fv|1{cv!I$jFoo48TI;j*pM`{~CKU z_lBBV3=Vb%O(1|mgE*ZJOA)#nx=4|$eWQAtn`>cW`}8$t=!Omj3w2Nl>fBJ9)1Q$| zOG^tRkglJ!dYSO;I}W}v%JMfUA!LuDyf)O=(J_S}@!x&kP*r81?c1di3D@)TtW~G= zq==F1ySY_)E>oe>{?(~}7rkxinVe2+{_=K5Hu)t8WP1NYj39(O=LQH%t$*N6ex_t% z3K)%GnJKti0GE0>gEM z0heW#Wou2d6VPUVitYUQn>LSZ%!sWR8>&81T9tz-Z=cH&)ndPDGsaOp_!<- zSk_XiBP0<;apUWUNmZ`YJB|d<~sQ7D<_||DHT!W<4BoGs#|unggz4!}wzfcgl2_b)|0Pw1sGtbc#v7hkj^}7X{-s@BdAa}(1P(6e z@_C#CXM;SiuL01zs({K$D&t|v*BKs8i`(gjG&9uHJb)SJWurv|jxI1RbkRnYFnXay z@d*haE53!fmHQ4`D97wQ`=MJnbh0Y!2u1uIUHKM}P~>y9)Vvh#W;ujIS*;1XAp^qVd z!2Eu!tJ~yI2|qM{<#i2IDY2_yXD%;~lm2Q)bwG_m;}{1Ar|RWAF_wskC{_(E zLx+s6=heoFr-4oZIp6P%uDN&2zx?|3tLes{Y6cN2IC5@*`oGG@AbG|p1i+}`Yqv8S z3UJ8l-N^<9oWUUqBw{o*o#?#lalqXV*|S^ywu_qRA^$72??HH^ezwSS0l`VPXDC*_5rpS#2b~$i%J}vf!1IOKv6-Q&LibnhtauRy1jTT%wsd zZ4-EWeuodE8Ihfxogc0u(=!K=z`fiWe(E^AT7qipO}!H*?sfa7!ym{Wi>g0~vY+YM zh0fDXZ3As}E|onZ?S(UGx+`!!vfpyqy|R5nzv$~#8zxhcX?^!af=RB_dOcCQ(zwn2 z3emjBl10ZKRXu!u5?9)AhaceA>@QEM4fCt&nXWw2M&~e-eOI*$4zf^tKP7}|mTnm> z-3{%Lc(I9z<2SXEMm-PNGH*Ct@N(LkYSMKHs>}a~W{tD8v6+H*k0_#)b`R>E*WT@D zMJQ!&9lgpgD3Bj?jIn#coV!98Bu^9wq0r>=6cnTcZUrTJ8$QUMY3w22(Nt3qk^vI>%E&6zOA zW=e(Yl0|Zz4`!pz)PmD}eY|3M^X(_{xxnOlAB_1(vGIc`?R-$OrJ&npl~O6c<$4Id zW~c*?Yewj7e=nXsLtts?m(t}(zyuJPXX%OpJT3rodCn5@MDO`D8K6WcczUU9e zkJC<^DP7i=xbPQo^5C21%Ym2w{uiX$Ll*qaj0FgSC>=bQ_>%~}n~QiJJ>xVly=uS@ zUvaAa4NOYn21C6{d`=``2mWpT(;ImPc1o9xM#ajjoxXk#B)390_!jc`?E4fuogA#| zoSzY5=*j}2xxDJjWmcHz9_QjuS}gp+K&mwF zT>&PPi^m4Vc3M6Nk&fr$Na$SBMi!NoQHhC(8JL(Tf#N(#$;nzeI^~~4lnNo0BB4n0 znQaM&_oo(PdRf)ZJ2A{pos}OI{>ZNQgM!&uSXiuWY`Rw6CBE<03`zMOi$YVYKT`jU zj*h0ZKZwuy9Q_?`$aC`zZON*8=?YGPP_=$MGZ|r9TbpRfg`}hC+#Y2Qgnj(T;|d5z z=f3NUS=auR>|kq)2{MMt+AGjbAkFYulk5t62upiI9${teqvZ}&9ySiT)PTxaA!teb zsO0$1WOPedtJT|)FF%*x7LSlXC<&s+4f|9bMI2za|Fq0 zrifr#EDvv@?^Cg}=sktSYD^3^+vm(YD`I$`Byo3=o_aZD>QFw<&Wo-NsxB_np8YF@ z!E5~7xbH4xj=XBFo8E8=C0_7(!$OE5!>vx5Tm~o}x2I~J&eBfG6ud4GnXox2m-93= z6jqAoGHU1#1mFF~)`GcIRq}MgWIBw)$Lf^3UwZW{$i(LSc{%ubH8d(9N|kR#AUyrf z=JkLUC7_D)v~TFw+cXK~R(9!p@be9f_r1O`LPfMn_R1KN7MsE#LH9F50;J6f1a-)~ zEl>0a2@TaUHZFqQR3XizJFJY1hM20uzH2E+jQa@Tx6R2yU44BEPfrF&=+2!=8)=&6 z3xf*Q%BASYb#h+J3=_b)4VF3*DTrnKPgq}~v%`5dy0J*NdGU>^-` znfAXP?zvtuauHjpsgdLt5V#hnG6gu80qwK$63oLD4d_i}7nj{n#}*bATi*3GztBH? zkT7ZC)BKtm!w~`If9I#r5%JW8?48NEB&Kx{*$mrL)t|bNK_3R5%mOx07Q+Szt6&VpPzc z{S5m0Tw}xSX2vKEWNo;(f9V_AymZbN$+uP~Sc4=G8W^Cy*OdV3+;-MLNd zG-26*W#IMjcPS~&pdHwC*8(X-#?!N&)%_1nVqC+%A7nRb_1H!me2@|$xw+hGj~>a> z!1oy*@w~#4BVv(f9UQyT$Ry#vvrsVUslibbw%TRIyTlpGbvd9hta!JWX4btjtJ_u~ zdE_m9gHa^&$QkVaON^8t`!-pTzI=-G32i&bKo>k7P&L6GM{Ls8n|#ym*P|tnSWT;R zLM7q!TealBG`BFri5zZ99-pXef!|*bUs_(4zZM6?XUdB;Pd)ADEhwVZoanUzD3%Ad z*!;r6mi~T)^`z-9=>BO?wwBV>EkKjRFe26u-_ZPOoq+N?G52g=lBFdY#^^_uO`R&Y* zH^B^+2sAmin;9#2YgA%@b&3E>D& zXY6Z!=K0M-q+TUZVap1YZkg3T%ZCG^2*p;lLRnw`T;BVnA?%G$X=t3C)Ft+DLF4JX zsZiMYxu2-GxB|_6Pia;)4UJWCoLeH2lHo^3UR(*Cb?cp$RJ*&o3@j|aD$aX)NaH)X zJk$Gr|JaoVS5{V5;jk9xZ?DZ?&C^03^YW&*J=w#rF)}d?pwTg4Z15AXhuU+7zwge4 z4#B-p{ABe!3R3k(Q=!1#%Pl}pfTw8cbZOc3LGl}qt9o!h%KzzfXces=5mHXi22G3@ zs_+BKR!i%bAK5}5o9Ik>O#jx|dVV>9*OMZKGqu;@`YW^crMu+H;;FZ41XFugB(Wjh zq>XLO`7Z}f;0F4Z8WuGk>cA%UVw3vt*869AUB|oR_tk0c2P<%ZV|U$goFV}z?eVfh zuaGuNlL!b_AA-j1$j59yz-TeFMs`(Up!~uJ_-3`X-Z!fErfo9ST&~I5p#N*o+#4Rb zHRki8b#*k_3h763-N)7)f_lHP0e7&$KN6P52Hs{3YRb1gY~I@$xeKn0b~9m|27l6T zz3UExpGg+nNANtrPFlM=I759hdAyyWXOEf?YkF4xL^`Z}d#{uFR!9Khb`=%gqx7?I zzI`*d{Uw4iI|f|`?>`s?P(QvakR9rHeWj?V$iTor&e)ixrna_eSGsMI@z?%7%mf6p zy87<31}5O>TwG+BL>q5+tepbEt*EGg{Kv-)^D9>?F8y>z`&g|NX+5D75!SBmy2+tjs$oj|zGq=>X@ZkKT5yv2( zWNmBP($NuC#_Z0M05B6o7onB@{>;@vxz&l21r@mPvj!`gcLZ5##ouG?%LO!PvU{#eUiid$JV6Hp%UMq^mm==H=_{ zC(k2CeW!>7{QQipI3gz;K*QSMf*k4;Y*#D8mtBNk8l7*Wu|&!Cw+@eTX}Dljg&d#v zwG4L!uozy1{L5p(zHg3>P1g? zLJF4WkbBDB zbk2`*-|eY0mGN?-56?TO>X&+HZ4sl>5ez^uPN#>^K# zJ+!TE+cwtr$?~fWmHSsdIMTJQ4V)gJdo#i*-+MZha)a tCdr#Q_Z$3sl}aJZV5Tl#R{f@{{s(4C%pgw delta 24937 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 Date: Mon, 21 Oct 2019 16:26:31 +0300 Subject: [PATCH 013/144] GOD-- --DAMN IT! --- code/modules/clothing/suits/miscellaneous.dm | 1 - modular_citadel/icons/mob/suit_digi.dmi | Bin 378075 -> 377958 bytes 2 files changed, 1 deletion(-) diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index bfc644377b..5676765047 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -643,4 +643,3 @@ body_parts_covered = CHEST|GROIN|ARMS|LEGS flags_inv = HIDEJUMPSUIT resistance_flags = NONE - mutantrace_variation = NO_MUTANTRACE_VARIATION diff --git a/modular_citadel/icons/mob/suit_digi.dmi b/modular_citadel/icons/mob/suit_digi.dmi index 0b8ccf9786bc9f1d8f7ccbe72a4b54e2870b7750..fdcedac0955367a5b16edf2bb5f8fad1599cec33 100644 GIT binary patch delta 24876 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«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 tCdr#Q_Z$3sl}aJZV5Tl#R{f@{{v>rC;tEd From 412aa0feeb2128c4490543becdc76c74eb6818cc Mon Sep 17 00:00:00 2001 From: MrJWhit <48370570+MrJWhit@users.noreply.github.com> Date: Mon, 21 Oct 2019 20:33:28 -0400 Subject: [PATCH 014/144] Update traumas.json --- strings/traumas.json | 1 - 1 file changed, 1 deletion(-) diff --git a/strings/traumas.json b/strings/traumas.json index 211fb10f1f..864ae9b767 100644 --- a/strings/traumas.json +++ b/strings/traumas.json @@ -121,7 +121,6 @@ "@pick(semicolon)IPCS STATE LAWS NOW", "@pick(semicolon)lING DORMS i hear Suking noises!!!", "@pick(semicolon)@pick(roles) tator they have @pick(mutations)!!", - "@pick(semicolon)aooc how do i steel @pick(cargo)?", ";,g absorbing @pick(roles)", ";chemist can u @pick(create_verbs) holy @pick(mellens) for @pick(s_roles)???!!", "@pick(semicolon) LIZZARRD SPEAKIGN IN EVIL BULL LANGUAGE SCI!!", From f983db61bf677186245b019ff8336a051234ed07 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 25 Oct 2019 18:08:33 -0400 Subject: [PATCH 015/144] Update halloween.dm --- code/modules/holiday/halloween/halloween.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/holiday/halloween/halloween.dm b/code/modules/holiday/halloween/halloween.dm index 5635994a7a..a3555a61b4 100644 --- a/code/modules/holiday/halloween/halloween.dm +++ b/code/modules/holiday/halloween/halloween.dm @@ -127,8 +127,8 @@ name = "ghost" real_name = "ghost" icon = 'icons/mob/mob.dmi' - maxHealth = 1e6 - health = 1e6 + maxHealth = 120 + health = 120 speak_emote = list("howls") emote_hear = list("wails","screeches") density = FALSE @@ -195,8 +195,8 @@ icon_dead = "scary_clown" icon_gib = "scary_clown" speak = list("...", ". . .") - maxHealth = 1e6 - health = 1e6 + maxHealth = 120 + health = 120 emote_see = list("silently stares") unsuitable_atmos_damage = 0 var/timer From d9babbd97bcdfcefe2de0dffc406447b9b3c563f Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 26 Oct 2019 09:16:29 -0400 Subject: [PATCH 016/144] fuck god mode --- code/modules/holiday/halloween/halloween.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/modules/holiday/halloween/halloween.dm b/code/modules/holiday/halloween/halloween.dm index a3555a61b4..4332917604 100644 --- a/code/modules/holiday/halloween/halloween.dm +++ b/code/modules/holiday/halloween/halloween.dm @@ -141,7 +141,6 @@ . = ..() icon_state = pick("ghost","ghostian","ghostian2","ghostking","ghost1","ghost2") icon_living = icon_state - status_flags |= GODMODE timer = rand(1,15) /mob/living/simple_animal/shade/howling_ghost/Life() @@ -204,7 +203,6 @@ /mob/living/simple_animal/hostile/retaliate/clown/insane/Initialize() . = ..() timer = rand(5,15) - status_flags = (status_flags | GODMODE) return /mob/living/simple_animal/hostile/retaliate/clown/insane/Retaliate() From 63cb466360922ec1f10aaacb52e7007b25312d6c Mon Sep 17 00:00:00 2001 From: TrilbySpaceClone Date: Sat, 26 Oct 2019 18:59:34 -0400 Subject: [PATCH 017/144] MK II --- .../items/stacks/sheets/sheet_types.dm | 54 +++++- code/modules/cargo/exports.dm | 2 +- code/modules/cargo/exports/food_wine.dm | 173 ++++++++++++++++++ code/modules/cargo/exports/gear.dm | 1 + code/modules/cargo/exports/large_objects.dm | 25 ++- code/modules/cargo/exports/materials.dm | 1 - ...orgains_robotics.dm => organs_robotics.dm} | 51 +++++- code/modules/cargo/exports/parts.dm | 2 +- code/modules/cargo/exports/sheets.dm | 13 +- code/modules/cargo/exports/tools.dm | 6 +- code/modules/cargo/exports/weapons.dm | 14 +- code/modules/cargo/packs/materials.dm | 16 ++ code/modules/cargo/packs/organic.dm | 98 +++++----- icons/obj/stack_objects.dmi | Bin 41310 -> 41449 bytes tgstation.dme | 3 +- 15 files changed, 380 insertions(+), 79 deletions(-) create mode 100644 code/modules/cargo/exports/food_wine.dm rename code/modules/cargo/exports/{orgains_robotics.dm => organs_robotics.dm} (65%) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index c085306892..a487e9f92f 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -10,6 +10,7 @@ * Runed Metal (cult) * Brass (clockwork cult) * Bronze (bake brass) + * Cotton/Duracotton */ /* @@ -186,31 +187,37 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ */ GLOBAL_LIST_INIT(wood_recipes, list ( \ new/datum/stack_recipe("wooden sandals", /obj/item/clothing/shoes/sandal, 1), \ + new/datum/stack_recipe("tiki mask", /obj/item/clothing/mask/gas/tiki_mask, 2), \ new/datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20), \ new/datum/stack_recipe("wood table frame", /obj/structure/table_frame/wood, 2, time = 10), \ + null, \ new/datum/stack_recipe("rifle stock", /obj/item/weaponcrafting/stock, 10, time = 40), \ new/datum/stack_recipe("rolling pin", /obj/item/kitchen/rollingpin, 2, time = 30), \ + new/datum/stack_recipe("wooden buckler", /obj/item/shield/riot/buckler, 20, time = 40), \ + new/datum/stack_recipe("baseball bat", /obj/item/melee/baseball_bat, 5, time = 15),\ + null, \ new/datum/stack_recipe("wooden chair", /obj/structure/chair/wood/, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("winged wooden chair", /obj/structure/chair/wood/wings, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("plywood chair", /obj/structure/chair/comfy/plywood, 4, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ + null, \ new/datum/stack_recipe("wooden barricade", /obj/structure/barricade/wooden, 5, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("wooden door", /obj/structure/mineral_door/wood, 10, time = 20, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("rustic wooden door", /obj/structure/mineral_door/woodrustic, 10, time = 20, one_per_turf = TRUE, on_floor = TRUE), \ + null, \ + new/datum/stack_recipe("wooden barrel", /obj/structure/fermenting_barrel, 10, time = 20, one_per_turf = TRUE, on_floor = TRUE),\ new/datum/stack_recipe("coffin", /obj/structure/closet/crate/coffin, 5, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("book case", /obj/structure/bookcase, 4, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("drying rack", /obj/machinery/smartfridge/drying_rack, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("dog bed", /obj/structure/bed/dogbed, 10, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("dresser", /obj/structure/dresser, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("picture frame", /obj/item/wallframe/picture, 1, time = 10),\ - new/datum/stack_recipe("display case chassis", /obj/structure/displaycase_chassis, 5, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("loom", /obj/structure/loom, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("wooden buckler", /obj/item/shield/riot/buckler, 20, time = 40), \ - new/datum/stack_recipe("apiary", /obj/structure/beebox, 40, time = 50),\ - new/datum/stack_recipe("tiki mask", /obj/item/clothing/mask/gas/tiki_mask, 2), \ - new/datum/stack_recipe("honey frame", /obj/item/honey_frame, 5, time = 10),\ new/datum/stack_recipe("ore box", /obj/structure/ore_box, 4, time = 50, one_per_turf = TRUE, on_floor = TRUE),\ new/datum/stack_recipe("wooden crate", /obj/structure/closet/crate/wooden, 6, time = 50, one_per_turf = TRUE, on_floor = TRUE),\ - new/datum/stack_recipe("baseball bat", /obj/item/melee/baseball_bat, 5, time = 15),\ + new/datum/stack_recipe("display case chassis", /obj/structure/displaycase_chassis, 5, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("loom", /obj/structure/loom, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("apiary", /obj/structure/beebox, 40, time = 50),\ + null, \ + new/datum/stack_recipe("picture frame", /obj/item/wallframe/picture, 1, time = 10),\ + new/datum/stack_recipe("honey frame", /obj/item/honey_frame, 5, time = 10),\ )) /obj/item/stack/sheet/mineral/wood @@ -270,6 +277,7 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ icon_state = "sheet-cloth" item_state = "sheet-cloth" resistance_flags = FLAMMABLE + is_fabric = TRUE force = 0 throwforce = 0 merge_type = /obj/item/stack/sheet/cloth @@ -281,6 +289,30 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ /obj/item/stack/sheet/cloth/ten amount = 10 +/obj/item/stack/sheet/cloth/thirty + amount = 30 + +/obj/item/stack/sheet/cloth + name = "cloth" + desc = "Is it cotton? Linen? Denim? Burlap? Canvas? You can't tell." + singular_name = "cloth roll" + icon_state = "sheet-cloth" + item_state = "sheet-cloth" + resistance_flags = FLAMMABLE + force = 0 + throwforce = 0 + pull_effort = 30 + loom_result = /obj/item/stack/sheet/cloth/silk + merge_type = /obj/item/stack/sheet/cloth + +/obj/item/stack/sheet/cloth/silk + name = "silk" + desc = "A long soft material. This one is just made out of cotton rather then any spiders or wyrms" + singular_name = "silk sheet" + icon_state = "sheet-silk" + item_state = "sheet-cloth" + merge_type = /obj/item/stack/sheet/cloth/silk + //Durathread fuck slash-asterisk comments GLOBAL_LIST_INIT(durathread_recipes, list ( \ new/datum/stack_recipe("durathread jumpsuit", /obj/item/clothing/under/durathread, 4, time = 40), @@ -649,6 +681,12 @@ new /datum/stack_recipe("paper frame door", /obj/structure/mineral_door/paperfra pull_effort = 30 loom_result = /obj/item/stack/sheet/cloth +/obj/item/stack/sheet/cotton/ten + amount = 10 + +/obj/item/stack/sheet/cotton/thirty + amount = 30 + /obj/item/stack/sheet/cotton/durathread name = "raw durathread bundle" desc = "A bundle of raw durathread ready to be spun on the loom." diff --git a/code/modules/cargo/exports.dm b/code/modules/cargo/exports.dm index 9a99f201b3..f7e7fe76d4 100644 --- a/code/modules/cargo/exports.dm +++ b/code/modules/cargo/exports.dm @@ -58,7 +58,7 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they var/unit_name = "" // Unit name. Only used in "Received [total_amount] [name]s [message]." message var/message = "" var/cost = 100 // Cost of item, in cargo credits. Must not alow for infinite price dupes, see above. - var/k_elasticity = 1/20 //coefficient used in marginal price calculation that roughly corresponds to the inverse of price elasticity, or "quantity elasticity" - CIT EDIT 30 - > 20 + var/k_elasticity = 1/300 //coefficient used in marginal price calculation that roughly corresponds to the inverse of price elasticity, or "quantity elasticity" - CIT EDIT 1/30 - > 0 var/list/export_types = list() // Type of the exported object. If none, the export datum is considered base type. var/include_subtypes = TRUE // Set to FALSE to make the datum apply only to a strict type. var/list/exclude_types = list() // Types excluded from export diff --git a/code/modules/cargo/exports/food_wine.dm b/code/modules/cargo/exports/food_wine.dm new file mode 100644 index 0000000000..062f844ab4 --- /dev/null +++ b/code/modules/cargo/exports/food_wine.dm @@ -0,0 +1,173 @@ +/datum/export/food + k_elasticity = 0 + include_subtypes = TRUE + +/datum/export/booze //Like the kind you bottle! + k_elasticity = 0 + include_subtypes = TRUE + +/datum/export/food/meat + cost = 5 + unit_name = "protein based food" + export_types = list(/obj/item/reagent_containers/food/snacks/meat/slab) + +/datum/export/food/raw_cutlets + cost = 3 + unit_name = "protein based food" + export_types = list(/obj/item/reagent_containers/food/snacks/meat/rawcutlet) + +/datum/export/food/cooked_cutlets + cost = 4 + unit_name = "cooked protein based food" + export_types = list(/obj/item/reagent_containers/food/snacks/meat/cutlet) + +/datum/export/food/cooked_meat + cost = 8 + unit_name = "cooked protein based food" + export_types = list(/obj/item/reagent_containers/food/snacks/meat/steak) + +/datum/export/food/douge + cost = 3 + unit_name = "uncooked food base" + export_types = list(/obj/item/reagent_containers/food/snacks/dough, /obj/item/reagent_containers/food/snacks/flatdough) + +/datum/export/food/cooked_douge + cost = 5 + unit_name = "cooked food base" + export_types = list(/obj/item/reagent_containers/food/snacks/pizzabread) + +/datum/export/food/buns + cost = 3 + unit_name = "cooked food base" + export_types = list(/obj/item/reagent_containers/food/snacks/bun) + +/datum/export/food/sweets + cost = 4 + unit_name = "pastery base" + export_types = list(/obj/item/reagent_containers/food/snacks/rawpastrybase, /obj/item/reagent_containers/food/snacks/pastrybase) + +/datum/export/food/cake_pie_raw + cost = 12 + unit_name = "uncooked food base" + export_types = list(/obj/item/reagent_containers/food/snacks/cakebatter, /obj/item/reagent_containers/food/snacks/piedough) + +/datum/export/food/cooked_cake_pie + cost = 15 + unit_name = "cooked food base" + export_types = list(/obj/item/reagent_containers/food/snacks/store/cake/plain, /obj/item/reagent_containers/food/snacks/pie/plain) + +/datum/export/food/glassbottle + cost = 10 + unit_name = "glass bottle" + export_types = list(/obj/item/reagent_containers/food/drinks/bottle) + +/datum/export/food/produce + cost = 3 + unit_name = "produce" + export_types = list(/obj/item/reagent_containers/food/snacks/grown) + exclude_types = list(/obj/item/grown/log) + +/datum/export/food/egg + cost = 2 + unit_name = "egg" + export_types = list(/obj/item/reagent_containers/food/snacks/egg) + +/datum/export/food/milk + cost = 0.1 //10u for 1 credit + unit_name = "unit of milk" + export_types = list(/datum/reagent/consumable/milk) + +/datum/export/food/wheat + cost = 0.1 + unit_name = "unit of flour" + export_types = list(/datum/reagent/consumable/flour) + +/datum/export/food/rice + cost = 0.1 + unit_name = "unit of rice" + export_types = list(/datum/reagent/consumable/rice) + +/datum/export/food/sugar + cost = 0.1 + unit_name = "unit of sugar" + export_types = list(/datum/reagent/consumable/sugar) + +/datum/export/food/enzyme + cost = 1 + unit_name = "unit of enzyme" + export_types = list(/datum/reagent/consumable/enzyme) + +/datum/export/food/soup + cost = 30 + unit_name = "bowl of soup" + export_types = list(/obj/item/reagent_containers/food/snacks/soup) + +/datum/export/food/bread + cost = 20 + unit_name = "load of bread" + export_types = list(/obj/item/reagent_containers/food/snacks/store/bread) + +/datum/export/food/bread_slice + cost = 4 + unit_name = "slice of bread" + export_types = list(/obj/item/reagent_containers/food/snacks/breadslice) + +/datum/export/food/burger + cost = 12 + unit_name = "burger" + export_types = list(/obj/item/reagent_containers/food/snacks/burger) + +/datum/export/food/cake + cost = 50 + unit_name = "cake" + export_types = list(/obj/item/reagent_containers/food/snacks/store/cake) + +/datum/export/food/cake_slice + cost = 10 + unit_name = "cake slice" + export_types = list(/obj/item/reagent_containers/food/snacks/cakeslice) + +/datum/export/food/cheese_wheel + cost = 70 + unit_name = "cheese wheel" + export_types = list(/obj/item/reagent_containers/food/snacks/store/cheesewheel) + +/datum/export/food/cheese_wheel + cost = 20 + unit_name = "cheese wedge" + export_types = list(/obj/item/reagent_containers/food/snacks/cheesewedge) + +/datum/export/food/candy + cost = 5 + unit_name = "candy" //Not anything from the vender + export_types = list(/obj/item/reagent_containers/food/snacks/candy_corn, /obj/item/reagent_containers/food/snacks/chocolatebar, /obj/item/reagent_containers/food/snacks/candiedapple, /obj/item/reagent_containers/food/snacks/spiderlollipop, \ + /obj/item/reagent_containers/food/snacks/chococoin, /obj/item/reagent_containers/food/snacks/fudgedice, /obj/item/reagent_containers/food/snacks/chocoorange, /obj/item/reagent_containers/food/snacks/lollipop, \ + /obj/item/reagent_containers/food/snacks/gumball, /obj/item/reagent_containers/food/snacks/tinychocolate) + +/datum/export/food/pastery + cost = 30 + unit_name = "baked goods" + export_types = list(/obj/item/reagent_containers/food/snacks/donut, /obj/item/reagent_containers/food/snacks/muffin, /obj/item/reagent_containers/food/snacks/waffles, /obj/item/reagent_containers/food/snacks/plumphelmetbiscuit, \ + /obj/item/reagent_containers/food/snacks/chococornet, /obj/item/reagent_containers/food/snacks/cherrycupcake, /obj/item/reagent_containers/food/snacks/bluecherrycupcake, /obj/item/reagent_containers/food/snacks/honeybun, /obj/item/reagent_containers/food/snacks/pancakes) + +/datum/export/food/pasta + cost = 20 + unit_name = "pasta based meal" + export_types = list(/obj/item/reagent_containers/food/snacks/spaghetti, /obj/item/reagent_containers/food/snacks/boiledspaghetti, /obj/item/reagent_containers/food/snacks/pastatomato, /obj/item/reagent_containers/food/snacks/copypasta, \ + /obj/item/reagent_containers/food/snacks/meatballspaghetti, /obj/item/reagent_containers/food/snacks/spesslaw, /obj/item/reagent_containers/food/snacks/chowmein, /obj/item/reagent_containers/food/snacks/beefnoodle, /obj/item/reagent_containers/food/snacks/butternoodles) + +/datum/export/food/pizza + cost = 120 + unit_name = "pizza" + export_types = list(/obj/item/reagent_containers/food/snacks/pizza) + +/datum/export/food/sliced_pizza + cost = 12 + unit_name = "pizza slice" + export_types = list(/obj/item/reagent_containers/food/snacks/pizzaslice) + +/datum/export/food/snowcone + cost = 3 + unit_name = "snowcone" + export_types = list(/obj/item/reagent_containers/food/snacks/snowcones) + diff --git a/code/modules/cargo/exports/gear.dm b/code/modules/cargo/exports/gear.dm index 7ff14df04c..77b57466d9 100644 --- a/code/modules/cargo/exports/gear.dm +++ b/code/modules/cargo/exports/gear.dm @@ -793,6 +793,7 @@ datum/export/gear/glasses //glasses are not worth selling ////////////////////// /datum/export/gear/chameleon //Selling a full kit is easy money for 2 tc cost = 280 + k_elasticity = 0 unit_name = "chameleon item" export_types = list(/obj/item/clothing/head/chameleon, /obj/item/clothing/mask/chameleon, /obj/item/clothing/under/chameleon, /obj/item/clothing/suit/chameleon, /obj/item/clothing/glasses/chameleon,\ /obj/item/clothing/gloves/chameleon, /obj/item/clothing/head/chameleon, /obj/item/clothing/shoes/chameleon, /obj/item/storage/backpack/chameleon, \ diff --git a/code/modules/cargo/exports/large_objects.dm b/code/modules/cargo/exports/large_objects.dm index 88ff5f4729..5feb54e016 100644 --- a/code/modules/cargo/exports/large_objects.dm +++ b/code/modules/cargo/exports/large_objects.dm @@ -24,11 +24,16 @@ export_types = list(/obj/structure/ore_box) /datum/export/large/crate/wood - cost = 140 + cost = 140 // unit_name = "wooden crate" export_types = list(/obj/structure/closet/crate/wooden) exclude_types = list() +/datum/export/large/barrel + cost = 500 //150 to make meaning proffit of 350 + unit_name = "wooden barrel" + export_types = list(/obj/structure/fermenting_barrel) + /datum/export/large/crate/coffin cost = 150 unit_name = "coffin" @@ -282,17 +287,17 @@ include_subtypes = FALSE /datum/export/large/mech/odysseus - cost = 5500 + cost = 7500 unit_name = "working odysseus" export_types = list(/obj/mecha/medical/odysseus) /datum/export/large/mech/ripley - cost = 6500 + cost = 12000 unit_name = "working ripley" export_types = list(/obj/mecha/working/ripley) /datum/export/large/mech/firefighter - cost = 9000 + cost = 14000 unit_name = "working firefighter" export_types = list(/obj/mecha/working/ripley/firefighter) @@ -302,12 +307,12 @@ export_types = list(/obj/mecha/combat/gygax) /datum/export/large/mech/durand - cost = 10000 + cost = 16000 unit_name = "working durand" export_types = list(/obj/mecha/combat/durand) /datum/export/large/mech/phazon - cost = 25000 //Little over half do to needing a core + cost = 35000 //Little over half do to needing a core unit_name = "working phazon" export_types = list(/obj/mecha/combat/phazon) @@ -317,7 +322,7 @@ export_types = list(/obj/mecha/combat/marauder) /datum/export/large/mech/deathripley - cost = 8500 //Still a "Combat class" mech - Illegal tech as well! 165% "normal" boundy price. + cost = 18500 //Still a "Combat class" mech - Illegal tech as well! 165% "normal" boundy price. unit_name = "working illegally modified" export_types = list(/obj/mecha/working/ripley/deathripley) @@ -332,12 +337,12 @@ export_types = list(/obj/mecha/working/ripley/mining) /datum/export/large/mech/honk - cost = 12000 //Still a "Combat class" mech - Comats bordem honk! + cost = 16000 //Still a "Combat class" mech - Comats bordem honk! unit_name = "working honker" export_types = list(/obj/mecha/combat/honker) /datum/export/large/mech/reticence - cost = 12000 //Still a "Combat class" mech - Has cloking and lethal weaponds. + cost = 16000 //Still a "Combat class" mech - Has cloking and lethal weaponds. unit_name = "working reticence" export_types = list(/obj/mecha/combat/reticence) @@ -347,6 +352,6 @@ export_types = list(/obj/mecha/combat/marauder/seraph) /datum/export/large/mech/mauler - cost = 12000 //Still a Combat class mech - CC lethal weaponds. + cost = 25000 //Still a Combat class mech - CC lethal weaponds. unit_name = "working legally modified marauder" export_types = list(/obj/mecha/combat/marauder/mauler) diff --git a/code/modules/cargo/exports/materials.dm b/code/modules/cargo/exports/materials.dm index cd11660ed8..d8fc5f22ab 100644 --- a/code/modules/cargo/exports/materials.dm +++ b/code/modules/cargo/exports/materials.dm @@ -42,7 +42,6 @@ /datum/export/material/plasma cost = 100 - k_elasticity = 0 material_id = MAT_PLASMA message = "cm3 of plasma" diff --git a/code/modules/cargo/exports/orgains_robotics.dm b/code/modules/cargo/exports/organs_robotics.dm similarity index 65% rename from code/modules/cargo/exports/orgains_robotics.dm rename to code/modules/cargo/exports/organs_robotics.dm index 924d27c1d2..0f0d393e79 100644 --- a/code/modules/cargo/exports/orgains_robotics.dm +++ b/code/modules/cargo/exports/organs_robotics.dm @@ -8,7 +8,7 @@ include_subtypes = FALSE k_elasticity = 0 //ALWAYS worth selling upgrades -/datum/export/orgains +/datum/export/organs include_subtypes = TRUE k_elasticity = 0 //ALWAYS worth selling orgains @@ -36,6 +36,7 @@ /datum/export/implant/breathtube cost = 150 + k_elasticity = 300/20 //Large before depleating unit_name = "breath implant" export_types = list(/obj/item/organ/cyberimp/mouth/breathing_tube) @@ -110,6 +111,17 @@ export_types = list(/obj/item/organ/liver) exclude_types = list(/obj/item/organ/liver/cybernetic, /obj/item/organ/liver/cybernetic/upgraded) +/datum/export/orgains/cybernetic + cost = 225 + unit_name = "cybernetic organ" + export_types = list(/obj/item/organ/liver/cybernetic, /obj/item/organ/lungs/cybernetic, /obj/item/organ/eyes/robotic, /obj/item/organ/heart/cybernetic) + exclude_types = list(/obj/item/organ/lungs/cybernetic/upgraded, /obj/item/organ/liver/cybernetic/upgraded) + +/datum/export/orgains/upgraded + cost = 275 + unit_name = "upgraded cybernetic organ" + export_types = list(/obj/item/organ/lungs/cybernetic/upgraded, /obj/item/organ/liver/cybernetic/upgraded) + /datum/export/orgains/tail //Shhh cost = 500 unit_name = "error shipment failer" @@ -136,6 +148,41 @@ export_types = list(/obj/item/bodypart/l_arm/robot/surplus_upgraded, /obj/item/bodypart/r_arm/robot/surplus_upgraded, /obj/item/bodypart/l_leg/robot/surplus_upgraded, /obj/item/bodypart/r_leg/robot/surplus_upgraded) /datum/export/robotics/surgery_gear_basic - cost = 5 + cost = 10 unit_name = "surgery tool" export_types = list(/obj/item/retractor, /obj/item/hemostat, /obj/item/cautery, /obj/item/surgicaldrill, /obj/item/scalpel, /obj/item/circular_saw, /obj/item/surgical_drapes) + +/datum/export/robotics/mech_weapon_laser + cost = 300 //Sadly just metal and glass + unit_name = "mech laser based weapon" + include_subtypes = TRUE + export_types = list(/obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam, /obj/item/mecha_parts/mecha_equipment/weapon/energy) + +/datum/export/robotics/mech_weapon_bullet + cost = 250 + unit_name = "mech bullet based weapon" + include_subtypes = TRUE + export_types = list(/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun, /obj/item/mecha_parts/mecha_equipment/weapon/honker, /obj/item/mecha_parts/mecha_equipment/weapon/ballistic) + +/datum/export/robotics/mech_tools + cost = 150 + unit_name = "mech based tool" + include_subtypes = TRUE + export_types = list(/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp, /obj/item/mecha_parts/mecha_equipment/extinguisher, /obj/item/mecha_parts/mecha_equipment/rcd, /obj/item/mecha_parts/mecha_equipment/cable_layer, \ + /obj/item/mecha_parts/mecha_equipment/drill, /obj/item/mecha_parts/mecha_equipment/mining_scanner, /obj/item/mecha_parts/mecha_equipment/medical/sleeper) + +/datum/export/robotics/mech_blue_space + cost = 750 + k_elasticity = 1/10 + unit_name = "mech bluespace tech" + export_types = list(/obj/item/mecha_parts/mecha_equipment/teleporter, /obj/item/mecha_parts/mecha_equipment/wormhole_generator, /obj/item/mecha_parts/mecha_equipment/gravcatapult) + +/datum/export/robotics/mech_reactors + cost = 350 + unit_name = "mech based reactor" + export_types = list(/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay, /obj/item/mecha_parts/mecha_equipment/generator, /obj/item/mecha_parts/mecha_equipment/generator/nuclear) + +/datum/export/robotics/mech_armor + cost = 350 + unit_name = "mech armor tech" + export_types = list(/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster, /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster, /obj/item/mecha_parts/mecha_equipment/repair_droid) diff --git a/code/modules/cargo/exports/parts.dm b/code/modules/cargo/exports/parts.dm index b505bb5da4..1a2bbdd35f 100644 --- a/code/modules/cargo/exports/parts.dm +++ b/code/modules/cargo/exports/parts.dm @@ -30,7 +30,7 @@ /datum/export/board/SMES cost = 20 - k_elasticity = 1/2 //Only a few + k_elasticity = 1/30 unit_name = "smes board" export_types = list(/obj/item/circuitboard/machine/smes) diff --git a/code/modules/cargo/exports/sheets.dm b/code/modules/cargo/exports/sheets.dm index 8397a7dc1f..2530bdf06e 100644 --- a/code/modules/cargo/exports/sheets.dm +++ b/code/modules/cargo/exports/sheets.dm @@ -83,6 +83,11 @@ unit_name = "wood plank" export_types = list(/obj/item/stack/sheet/mineral/wood) +/datum/export/stack/log + cost = 10 + unit_name = "raw wood" + export_types = list(/obj/item/grown/log) + /datum/export/stack/cardboard cost = 2 message = "of cardboard" @@ -100,11 +105,17 @@ export_types = list(/obj/item/stack/cable_coil) /datum/export/stack/cloth - cost = 10 + cost = 20 unit_name = "sheets" message = "of cloth" export_types = list(/obj/item/stack/sheet/cloth) +/datum/export/stack/silk + cost = 200 //The new plasma + unit_name = "sheets" + message = "of silk" + export_types = list(/obj/item/stack/sheet/cloth/silk) + /datum/export/stack/duracloth cost = 40 unit_name = "sheets" diff --git a/code/modules/cargo/exports/tools.dm b/code/modules/cargo/exports/tools.dm index 4984bfe9b9..a68d7238b5 100644 --- a/code/modules/cargo/exports/tools.dm +++ b/code/modules/cargo/exports/tools.dm @@ -12,7 +12,7 @@ /datum/export/gear/powerdrill cost = 25 - k_elasticity = 1/40 //Market can only take so much + k_elasticity = 1/80 //Market can only take so much unit_name = "power tool" export_types = list(/obj/item/crowbar/power, /obj/item/screwdriver/power, \ /obj/item/weldingtool/experimental, /obj/item/wirecutters/power, /obj/item/wrench/power) @@ -65,13 +65,13 @@ // Basic tools /datum/export/basicmining - cost = 20 + cost = 30 unit_name = "basic mining tool" export_types = list(/obj/item/pickaxe, /obj/item/pickaxe/mini, /obj/item/shovel, /obj/item/resonator) include_subtypes = FALSE /datum/export/upgradedmining - cost = 50 + cost = 80 unit_name = "mining tool" export_types = list(/obj/item/pickaxe/silver, /obj/item/pickaxe/drill, /obj/item/gun/energy/plasmacutter, /obj/item/resonator/upgraded) include_subtypes = FALSE diff --git a/code/modules/cargo/exports/weapons.dm b/code/modules/cargo/exports/weapons.dm index 97dd9c10aa..18ee5610d1 100644 --- a/code/modules/cargo/exports/weapons.dm +++ b/code/modules/cargo/exports/weapons.dm @@ -125,7 +125,7 @@ /datum/export/weapon/temp_gun cost = 175 //Its just smaller unit_name = "small temperature gun" - k_elasticity = 1/5 //Its just a smaller temperature gun, easy to mass make + k_elasticity = 1/30 //Its just a smaller temperature gun, easy to mass make export_types = list(/obj/item/gun/energy/temperature) /datum/export/weapon/flowergun @@ -140,7 +140,7 @@ /datum/export/weapon/ioncarbine cost = 200 - k_elasticity = 1/5 //Its just a smaller temperature gun, easy to mass make + k_elasticity = 1/30 //Its just a smaller temperature gun, easy to mass make unit_name = "ion carbine" export_types = list(/obj/item/gun/energy/ionrifle/carbine) @@ -174,12 +174,12 @@ ///////////////// /datum/export/weapon/wtammo - cost = 10 + cost = 15 unit_name = "WT-550 automatic rifle ammo" export_types = list(/obj/item/ammo_box/magazine/wt550m9, /obj/item/ammo_box/magazine/wt550m9/wtrubber) /datum/export/weapon/wtammo/advanced - cost = 30 + cost = 45 unit_name = "advanced WT-550 automatic rifle ammo" export_types = list( /obj/item/ammo_box/magazine/wt550m9/wtap, /obj/item/ammo_box/magazine/wt550m9/wttx, /obj/item/ammo_box/magazine/wt550m9/wtic) @@ -194,7 +194,7 @@ export_types = list(/obj/item/firing_pin/test_range) /datum/export/weapon/techslug - cost = 15 + cost = 25 k_elasticity = 0 unit_name = "advanced shotgun shell" export_types = list(/obj/item/ammo_casing/shotgun/dragonsbreath, /obj/item/ammo_casing/shotgun/meteorslug, /obj/item/ammo_casing/shotgun/pulseslug, /obj/item/ammo_casing/shotgun/frag12, /obj/item/ammo_casing/shotgun/ion, /obj/item/ammo_casing/shotgun/laserslug) @@ -344,13 +344,13 @@ export_types = list(/obj/item/storage/toolbox/gold_real) /datum/export/weapon/melee - cost = 30 + cost = 50 unit_name = "unlisted weapon" export_types = list(/obj/item/melee) include_subtypes = TRUE /datum/export/weapon/gun - cost = 30 + cost = 50 unit_name = "unlisted weapon" export_types = list(/obj/item/gun) include_subtypes = TRUE \ No newline at end of file diff --git a/code/modules/cargo/packs/materials.dm b/code/modules/cargo/packs/materials.dm index 0f8ad2462a..a01685ca59 100644 --- a/code/modules/cargo/packs/materials.dm +++ b/code/modules/cargo/packs/materials.dm @@ -168,3 +168,19 @@ contains = list(/obj/structure/reagent_dispensers/watertank/high) crate_name = "high-capacity water tank crate" crate_type = /obj/structure/closet/crate/large + +/datum/supply_pack/materials/loom + name = "Loom" + desc = "A large pre-made loom." + cost = 1000 + contains = list(/obj/structure/loom) + crate_name = "loom crate" + crate_type = /obj/structure/closet/crate/large + +/datum/supply_pack/materials/wooden_barrel + name = "Wooden Barrel" + desc = "A wooden barrles ready for storge." + cost = 1500 + contains = list(/obj/structure/fermenting_barrel) + crate_name = "wooden barrel crate" + crate_type = /obj/structure/closet/crate/large diff --git a/code/modules/cargo/packs/organic.dm b/code/modules/cargo/packs/organic.dm index 2b5df207c3..48c8cb38a9 100644 --- a/code/modules/cargo/packs/organic.dm +++ b/code/modules/cargo/packs/organic.dm @@ -69,31 +69,24 @@ /obj/item/storage/fancy/donut_box) crate_name = "candy crate" -/datum/supply_pack/organic/cutlery - name = "Kitchen Cutlery Deluxe Set" - desc = "Need to slice and dice away those ''Tomatos'' well we got what you need! From a nice set of knifes, forks, plates, glasses, and a whetstone for when you got some grizzle that is a bit harder to slice then normal." - cost = 10000 - contraband = TRUE - contains = list(/obj/item/sharpener, - /obj/item/kitchen/fork, - /obj/item/kitchen/fork, - /obj/item/kitchen/knife, - /obj/item/kitchen/knife, - /obj/item/kitchen/knife, - /obj/item/kitchen/knife, - /obj/item/kitchen/knife/butcher, - /obj/item/kitchen/knife/butcher, - /obj/item/kitchen/rollingpin, //Deluxe for a reason - /obj/item/trash/plate, - /obj/item/trash/plate, - /obj/item/trash/plate, - /obj/item/trash/plate, - /obj/item/reagent_containers/food/drinks/drinkingglass, - /obj/item/reagent_containers/food/drinks/drinkingglass, - /obj/item/reagent_containers/food/drinks/drinkingglass, - /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, - /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass) - crate_name = "kitchen cutlery deluxe set" +/datum/supply_pack/organic/exoticseeds + name = "Exotic Seeds Crate" + desc = "Any entrepreneuring botanist's dream. Contains twelve different seeds, including three replica-pod seeds and two mystery seeds!" + cost = 1500 + contains = list(/obj/item/seeds/nettle, + /obj/item/seeds/replicapod, + /obj/item/seeds/replicapod, + /obj/item/seeds/replicapod, + /obj/item/seeds/plump, + /obj/item/seeds/liberty, + /obj/item/seeds/amanita, + /obj/item/seeds/reishi, + /obj/item/seeds/banana, + /obj/item/seeds/eggplant/eggy, + /obj/item/seeds/random, + /obj/item/seeds/random) + crate_name = "exotic seeds crate" + crate_type = /obj/structure/closet/crate/hydroponics /datum/supply_pack/organic/food name = "Food Crate" @@ -171,6 +164,32 @@ crate_name = "hydroponics backpack crate" crate_type = /obj/structure/closet/crate/secure +/datum/supply_pack/organic/cutlery + name = "Kitchen Cutlery Deluxe Set" + desc = "Need to slice and dice away those ''Tomatos'' well we got what you need! From a nice set of knifes, forks, plates, glasses, and a whetstone for when you got some grizzle that is a bit harder to slice then normal." + cost = 10000 + contraband = TRUE + contains = list(/obj/item/sharpener, + /obj/item/kitchen/fork, + /obj/item/kitchen/fork, + /obj/item/kitchen/knife, + /obj/item/kitchen/knife, + /obj/item/kitchen/knife, + /obj/item/kitchen/knife, + /obj/item/kitchen/knife/butcher, + /obj/item/kitchen/knife/butcher, + /obj/item/kitchen/rollingpin, //Deluxe for a reason + /obj/item/trash/plate, + /obj/item/trash/plate, + /obj/item/trash/plate, + /obj/item/trash/plate, + /obj/item/reagent_containers/food/drinks/drinkingglass, + /obj/item/reagent_containers/food/drinks/drinkingglass, + /obj/item/reagent_containers/food/drinks/drinkingglass, + /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, + /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass) + crate_name = "kitchen cutlery deluxe set" + /datum/supply_pack/organic/mre name = "MRE supply kit (emergency rations)" desc = "The lights are out. Oxygen's running low. You've run out of food except space weevils. Don't let this be you! Order our NT branded MRE kits today! This pack contains 5 MRE packs with a randomized menu and an oxygen tank." @@ -229,6 +248,16 @@ crate_name = "potted plants crate" crate_type = /obj/structure/closet/crate/hydroponics +/datum/supply_pack/organic/rawcotton + name = "Raw Cotton Crate" + desc = "Plushies have been on the down in the market, and now do to a flood of raw cotton the price of it is so cheap its a steal! Contains 40 raw cotton sheets." + cost = 800 // 100 net cost, 20 x 40 = 800. 700 proffit if turned into cloth sheets or more if turned to silk + contains = list(/obj/item/stack/sheet/cotton/thirty, + /obj/item/stack/sheet/cotton/ten + ) + crate_name = "cotton crate" + crate_type = /obj/structure/closet/crate/hydroponics + /datum/supply_pack/organic/seeds name = "Seeds Crate" desc = "Big things have small beginnings. Contains thirteen different seeds." @@ -269,22 +298,3 @@ /obj/item/valentine) crate_name = "valentine crate" crate_type = /obj/structure/closet/crate/secure - -/datum/supply_pack/organic/exoticseeds - name = "Exotic Seeds Crate" - desc = "Any entrepreneuring botanist's dream. Contains twelve different seeds, including three replica-pod seeds and two mystery seeds!" - cost = 1500 - contains = list(/obj/item/seeds/nettle, - /obj/item/seeds/replicapod, - /obj/item/seeds/replicapod, - /obj/item/seeds/replicapod, - /obj/item/seeds/plump, - /obj/item/seeds/liberty, - /obj/item/seeds/amanita, - /obj/item/seeds/reishi, - /obj/item/seeds/banana, - /obj/item/seeds/eggplant/eggy, - /obj/item/seeds/random, - /obj/item/seeds/random) - crate_name = "exotic seeds crate" - crate_type = /obj/structure/closet/crate/hydroponics diff --git a/icons/obj/stack_objects.dmi b/icons/obj/stack_objects.dmi index ac2d42378a8d753ed783b51714dfec3a7659228b..7cb212384a822b9832ee808e571d9998dc5e4544 100644 GIT binary patch delta 22374 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 Date: Sun, 27 Oct 2019 08:44:46 -0400 Subject: [PATCH 018/144] Apply suggestions from code review Grammar Co-Authored-By: dapnee <33661984+dapnee@users.noreply.github.com> --- code/modules/cargo/exports/organs_robotics.dm | 6 +++--- code/modules/cargo/packs/materials.dm | 2 +- code/modules/cargo/packs/organic.dm | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/cargo/exports/organs_robotics.dm b/code/modules/cargo/exports/organs_robotics.dm index 0f0d393e79..7a77568cc7 100644 --- a/code/modules/cargo/exports/organs_robotics.dm +++ b/code/modules/cargo/exports/organs_robotics.dm @@ -111,18 +111,18 @@ export_types = list(/obj/item/organ/liver) exclude_types = list(/obj/item/organ/liver/cybernetic, /obj/item/organ/liver/cybernetic/upgraded) -/datum/export/orgains/cybernetic +/datum/export/organs/cybernetic cost = 225 unit_name = "cybernetic organ" export_types = list(/obj/item/organ/liver/cybernetic, /obj/item/organ/lungs/cybernetic, /obj/item/organ/eyes/robotic, /obj/item/organ/heart/cybernetic) exclude_types = list(/obj/item/organ/lungs/cybernetic/upgraded, /obj/item/organ/liver/cybernetic/upgraded) -/datum/export/orgains/upgraded +/datum/export/organs/upgraded cost = 275 unit_name = "upgraded cybernetic organ" export_types = list(/obj/item/organ/lungs/cybernetic/upgraded, /obj/item/organ/liver/cybernetic/upgraded) -/datum/export/orgains/tail //Shhh +/datum/export/organs/tail //Shhh cost = 500 unit_name = "error shipment failer" export_types = list(/obj/item/organ/tail) diff --git a/code/modules/cargo/packs/materials.dm b/code/modules/cargo/packs/materials.dm index a01685ca59..494148cffd 100644 --- a/code/modules/cargo/packs/materials.dm +++ b/code/modules/cargo/packs/materials.dm @@ -179,7 +179,7 @@ /datum/supply_pack/materials/wooden_barrel name = "Wooden Barrel" - desc = "A wooden barrles ready for storge." + desc = "Wooden barrels ready for storage." cost = 1500 contains = list(/obj/structure/fermenting_barrel) crate_name = "wooden barrel crate" diff --git a/code/modules/cargo/packs/organic.dm b/code/modules/cargo/packs/organic.dm index 48c8cb38a9..4449dc6405 100644 --- a/code/modules/cargo/packs/organic.dm +++ b/code/modules/cargo/packs/organic.dm @@ -250,7 +250,7 @@ /datum/supply_pack/organic/rawcotton name = "Raw Cotton Crate" - desc = "Plushies have been on the down in the market, and now do to a flood of raw cotton the price of it is so cheap its a steal! Contains 40 raw cotton sheets." + desc = "Plushies have been on the down in the market, and now due to a flood of raw cotton the price of it is so cheap, its a steal! Contains 40 raw cotton sheets." cost = 800 // 100 net cost, 20 x 40 = 800. 700 proffit if turned into cloth sheets or more if turned to silk contains = list(/obj/item/stack/sheet/cotton/thirty, /obj/item/stack/sheet/cotton/ten From 203509b405c77bbefa5cc5c5f50b9f9b74aee9d2 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Sun, 27 Oct 2019 16:27:03 +0300 Subject: [PATCH 019/144] Poll said its DAB --- code/modules/clothing/head/misc.dm | 4 ++-- code/modules/clothing/suits/miscellaneous.dm | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index e222d53218..909d23e49b 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -364,8 +364,8 @@ speech_args[SPEECH_MESSAGE] = trim(message) /obj/item/clothing/head/assu_helmet - name = "ASSU helmet" + name = "DAB helmet" icon_state = "assu_helmet" item_state = "assu_helmet" - desc = "A cheap replica of old riot helmet without visor. It has \"A.S.S.U.\" written on the front." + desc = "A cheap replica of old riot helmet without visor. It has \"D.A.B.\" written on the front." flags_inv = HIDEHAIR diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 5676765047..a18617ea29 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -635,8 +635,8 @@ alternate_worn_layer = UNDER_HEAD_LAYER /obj/item/clothing/suit/assu_suit - name = "ASSU suit" - desc = "A cheap replica of old SWAT armor. On its back, it is written: \"Assistance Skipping Special Unit\"." + name = "DAB suit" + desc = "A cheap replica of old SWAT armor. On its back, it is written: \"Desperate Assistance Battle-force\"." icon_state = "assu_suit" item_state = "assu_suit" blood_overlay_type = "armor" From 4aa1d55abbf33a1468d45c946681d73253d37062 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sun, 27 Oct 2019 16:32:32 +0100 Subject: [PATCH 020/144] Porting multi-z support updates. --- _maps/map_files/debug/multiz.dmm | 10142 ++++++++++++++++ _maps/multiz_debug.dm | 1 + _maps/multiz_debug.json | 6 + code/__DEFINES/atmospherics.dm | 2 + code/__DEFINES/components.dm | 1 + code/__DEFINES/is_helpers.dm | 10 + code/__DEFINES/layers.dm | 38 +- code/__DEFINES/maps.dm | 9 +- code/__DEFINES/obj_flags.dm | 1 + code/_globalvars/lists/mapping.dm | 12 +- code/_onclick/hud/plane_master.dm | 22 + code/controllers/subsystem/mapping.dm | 42 +- code/controllers/subsystem/throwing.dm | 5 + code/game/atoms.dm | 11 +- code/game/atoms_movable.dm | 45 + code/game/objects/effects/decals/decal.dm | 2 +- code/game/objects/effects/effects.dm | 3 + code/game/objects/structures/lattice.dm | 1 + code/game/objects/structures/stairs.dm | 125 + code/game/turfs/open.dm | 51 +- code/game/turfs/openspace/openspace.dm | 134 + code/game/turfs/turf.dm | 68 +- .../environmental/LINDA_system.dm | 59 +- .../environmental/LINDA_turf_tile.dm | 3 +- code/modules/atmospherics/multiz.dm | 29 + code/modules/mapping/ruins.dm | 82 +- .../space_management/multiz_helpers.dm | 47 + code/modules/mob/dead/observer/observer.dm | 1 + .../mob/dead/observer/observer_movement.dm | 2 + code/modules/mob/living/living.dm | 10 + code/modules/mob/living/living_movement.dm | 5 +- code/modules/mob/mob_movement.dm | 32 + code/modules/power/gravitygenerator.dm | 44 +- code/modules/power/multiz.dm | 80 + code/modules/power/supermatter/supermatter.dm | 3 + .../chemistry/reagents/food_reagents.dm | 2 +- code/modules/recycling/disposal/multiz.dm | 49 + code/modules/shuttle/shuttle.dm | 3 + config/maps.txt | 3 + icons/obj/atmos.dmi | Bin 29454 -> 29801 bytes icons/obj/atmospherics/pipes/disposal.dmi | Bin 119069 -> 125653 bytes icons/obj/power.dmi | Bin 30865 -> 33196 bytes icons/obj/stairs.dmi | Bin 0 -> 4929 bytes tgstation.dme | 7 + 44 files changed, 11050 insertions(+), 142 deletions(-) create mode 100644 _maps/map_files/debug/multiz.dmm create mode 100644 _maps/multiz_debug.dm create mode 100644 _maps/multiz_debug.json create mode 100644 code/game/objects/structures/stairs.dm create mode 100644 code/game/turfs/openspace/openspace.dm create mode 100644 code/modules/atmospherics/multiz.dm create mode 100644 code/modules/mapping/space_management/multiz_helpers.dm create mode 100644 code/modules/mob/dead/observer/observer_movement.dm create mode 100644 code/modules/power/multiz.dm create mode 100644 code/modules/recycling/disposal/multiz.dm create mode 100644 icons/obj/stairs.dmi diff --git a/_maps/map_files/debug/multiz.dmm b/_maps/map_files/debug/multiz.dmm new file mode 100644 index 0000000000..43d06e57e1 --- /dev/null +++ b/_maps/map_files/debug/multiz.dmm @@ -0,0 +1,10142 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/space/basic, +/area/space) +"ab" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space) +"ac" = ( +/turf/open/space, +/area/space/nearstation) +"ad" = ( +/turf/closed/wall/r_wall, +/area/maintenance/department/bridge) +"ae" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space, +/area/space/nearstation) +"af" = ( +/turf/open/floor/plating, +/area/maintenance/department/bridge) +"ag" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"ah" = ( +/turf/closed/wall/r_wall, +/area/engine/atmos) +"ai" = ( +/obj/machinery/power/rtg/advanced, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aj" = ( +/turf/closed/wall/r_wall, +/area/engine/engineering) +"ak" = ( +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"al" = ( +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/obj/structure/closet/secure_closet/atmospherics, +/turf/open/floor/plating, +/area/engine/atmos) +"am" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating, +/area/engine/atmos) +"an" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/space, +/area/space/nearstation) +"ao" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space, +/area/space/nearstation) +"ap" = ( +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/obj/machinery/power/apc{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/closet/secure_closet/engineering_electrical, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aq" = ( +/obj/machinery/computer/monitor, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ar" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/plasteel, +/area/engine/engineering) +"as" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"at" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Gravity Generator APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"au" = ( +/turf/open/openspace, +/area/security) +"av" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/openspace, +/area/security) +"aw" = ( +/turf/open/floor/plating, +/area/engine/atmos) +"ax" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"ay" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plating, +/area/engine/atmos) +"az" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/engine/atmos) +"aA" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/space, +/area/space/nearstation) +"aB" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space, +/area/space/nearstation) +"aC" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/openspace, +/area/security) +"aD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aG" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"aH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"aI" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/gravity_generator) +"aJ" = ( +/turf/open/floor/plasteel{ + dir = 1 + }, +/area/engine/gravity_generator) +"aK" = ( +/turf/open/floor/plasteel{ + dir = 8 + }, +/area/engine/gravity_generator) +"aL" = ( +/turf/open/floor/plasteel{ + dir = 4 + }, +/area/engine/gravity_generator) +"aM" = ( +/obj/machinery/suit_storage_unit/ce, +/turf/open/floor/plating, +/area/engine/atmos) +"aN" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/effect/turf_decal/bot{ + dir = 2 + }, +/turf/open/floor/plasteel{ + dir = 2 + }, +/area/engine/atmos) +"aO" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aP" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"aQ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/space, +/area/space/nearstation) +"aR" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/space/nearstation) +"aS" = ( +/obj/structure/table, +/obj/item/flashlight{ + pixel_y = 5 + }, +/obj/item/airlock_painter, +/turf/open/floor/plating, +/area/engine/engineering) +"aT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"aV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"aW" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"aX" = ( +/obj/machinery/gravity_generator/main/station, +/turf/open/openspace, +/area/security) +"aY" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"aZ" = ( +/obj/structure/tank_dispenser{ + pixel_x = -1 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"ba" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plating, +/area/engine/atmos) +"bb" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 2 + }, +/turf/open/floor/plasteel{ + dir = 2 + }, +/area/engine/atmos) +"bc" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + on = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bd" = ( +/obj/structure/table, +/obj/item/weldingtool/experimental, +/turf/open/floor/plating, +/area/engine/engineering) +"be" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bf" = ( +/obj/structure/closet/secure_closet/engineering_chief, +/turf/open/floor/plating, +/area/engine/engineering) +"bg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bi" = ( +/obj/machinery/gravity_generator/main/station, +/turf/open/floor/plasteel{ + dir = 8 + }, +/area/engine/gravity_generator) +"bj" = ( +/obj/machinery/power/apc{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/light, +/obj/structure/table, +/obj/item/analyzer, +/obj/item/wrench, +/turf/open/floor/plating, +/area/engine/atmos) +"bk" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"bl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/engine/atmos) +"bm" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"bn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/machinery/light, +/turf/open/floor/plating, +/area/engine/atmos) +"bo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/table, +/obj/item/screwdriver/power, +/obj/item/wirecutters/power, +/turf/open/floor/plating, +/area/engine/engineering) +"bp" = ( +/obj/machinery/light, +/obj/item/storage/box/lights/mixed, +/obj/item/lightreplacer, +/turf/open/floor/plating, +/area/engine/engineering) +"bq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"br" = ( +/obj/structure/closet/radiation, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/hallway/primary/central) +"bt" = ( +/obj/machinery/door/airlock, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bu" = ( +/turf/closed/wall/r_wall, +/area/bridge) +"bv" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/bridge) +"bw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"bx" = ( +/obj/machinery/door/airlock, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"by" = ( +/turf/closed/wall/r_wall, +/area/hallway/secondary/entry) +"bz" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/bridge) +"bA" = ( +/turf/closed/wall/r_wall, +/area/hallway/primary/central) +"bB" = ( +/obj/machinery/power/apc{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/obj/structure/closet/jcloset, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bC" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bE" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bF" = ( +/obj/structure/closet/secure_closet/CMO, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bG" = ( +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/obj/machinery/power/apc{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/closet/secure_closet/captains, +/turf/open/floor/plasteel{ + dir = 8 + }, +/area/bridge) +"bH" = ( +/obj/structure/table, +/obj/item/ammo_box/c10mm, +/obj/item/gun/ballistic, +/turf/open/floor/plasteel, +/area/bridge) +"bI" = ( +/obj/structure/table, +/turf/open/floor/plasteel, +/area/bridge) +"bJ" = ( +/obj/structure/table, +/obj/item/card/id/captains_spare, +/turf/open/floor/plasteel, +/area/bridge) +"bK" = ( +/obj/structure/table, +/obj/item/storage/backpack/holding, +/turf/open/floor/plasteel, +/area/bridge) +"bL" = ( +/obj/structure/table, +/obj/item/rcd_ammo/large, +/obj/item/rcd_ammo/large, +/obj/item/rcd_ammo/large, +/obj/item/construction/rcd, +/turf/open/floor/plasteel, +/area/bridge) +"bM" = ( +/obj/structure/closet/secure_closet/hop, +/turf/open/floor/plasteel{ + dir = 4 + }, +/area/bridge) +"bN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bP" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bQ" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bR" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bS" = ( +/obj/machinery/vending/snack, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bT" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bU" = ( +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/obj/machinery/power/apc{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/closet/firecloset/full, +/turf/open/floor/plasteel{ + dir = 9 + }, +/area/hallway/secondary/entry) +"bV" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel{ + dir = 1 + }, +/area/hallway/secondary/entry) +"bW" = ( +/obj/structure/closet/secure_closet/hos, +/turf/open/floor/plasteel{ + dir = 1 + }, +/area/hallway/secondary/entry) +"bX" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel{ + dir = 1 + }, +/area/hallway/secondary/entry) +"bY" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/department/bridge) +"bZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/central) +"ca" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cd" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/bridge) +"ce" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel{ + dir = 8 + }, +/area/bridge) +"cf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/bridge) +"cg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + dir = 4 + }, +/area/bridge) +"ch" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/bridge) +"ci" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ck" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/hallway/secondary/entry) +"cl" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel{ + dir = 8 + }, +/area/hallway/secondary/entry) +"cn" = ( +/obj/machinery/door/airlock, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"co" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cp" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel{ + dir = 10 + }, +/area/bridge) +"cr" = ( +/obj/machinery/light, +/turf/open/floor/plasteel{ + dir = 6 + }, +/area/bridge) +"cs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/bridge) +"ct" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/bridge) +"cw" = ( +/obj/machinery/door/airlock, +/turf/open/floor/plasteel, +/area/bridge) +"cx" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cy" = ( +/turf/open/floor/plasteel{ + dir = 8 + }, +/area/hallway/secondary/entry) +"cz" = ( +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel{ + dir = 4 + }, +/area/hallway/primary/central) +"cC" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel{ + dir = 1 + }, +/area/hallway/primary/central) +"cD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + dir = 1 + }, +/area/hallway/primary/central) +"cE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel{ + dir = 1 + }, +/area/hallway/primary/central) +"cF" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/hallway/secondary/entry) +"cH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel{ + dir = 8 + }, +/area/hallway/secondary/entry) +"cI" = ( +/obj/structure/table, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/plasteel{ + dir = 8 + }, +/area/hallway/secondary/entry) +"cJ" = ( +/obj/structure/table, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/plasteel{ + dir = 10 + }, +/area/hallway/secondary/entry) +"cK" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/rods/fifty, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cL" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cM" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular, +/obj/item/storage/firstaid/regular, +/obj/item/healthanalyzer, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cN" = ( +/turf/closed/wall/r_wall, +/area/construction) +"cO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/construction) +"cP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/construction) +"cQ" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel, +/area/construction) +"cR" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/construction) +"cS" = ( +/turf/closed/wall/r_wall, +/area/storage/primary) +"cT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/storage/primary) +"cU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/storage/primary) +"cV" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/plasteel, +/area/storage/primary) +"cW" = ( +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/obj/structure/cable, +/obj/machinery/power/apc{ + dir = 8; + pixel_x = -24 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, +/area/construction) +"cX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/construction) +"cY" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/construction) +"cZ" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/ladder, +/turf/open/floor/plasteel, +/area/construction) +"da" = ( +/obj/machinery/airalarm{ + frequency = 1439; + locked = 0; + pixel_y = 23 + }, +/obj/machinery/power/apc{ + dir = 8; + pixel_x = -24 + }, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"db" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"dc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"dd" = ( +/turf/open/floor/plasteel{ + icon_state = "L1" + }, +/area/storage/primary) +"de" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"df" = ( +/turf/open/floor/plasteel{ + icon_state = "L5" + }, +/area/storage/primary) +"dg" = ( +/turf/open/floor/plasteel{ + icon_state = "L7" + }, +/area/storage/primary) +"dh" = ( +/turf/open/floor/plasteel{ + icon_state = "L9" + }, +/area/storage/primary) +"dj" = ( +/turf/open/floor/plasteel{ + icon_state = "L13" + }, +/area/storage/primary) +"dk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"dl" = ( +/turf/open/floor/plating, +/area/storage/primary) +"dm" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/construction) +"dn" = ( +/turf/open/floor/plating, +/area/construction) +"do" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/construction) +"dp" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/storage/primary) +"dq" = ( +/turf/open/floor/plasteel{ + icon_state = "L2" + }, +/area/storage/primary) +"dr" = ( +/turf/open/floor/plasteel{ + icon_state = "L4" + }, +/area/storage/primary) +"ds" = ( +/turf/open/floor/plasteel{ + icon_state = "L6" + }, +/area/storage/primary) +"dt" = ( +/turf/open/floor/plasteel{ + icon_state = "L8" + }, +/area/storage/primary) +"du" = ( +/turf/open/floor/plasteel{ + icon_state = "L10" + }, +/area/storage/primary) +"dv" = ( +/turf/open/floor/plasteel{ + icon_state = "L12" + }, +/area/storage/primary) +"dw" = ( +/turf/open/floor/plasteel{ + icon_state = "L14" + }, +/area/storage/primary) +"dx" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/primary) +"dy" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/construction) +"dz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/construction) +"dA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"dB" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/storage/primary) +"dC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"dD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"dE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"dF" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"dG" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"dH" = ( +/obj/effect/landmark/start, +/turf/open/floor/plasteel, +/area/storage/primary) +"dI" = ( +/obj/effect/landmark/latejoin, +/turf/open/floor/plasteel, +/area/storage/primary) +"dJ" = ( +/turf/open/floor/plasteel, +/area/storage/primary) +"dK" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/construction) +"dL" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/construction) +"dM" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/construction) +"dN" = ( +/obj/structure/table, +/turf/open/floor/plasteel, +/area/storage/primary) +"dO" = ( +/obj/structure/table, +/obj/machinery/light, +/obj/item/twohanded/fireaxe, +/obj/item/extinguisher, +/turf/open/floor/plasteel, +/area/storage/primary) +"dP" = ( +/obj/structure/table, +/obj/item/lightreplacer, +/turf/open/floor/plasteel, +/area/storage/primary) +"dQ" = ( +/obj/structure/table, +/obj/item/storage/box/lights/mixed, +/obj/item/storage/box/lights/tubes, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/storage/primary) +"dR" = ( +/obj/structure/table, +/obj/item/flashlight{ + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"dS" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"dV" = ( +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"dW" = ( +/turf/open/floor/plasteel, +/area/engine/engineering) +"dX" = ( +/turf/open/floor/plasteel{ + dir = 2 + }, +/area/engine/atmos) +"dY" = ( +/turf/open/floor/plasteel, +/area/engine/atmos) +"dZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/external/glass, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ea" = ( +/turf/open/floor/plasteel{ + dir = 8 + }, +/area/bridge) +"eb" = ( +/turf/open/floor/plasteel, +/area/bridge) +"ec" = ( +/turf/open/floor/plasteel{ + dir = 4 + }, +/area/bridge) +"ed" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ee" = ( +/turf/open/floor/plasteel{ + dir = 9 + }, +/area/hallway/secondary/entry) +"ef" = ( +/turf/open/floor/plasteel{ + dir = 1 + }, +/area/hallway/secondary/entry) +"eg" = ( +/turf/open/floor/plating, +/area/hallway/primary/central) +"eh" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel{ + dir = 10 + }, +/area/bridge) +"ei" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel{ + dir = 6 + }, +/area/bridge) +"ej" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ek" = ( +/turf/open/floor/plasteel{ + dir = 4 + }, +/area/hallway/primary/central) +"em" = ( +/turf/open/floor/plasteel{ + dir = 1 + }, +/area/hallway/primary/central) +"en" = ( +/turf/open/floor/plasteel{ + dir = 10 + }, +/area/hallway/secondary/entry) +"eo" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"ep" = ( +/turf/open/floor/plasteel, +/area/construction) +"eq" = ( +/turf/open/floor/plasteel{ + icon_state = "L3" + }, +/area/storage/primary) +"er" = ( +/turf/open/floor/plasteel{ + icon_state = "L11" + }, +/area/storage/primary) +"es" = ( +/obj/effect/turf_decal/stripes/asteroid/corner, +/turf/open/floor/plasteel, +/area/construction) +"et" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/construction) +"eu" = ( +/obj/effect/turf_decal/stripes/asteroid/line, +/turf/open/floor/plasteel, +/area/construction) +"ev" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"ew" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"ex" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/storage/primary) +"ey" = ( +/obj/effect/turf_decal/stripes/asteroid/corner{ + dir = 1 + }, +/obj/structure/ladder, +/turf/open/floor/plasteel, +/area/construction) +"ez" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel{ + dir = 8 + }, +/area/hallway/secondary/entry) +"eC" = ( +/turf/open/openspace, +/area/maintenance/department/bridge) +"eD" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 8 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plasteel, +/area/engine/engineering) +"eE" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"eF" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"eG" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"eH" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/construction) +"eI" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/construction) +"eJ" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/construction) +"eK" = ( +/obj/effect/turf_decal/stripes/asteroid/corner{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/construction) +"eL" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/construction) +"eM" = ( +/obj/effect/turf_decal/stripes/asteroid/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/construction) +"eN" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"eO" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 1 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plasteel, +/area/bridge) +"eP" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"eQ" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"eR" = ( +/obj/effect/turf_decal/stripes/asteroid/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/asteroid/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"eS" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"eT" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"eU" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"eV" = ( +/obj/structure/ladder, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"eW" = ( +/obj/effect/turf_decal/stripes/asteroid/line, +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"eX" = ( +/obj/effect/turf_decal/stripes/asteroid/line, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"eY" = ( +/obj/effect/turf_decal/stripes/asteroid/line, +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"fk" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating, +/area/construction) +"fn" = ( +/turf/closed/wall/r_wall, +/area/space) +"fo" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 4 + }, +/obj/machinery/door/airlock/external/glass, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"og" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/ladder, +/turf/open/floor/plasteel, +/area/construction) +"oh" = ( +/obj/machinery/door/airlock/external/glass, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"on" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"oA" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/bridge) +"oJ" = ( +/obj/effect/turf_decal/stripes/asteroid/line, +/turf/open/floor/plating, +/area/maintenance/department/bridge) +"ux" = ( +/obj/structure/ladder, +/turf/open/floor/plasteel, +/area/security) +"yl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Bm" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"CA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/external/glass, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"Dm" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/department/bridge) +"Fz" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/asteroid/line, +/turf/open/floor/plasteel, +/area/security) +"Hn" = ( +/obj/effect/turf_decal/stripes/asteroid/line, +/obj/structure/ladder, +/turf/open/floor/plasteel, +/area/construction) +"Jz" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security) +"Kd" = ( +/obj/machinery/door/airlock/external/glass, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"Kq" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security) +"KL" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security) +"KM" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/bridge) +"LW" = ( +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"ME" = ( +/obj/machinery/light, +/turf/open/floor/plating, +/area/maintenance/department/bridge) +"Pl" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/asteroid/line, +/turf/open/floor/plasteel, +/area/security) +"Uc" = ( +/obj/effect/turf_decal/stripes/asteroid/line, +/turf/open/floor/plasteel, +/area/security) +"WC" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security) +"YD" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(5,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(6,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(7,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bY +bY +bY +bY +bY +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +af +af +af +af +af +af +af +bz +af +af +af +af +af +bz +af +af +af +af +af +bz +af +af +af +af +af +af +af +bz +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ah +ah +ah +ah +ah +ah +ah +bA +bZ +bZ +bZ +bZ +bZ +bA +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ah +al +aw +aM +aZ +bj +bs +bB +ca +bO +bO +bO +bO +bO +cO +cW +dm +dy +dy +dy +dy +dy +dy +dy +dy +dm +dK +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +Dm +ah +am +ax +aw +ba +bk +bt +bC +cb +bN +bN +bC +bN +bN +cP +cX +dn +dn +dn +dn +dn +dn +dn +dn +dn +dn +dL +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ah +am +ay +aN +bb +bl +ah +bD +cc +bE +bE +cA +bE +bE +cQ +cY +dn +dn +dn +dn +dn +dn +dn +dn +dn +dn +dL +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ah +am +ay +aO +bc +bm +ah +bE +cc +bE +bE +cA +bE +bE +cQ +cY +dn +dn +dn +dn +dn +dn +dn +dn +dn +dn +dL +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ah +am +az +aP +aP +bn +ah +bF +cc +co +bE +cA +bE +bE +cN +cY +dn +dn +dn +dn +cN +cN +cN +dn +dn +dn +dL +cN +ME +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +ad +ah +ah +ah +ah +ah +ah +bu +bu +cd +bu +bu +cB +bE +bE +cR +cY +dn +dn +dn +dn +cN +fk +cN +dn +dn +dn +dL +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ae +ag +ag +ag +ag +ag +ag +ag +bu +bG +ce +cp +cv +cC +bE +bE +cR +og +dn +dn +dn +dn +cN +dn +cN +dn +dn +dn +dL +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ae +ag +ai +an +ai +aQ +ai +ag +bv +bH +cf +eb +bv +cD +bE +bE +cR +cY +dn +dn +dn +dn +dn +dn +dn +dn +dn +dn +dL +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ae +ag +ai +ao +aA +aR +ai +ag +bv +bI +cf +eb +bu +cD +bE +bE +cN +cY +dn +dn +dn +dn +dn +dn +dn +dn +dn +dn +dL +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ae +ag +ag +ag +aB +ag +ag +ag +bv +bJ +cf +eb +cw +cD +bE +bE +cQ +cY +dn +dn +dn +dn +dn +dn +dn +dn +dn +dn +dL +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ae +ac +ac +ag +aB +ag +ac +ac +bv +bK +cf +eb +bu +cD +bE +bE +cQ +cY +dn +dn +dn +dn +dn +dn +dn +dn +dn +dn +dL +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ae +ac +ac +aj +dZ +aj +ac +ac +bv +bL +cf +eb +bv +cD +bE +bE +cN +cZ +do +dz +dz +dz +dz +dz +dz +dz +dz +do +dM +cN +ME +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ae +ac +ac +aj +aD +aj +ac +ac +bu +bM +cg +cr +bu +cD +bE +bE +cS +cS +cS +dJ +dJ +dJ +dJ +dJ +dJ +dJ +dJ +cS +cS +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +ad +aj +aj +CA +aj +aj +aj +bu +bu +ch +cs +cs +cE +bO +bO +cT +da +on +dA +dl +dl +dl +dl +dl +dl +dl +dp +dl +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +aj +ap +yl +aS +bd +bo +bw +bN +ci +ct +bN +cF +bN +bN +cU +db +dJ +dB +dl +dl +dl +dl +dl +dl +dl +dl +dl +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +aj +aq +aE +aT +be +be +bx +bO +cj +bE +bE +cA +bE +bE +cS +dJ +dJ +dB +dl +dD +dc +dc +dA +dl +dD +dc +dc +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +aj +ar +dW +yl +bf +bp +aj +bP +cc +bE +bE +cA +bE +bE +cS +dJ +dJ +dB +dl +dE +dH +dI +dB +dl +dE +dJ +dN +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +Dm +ak +ak +ak +aU +ak +ak +ak +bQ +cc +bE +bE +cA +bE +bE +cS +de +dJ +dB +dl +dE +dH +dI +dB +dl +dE +dJ +dO +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ak +as +aG +aV +bg +bq +ak +bR +cc +bE +bE +cA +bE +bE +cV +dJ +dJ +dB +dl +dE +dH +dI +dB +dl +dE +dJ +dN +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(33,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ak +at +aH +aW +bh +br +ak +bS +cc +bE +bE +cA +bE +bE +cV +dJ +dJ +dB +dl +dE +dH +dI +dB +dl +dE +dJ +dN +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ak +aI +aI +dV +aI +aI +ak +bT +cc +co +bE +cA +bE +bE +cV +dJ +dJ +dB +dl +dE +dH +dI +dB +dl +dE +dJ +dP +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ak +dV +dV +dV +dV +dV +by +by +ck +by +cx +cG +by +by +by +de +dJ +dB +dl +dE +dH +dI +dB +cS +dE +dJ +dQ +cS +ME +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(36,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ak +dV +aJ +aK +aL +dV +by +bU +cl +cy +cy +cH +cI +cJ +by +dJ +dJ +dB +dl +dE +dH +dI +dB +dl +dE +dJ +dR +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(37,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +Dm +ak +dV +aK +dV +bi +dV +by +bV +eo +eo +eo +eo +eo +cK +by +dJ +dJ +dB +dl +dF +dk +dk +dC +dl +dF +dk +dk +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(38,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ak +dV +aL +aK +aJ +dV +by +bW +eo +eo +eo +eo +eo +cL +by +dJ +dJ +dB +dl +dl +dl +dl +dl +dl +dl +dl +dl +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(39,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ak +dV +dV +aY +dV +dV +by +bX +eo +eo +cy +eo +eo +cM +by +dk +Bm +dC +dl +dl +dl +dl +dl +dl +dl +dx +dl +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(40,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ak +ak +ak +ak +ak +ak +by +by +cn +by +oh +by +cn +by +by +cS +cS +cS +cS +cS +cS +cS +cS +cS +cS +cS +cS +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(41,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +oA +af +af +af +af +oA +af +af +af +by +LW +by +af +af +af +oA +af +af +af +af +oA +af +af +af +af +oA +af +af +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(42,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +by +Kd +by +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(43,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(44,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(45,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(46,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(47,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(48,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(49,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(50,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(51,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(52,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} + +(1,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(3,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(4,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(5,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(6,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(7,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(8,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(9,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(10,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(11,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bY +bY +bY +bY +bY +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(12,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +af +af +af +af +af +af +af +af +bz +af +af +af +af +af +bz +af +af +af +af +bz +af +af +af +af +bz +af +af +af +af +af +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(13,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +af +ah +ah +ah +ah +ah +ah +ah +bA +eg +eg +eg +eg +eg +bA +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +af +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(14,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +Dm +ah +aw +aw +eE +aw +dY +bA +bE +bE +bE +bE +bE +bE +bE +cN +es +eI +eI +eI +eI +eI +eI +eI +eI +eI +eI +eK +cN +ME +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(15,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +af +ah +aw +aw +aw +dY +dY +dY +bE +bE +bE +bE +bE +bE +bE +cN +eu +au +au +au +au +au +au +au +au +au +au +eL +cN +af +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(16,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +af +ah +aw +aw +dX +dX +dY +dY +bE +bE +bE +bE +bE +bE +bE +ep +eu +au +au +au +au +au +au +au +au +au +au +eL +cN +af +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(17,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +af +ah +aw +dY +dY +dY +dY +dY +bE +bE +bE +bE +bE +bE +bE +ep +eu +au +au +au +au +au +au +au +au +au +au +eL +cN +af +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(18,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +af +ah +dY +dY +dY +dY +dY +ah +bE +bE +co +bE +bE +bE +bE +ep +eu +au +au +au +au +cN +cN +cN +au +au +au +eL +cN +af +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(19,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +ad +ah +eF +ed +ed +eF +ah +bu +bu +bv +bu +bu +ek +bE +bE +ep +eu +au +au +au +au +au +av +au +au +au +au +eL +cN +ME +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(20,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +bu +ea +ea +eh +bu +em +bE +bE +ep +Hn +au +au +au +au +au +au +au +au +au +au +eL +cN +af +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(21,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +bv +eb +eb +eb +bv +em +bE +bE +ep +eu +au +au +au +au +au +au +au +au +au +au +eL +cN +af +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(22,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +eO +eb +eb +eb +eb +em +bE +bE +ep +eu +au +au +au +au +au +au +au +au +au +au +eL +cN +af +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(23,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +eO +eb +eb +eb +eb +em +bE +bE +ep +eu +au +au +au +au +au +au +au +au +au +au +eL +cN +af +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(24,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +eO +eb +eb +eb +eb +em +bE +bE +ep +eu +au +au +au +au +au +au +au +au +au +au +eL +cN +ME +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(25,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +bv +eb +eb +eb +bv +em +bE +bE +et +ey +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eJ +eH +eM +cN +af +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(26,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +bu +ec +ec +ei +bu +em +bE +bE +cS +dJ +dJ +dJ +dJ +dJ +dJ +dJ +cS +cS +cS +cS +cS +cS +af +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(27,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +ad +aj +eG +eD +eD +eG +aj +bu +bu +bv +bu +bu +em +bE +bE +ev +dJ +dJ +dJ +dJ +dJ +dJ +dJ +dJ +dJ +dJ +ev +dJ +cS +af +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(28,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +af +aj +dW +dW +dW +dW +dW +aj +bE +bE +ej +bE +bE +bE +bE +dJ +dJ +dJ +dJ +dJ +dJ +dJ +dJ +dJ +dJ +dJ +dJ +dJ +cS +af +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(29,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +af +aj +dW +dW +dW +dW +dW +dW +bE +bE +bE +bE +bE +bE +bE +dJ +dJ +dJ +dJ +dJ +dJ +dJ +dJ +dJ +dJ +dJ +dJ +dJ +cS +ME +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(30,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +af +aj +dW +eN +dW +dW +dW +dW +bE +bE +bE +bE +bE +bE +bE +dJ +dd +dq +dJ +ex +ex +ex +ex +ex +ex +ex +ex +ex +cS +KM +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(31,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +af +ak +dV +ak +dV +dV +dV +dV +bE +bE +bE +bE +bE +bE +bE +dJ +eq +dr +dJ +ex +au +au +au +au +au +au +au +au +au +eC +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(32,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +Dm +ak +dV +dV +dV +dV +dV +dV +bE +bE +bE +bE +bE +bE +bE +dJ +df +ds +dJ +ex +au +au +au +au +au +au +au +au +au +eC +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(33,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +af +ak +dV +dV +dV +dV +dV +ak +bE +bE +bE +bE +bE +bE +bE +dJ +dg +dt +dJ +ex +au +au +au +au +au +au +au +au +au +eC +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(34,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +af +ak +dV +dV +dV +dV +dV +ak +bE +bE +co +bE +bE +bE +bE +dJ +dh +du +dJ +ex +au +au +au +au +au +au +au +au +au +eC +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(35,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +af +ak +dV +dV +dV +dV +dV +by +by +by +by +eo +by +by +by +by +er +dv +dJ +ex +au +au +au +aC +cS +au +au +au +au +eC +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(36,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +af +ak +dV +aJ +aK +aL +dV +by +ee +cy +ez +cy +cy +cy +en +by +dj +dw +dJ +ex +au +au +au +au +au +au +au +au +au +eC +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(37,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +af +ak +dV +aK +dV +bi +dV +by +ef +eo +eo +eo +eo +eo +eo +by +dJ +dJ +dJ +ex +au +au +au +au +au +au +au +au +au +eC +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(38,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +Dm +ak +dV +aL +aK +aJ +dV +by +ef +eo +eo +eo +eo +eo +eo +by +dJ +dJ +dJ +ex +au +au +au +au +au +au +au +au +au +eC +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(39,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +af +ak +dV +dV +aY +dV +dV +by +ef +eo +eo +cy +eo +eo +eo +by +dJ +ew +dJ +ex +au +au +au +au +au +au +au +au +au +eC +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(40,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +af +ak +ak +ak +ak +ak +ak +by +by +cz +by +by +by +cz +by +by +cS +cS +cS +cS +au +au +au +au +au +au +au +au +au +eC +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(41,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +af +oA +af +af +af +af +oA +af +af +af +by +cz +by +oA +af +af +af +oA +af +oJ +eC +eC +eC +eC +eC +eC +eC +eC +eC +eC +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(42,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +by +by +by +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(43,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(44,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(45,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(46,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(47,1,2) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(48,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(49,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(50,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(51,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(52,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} + +(1,1,3) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,3) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(3,1,3) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(4,1,3) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(5,1,3) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(6,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(7,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(8,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(9,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(10,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(11,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(12,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(13,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(14,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(15,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(16,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(17,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(18,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(19,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +fn +fn +fn +fn +fn +fn +fn +fn +au +au +au +au +au +au +au +Kq +YD +Fz +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(20,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +fn +au +au +au +au +au +au +au +Jz +ux +Uc +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(21,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +fn +au +au +au +au +au +au +au +KL +WC +Pl +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(22,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(23,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +fn +au +au +au +au +eP +eT +eT +eT +eT +eT +eW +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(24,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +fn +au +au +au +au +eQ +bE +bE +bE +bE +bE +eX +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(25,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +fn +au +au +au +au +eQ +bE +bE +co +eV +bE +eX +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(26,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +dG +fo +dS +dS +dS +dS +eR +bE +bE +bA +bE +bE +eX +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(27,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +fn +fn +fn +fn +fn +fn +fn +fn +au +au +au +au +eQ +bE +bE +ej +bE +bE +eX +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(28,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +eQ +bE +bE +bE +bE +bE +eX +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(29,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +eS +eU +eU +eU +eU +eU +eY +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(30,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(31,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(32,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(33,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(34,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(35,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(36,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(37,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(38,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(39,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(40,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(41,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(42,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +fn +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(43,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(44,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(45,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +aX +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(46,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(47,1,3) = {" +aa +aa +aa +aa +aa +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +au +aa +aa +aa +aa +aa +"} +(48,1,3) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(49,1,3) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(50,1,3) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(51,1,3) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(52,1,3) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/multiz_debug.dm b/_maps/multiz_debug.dm new file mode 100644 index 0000000000..0521fef59d --- /dev/null +++ b/_maps/multiz_debug.dm @@ -0,0 +1 @@ +#define FORCE_MAP "_maps/multiz_debug.json" \ No newline at end of file diff --git a/_maps/multiz_debug.json b/_maps/multiz_debug.json new file mode 100644 index 0000000000..7e39981e23 --- /dev/null +++ b/_maps/multiz_debug.json @@ -0,0 +1,6 @@ +{ + "map_name": "MultiZ Debug", + "map_path": "map_files/debug", + "map_file": "multiz.dmm", + "traits": [{"Up": 1}, {"Up": 1, "Down": -1}, {"Down": -1}] + } diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index 928837979c..f73a74ab19 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -143,7 +143,9 @@ #define ATMOS_PASS_NO 0 #define ATMOS_PASS_PROC -1 //ask CanAtmosPass() #define ATMOS_PASS_DENSITY -2 //just check density + #define CANATMOSPASS(A, O) ( A.CanAtmosPass == ATMOS_PASS_PROC ? A.CanAtmosPass(O) : ( A.CanAtmosPass == ATMOS_PASS_DENSITY ? !A.density : A.CanAtmosPass ) ) +#define CANVERTICALATMOSPASS(A, O) ( A.CanAtmosPassVertical == ATMOS_PASS_PROC ? A.CanAtmosPass(O, TRUE) : ( A.CanAtmosPassVertical == ATMOS_PASS_DENSITY ? !A.density : A.CanAtmosPassVertical ) ) //LAVALAND #define LAVALAND_EQUIPMENT_EFFECT_PRESSURE 50 //what pressure you have to be under to increase the effect of equipment meant for lavaland diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index e33d42df64..e054ec44f3 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -98,6 +98,7 @@ // /turf signals #define COMSIG_TURF_CHANGE "turf_change" //from base of turf/ChangeTurf(): (path, list/new_baseturfs, flags, list/transferring_comps) #define COMSIG_TURF_HAS_GRAVITY "turf_has_gravity" //from base of atom/has_gravity(): (atom/asker, list/forced_gravities) +#define COMSIG_TURF_MULTIZ_NEW "turf_multiz_new" //from base of turf/New(): (turf/source, direction) // /atom/movable signals #define COMSIG_MOVABLE_MOVED "movable_moved" //from base of atom/movable/Moved(): (/atom, dir) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 9f69da0154..5683ee52ea 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -13,6 +13,16 @@ //Turfs //#define isturf(A) (istype(A, /turf)) This is actually a byond built-in. Added here for completeness sake. +GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list( + /turf/open/space, + /turf/open/chasm, + /turf/open/lava, + /turf/open/water, + /turf/open/openspace + ))) + +#define isgroundlessturf(A) (is_type_in_typecache(A, GLOB.turfs_without_ground)) + #define isopenturf(A) (istype(A, /turf/open)) #define isindestructiblefloor(A) (istype(A, /turf/open/indestructible)) diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index 5e903997e4..e0a22667ac 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -9,6 +9,7 @@ #define FLOOR_PLANE -2 #define GAME_PLANE -1 #define BLACKNESS_PLANE 0 //To keep from conflicts with SEE_BLACKNESS internals + #define SPACE_LAYER 1.8 //#define TURF_LAYER 2 //For easy recordkeeping; this is a byond define #define MID_TURF_LAYER 2.02 @@ -83,25 +84,28 @@ #define ABOVE_LIGHTING_PLANE 16 #define ABOVE_LIGHTING_LAYER 16 -#define BYOND_LIGHTING_PLANE 17 -#define BYOND_LIGHTING_LAYER 17 +#define FLOOR_OPENSPACE_PLANE 17 +#define OPENSPACE_LAYER 17 -#define CAMERA_STATIC_PLANE 18 -#define CAMERA_STATIC_LAYER 18 +#define BYOND_LIGHTING_PLANE 18 +#define BYOND_LIGHTING_LAYER 18 + +#define CAMERA_STATIC_PLANE 19 +#define CAMERA_STATIC_LAYER 19 //HUD layer defines -#define FULLSCREEN_PLANE 19 -#define FLASH_LAYER 19 -#define FULLSCREEN_LAYER 19.1 -#define UI_DAMAGE_LAYER 19.2 -#define BLIND_LAYER 19.3 -#define CRIT_LAYER 19.4 -#define CURSE_LAYER 19.5 +#define FULLSCREEN_PLANE 20 +#define FLASH_LAYER 20 +#define FULLSCREEN_LAYER 20.1 +#define UI_DAMAGE_LAYER 20.2 +#define BLIND_LAYER 20.3 +#define CRIT_LAYER 20.4 +#define CURSE_LAYER 20.5 -#define HUD_PLANE 20 -#define HUD_LAYER 20 -#define ABOVE_HUD_PLANE 21 -#define ABOVE_HUD_LAYER 21 +#define HUD_PLANE 21 +#define HUD_LAYER 21 +#define ABOVE_HUD_PLANE 22 +#define ABOVE_HUD_LAYER 22 -#define SPLASHSCREEN_LAYER 22 -#define SPLASHSCREEN_PLANE 22 +#define SPLASHSCREEN_LAYER 23 +#define SPLASHSCREEN_PLANE 23 diff --git a/code/__DEFINES/maps.dm b/code/__DEFINES/maps.dm index 179f501fd1..096b3c19f7 100644 --- a/code/__DEFINES/maps.dm +++ b/code/__DEFINES/maps.dm @@ -37,6 +37,7 @@ require only minor tweaks. #define ZTRAIT_AWAY "Away Mission" #define ZTRAIT_SPACE_RUINS "Space Ruins" #define ZTRAIT_LAVA_RUINS "Lava Ruins" +#define ZTRAIT_ISOLATED_RUINS "Isolated Ruins" //Placing ruins on z levels with this trait will use turf reservation instead of usual placement. // prevents certain turfs from being stripped by a singularity #define ZTRAIT_PLANET "Planet" @@ -89,6 +90,8 @@ require only minor tweaks. #define PLACEMENT_TRIES 100 //How many times we try to fit the ruin somewhere until giving up (really should just swap to some packing algo) #define PLACE_DEFAULT "random" -#define PLACE_SAME_Z "same" -#define PLACE_SPACE_RUIN "space" -#define PLACE_LAVA_RUIN "lavaland" +#define PLACE_SAME_Z "same" //On same z level as original ruin +#define PLACE_SPACE_RUIN "space" //On space ruin z level(s) +#define PLACE_LAVA_RUIN "lavaland" //On lavaland ruin z levels(s) +#define PLACE_BELOW "below" //On z levl below - centered on same tile +#define PLACE_ISOLATED "isolated" //On isolated ruin z level diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm index 1917d73a1b..8d00836345 100644 --- a/code/__DEFINES/obj_flags.dm +++ b/code/__DEFINES/obj_flags.dm @@ -11,6 +11,7 @@ #define USES_TGUI (1<<7) //put on things that use tgui on ui_interact instead of custom/old UI. #define FROZEN (1<<8) #define SHOVABLE_ONTO (1<<9) //called on turf.shove_act() to consider whether an object should have a niche effect (defined in their own shove_act()) when someone is pushed onto it, or do a sanity CanPass() check. +#define BLOCK_Z_FALL (1<<10) // If you add new ones, be sure to add them to /obj/Initialize as well for complete mapping support diff --git a/code/_globalvars/lists/mapping.dm b/code/_globalvars/lists/mapping.dm index 0cb61949a0..f0479cd8aa 100644 --- a/code/_globalvars/lists/mapping.dm +++ b/code/_globalvars/lists/mapping.dm @@ -1,6 +1,16 @@ GLOBAL_LIST_INIT(cardinals, list(NORTH, SOUTH, EAST, WEST)) -GLOBAL_LIST_INIT(alldirs, list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)) +GLOBAL_LIST_INIT(cardinals_multiz, list(NORTH, SOUTH, EAST, WEST, UP, DOWN)) GLOBAL_LIST_INIT(diagonals, list(NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)) +GLOBAL_LIST_INIT(corners_multiz, list(UP|NORTHEAST, UP|NORTHWEST, UP|SOUTHEAST, UP|SOUTHWEST, DOWN|NORTHEAST, DOWN|NORTHWEST, DOWN|SOUTHEAST, DOWN|SOUTHWEST)) +GLOBAL_LIST_INIT(diagonals_multiz, list( + NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST, + UP|NORTH, UP|SOUTH, UP|EAST, UP|WEST, UP|NORTHEAST, UP|NORTHWEST, UP|SOUTHEAST, UP|SOUTHWEST, + DOWN|NORTH, DOWN|SOUTH, DOWN|EAST, DOWN|WEST, DOWN|NORTHEAST, DOWN|NORTHWEST, DOWN|SOUTHEAST, DOWN|SOUTHWEST)) +GLOBAL_LIST_INIT(alldirs_multiz, list( + NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST, + UP, UP|NORTH, UP|SOUTH, UP|EAST, UP|WEST, UP|NORTHEAST, UP|NORTHWEST, UP|SOUTHEAST, UP|SOUTHWEST, + DOWN, DOWN|NORTH, DOWN|SOUTH, DOWN|EAST, DOWN|WEST, DOWN|NORTHEAST, DOWN|NORTHWEST, DOWN|SOUTHEAST, DOWN|SOUTHWEST)) +GLOBAL_LIST_INIT(alldirs, list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)) GLOBAL_LIST_EMPTY(landmarks_list) //list of all landmarks created GLOBAL_LIST_EMPTY(start_landmarks_list) //list of all spawn points created diff --git a/code/_onclick/hud/plane_master.dm b/code/_onclick/hud/plane_master.dm index 8ee837a202..9dc23a5861 100644 --- a/code/_onclick/hud/plane_master.dm +++ b/code/_onclick/hud/plane_master.dm @@ -16,6 +16,28 @@ //Trust me, you need one. Period. If you don't think you do, you're doing something extremely wrong. /obj/screen/plane_master/proc/backdrop(mob/mymob) +/obj/screen/plane_master/openspace + name = "open space plane master" + plane = FLOOR_OPENSPACE_PLANE + appearance_flags = PLANE_MASTER + blend_mode = BLEND_MULTIPLY + alpha = 255 + +/obj/screen/plane_master/openspace/backdrop(mob/mymob) + filters = list() + filters += filter(type = "drop_shadow", color = "#04080FAA", border = 5, size = -10) + filters += filter(type = "drop_shadow", color = "#04080FAA", border = 5, size = -15) + filters += filter(type = "drop_shadow", color = "#04080FAA", border = 5, size = -20) + +/obj/screen/plane_master/proc/outline(_size, _color) + filters += filter(type = "outline", size = _size, color = _color) + +/obj/screen/plane_master/proc/shadow(_size, _border, _offset = 0, _x = 0, _y = 0, _color = "#04080FAA") + filters += filter(type = "drop_shadow", x = _x, y = _y, color = _color, size = _size, offset = _offset, border = _border) + +/obj/screen/plane_master/proc/clear_filters() + filters = list() + /obj/screen/plane_master/floor name = "floor plane master" plane = FLOOR_PLANE diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 345e3bb44c..dc30d54d24 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -14,6 +14,7 @@ SUBSYSTEM_DEF(mapping) var/list/ruins_templates = list() var/list/space_ruins_templates = list() var/list/lava_ruins_templates = list() + var/datum/space_level/isolated_ruins_z //Created on demand during ruin loading. var/list/shuttle_templates = list() var/list/shelter_templates = list() @@ -25,6 +26,7 @@ SUBSYSTEM_DEF(mapping) var/list/datum/turf_reservations //list of turf reservations var/list/used_turfs = list() //list of turf = datum/turf_reservation + var/list/reservation_ready = list() var/clearing_reserved_turfs = FALSE // Z-manager stuff @@ -93,7 +95,7 @@ SUBSYSTEM_DEF(mapping) // Set up Z-level transitions. setup_map_transitions() generate_station_area_list() - initialize_reserved_level() + initialize_reserved_level(transit.z_value) return ..() /* Nuke threats, for making the blue tiles on the station go RED @@ -440,7 +442,7 @@ GLOBAL_LIST_EMPTY(the_station_areas) GLOB.the_gateway.wait = world.time /datum/controller/subsystem/mapping/proc/RequestBlockReservation(width, height, z, type = /datum/turf_reservation, turf_type_override, border_type_override) - UNTIL(initialized && !clearing_reserved_turfs) + UNTIL(reservation_ready["[z]"] && !clearing_reserved_turfs) var/datum/turf_reservation/reserve = new type if(turf_type_override) reserve.turf_type = turf_type_override @@ -452,8 +454,9 @@ GLOBAL_LIST_EMPTY(the_station_areas) return reserve //If we didn't return at this point, theres a good chance we ran out of room on the exisiting reserved z levels, so lets try a new one num_of_res_levels += 1 - var/newReserved = add_new_zlevel("Transit/Reserved [num_of_res_levels]", list(ZTRAIT_RESERVED = TRUE)) - if(reserve.Reserve(width, height, newReserved)) + var/datum/space_level/newReserved = add_new_zlevel("Transit/Reserved [num_of_res_levels]", list(ZTRAIT_RESERVED = TRUE)) + initialize_reserved_level(newReserved.z_value) + if(reserve.Reserve(width, height, newReserved.z_value)) return reserve else if(!level_trait(z, ZTRAIT_RESERVED)) @@ -465,19 +468,22 @@ GLOBAL_LIST_EMPTY(the_station_areas) QDEL_NULL(reserve) //This is not for wiping reserved levels, use wipe_reservations() for that. -/datum/controller/subsystem/mapping/proc/initialize_reserved_level() +/datum/controller/subsystem/mapping/proc/initialize_reserved_level(z) UNTIL(!clearing_reserved_turfs) //regardless, lets add a check just in case. clearing_reserved_turfs = TRUE //This operation will likely clear any existing reservations, so lets make sure nothing tries to make one while we're doing it. - for(var/i in levels_by_trait(ZTRAIT_RESERVED)) - var/turf/A = get_turf(locate(SHUTTLE_TRANSIT_BORDER,SHUTTLE_TRANSIT_BORDER,i)) - var/turf/B = get_turf(locate(world.maxx - SHUTTLE_TRANSIT_BORDER,world.maxy - SHUTTLE_TRANSIT_BORDER,i)) - var/block = block(A, B) - for(var/t in block) - // No need to empty() these, because it's world init and they're - // already /turf/open/space/basic. - var/turf/T = t - T.flags_1 |= UNUSED_RESERVATION_TURF_1 - unused_turfs["[i]"] = block + if(!level_trait(z,ZTRAIT_RESERVED)) + clearing_reserved_turfs = FALSE + CRASH("Invalid z level prepared for reservations.") + var/turf/A = get_turf(locate(SHUTTLE_TRANSIT_BORDER,SHUTTLE_TRANSIT_BORDER,z)) + var/turf/B = get_turf(locate(world.maxx - SHUTTLE_TRANSIT_BORDER,world.maxy - SHUTTLE_TRANSIT_BORDER,z)) + var/block = block(A, B) + for(var/t in block) + // No need to empty() these, because it's world init and they're + // already /turf/open/space/basic. + var/turf/T = t + T.flags_1 |= UNUSED_RESERVATION_TURF_1 + unused_turfs["[z]"] = block + reservation_ready["[z]"] = TRUE clearing_reserved_turfs = FALSE /datum/controller/subsystem/mapping/proc/reserve_turfs(list/turfs) @@ -511,3 +517,9 @@ GLOBAL_LIST_EMPTY(the_station_areas) for(var/B in areas) var/area/A = B A.reg_in_areas_in_z() + +/datum/controller/subsystem/mapping/proc/get_isolated_ruin_z() + if(!isolated_ruins_z) + isolated_ruins_z = add_new_zlevel("Isolated Ruins/Reserved", list(ZTRAIT_RESERVED = TRUE, ZTRAIT_ISOLATED_RUINS = TRUE)) + initialize_reserved_level(isolated_ruins_z.z_value) + return isolated_ruins_z.z_value \ No newline at end of file diff --git a/code/controllers/subsystem/throwing.dm b/code/controllers/subsystem/throwing.dm index 77ad712b99..a660ac5437 100644 --- a/code/controllers/subsystem/throwing.dm +++ b/code/controllers/subsystem/throwing.dm @@ -146,6 +146,11 @@ SUBSYSTEM_DEF(throwing) if (callback) callback.Invoke() + if(!thrownthing.zfalling) // I don't think you can zfall while thrown but hey, just in case. + var/turf/T = get_turf(thrownthing) + if(T && thrownthing.has_gravity(T)) + T.zFall(thrownthing) + qdel(src) /datum/thrownthing/proc/hit_atom(atom/A) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 2a47d6d015..fc8edc17cc 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -186,6 +186,10 @@ else M.forceMove(src) +//common name +/atom/proc/update_multiz(prune_on_fail = FALSE) + return FALSE + /atom/proc/assume_air(datum/gas_mixture/giver) qdel(giver) return null @@ -266,7 +270,7 @@ if(SEND_SIGNAL(src, COMSIG_ATOM_GET_EXAMINE_NAME, user, override) & COMPONENT_EXNAME_CHANGED) should_override = TRUE - + if(blood_DNA && !istype(src, /obj/effect/decal)) override[EXAMINE_POSITION_BEFORE] = " blood-stained " should_override = TRUE @@ -832,4 +836,7 @@ Proc for attack log creation, because really why not if(filter_data[name]) filter_data -= name update_filters() - return TRUE \ No newline at end of file + return TRUE + +/atom/proc/intercept_zImpact(atom/movable/AM, levels = 1) + return FALSE \ No newline at end of file diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 83762240bc..bdc50571f8 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -35,6 +35,51 @@ var/datum/component/orbiter/orbiting var/can_be_z_moved = TRUE + var/zfalling = FALSE + +/atom/movable/proc/can_zFall(turf/source, levels = 1, turf/target, direction) + if(!direction) + direction = DOWN + if(!source) + source = get_turf(src) + if(!source) + return FALSE + if(!target) + target = get_step_multiz(source, direction) + if(!target) + return FALSE + return !(movement_type & FLYING) && has_gravity(source) && !throwing + +/atom/movable/proc/onZImpact(turf/T, levels) + var/atom/highest = T + for(var/i in T.contents) + var/atom/A = i + if(!A.density) + continue + if(isobj(A) || ismob(A)) + if(A.layer > highest.layer) + highest = A + INVOKE_ASYNC(src, .proc/SpinAnimation, 5, 2) + throw_impact(highest) + return TRUE + +//For physical constraints to travelling up/down. +/atom/movable/proc/can_zTravel(turf/destination, direction) + var/turf/T = get_turf(src) + if(!T) + return FALSE + if(!direction) + if(!destination) + return FALSE + direction = get_dir(T, destination) + if(direction != UP && direction != DOWN) + return FALSE + if(!destination) + destination = get_step_multiz(src, direction) + if(!destination) + return FALSE + return T.zPassOut(src, direction, destination) && destination.zPassIn(src, direction, T) + /atom/movable/vv_edit_var(var_name, var_value) var/static/list/banned_edits = list("step_x", "step_y", "step_size") var/static/list/careful_edits = list("bound_x", "bound_y", "bound_width", "bound_height") diff --git a/code/game/objects/effects/decals/decal.dm b/code/game/objects/effects/decals/decal.dm index b6a3c7cfef..2fa7277d8b 100644 --- a/code/game/objects/effects/decals/decal.dm +++ b/code/game/objects/effects/decals/decal.dm @@ -15,7 +15,7 @@ qdel(src) /obj/effect/decal/proc/NeverShouldHaveComeHere(turf/T) - return isspaceturf(T) || isclosedturf(T) || islava(T) || istype(T, /turf/open/water) || ischasm(T) + return isclosedturf(T) || isgroundlessturf(T) /obj/effect/decal/ex_act(severity, target) qdel(src) diff --git a/code/game/objects/effects/effects.dm b/code/game/objects/effects/effects.dm index 410923fe25..d48013d472 100644 --- a/code/game/objects/effects/effects.dm +++ b/code/game/objects/effects/effects.dm @@ -57,6 +57,9 @@ /obj/effect/abstract/singularity_act() return +/obj/effect/abstract/has_gravity(turf/T) + return FALSE + /obj/effect/dummy/singularity_pull() return diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index d6f304653d..a6ba6424b1 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -100,6 +100,7 @@ number_of_rods = 2 smooth = SMOOTH_TRUE canSmoothWith = null + obj_flags = CAN_BE_HIT | BLOCK_Z_FALL /obj/structure/lattice/catwalk/deconstruction_hints(mob/user) to_chat(user, "The supporting rods look like they could be cut.") diff --git a/code/game/objects/structures/stairs.dm b/code/game/objects/structures/stairs.dm new file mode 100644 index 0000000000..89ea95ce4d --- /dev/null +++ b/code/game/objects/structures/stairs.dm @@ -0,0 +1,125 @@ +#define STAIR_TERMINATOR_AUTOMATIC 0 +#define STAIR_TERMINATOR_NO 1 +#define STAIR_TERMINATOR_YES 2 + +/obj/structure/stairs + name = "stairs" + icon = 'icons/obj/stairs.dmi' + icon_state = "stairs" + anchored = TRUE + //dir = direction of travel to go upwards + + var/force_open_above = FALSE + var/terminator_mode = STAIR_TERMINATOR_AUTOMATIC + var/turf/listeningTo + +/obj/structure/stairs/Initialize(mapload) + if(force_open_above) + force_open_above() + build_signal_listener() + update_surrounding() + return ..() + +/obj/structure/stairs/Destroy() + listeningTo = null + return ..() + +/obj/structure/stairs/Move() //Look this should never happen but... + . = ..() + if(force_open_above) + build_signal_listener() + update_surrounding() + +/obj/structure/stairs/proc/update_surrounding() + update_icon() + for(var/i in GLOB.cardinals) + var/turf/T = get_step(get_turf(src), i) + var/obj/structure/stairs/S = locate() in T + if(S) + S.update_icon() + +/obj/structure/stairs/Uncross(atom/movable/AM, turf/newloc) + if(!newloc || !AM) + return ..() + if(!isobserver(AM) && isTerminator() && (get_dir(src, newloc) == dir)) + stair_ascend(AM) + return FALSE + return ..() + +/obj/structure/stairs/Cross(atom/movable/AM) + if(isTerminator() && (get_dir(src, AM) == dir)) + return FALSE + return ..() + +/obj/structure/stairs/update_icon() + if(isTerminator()) + icon_state = "stairs_t" + else + icon_state = "stairs" + +/obj/structure/stairs/proc/stair_ascend(atom/movable/AM) + var/turf/checking = get_step_multiz(get_turf(src), UP) + if(!istype(checking)) + return + if(!checking.zPassIn(AM, UP, get_turf(src))) + return + var/turf/target = get_step_multiz(get_turf(src), (dir|UP)) + if(istype(target) && !target.can_zFall(AM, null, get_step_multiz(target, DOWN))) //Don't throw them into a tile that will just dump them back down. + if(isliving(AM)) + var/mob/living/L = AM + var/pulling = L.pulling + if(pulling) + L.pulling.forceMove(target) + L.forceMove(target) + L.start_pulling(pulling) + else + AM.forceMove(target) + +/obj/structure/stairs/vv_edit_var(var_name, var_value) + . = ..() + if(!.) + return + if(var_name != NAMEOF(src, force_open_above)) + return + if(!var_value) + if(listeningTo) + UnregisterSignal(listeningTo, COMSIG_TURF_MULTIZ_NEW) + listeningTo = null + else + build_signal_listener() + force_open_above() + +/obj/structure/stairs/proc/build_signal_listener() + if(listeningTo) + UnregisterSignal(listeningTo, COMSIG_TURF_MULTIZ_NEW) + var/turf/open/openspace/T = get_step_multiz(get_turf(src), UP) + RegisterSignal(T, COMSIG_TURF_MULTIZ_NEW, .proc/on_multiz_new) + listeningTo = T + +/obj/structure/stairs/proc/force_open_above() + var/turf/open/openspace/T = get_step_multiz(get_turf(src), UP) + if(T && !istype(T)) + T.ChangeTurf(/turf/open/openspace) + +/obj/structure/stairs/proc/on_multiz_new(turf/source, dir) + if(dir == UP) + var/turf/open/openspace/T = get_step_multiz(get_turf(src), UP) + if(T && !istype(T)) + T.ChangeTurf(/turf/open/openspace) + +/obj/structure/stairs/intercept_zImpact(atom/movable/AM, levels = 1) + return isTerminator() + +/obj/structure/stairs/proc/isTerminator() //If this is the last stair in a chain and should move mobs up + if(terminator_mode != STAIR_TERMINATOR_AUTOMATIC) + return (terminator_mode == STAIR_TERMINATOR_YES) + var/turf/T = get_turf(src) + if(!T) + return FALSE + var/turf/them = get_step(T, dir) + if(!them) + return FALSE + for(var/obj/structure/stairs/S in them) + if(S.dir == dir) + return FALSE + return TRUE diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index bd24e0ff93..833a07c9c3 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -16,6 +16,22 @@ if(wet) AddComponent(/datum/component/wet_floor, wet, INFINITY, 0, INFINITY, TRUE) +//direction is direction of travel of A +/turf/open/zPassIn(atom/movable/A, direction, turf/source) + return (direction == DOWN) + +//direction is direction of travel of A +/turf/open/zPassOut(atom/movable/A, direction, turf/destination) + return (direction == UP) + +//direction is direction of travel of air +/turf/open/zAirIn(direction, turf/source) + return (direction == DOWN) + +//direction is direction of travel of air +/turf/open/zAirOut(direction, turf/source) + return (direction == UP) + /turf/open/MouseDrop_T(atom/dropping, mob/user) . = ..() if(dropping == user && isliving(user)) @@ -184,43 +200,14 @@ update_visuals() current_cycle = times_fired - - //cache some vars - var/list/atmos_adjacent_turfs = src.atmos_adjacent_turfs - - for(var/direction in GLOB.cardinals) - var/turf/open/enemy_tile = get_step(src, direction) - if(!istype(enemy_tile)) - if (atmos_adjacent_turfs) - atmos_adjacent_turfs -= enemy_tile - continue + CalculateAdjacentTurfs() + for(var/i in atmos_adjacent_turfs) + var/turf/open/enemy_tile = i var/datum/gas_mixture/enemy_air = enemy_tile.return_air() - - //only check this turf, if it didn't check us when it was initalized - if(enemy_tile.current_cycle < times_fired) - if(CANATMOSPASS(src, enemy_tile)) - LAZYINITLIST(atmos_adjacent_turfs) - LAZYINITLIST(enemy_tile.atmos_adjacent_turfs) - atmos_adjacent_turfs[enemy_tile] = TRUE - enemy_tile.atmos_adjacent_turfs[src] = TRUE - else - if (atmos_adjacent_turfs) - atmos_adjacent_turfs -= enemy_tile - if (enemy_tile.atmos_adjacent_turfs) - enemy_tile.atmos_adjacent_turfs -= src - UNSETEMPTY(enemy_tile.atmos_adjacent_turfs) - continue - else - if (!atmos_adjacent_turfs || !atmos_adjacent_turfs[enemy_tile]) - continue - if(!excited && air.compare(enemy_air)) //testing("Active turf found. Return value of compare(): [is_active]") excited = TRUE SSair.active_turfs |= src - UNSETEMPTY(atmos_adjacent_turfs) - if (atmos_adjacent_turfs) - src.atmos_adjacent_turfs = atmos_adjacent_turfs /turf/open/proc/GetHeatCapacity() . = air.heat_capacity() diff --git a/code/game/turfs/openspace/openspace.dm b/code/game/turfs/openspace/openspace.dm new file mode 100644 index 0000000000..7fc9173f65 --- /dev/null +++ b/code/game/turfs/openspace/openspace.dm @@ -0,0 +1,134 @@ +/turf/open/openspace + name = "open space" + desc = "Watch your step!" + icon_state = "grey" + baseturfs = /turf/open/openspace + CanAtmosPassVertical = ATMOS_PASS_YES + plane = FLOOR_OPENSPACE_PLANE + layer = OPENSPACE_LAYER + //mouse_opacity = MOUSE_OPACITY_TRANSPARENT + var/can_cover_up = TRUE + var/can_build_on = TRUE + +/turf/open/openspace/debug/update_multiz() + ..() + return TRUE + +/turf/open/openspace/Initialize() + . = ..() + return INITIALIZE_HINT_LATELOAD + +/turf/open/openspace/LateInitialize() + update_multiz(TRUE, TRUE) + +/turf/open/openspace/Destroy() + vis_contents.len = 0 + return ..() + +/turf/open/openspace/update_multiz(prune_on_fail = FALSE, init = FALSE) + . = ..() + var/turf/T = below() + if(!T) + vis_contents.len = 0 + if(prune_on_fail) + ChangeTurf(/turf/open/floor/plating) + return FALSE + if(init) + vis_contents += T + return TRUE + +/turf/open/openspace/multiz_turf_del(turf/T, dir) + if(dir != DOWN) + return + update_multiz() + +/turf/open/openspace/multiz_turf_new(turf/T, dir) + if(dir != DOWN) + return + update_multiz() + +/turf/open/openspace/zAirIn() + return TRUE + +/turf/open/openspace/zAirOut() + return TRUE + +/turf/open/openspace/zPassIn(atom/movable/A, direction, turf/source) + return TRUE + +/turf/open/openspace/zPassOut(atom/movable/A, direction, turf/destination) + if(A.anchored) + return FALSE + for(var/obj/O in contents) + if(O.obj_flags & BLOCK_Z_FALL) + return FALSE + return TRUE + +/turf/open/openspace/proc/CanCoverUp() + return can_cover_up + +/turf/open/openspace/proc/CanBuildHere() + return can_build_on + +/turf/open/openspace/attackby(obj/item/C, mob/user, params) + ..() + if(!CanBuildHere()) + return + if(istype(C, /obj/item/stack/rods)) + var/obj/item/stack/rods/R = C + var/obj/structure/lattice/L = locate(/obj/structure/lattice, src) + var/obj/structure/lattice/catwalk/W = locate(/obj/structure/lattice/catwalk, src) + if(W) + to_chat(user, "There is already a catwalk here!") + return + if(L) + if(R.use(1)) + to_chat(user, "You construct a catwalk.") + playsound(src, 'sound/weapons/genhit.ogg', 50, 1) + new/obj/structure/lattice/catwalk(src) + else + to_chat(user, "You need two rods to build a catwalk!") + return + if(R.use(1)) + to_chat(user, "You construct a lattice.") + playsound(src, 'sound/weapons/genhit.ogg', 50, 1) + ReplaceWithLattice() + else + to_chat(user, "You need one rod to build a lattice.") + return + if(istype(C, /obj/item/stack/tile/plasteel)) + if(!CanCoverUp()) + return + var/obj/structure/lattice/L = locate(/obj/structure/lattice, src) + if(L) + var/obj/item/stack/tile/plasteel/S = C + if(S.use(1)) + qdel(L) + playsound(src, 'sound/weapons/genhit.ogg', 50, 1) + to_chat(user, "You build a floor.") + PlaceOnTop(/turf/open/floor/plating) + else + to_chat(user, "You need one floor tile to build a floor!") + else + to_chat(user, "The plating is going to need some support! Place metal rods first.") + +/turf/open/openspace/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) + if(!CanBuildHere()) + return FALSE + + switch(the_rcd.mode) + if(RCD_FLOORWALL) + var/obj/structure/lattice/L = locate(/obj/structure/lattice, src) + if(L) + return list("mode" = RCD_FLOORWALL, "delay" = 0, "cost" = 1) + else + return list("mode" = RCD_FLOORWALL, "delay" = 0, "cost" = 3) + return FALSE + +/turf/open/openspace/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode) + switch(passed_mode) + if(RCD_FLOORWALL) + to_chat(user, "You build a floor.") + PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) + return TRUE + return FALSE diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index ebf6f6626c..7fe48365ef 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -39,7 +39,7 @@ return FALSE . = ..() -/turf/Initialize() +/turf/Initialize(mapload) if(flags_1 & INITIALIZED_1) stack_trace("Warning: [src]([type]) initialized multiple times!") flags_1 |= INITIALIZED_1 @@ -68,6 +68,15 @@ if (light_power && light_range) update_light() + var/turf/T = SSmapping.get_turf_above(src) + if(T) + T.multiz_turf_new(src, DOWN) + SEND_SIGNAL(T, COMSIG_TURF_MULTIZ_NEW, src, DOWN) + T = SSmapping.get_turf_below(src) + if(T) + T.multiz_turf_new(src, UP) + SEND_SIGNAL(T, COMSIG_TURF_MULTIZ_NEW, src, UP) + if (opacity) has_opaque_atom = TRUE @@ -83,6 +92,12 @@ if(!changing_turf) stack_trace("Incorrect turf deletion") changing_turf = FALSE + var/turf/T = SSmapping.get_turf_above(src) + if(T) + T.multiz_turf_del(src, DOWN) + T = SSmapping.get_turf_below(src) + if(T) + T.multiz_turf_del(src, UP) if(force) ..() //this will completely wipe turf state @@ -105,6 +120,54 @@ return user.Move_Pulled(src) +/turf/proc/multiz_turf_del(turf/T, dir) + +/turf/proc/multiz_turf_new(turf/T, dir) + +//zPassIn doesn't necessarily pass an atom! +//direction is direction of travel of air +/turf/proc/zPassIn(atom/movable/A, direction, turf/source) + return FALSE + +//direction is direction of travel of air +/turf/proc/zPassOut(atom/movable/A, direction, turf/destination) + return FALSE + +//direction is direction of travel of air +/turf/proc/zAirIn(direction, turf/source) + return FALSE + +//direction is direction of travel of air +/turf/proc/zAirOut(direction, turf/source) + return FALSE + +/turf/proc/zImpact(atom/movable/A, levels = 1) + for(var/i in contents) + var/atom/thing = i + if(thing.intercept_zImpact(A, levels)) + return FALSE + if(zFall(A, ++levels)) + return FALSE + A.visible_message("[A] crashes into [src]!") + A.onZImpact(src, levels) + return TRUE + +/turf/proc/can_zFall(atom/movable/A, levels = 1, turf/target) + return zPassOut(A, DOWN, target) && target.zPassIn(A, DOWN, src) + +/turf/proc/zFall(atom/movable/A, levels = 1, force = FALSE) + var/turf/target = get_step_multiz(src, DOWN) + if(!target || (!isobj(A) && !ismob(A))) + return FALSE + if(!force && (!can_zFall(A, levels, target) || !A.can_zFall(src, levels, target, DOWN))) + return FALSE + A.visible_message("[A] falls through [src]!") + A.zfalling = TRUE + A.forceMove(target) + A.zfalling = FALSE + target.zImpact(A, levels) + return TRUE + /turf/proc/handleRCL(obj/item/twohanded/rcl/C, mob/user) if(C.loaded) for(var/obj/structure/cable/LC in src) @@ -196,6 +259,9 @@ if(O.obj_flags & FROZEN) O.make_unfrozen() + if(!AM.zfalling) + zFall(AM) + /turf/proc/is_plasteel_floor() return FALSE diff --git a/code/modules/atmospherics/environmental/LINDA_system.dm b/code/modules/atmospherics/environmental/LINDA_system.dm index 084c35684c..1ad899920a 100644 --- a/code/modules/atmospherics/environmental/LINDA_system.dm +++ b/code/modules/atmospherics/environmental/LINDA_system.dm @@ -1,4 +1,6 @@ /atom/var/CanAtmosPass = ATMOS_PASS_YES +/atom/var/CanAtmosPassVertical = ATMOS_PASS_YES + /atom/proc/CanAtmosPass(turf/T) switch (CanAtmosPass) if (ATMOS_PASS_PROC) @@ -8,42 +10,47 @@ else return CanAtmosPass -/turf/closed/CanAtmosPass = ATMOS_PASS_NO +/turf/CanAtmosPass = ATMOS_PASS_NO +/turf/CanAtmosPassVertical = ATMOS_PASS_NO /turf/open/CanAtmosPass = ATMOS_PASS_PROC -/turf/open/CanAtmosPass(turf/T) - var/R - if(blocks_air || T.blocks_air) - R = 1 +/turf/open/CanAtmosPassVertical = ATMOS_PASS_PROC +/turf/open/CanAtmosPass(turf/T, vertical = FALSE) + var/dir = vertical? get_dir_multiz(src, T) : get_dir(src, T) + var/opp = dir_inverse_multiz(dir) + var/R = FALSE + if(vertical && !(zAirOut(dir, T) && T.zAirIn(dir, src))) + R = TRUE + if(blocks_air || T.blocks_air) + R = TRUE + if (T == src) + return !R for(var/obj/O in contents+T.contents) var/turf/other = (O.loc == src ? T : src) - if(!CANATMOSPASS(O, other)) - R = 1 + if(!(vertical? (CANVERTICALATMOSPASS(O, other)) : (CANATMOSPASS(O, other)))) + R = TRUE if(O.BlockSuperconductivity()) //the direction and open/closed are already checked on CanAtmosPass() so there are no arguments - var/D = get_dir(src, T) - atmos_supeconductivity |= D - D = get_dir(T, src) - T.atmos_supeconductivity |= D - return 0 //no need to keep going, we got all we asked + atmos_supeconductivity |= dir + T.atmos_supeconductivity |= opp + return FALSE //no need to keep going, we got all we asked - atmos_supeconductivity &= ~get_dir(src, T) - T.atmos_supeconductivity &= ~get_dir(T, src) + atmos_supeconductivity &= ~dir + T.atmos_supeconductivity &= ~opp return !R - - /atom/movable/proc/BlockSuperconductivity() // objects that block air and don't let superconductivity act. Only firelocks atm. - return 0 + return FALSE /turf/proc/CalculateAdjacentTurfs() - var/list/atmos_adjacent_turfs = src.atmos_adjacent_turfs - for(var/direction in GLOB.cardinals) - var/turf/T = get_step(src, direction) - if(!T) + var/canpass = CANATMOSPASS(src, src) + var/canvpass = CANVERTICALATMOSPASS(src, src) + for(var/direction in GLOB.cardinals_multiz) + var/turf/T = get_step_multiz(src, direction) + if(!isopenturf(T)) continue - if( !(blocks_air || T.blocks_air) && CANATMOSPASS(T, src) ) + if(!(blocks_air || T.blocks_air) && ((direction & (UP|DOWN))? (canvpass && CANVERTICALATMOSPASS(T, src)) : (canpass && CANATMOSPASS(T, src))) ) LAZYINITLIST(atmos_adjacent_turfs) LAZYINITLIST(T.atmos_adjacent_turfs) atmos_adjacent_turfs[T] = TRUE @@ -72,11 +79,13 @@ var/turf/curloc = src - for (var/direction in GLOB.diagonals) + for (var/direction in GLOB.diagonals_multiz) var/matchingDirections = 0 - var/turf/S = get_step(curloc, direction) + var/turf/S = get_step_multiz(curloc, direction) + if(!S) + continue - for (var/checkDirection in GLOB.cardinals) + for (var/checkDirection in GLOB.cardinals_multiz) var/turf/checkTurf = get_step(S, checkDirection) if(!S.atmos_adjacent_turfs || !S.atmos_adjacent_turfs[checkTurf]) continue diff --git a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm index ea555c9489..9dba780b3f 100644 --- a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm +++ b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm @@ -42,8 +42,7 @@ /turf/open/Destroy() if(active_hotspot) - qdel(active_hotspot) - active_hotspot = null + QDEL_NULL(active_hotspot) // Adds the adjacent turfs to the current atmos processing for(var/T in atmos_adjacent_turfs) SSair.add_to_active(T) diff --git a/code/modules/atmospherics/multiz.dm b/code/modules/atmospherics/multiz.dm new file mode 100644 index 0000000000..2b3a9af1c7 --- /dev/null +++ b/code/modules/atmospherics/multiz.dm @@ -0,0 +1,29 @@ +obj/machinery/atmospherics/pipe/simple/multiz ///This is an atmospherics pipe which can relay air up a deck (Z+1). It currently only supports being on pipe layer 1 + name = "multi deck pipe adapter" + desc = "An adapter which allows pipes to connect to other pipenets on different decks." + icon_state = "multiz_pipe" + icon = 'icons/obj/atmos.dmi' + +/obj/machinery/atmospherics/pipe/simple/multiz/update_icon() + . = ..() + cut_overlays() //This adds the overlay showing it's a multiz pipe. This should go above turfs and such + var/image/multiz_overlay_node = new(src) //If we have a firing state, light em up! + multiz_overlay_node.icon = 'icons/obj/atmos.dmi' + multiz_overlay_node.icon_state = "multiz_pipe" + multiz_overlay_node.layer = HIGH_OBJ_LAYER + add_overlay(multiz_overlay_node) + +///Attempts to locate a multiz pipe that's above us, if it finds one it merges us into its pipenet +/obj/machinery/atmospherics/pipe/simple/multiz/pipeline_expansion() + icon = 'icons/obj/atmos.dmi' //Just to refresh. + var/turf/T = get_turf(src) + var/obj/machinery/atmospherics/pipe/simple/multiz/above = locate(/obj/machinery/atmospherics/pipe/simple/multiz) in(SSmapping.get_turf_above(T)) + var/obj/machinery/atmospherics/pipe/simple/multiz/below = locate(/obj/machinery/atmospherics/pipe/simple/multiz) in(SSmapping.get_turf_below(T)) + if(below) + below.pipeline_expansion() //If we've got one below us, force it to add us on facebook + if(above) + nodes += above + above.nodes += src //Two way travel :) + return ..() + else + return ..() \ No newline at end of file diff --git a/code/modules/mapping/ruins.dm b/code/modules/mapping/ruins.dm index 416e2bc0c9..d88c7543f0 100644 --- a/code/modules/mapping/ruins.dm +++ b/code/modules/mapping/ruins.dm @@ -1,10 +1,12 @@ -/datum/map_template/ruin/proc/try_to_place(z,allowed_areas) - var/sanity = PLACEMENT_TRIES +/datum/map_template/ruin/proc/try_to_place(z,allowed_areas,turf/forced_turf) + var/sanity = forced_turf ? 1 : PLACEMENT_TRIES + if(SSmapping.level_trait(z,ZTRAIT_ISOLATED_RUINS)) + return place_on_isolated_level(z) while(sanity > 0) sanity-- var/width_border = TRANSITIONEDGE + SPACERUIN_MAP_EDGE_PAD + round(width / 2) var/height_border = TRANSITIONEDGE + SPACERUIN_MAP_EDGE_PAD + round(height / 2) - var/turf/central_turf = locate(rand(width_border, world.maxx - width_border), rand(height_border, world.maxy - height_border), z) + var/turf/central_turf = forced_turf ? forced_turf : locate(rand(width_border, world.maxx - width_border), rand(height_border, world.maxy - height_border), z) var/valid = TRUE for(var/turf/check in get_affected_turfs(central_turf,1)) @@ -24,7 +26,7 @@ qdel(monster) for(var/obj/structure/flora/ash/plant in T) qdel(plant) - + load(central_turf,centered = TRUE) loaded++ @@ -32,9 +34,20 @@ T.flags_1 |= NO_RUINS_1 new /obj/effect/landmark/ruin(central_turf, src) - return TRUE - return FALSE + return central_turf +/datum/map_template/ruin/proc/place_on_isolated_level(z) + var/datum/turf_reservation/reservation = SSmapping.RequestBlockReservation(width, height, z) //Make the new level creation work with different traits. + if(!reservation) + return + var/turf/placement = locate(reservation.bottom_left_coords[1],reservation.bottom_left_coords[2],reservation.bottom_left_coords[3]) + load(placement) + loaded++ + for(var/turf/T in get_affected_turfs(placement)) + T.flags_1 |= NO_RUINS_1 + var/turf/center = locate(placement.x + round(width/2),placement.y + round(height/2),placement.z) + new /obj/effect/landmark/ruin(center, src) + return center /proc/seedRuins(list/z_levels = null, budget = 0, whitelist = /area/space, list/potentialRuins) if(!z_levels || !z_levels.len) @@ -49,9 +62,8 @@ var/list/ruins = potentialRuins.Copy() - var/list/forced_ruins = list() //These go first on the z level associated (same random one by default) + var/list/forced_ruins = list() //These go first on the z level associated (same random one by default) or if the assoc value is a turf to the specified turf. var/list/ruins_availible = list() //we can try these in the current pass - var/forced_z //If set we won't pick z level and use this one instead. //Set up the starting ruin list for(var/key in ruins) @@ -67,34 +79,55 @@ while(budget > 0 && (ruins_availible.len || forced_ruins.len)) var/datum/map_template/ruin/current_pick var/forced = FALSE + var/forced_z //If set we won't pick z level and use this one instead. + var/forced_turf //If set we place the ruin centered on the given turf if(forced_ruins.len) //We have something we need to load right now, so just pick it for(var/ruin in forced_ruins) current_pick = ruin - if(forced_ruins[ruin] > 0) //Load into designated z + if(isturf(forced_ruins[ruin])) + var/turf/T = forced_ruins[ruin] + forced_z = T.z //In case of chained ruins + forced_turf = T + else if(forced_ruins[ruin] > 0) //Load into designated z forced_z = forced_ruins[ruin] forced = TRUE break else //Otherwise just pick random one current_pick = pickweight(ruins_availible) - var/placement_tries = PLACEMENT_TRIES + var/placement_tries = forced_turf ? 1 : PLACEMENT_TRIES //Only try once if we target specific turf var/failed_to_place = TRUE - var/z_placed = 0 - while(placement_tries > 0) - placement_tries-- - z_placed = pick(z_levels) - if(!current_pick.try_to_place(forced_z ? forced_z : z_placed,whitelist)) - continue - else - failed_to_place = FALSE - break + var/target_z = 0 + var/turf/placed_turf //Where the ruin ended up if we succeeded + outer: + while(placement_tries > 0) + placement_tries-- + target_z = pick(z_levels) + if(forced_z) + target_z = forced_z + if(current_pick.always_spawn_with) //If the ruin has part below, make sure that z exists. + for(var/v in current_pick.always_spawn_with) + if(current_pick.always_spawn_with[v] == PLACE_BELOW) + var/turf/T = locate(1,1,target_z) + if(!SSmapping.get_turf_below(T)) + if(forced_z) + continue outer + else + break outer + + placed_turf = current_pick.try_to_place(target_z,whitelist,forced_turf) + if(!placed_turf) + continue + else + failed_to_place = FALSE + break //That's done remove from priority even if it failed if(forced) //TODO : handle forced ruins with multiple variants forced_ruins -= current_pick forced = FALSE - + if(failed_to_place) for(var/datum/map_template/ruin/R in ruins_availible) if(R.id == current_pick.id) @@ -118,18 +151,21 @@ if(istype(linked,v)) switch(current_pick.always_spawn_with[v]) if(PLACE_SAME_Z) - forced_ruins[linked] = forced_z ? forced_z : z_placed //I guess you might want a chain somehow + forced_ruins[linked] = target_z //I guess you might want a chain somehow if(PLACE_LAVA_RUIN) forced_ruins[linked] = pick(SSmapping.levels_by_trait(ZTRAIT_LAVA_RUINS)) if(PLACE_SPACE_RUIN) forced_ruins[linked] = pick(SSmapping.levels_by_trait(ZTRAIT_SPACE_RUINS)) if(PLACE_DEFAULT) forced_ruins[linked] = -1 - forced_z = 0 + if(PLACE_BELOW) + forced_ruins[linked] = SSmapping.get_turf_below(placed_turf) + if(PLACE_ISOLATED) + forced_ruins[linked] = SSmapping.get_isolated_ruin_z() //Update the availible list for(var/datum/map_template/ruin/R in ruins_availible) if(R.cost > budget) ruins_availible -= R - + log_world("Ruin loader finished with [budget] left to spend.") diff --git a/code/modules/mapping/space_management/multiz_helpers.dm b/code/modules/mapping/space_management/multiz_helpers.dm new file mode 100644 index 0000000000..f6db12420a --- /dev/null +++ b/code/modules/mapping/space_management/multiz_helpers.dm @@ -0,0 +1,47 @@ +/proc/get_step_multiz(ref, dir) + if(dir & UP) + dir &= ~UP + return get_step(SSmapping.get_turf_above(get_turf(ref)), dir) + if(dir & DOWN) + dir &= ~DOWN + return get_step(SSmapping.get_turf_below(get_turf(ref)), dir) + return get_step(ref, dir) + +/proc/get_dir_multiz(turf/us, turf/them) + us = get_turf(us) + them = get_turf(them) + if(!us || !them) + return NONE + if(us.z == them.z) + return get_dir(us, them) + else + var/turf/T = us.above() + var/dir = NONE + if(T && (T.z == them.z)) + dir = UP + else + T = us.below() + if(T && (T.z == them.z)) + dir = DOWN + else + return get_dir(us, them) + return (dir | get_dir(us, them)) + +/turf/proc/above() + return get_step_multiz(src, UP) + +/turf/proc/below() + return get_step_multiz(src, DOWN) + +/proc/dir_inverse_multiz(dir) + var/holder = dir & (UP|DOWN) + if((holder == NONE) || (holder == (UP|DOWN))) + return turn(dir, 180) + dir &= ~(UP|DOWN) + dir = turn(dir, 180) + if(holder == UP) + holder = DOWN + else + holder = UP + dir |= holder + return dir \ No newline at end of file diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index d599d55886..4c2f55a3c0 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -17,6 +17,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) see_in_dark = 100 invisibility = INVISIBILITY_OBSERVER hud_type = /datum/hud/ghost + movement_type = GROUND | FLYING var/can_reenter_corpse var/can_reenter_round = TRUE var/datum/hud/living/carbon/hud = null // hud diff --git a/code/modules/mob/dead/observer/observer_movement.dm b/code/modules/mob/dead/observer/observer_movement.dm new file mode 100644 index 0000000000..b84bed2a3f --- /dev/null +++ b/code/modules/mob/dead/observer/observer_movement.dm @@ -0,0 +1,2 @@ +/mob/dead/observer/canZMove(direction, turf/target) + return TRUE \ No newline at end of file diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index d249cd1a61..d03664a277 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -40,6 +40,16 @@ QDEL_LIST(diseases) return ..() +/mob/living/onZImpact(turf/T, levels) + if(!isgroundlessturf(T)) + ZImpactDamage(T, levels) + return ..() + +/mob/living/proc/ZImpactDamage(turf/T, levels) + visible_message("[src] crashes into [T] with a sickening noise!") + adjustBruteLoss((levels * 5) ** 1.5) + Knockdown(levels * 50) + /mob/living/proc/OpenCraftingMenu() return diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index 1ee563bc1f..93bb9d1f8d 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -32,4 +32,7 @@ if(drag_slowdown && L.lying && !L.buckled && grab_state < GRAB_AGGRESSIVE) add_movespeed_modifier(MOVESPEED_ID_PRONE_DRAGGING, multiplicative_slowdown = PULL_PRONE_SLOWDOWN) return - remove_movespeed_modifier(MOVESPEED_ID_PRONE_DRAGGING) \ No newline at end of file + remove_movespeed_modifier(MOVESPEED_ID_PRONE_DRAGGING) + +/mob/living/canZMove(dir, turf/target) + return can_zTravel(target, dir) && (movement_type & FLYING) \ No newline at end of file diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 82e2b11f8e..2c8935c786 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -370,3 +370,35 @@ if(hud_used && hud_used.static_inventory) for(var/obj/screen/mov_intent/selector in hud_used.static_inventory) selector.update_icon(src) + +/mob/verb/up() + set name = "Move Upwards" + set category = "IC" + + if(zMove(UP, TRUE)) + to_chat(src, "You move upwards.") + +/mob/verb/down() + set name = "Move Down" + set category = "IC" + + if(zMove(DOWN, TRUE)) + to_chat(src, "You move down.") + +/mob/proc/zMove(dir, feedback = FALSE) + if(dir != UP && dir != DOWN) + return FALSE + var/turf/target = get_step_multiz(src, dir) + if(!target) + if(feedback) + to_chat(src, "There's nothing in that direction!") + return FALSE + if(!canZMove(dir, target)) + if(feedback) + to_chat(src, "You couldn't move there!") + return FALSE + forceMove(target) + return TRUE + +/mob/proc/canZMove(direction, turf/target) + return FALSE \ No newline at end of file diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index 4d8cdaa778..f2d95c2bd0 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -117,7 +117,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne use_power = IDLE_POWER_USE interaction_flags_machine = INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OFFLINE var/on = TRUE - var/breaker = 1 + var/breaker = TRUE var/list/parts = list() var/obj/middle = null var/charging_state = POWER_IDLE @@ -166,7 +166,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne M.set_broken() middle.cut_overlays() charge_count = 0 - breaker = 0 + breaker = FALSE set_power() set_state(0) investigate_log("has broken down.", INVESTIGATE_GRAVITY) @@ -176,7 +176,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne for(var/obj/machinery/gravity_generator/M in parts) if(M.stat & BROKEN) M.set_fix() - broken_state = 0 + broken_state = FALSE update_icon() set_power() @@ -273,11 +273,11 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne // Set the charging state based on power/breaker. /obj/machinery/gravity_generator/main/proc/set_power() - var/new_state = 0 + var/new_state = FALSE if(stat & (NOPOWER|BROKEN) || !breaker) - new_state = 0 + new_state = FALSE else if(breaker) - new_state = 1 + new_state = TRUE charging_state = new_state ? POWER_UP : POWER_DOWN // Startup sequence animation. investigate_log("is now [charging_state == POWER_UP ? "charging" : "discharging"].", INVESTIGATE_GRAVITY) @@ -292,13 +292,13 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne var/alert = FALSE if(SSticker.IsRoundInProgress()) if(on) // If we turned on and the game is live. - if(gravity_in_level() == 0) - alert = 1 + if(gravity_in_level() == FALSE) + alert = TRUE investigate_log("was brought online and is now producing gravity for this level.", INVESTIGATE_GRAVITY) message_admins("The gravity generator was brought online [ADMIN_VERBOSEJMP(src)]") else - if(gravity_in_level() == 1) - alert = 1 + if(gravity_in_level() == TRUE) + alert = TRUE investigate_log("was brought offline and there is now no gravity for this level.", INVESTIGATE_GRAVITY) message_admins("The gravity generator was brought offline with no backup generator. [ADMIN_VERBOSEJMP(src)]") @@ -361,7 +361,7 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne var/sound/alert_sound = sound('sound/effects/alert.ogg') for(var/i in GLOB.mob_list) var/mob/M = i - if(M.z != z) + if(M.z != z && !(SSmapping.level_trait(z, ZTRAITS_STATION) && SSmapping.level_trait(M.z, ZTRAITS_STATION))) continue M.update_gravity(M.mob_has_gravity()) if(M.client) @@ -371,20 +371,28 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne /obj/machinery/gravity_generator/main/proc/gravity_in_level() var/turf/T = get_turf(src) if(!T) - return 0 + return FALSE if(GLOB.gravity_generators["[T.z]"]) return length(GLOB.gravity_generators["[T.z]"]) - return 0 + return FALSE /obj/machinery/gravity_generator/main/proc/update_list() var/turf/T = get_turf(src.loc) if(T) - if(!GLOB.gravity_generators["[T.z]"]) - GLOB.gravity_generators["[T.z]"] = list() - if(on) - GLOB.gravity_generators["[T.z]"] |= src + var/list/z_list = list() + // Multi-Z, station gravity generator generates gravity on all ZTRAIT_STATION z-levels. + if(SSmapping.level_trait(T.z, ZTRAIT_STATION)) + for(var/z in SSmapping.levels_by_trait(ZTRAIT_STATION)) + z_list += z else - GLOB.gravity_generators["[T.z]"] -= src + z_list += T.z + for(var/z in z_list) + if(!GLOB.gravity_generators["[z]"]) + GLOB.gravity_generators["[z]"] = list() + if(on) + GLOB.gravity_generators["[z]"] |= src + else + GLOB.gravity_generators["[z]"] -= src /obj/machinery/gravity_generator/main/proc/change_setting(value) if(value != setting) diff --git a/code/modules/power/multiz.dm b/code/modules/power/multiz.dm new file mode 100644 index 0000000000..9d8abf9066 --- /dev/null +++ b/code/modules/power/multiz.dm @@ -0,0 +1,80 @@ +/obj/machinery/power/deck_relay //This bridges powernets + name = "Multi-deck power adapter" + desc = "A huge bundle of double insulated cabling which seems to run up into the ceiling." + icon = 'icons/obj/power.dmi' + icon_state = "cablerelay-off" + var/obj/machinery/power/deck_relay/below ///The relay that's below us (for bridging powernets) + var/obj/machinery/power/deck_relay/above ///The relay that's above us (for bridging powernets) + anchored = TRUE + density = FALSE + +/obj/machinery/power/deck_relay/attackby(obj/item/I,mob/user) + if(default_unfasten_wrench(user, I)) + return FALSE + . = ..() + +/obj/machinery/power/deck_relay/process() + if(!anchored) + icon_state = "cablerelay-off" + if(above) //Lose connections + above.below = null + if(below) + below.above = null + return + refresh() //Sometimes the powernets get lost, so we need to keep checking. + if(powernet && (powernet.avail <= 0)) // is it powered? + icon_state = "cablerelay-off" + else + icon_state = "cablerelay-on" + if(!below || QDELETED(below) || !above || QDELETED(above)) + icon_state = "cablerelay-off" + find_relays() + +///Allows you to scan the relay with a multitool to see stats. +/obj/machinery/power/deck_relay/multitool_act(mob/user, obj/item/I) + if(powernet && (powernet.avail > 0)) // is it powered? + to_chat(user, "Total power: [DisplayPower(powernet.avail)]\nLoad: [DisplayPower(powernet.load)]\nExcess power: [DisplayPower(surplus())]") + if(!powernet || below.powernet != powernet) + icon_state = "cablerelay-off" + to_chat(user, "Powernet connection lost. Attempting to re-establish. Ensure the relays below this one are connected too.") + find_relays() + addtimer(CALLBACK(src, .proc/refresh), 20) //Wait a bit so we can find the one below, then get powering + return TRUE + +/obj/machinery/power/deck_relay/Initialize() + . = ..() + addtimer(CALLBACK(src, .proc/find_relays), 30) + addtimer(CALLBACK(src, .proc/refresh), 50) //Wait a bit so we can find the one below, then get powering + +///Handles re-acquiring + merging powernets found by find_relays() +/obj/machinery/power/deck_relay/proc/refresh() + if(above) + above.merge(src) + if(below) + below.merge(src) + +/obj/machinery/power/deck_relay/proc/merge(var/obj/machinery/power/deck_relay/DR) + if(!DR) + return + var/turf/merge_from = get_turf(DR) + var/turf/merge_to = get_turf(src) + var/obj/structure/cable/C = merge_from.get_cable_node() + var/obj/structure/cable/XR = merge_to.get_cable_node() + if(C && XR) + merge_powernets(XR.powernet,C.powernet)//Bridge the powernets. + +///Locates relays that are above and below this object +/obj/machinery/power/deck_relay/proc/find_relays() + var/turf/T = get_turf(src) + if(!T || !istype(T)) + return FALSE + below = null //in case we're re-establishing + var/obj/structure/cable/C = T.get_cable_node() //check if we have a node cable on the machine turf, the first found is picked + if(C && C.powernet) + C.powernet.add_machine(src) //Nice we're in. + powernet = C.powernet + below = locate(/obj/machinery/power/deck_relay) in(SSmapping.get_turf_below(T)) + above = locate(/obj/machinery/power/deck_relay) in(SSmapping.get_turf_above(T)) + if(below || above) + icon_state = "cablerelay-on" + return TRUE \ No newline at end of file diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index e6fa1e0ee4..1b3a2a716c 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -650,6 +650,9 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) Consume(AM) +/obj/machinery/power/supermatter_crystal/intercept_zImpact(atom/movable/AM, levels) + Bumped(AM) + /obj/machinery/power/supermatter_crystal/proc/Consume(atom/movable/AM) if(isliving(AM)) var/mob/living/user = AM diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 056c5b1901..094c20b8ff 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -138,7 +138,7 @@ return TRUE /datum/reagent/consumable/cooking_oil/reaction_turf(turf/open/T, reac_volume) - if(!istype(T)) + if(!istype(T) || isgroundlessturf(T)) return if(reac_volume >= 5) T.MakeSlippery(TURF_WET_LUBE, min_wet_time = 10 SECONDS, wet_time_to_add = reac_volume * 1.5 SECONDS) diff --git a/code/modules/recycling/disposal/multiz.dm b/code/modules/recycling/disposal/multiz.dm new file mode 100644 index 0000000000..3dcab94ca5 --- /dev/null +++ b/code/modules/recycling/disposal/multiz.dm @@ -0,0 +1,49 @@ +#define MULTIZ_PIPE_UP 1 ///Defines for determining which way a multiz disposal element should travel +#define MULTIZ_PIPE_DOWN 2 ///Defines for determining which way a multiz disposal element should travel + + +/obj/structure/disposalpipe/trunk/multiz + name = "Disposal trunk that goes up" + icon_state = "pipe-up" + var/multiz_dir = MULTIZ_PIPE_UP ///Set the multiz direction of your trunk. 1 = up, 2 = down + +/obj/structure/disposalpipe/trunk/multiz/down + name = "Disposal trunk that goes down" + icon_state = "pipe-down" + multiz_dir = MULTIZ_PIPE_DOWN + +/obj/structure/disposalpipe/trunk/multiz/transfer(obj/structure/disposalholder/H) + if(H.dir == DOWN) //Since we're a trunk, you can still place a chute / bin over us. If theyve entered from there, treat this as a normal trunk + return ..() + // otherwise, go to the linked object + if(multiz_dir) //Are we a trunk that goes up? Or down? + var/turf/T = null + if(multiz_dir == MULTIZ_PIPE_UP) + T = SSmapping.get_turf_above(get_turf(src)) //Get the turf above us + if(multiz_dir == MULTIZ_PIPE_DOWN) + T = SSmapping.get_turf_below(get_turf(src)) + if(!T) + expel(H) + return //Nothing located. + var/obj/structure/disposalpipe/trunk/multiz/pipe = locate(/obj/structure/disposalpipe/trunk/multiz) in T + if(pipe) + var/obj/structure/disposalholder/destination = new(pipe) //For future reference, the disposal holder is the thing that carries mobs + destination.init(pipe) //This instantiates it + destination.merge(H) //This takes the contents of H (Our disposal holder that's travelling into us) and puts them into the destination holder + destination.active = TRUE //Active allows it to process and move + destination.setDir(DOWN) //This tells the trunk above us NOT to loop it back down to us, or else you get an infinite loop + destination.move() + return null //Which removes the disposalholder + else + var/obj/structure/disposaloutlet/O = linked + if(istype(O)) + O.expel(H) // expel at outlet + else + var/obj/machinery/disposal/D = linked + D.expel(H) // expel at disposal + + // Returning null without expelling holder makes the holder expell itself + return null + +#undef MULTIZ_PIPE_UP +#undef MULTIZ_PIPE_DOWN \ No newline at end of file diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 307e714316..225ca1f824 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -33,6 +33,9 @@ else return QDEL_HINT_LETMELIVE +/obj/docking_port/has_gravity(turf/T) + return FALSE + /obj/docking_port/take_damage() return diff --git a/config/maps.txt b/config/maps.txt index 99a4543853..372f062260 100644 --- a/config/maps.txt +++ b/config/maps.txt @@ -35,4 +35,7 @@ map deltastation endmap map runtimestation +endmap + +map multiz_debug endmap \ No newline at end of file diff --git a/icons/obj/atmos.dmi b/icons/obj/atmos.dmi index ee42e95dd21b63db75bd91f6cabfbf20e12afcfb..644c32fe30a5a3cd02a5a69c208b8118c4cfb222 100644 GIT binary patch delta 8539 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�);Bs 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 literal 30865 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

B_%73AnXBFiXo>Rs`Xb7nn4d30krjTw~W z0Kn=!ftPy?18(!F$0x5pl$j=fv9q48CuroYP0D>DL5yfbw5Q=d(!xI9Y!17Y3}S`C zMUk|JSTpmUes*1C^7f099I89Lgx*yuC>H^pCrBq{r~zQT``-Xv^mRw|SJ7yU@xSA` z>(?FUFn_Qc$6FXNX-1Qd4PoC!CcYw^ED<^la+iFOx5wc0G^;3a#lU^@29~wyi5H8T zV^R0bn^};>i1TBbry^?Lk?x3$DB@Gr%BL6NBAE%3YL=had^W0H!D2c4Ul@j(%G@_U zJ@UpSK&T}UuEqJ2)^z?lt%1V@+vMJ-+j#2_)5_}t4Qp+)858wB$tdyu$=g@Y7H|Di~?|2B7XWbGaXOL&z zvAXo4r$UXxVY8-!F2I1Vl0E=HESVi#9iXzkvjZ-Vewv^+yGV=fS}-AM=IYL z`GHL$*p$A(f{#mD&Plol4~^C|{LPuD&Jb}Gyf*4*ybmMDhLxi|C#V0^2@KxH5D|9l z_Gu}LaefI5(THEQgCUYazQ+69Oj z@liJ?1bb-DpFD@(U%MQA;g_hJve{LwO=x)sh%*w9|Fxly8CegJkht>^|DuG&hbF_U zuxR!XTv1WP2~#sP<`XiPk^Ru*^C3=Z(J5~d1F>m6khHV(FU&QCw_jzH9V3ddQp?A$ zNV)uq%^5DYhCaE^1Y~Pvlgj6)MMasOTe;{Cb0izt3l1s?{@|cL8)NA?0(7@{9POk( zFZ@{hB>H8Y=_Vtv?zkOSdBGRUEGS}`m}0aK(w86nKcfHODfFq!JN8!@uDUN1a?$gg z%LkC(5)x#{UXt({kip)B(I)ZfGtUN)4F5YU)xNCpm`C4+Y^}>SP#dvMH*-W2@FrYWxE63R;xc;*(u$sB~o!bmtU2u=f#!mh(QZyc92#l)PJ7vGj#sOZk@Id}L z$IC%Xr6f@8@k+RXLtAQ(d7T&}!kiUR+V--K(3_2(fbrol&@;n$0_r?m80ecQ@2mk) z4#>e;U7;v|K&MKf#_>Q%$1EBYnKzYc#cX_c%pk0t0WK4IVG&82Y=TtV#}ixF=BX_l ztKM{tcmZq85T+8^RkvQjK?6776v`n;Hkv9ZB64T+vqQa0%eSrWxb%Ne)qk+AJ-r9+ zLLzW3)eJy$E!np74j`%pE=tv9G(l#ZXYRC?EEMx|h40adHadopa z(pUljFu5$90_jyr{BAo3oLU=ZOFO}-bOyJS&}+XJ-}C$@d@c{|_mkG5RsoJ*cgS{d zxR|9AUvL7=t#b~fu2*<`HVFe?5z{okE%{BBFJZwa7IlA4p?3cAuX+M)!-uwBj-(5D zH!mldeponCpvlCdi%`#)eloKywfNmJUl!SNSE^&jF|&oDN~7=ggI%~OO)q!DvUkZ7 zH6EQ56zz&NO!9^+Iw7KzHkr9|6Bp>Qn)Xwrkh*h}_OfK%>@98bi$x=LG-Psjw|&`A zW@{cf7hf}aZ0YtLnoIA&Lqs0@*pt$l{&sWCT{Fafm*d(iZL?~d_f$>E;O?umiXHo5 zOZde-1`6I~5Hcmh?L?|w*xpo6U;v)R=p{~*e0vx4`xl1i7KNp18;9*kcR&}5@pO}* zB+W0hYai4-sSCD=q{8E_y4zh=g8A+jh(7r(+OX*Sy^HnV;Z$JEZcn=mQ5&td%-hf9 z)s6_%QPK^(?;{?q7hF$$#&j~B_(ZxTExZ1+`_YPOA==-zBMc zxC_<&vhyDlNycm{w&<6@XYP6iciXv99t93$jQOwX+$i6=z+4VW~gNd7X3EReXrvE)2H{GjZNwyXowu99UBvG}bcog4zXD0Pp3nfQ35w#jOsJNOt%R_V z?d8XxGf|6G*juiOpbH$J)6^fZBFB8MV36f0r)kD89PYn_^wXXR-At3Aiv=CS;1LM8 z5_|W+OvvvE*Hgbf$kl$rada9o=U9F9(e)1oHQCpy-0BuzUZNuf*>|d<=1cfo!k1|+ zT!O7^Pd!(O3^H~MI!HKb9&DbT@Rpdc3yFBoaCX^kvu$RseGXsT`+N}+yx@FSA5c>i^wKiYr0%CEgTQIikMeRSq14-Onu-< z)+Mg4SEa{-7CuxxrS2GK$mr@#1&t0OPA9;KwnIwQ5OK$yNSIN}vy*1>t_F|#kK>9& z2dm6?D0JYP=|DQRzrzX~`TlIDx5rc+`G!Fj#HxcCk(hQ6tG+q1`cnC$E62g}p_eaw z+aJe8ai2F2z9^T-h?LA3ln(Q}a$q~0GH4gX7#|<1;;X+--N-3PJ;|D93`h@j)W=^KvrE%||!y7mJUwU|V;nxG%U% zYxUGR_eJg`VJOnPexZs-)glt?aV6Iv?tLq@U6E9 z5xnXxc(s`>?M)p@ZZu1kQ2#dr40JcVlSoh^!szn{Hm!)KFmF<1reJMj6E9m`XPi^; z#f=1e3W!NioanBU3-@{?teo6<*_i)@ zbIwk%0x8>IZtFBsnz>f34x{-TuDg_0E-CnO3Vsy)KQj%9fGbPm8|8x^GJ!B}_Szq4WUN`=YB7RSQ{ z+&q68^3R6ISZd^Xqro^sj+s-ZBTQLeJR6hbcryDhLX%A0s|RNB-D4~>7)QZ8+QZ7~ z%C0FEUIb+NbVLvZ`!V7#B0miv(TE4XUVs$*ZcjyeR6-5qc@1aF10)#Di9V_$s&@M> z?)v`Lwh^XtXTMbT11_JIyyQd2;EYJ9z%x%Q<-F~*QPzzjZT8!ETOM{7)*5MK@uiSb z#exGy4yiceL3Z zQIb1%@LBtI=^q>K$ZM-p=_B=e$W9}QKAtxRZPf0PjcN$SBzT6wXxfg?)T*W;Nn1%P z@=;TN?f@fLycx6(rb=9ra&nsb9r^)>AZ=dVn}EZ_Dri|SpTdug zbfY;)2L#w+m(WdiJXo)7?!8pe3L5?idiV`tot#_>P7To~XgXC7?jbI!P^ES46P%}9 zT6KRtfNNAQy7!1n5Ls`YXoEBKuOsD(xqC>P(3x!e-$uK549N$pj=!S ztK*OY{V98fj`%tB>aBYfR=C2!sPXFVK2`nU>1rogt`&c>-{AIwWcN^j- zNLlRg8-M(<3&TmDmy1Cak@WEqFy01T{`eo^P7|F%EbZ*<9^4mtUEyl|*~0!Af@ z?w!&7t-w)49Y=O~xyf4%Pu8dLqH*wb$S22NphicCB@Q!m2Xt;~J+U{;b`q-nc>i$z z^!t`5aa<8j=RrRXC3wzroXe;Klp%4o%@M=62H_Li17+R*>3KWqz?*%qp*QqTjLs{=phPf{o9K|=e9|Ioi*6wfvg`aR^>Q# zF7myqLj8V_+W&AbubG2INa$7kr|Ws7hoETYZX>d&$4~q)fr$_9+ma5${%TkVYyjmf z4HQZq`sQEfhIRA*-eH3V9`pOdIg6#!{)FB13Gi$BCV>@m=x2Ft)?-9M?XyI(| z_?r4dobXptV|Zjaa8U9d@4Goz4T0W@2&L!^H0T1J>xS|Hq8BA{tbXvl06^YYfl~NN zqmB8W#%BNJ?z1lR!&a%40RigI;v?Aq=D~ejVJ)&AIC>2VO;C3q%?9NqffVkw(W5`c zi-I%h?G+3UHM@7@(038;R!8H5Is3WNyV@IcK0LqE_A%Sc4LjjgDqiz_Z%DVifWPe+8@3}X@K@ya)pWb;dYO#2M1rmj+~ z=lg}_81g%c4}azHlpX&S^N~H%NN&`Y^!28Y^+B#ECNZzncEQZm->y1>D;c&~$znKA?G{b5Tx@6x{ahb``8q?t=xL=MA5 znn#SDlhG@=D?I!;AP4we?Nt?(`%0KdWG@fm{A{&|&UC-c)VY3@ga@yeb%Fd39}XbY z)Vw3V-Q}k?PDw0`V77TKK`6Sd(284WMbz^ju|>rAJNKUqV4_9}(!*m;QQtk!1Az9_ z`Pk`RTtZOQrFl(@^xr?T@K%}jNZ)a;S7_VDTNGP3DWZrfz}W|s}R5IJiiV=pYMrd0`JafPDb=}>ot!LGXkQ{dPn;l$5dHkC5|lK?_#4b3@!2vWp^z3Zu8eK zVm1*(gGghzXCH6nx?Ee^M1zD<19*<>L80`HWDwryDrG-Gx1_x@L z%d%wC9A)h12mG@PlZ_u3^dGx+eg3QfE*>~4FVD%=oOna#TTrRCr~PsP)D!+a>Rv8h zoijz6${9KcD-80vEOz6;VU@#=&F0DqiJz3c5+CS{vvrveT~@hn!kz_fpc6W?4-$gn zho8rF@wGc2R^v=BYN$@|?Ng|nI2wf)_us^dmD%T3wIkBQ*)+n#E{TG*#5OK}nr#CW z@1KBLetpJ|zyp2#*xWmneeS8!xAPOt!kX~;G~pND#h!qx>TZ$uu%Bc-8D?iE$?Yz+ z-H*)0-uERWWPPj{OT=4A#Bny9W;6|z<-r*(DdQu!nQFomUJw>AwJ`S5Wuj?UG0}iw zvAf$cw4n^!zDX@ah69}}H$~FTDH}|(p=-U_6dUY89a63_ElxdQF4_MkIst4I-6{4j zSvFGRQfa?NBq$9v-d(x(ilg!LA594xT;obY-WL7*V=$mruBsPmckG>DBJ>KwR}HGb ziP5{awyd(74vclda}R93(0I>$>w=wK%2xA%k;(DPoyFS^Rpda?)=JjZGRaWy47U7y z2KB3N!2|Q5OwPw#f0^L&tc99w|0^?u(VZim%-si^wKFhPYouii=In z`b+4sDl{1nBP`7f(;x8X-bS?7eCHmlv77A?*`zd3No$j{RiW7K6DQjquHD@g_h?DR z+jV5fCM{_Cjn;L#Z_OrLGK=YLDRL7WGs%B_2B` zKRL^txP_ehwfB4W`H?;1Ou?m|o3VE@4la3UgoSU}?pAa<&)B1x=Oy=kYA)BpV(&J_ zK0o54yH`uJ+|-VK77Q_nvWN*u=awNHdA*PtxAdJxEWJ&B_*3<5Ztg8A-m$T{_*Whh zo$UM8XD+@aS>7uPIie&qkWOpHiI;hfoa15{WS#+k-`oE%`=l+)YoDF+x}Lm}l3++G z)F)qHywymQzfkAkpq%!!#bZ zzCD`mT>aMi`qdK?Xx&UrxTmLL*Gu)ICl`-iCkE!`<_fFbY4&wrL(m?N+tmbNse7cG zhNd*(D?gro#qbXlpj{2k%($*!zc7yx9w?w~eH$b;bneWfy1TN=h8WwQ+16%jX6Ka% z#m5Vq{ir#1`lH@0q)}ExUi=X+?29rLCyEPXpG_fzX&g*IVjz{4L4ZU}^T5r*?G=01 zJHaPXqCJL(DCSc)u_5oEwd{iqQHsSy7cM`L>nSRVe*QVi=v3y9soPos9S|}`1Ho7nrmB~V`|_o zQ4bT~chR`@^&8&AiPvu;`j=(D1(j%sgWc;noDvLUD_HPFE)Kw>IQZlmM z{%;Nq?pcCW@W72E`st8&XcrMc`I298QpLKR-OsCiXAZ>!Goz;kPuwD|@T5YE?(!tb zxx!`Z0sdz4Ni9hEt$6XHpxCDMXt#Ir6pK`^cU8|OW8xZ5CFcw=&DQV)>5VBmcXr?= z3RKlfhFTt6JwCg?%DC5Rc|Xn_^3*x785T1m=dj7Suj>vYuQX;Z z62OS(s%e8i{3MVXkqG87MLo2t_GZ(^FWP{Ge2&{-eN2aicFz< zX78z+CqnCBbvJ=KeoyH`3F8JM`!nc8kq8fD-)UeBmUa`6vu1jXH|^xCD~xGd-0-6AW3eNCNc0!TMvhJxuJyb#8K+i|?P;t+4E&``N%n`4Xld`F zFs!TD&^?3~wuov4OkgB3Hv@!-7|r!8;so0kfl!}G*m|7R*RrA+7lkjNdXzdgG7U5@ z4Ped}8|gd|ng$xeOfpLG?c>E>Z0_su_Wr5!B;C%PMQ^qI=V0Rk>%DPbaZc@@OQ*^B zb-CQvO*fENbmVBW+${Lt=mrMj6WXaa>k|Qjb8Smdsd92f1SM6ina2`at@nOuD2rH8 zci|g#SKO%lPii6xq&ll|blr;j7?}AqSsYa&Y_iyEUy=e^B~%ibuav@CS0}#?PFpFb znJK4#msM2sC%I785(*}~L*d8?#!J5~8}%o^NjoS$!D;(Z&fObL`(R>F>@wyowNsp9 zeI?0Dc-&rM|HsBHzF2ft(60N0k_iC#o|MK7xK#y=GqkuKo*|^RIQ~fnoOB{wrN7LD z(89+?+4OW!)o4YAEs^4?kxk46S%$x^-R_8FBV?Jm#a}w=pp?Krn7II=b@#-dxww^# z-JL0Va17~i?vwO?Vp*LT=^mde?>~pn-iXx&Z1j3rRy|x8GES|(87$hTlQ~#VUu9w~ zR?`5CmWGdIX6TB1JC@|L*%$mR&BP?mknPNpj?M7|v$jT=)MFEG7E$M|*63?RjvtOa z1=z5azkYqRCat_;DXu@LqGBn;L#9K;p1~bj9jeXlHU&m?jE?5~Ee2S+lzl9QB(0uf zKFp>GhUE`nysu``cU8i4;W~jX%=&G3h2e`%IXl2hnAEV&`}lDuH%F$iI&}ZutreS= zH;cY7BMNX!gW!r3X5dLF-5;3vLID|Rb#;|b!O-wWshEpk0Ufsvr4{Ex_)BXzWz3>%Zn0KY7 z0{~d+U}FcW2~z|q8(RTiqF>1b`Jn?D4acQD^P+tBjJqlZLO^p`a{~syl7(GN4z{+v=rpLMpksH%f>vk>`@Uvei*(~NdL{jZmPHHe_iF*sy`k`wA`Mjo?ryX;#~}?mNeP2}e4*dC$VoBV1;k z`Z4LIOOiF}U{_Rn`Ins_xn@fJP2WJvt>Pxy)iw-XN~-WN)Y(A}kV190_O3sS2-G#8 zf>q*oggHFhAE{Ii-?EXlX7JheIbVVzm>AFp?*@S~+>w?9%-v7R@3py^s+;FTg~LVd zXu0cIwegNVw!+oPjRo%@H`w4ZVB0a+5YgrMHJ652{n;Y!9ec6rcn2rkLRC%e335}5 zCu(}I9xXx*+lx51)BE-9i?IrkZ`=MZUcqBZ#dMpM*-LvY& z++bCwh;Q?^FA}~Y9 zZp3!;f*%%p`)ylavy?g(yz~ZLtf(Jh6<%LQ%vTZ;mST*-``F1|kWqPwo_d z9m$s_JH6KAc^vrst48T4yo*a4crk@%1hPkaBe%3~o_U!?<*)6Em@7bbe06^cpq;Sp zzw_xu_pQB@NosQmJ8JPv?-N2CKljQL*h-tIM7Ex#Rwvdr?n{p0wTUaK`e57=(^Q|; zJzs?9Q@Q*0X!y6uxE)7}Q?AQ(uqpzwbx%@}IpSni*%No5e_BVtfuLmEskC_1^XJH= z$t}@wr!nre7}DhZqB<>(7M1ns=0lGjrerV9%D#vr9|jUrMseBVbCrh%Ggj-*{nR*l z8@wf?aO@A;fqjp;M#`~Yp%|m^lg+l*<^Ya+|mb_ZO#J`|4Z-j zK1aN~W0#hbXfqSg_s!vGrm*hCAgH(+vtnr6mo0p0_uA$!TV{jnMe|XvQQ)kRUGxD z@ZK20rM}RVaXIiW&&yybsD#vHy){gXjmZq^(tCI<&T95mZX=mjRrMri`y+pDEnEBc zZb0C|rNmEQml~Hm0C;O^z-sqyvu!#e`6e_<+O4!gc<8?=9=@WWuaTQJtSFfS9o90d z#a^805z2SeyI{L}#+lfHXg=SKGdMnHbYoqg@HlIfLcLWM1kbevW6`|u&5O=K;K5;) zYyggDHn1E{eM#}hT^Bhe$RqB9Yuv8x?nZa=SOjnzvCj)dzTeegQo+UF#4zM{zvox_ zqQ_t?u01(>=+2$vB8F>!hSkA?oPD@VZzixw8+3lV(*`bVj1Bu!Y$E;)jScwA3Sl9- zKI)-CAn*+$uY_HD&CeUyJnb%JuW{;t-qaHNDsI|4sK93u(K2HyI-*k3rHGbPx{8}q5z13u-EM= zSHN@B_7M6D?zc{j(C{C-c|ZnS4{ejnnp?P{0}C%?88FuFLESGF8uc2$X{MREx}8fH z9X%<^^^$Gw5(re85kg?>L|%RiBEw7mptYa;K~0@eO8uGV!CfFq?^)N&=c0j#xqzB) zNiMmci#Y5m4n29Y&({wD35W8cQ)Zbu0%K#4&f3t_?6SGsyN!0~+&gn~1$C#RM=4;@ zU#jKvXW*hubN{OKshDz_q9r^m)ly(xe6 z$UYW^*nikX_$>$ea*Zi}Qqg+mvr*&JnA4J}w{pLuqazy(1DtHE=dXQ@g6kgHsA)o? zHvriu5Gp%qZT1iF# zoF~d8+n-(xM`K{E{jO&Y#(uf3eN}t!!5_HrReG5j@HxzEP$jkd2N@XH{edxw)0gux zU=W0o?LmQoU*R>|2jQ<&gK8;N@xxgV0pLQc@p!s|@`?PJk1uv3mUNw*R&Z=)vEKi7 zf&J|4tW{%;sISV9(}ctI)6VO)2Xgm=fY&@V$ZG5D9Tza419C2_hqaFw{J52zYMAar za!=RSgM;`fF;NxlSzGU1vVX@+Kqr{D_tn6-qS1nxkwu)~-OeoFHwqpqD5jF#y49@i z&EQcQCSg=P0iep;AP1yCf9^0vbl&E>d1Ib4GxDjh7aX^|hK3+d0k$$07u?)((VR0q z#on77Zh9cDL%QsJ$En9AJZt$j&>!Ndxk)-^=sE8EYNNja{^91SY6wh*MX7`*gza;+ zekH3YH;d}D76^k^djz+-Ol*>}K!hQP zQA}B|51~+sfcM4j0I=+LF2U17L%jc|x|F&)-@-x+0DuAfmL>1)8iNj$?zrTGx6jV2 zJdl{U;ZfLDS6_0;+`NP7r!fOyd`jM0M@w&=YK4FRXEZhQ>gqs|zPR|B#`nv&ZH^v% zBLSw43t481`N#!+Da~y^gOqhZ;3PN+VI!KAnfbD($0Wa?U=9o#-bQsH;Tc;I9fSe# z$Wpkz2*byMK;8IHA1{XaMt;99;N)`GO!(Jpej zhAqX6Fwn!gL)hE9hWac>n>9)BF?@~Z-?IX?6(8HOH30zp9+w5d#Q^mD`=$$ZqB(Pai;ettfuv{{U`NqU|JpJrdADa|wh^_ZX!vPzKX zS?+I_vf#>h4<#b0_6MoJ!h$!4C&~Db@AI-j*spiuua}$&eh|Q@A6NLk*ujXt}<+)5O-Oa z0lhtiL;Xp7D3ryUb4+>Y)|HW}x95CcE3dffNPZ|)na5ZUrxZ?Ii}vldmumw9;V8}XAC zg&Yw`*oRSwwDkEi>(p_Fs4J^nW@|8+DGd7x49JHbLROG53i|`;nmi2wb?AF@*BRJP zn2>4v$-r@*N1tQeA;mQTAnL)oI`c=I6vXI0i%KPzMfYdDQaQALA1F?@B7d_IoPUa@ ziI{akIdVS1F&QdvaTd>wA$@=pjZ670F7Tj%FYCAfITa$mQ+$M%$f2JN`)~@ln8#;V z?5E*-21SZmNLPE7NBG?2K6lL^G=f= zzG|R0P0@A{jWqt$_5{5(wg~V$F~RTcpirg8Qn1e}8XW#G+;C-E^URrBZH6?-Onx^c z{~9u!%W=5<59qmx!cu={)yI#vqkW^w_13_r?cJ`AiPmfR4_E zi(Pk}gFq+9W!3F2g!L6D2&KXgPsFU_?bd6ZrH|^N53~#osE6W@{zTCtSM!2=cMYAt zZb+U(j{e5mi@s$?I>gP}eQ-v*SHp2y)JHV)4oJv~lO_4+@lR>N4}Y zp#71e_MU&0 zMDsr0f7d-h%Qt!&`ovTbD%Ft5iiy-t3Xnfaut1 zzb&?i>42@kl-AgDe{&{=@g_0b{rZZwSdf}}=1cp_Uwpf8zhCI(Urz&ay%Tds9^dHD|~=BspT zOuxwt0MGGq|0|9EpTk#fO8U^_*fEz4z$d?)zugJ0yN(ps-F~j44IJJJ6?lya*IuV4 z6H)8HpxN@*_YqnXI5OIfAexduf7Xh!|Cr7knu5T%07+ZI*~c-gXXN zdHv{J)@$@P&%OL-$FF*g;Wo>snidYas2aSM1Mp@#4i?NA_CIB2_&8dD!3R&$iuv6& zhFLt!PcKI`X;Ywi`jOokE=|zJ8X189MF%|Y-C|rdf`^o{{R(VvakRE diff --git a/icons/obj/stairs.dmi b/icons/obj/stairs.dmi new file mode 100644 index 0000000000000000000000000000000000000000..615e88f68455f72b4a2f59e35dbfd5123a90fdbd GIT binary patch literal 4929 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 literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index 3daee9d346..99689784f4 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -1022,6 +1022,7 @@ #include "code\game\objects\structures\safe.dm" #include "code\game\objects\structures\showcase.dm" #include "code\game\objects\structures\spirit_board.dm" +#include "code\game\objects\structures\stairs.dm" #include "code\game\objects\structures\statues.dm" #include "code\game\objects\structures\table_frames.dm" #include "code\game\objects\structures\tables_racks.dm" @@ -1076,6 +1077,7 @@ #include "code\game\turfs\closed.dm" #include "code\game\turfs\open.dm" #include "code\game\turfs\turf.dm" +#include "code\game\turfs\openspace\openspace.dm" #include "code\game\turfs\simulated\chasm.dm" #include "code\game\turfs\simulated\dirtystation.dm" #include "code\game\turfs\simulated\floor.dm" @@ -1355,6 +1357,7 @@ #include "code\modules\assembly\signaler.dm" #include "code\modules\assembly\timer.dm" #include "code\modules\assembly\voice.dm" +#include "code\modules\atmospherics\multiz.dm" #include "code\modules\atmospherics\environmental\LINDA_fire.dm" #include "code\modules\atmospherics\environmental\LINDA_system.dm" #include "code\modules\atmospherics\environmental\LINDA_turf_tile.dm" @@ -1909,6 +1912,7 @@ #include "code\modules\mapping\reader.dm" #include "code\modules\mapping\ruins.dm" #include "code\modules\mapping\verify.dm" +#include "code\modules\mapping\space_management\multiz_helpers.dm" #include "code\modules\mapping\space_management\space_level.dm" #include "code\modules\mapping\space_management\space_reservation.dm" #include "code\modules\mapping\space_management\space_transition.dm" @@ -1994,6 +1998,7 @@ #include "code\modules\mob\dead\observer\logout.dm" #include "code\modules\mob\dead\observer\notificationprefs.dm" #include "code\modules\mob\dead\observer\observer.dm" +#include "code\modules\mob\dead\observer\observer_movement.dm" #include "code\modules\mob\dead\observer\say.dm" #include "code\modules\mob\living\blood.dm" #include "code\modules\mob\living\bloodcrawl.dm" @@ -2390,6 +2395,7 @@ #include "code\modules\power\gravitygenerator.dm" #include "code\modules\power\lighting.dm" #include "code\modules\power\monitor.dm" +#include "code\modules\power\multiz.dm" #include "code\modules\power\port_gen.dm" #include "code\modules\power\power.dm" #include "code\modules\power\powernet.dm" @@ -2597,6 +2603,7 @@ #include "code\modules\recycling\disposal\construction.dm" #include "code\modules\recycling\disposal\eject.dm" #include "code\modules\recycling\disposal\holder.dm" +#include "code\modules\recycling\disposal\multiz.dm" #include "code\modules\recycling\disposal\outlet.dm" #include "code\modules\recycling\disposal\pipe.dm" #include "code\modules\recycling\disposal\pipe_sorting.dm" From a2f9aaf89931614ead93fe1d8b2bcf54a9da8c57 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Mon, 28 Oct 2019 17:04:31 +0100 Subject: [PATCH 021/144] Porting "Adjacent Atmos subsystem revival" --- code/__DEFINES/atmospherics.dm | 7 ++++ code/__DEFINES/subsystems.dm | 6 +--- code/__DEFINES/turf_flags.dm | 1 + code/controllers/subsystem/adjacent_air.dm | 35 +++++++++++++++++++ code/game/turfs/change_turf.dm | 9 +++-- code/game/turfs/open.dm | 2 +- code/game/turfs/turf.dm | 4 +-- .../environmental/LINDA_system.dm | 4 +-- code/modules/holodeck/area_copy.dm | 2 +- code/modules/power/supermatter/supermatter.dm | 2 +- tgstation.dme | 1 + 11 files changed, 59 insertions(+), 14 deletions(-) create mode 100644 code/controllers/subsystem/adjacent_air.dm diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index f73a74ab19..baf29240c3 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -251,6 +251,13 @@ out_var += cached_gases[total_moles_id];\ } +#ifdef TESTING +GLOBAL_LIST_INIT(atmos_adjacent_savings, list(0,0)) +#define CALCULATE_ADJACENT_TURFS(T) if (SSadjacent_air.queue[T]) { GLOB.atmos_adjacent_savings[1] += 1 } else { GLOB.atmos_adjacent_savings[2] += 1; SSadjacent_air.queue[T] = 1 } +#else +#define CALCULATE_ADJACENT_TURFS(T) SSadjacent_air.queue[T] = 1 +#endif + //Unomos - So for whatever reason, garbage collection actually drastically decreases the cost of atmos later in the round. Turning this into a define yields massively improved performance. #define GAS_GARBAGE_COLLECT(GASGASGAS)\ var/list/CACHE_GAS = GASGASGAS;\ diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index d4086bc4d9..a4fd695fbf 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -26,10 +26,6 @@ #define TIMER_ID_NULL -1 -//For servers that can't do with any additional lag, set this to none in flightpacks.dm in subsystem/processing. -#define FLIGHTSUIT_PROCESSING_NONE 0 -#define FLIGHTSUIT_PROCESSING_FULL 1 - #define INITIALIZATION_INSSATOMS 0 //New should not call Initialize #define INITIALIZATION_INNEW_MAPLOAD 2 //New should call Initialize(TRUE) #define INITIALIZATION_INNEW_REGULAR 1 //New should call Initialize(FALSE) @@ -112,10 +108,10 @@ #define FIRE_PRIORITY_AIR_TURFS 40 #define FIRE_PRIORITY_DEFAULT 50 #define FIRE_PRIORITY_PARALLAX 65 -#define FIRE_PRIORITY_FLIGHTPACKS 80 #define FIRE_PRIORITY_MOBS 100 #define FIRE_PRIORITY_TGUI 110 #define FIRE_PRIORITY_TICKER 200 +#define FIRE_PRIORITY_ATMOS_ADJACENCY 300 #define FIRE_PRIORITY_CHAT 400 #define FIRE_PRIORITY_OVERLAYS 500 #define FIRE_PRIORITY_INPUT 1000 // This must always always be the max highest priority. Player input must never be lost. diff --git a/code/__DEFINES/turf_flags.dm b/code/__DEFINES/turf_flags.dm index 5ceb6f2e2e..8604a92c01 100644 --- a/code/__DEFINES/turf_flags.dm +++ b/code/__DEFINES/turf_flags.dm @@ -3,3 +3,4 @@ #define CHANGETURF_FORCEOP 4 #define CHANGETURF_SKIP 8 // A flag for PlaceOnTop to just instance the new turf instead of calling ChangeTurf. Used for uninitialized turfs NOTHING ELSE #define CHANGETURF_INHERIT_AIR 16 // Inherit air from previous turf. Implies CHANGETURF_IGNORE_AIR +#define CHANGETURF_RECALC_ADJACENT 32 //Immediately recalc adjacent atmos turfs instead of queuing. \ No newline at end of file diff --git a/code/controllers/subsystem/adjacent_air.dm b/code/controllers/subsystem/adjacent_air.dm new file mode 100644 index 0000000000..8395eda708 --- /dev/null +++ b/code/controllers/subsystem/adjacent_air.dm @@ -0,0 +1,35 @@ +SUBSYSTEM_DEF(adjacent_air) + name = "Atmos Adjacency" + flags = SS_BACKGROUND + runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME + wait = 10 + priority = FIRE_PRIORITY_ATMOS_ADJACENCY + var/list/queue = list() + +/datum/controller/subsystem/adjacent_air/stat_entry() +#ifdef TESTING + ..("P:[length(queue)], S:[GLOB.atmos_adjacent_savings[1]], T:[GLOB.atmos_adjacent_savings[2]]") +#else + ..("P:[length(queue)]") +#endif + +/datum/controller/subsystem/adjacent_air/Initialize() + while(length(queue)) + fire(mc_check = FALSE) + return ..() + +/datum/controller/subsystem/adjacent_air/fire(resumed = FALSE, mc_check = TRUE) + + var/list/queue = src.queue + + while (length(queue)) + var/turf/currT = queue[1] + queue.Cut(1,2) + + currT.ImmediateCalculateAdjacentTurfs() + + if(mc_check) + if(MC_TICK_CHECK) + break + else + CHECK_TICK \ No newline at end of file diff --git a/code/game/turfs/change_turf.dm b/code/game/turfs/change_turf.dm index f1c5080c8f..6a055bbd35 100644 --- a/code/game/turfs/change_turf.dm +++ b/code/game/turfs/change_turf.dm @@ -15,7 +15,7 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( if(turf_type) var/turf/newT = ChangeTurf(turf_type, baseturf_type, flags) SSair.remove_from_active(newT) - newT.CalculateAdjacentTurfs() + CALCULATE_ADJACENT_TURFS(newT) SSair.add_to_active(newT,1) /turf/proc/copyTurf(turf/T) @@ -140,6 +140,8 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( newTurf.air = stashed_air SSair.add_to_active(newTurf) else + if(ispath(path,/turf/closed)) + flags |= CHANGETURF_RECALC_ADJACENT return ..() // Take off the top layer turf and replace it with the next baseturf down @@ -263,7 +265,10 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( //If you modify this function, ensure it works correctly with lateloaded map templates. /turf/proc/AfterChange(flags) //called after a turf has been replaced in ChangeTurf() levelupdate() - CalculateAdjacentTurfs() + if(flags & CHANGETURF_RECALC_ADJACENT) + ImmediateCalculateAdjacentTurfs() + else + CALCULATE_ADJACENT_TURFS(src) //update firedoor adjacency var/list/turfs_to_check = get_adjacent_open_turfs(src) | src diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 833a07c9c3..1730a2ec85 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -200,7 +200,7 @@ update_visuals() current_cycle = times_fired - CalculateAdjacentTurfs() + ImmediateCalculateAdjacentTurfs() for(var/i in atmos_adjacent_turfs) var/turf/open/enemy_tile = i var/datum/gas_mixture/enemy_air = enemy_tile.return_air() diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 7fe48365ef..1b2ccda82c 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -62,7 +62,7 @@ add_overlay(/obj/effect/fullbright) if(requires_activation) - CalculateAdjacentTurfs() + CALCULATE_ADJACENT_TURFS(src) SSair.add_to_active(src) if (light_power && light_range) @@ -85,7 +85,7 @@ return INITIALIZE_HINT_NORMAL /turf/proc/Initalize_Atmos(times_fired) - CalculateAdjacentTurfs() + CALCULATE_ADJACENT_TURFS(src) /turf/Destroy(force) . = QDEL_HINT_IWILLGC diff --git a/code/modules/atmospherics/environmental/LINDA_system.dm b/code/modules/atmospherics/environmental/LINDA_system.dm index 1ad899920a..5c6e33a2e8 100644 --- a/code/modules/atmospherics/environmental/LINDA_system.dm +++ b/code/modules/atmospherics/environmental/LINDA_system.dm @@ -43,7 +43,7 @@ /atom/movable/proc/BlockSuperconductivity() // objects that block air and don't let superconductivity act. Only firelocks atm. return FALSE -/turf/proc/CalculateAdjacentTurfs() +/turf/proc/ImmediateCalculateAdjacentTurfs() var/canpass = CANATMOSPASS(src, src) var/canvpass = CANVERTICALATMOSPASS(src, src) for(var/direction in GLOB.cardinals_multiz) @@ -107,7 +107,7 @@ /turf/air_update_turf(command = 0) if(command) - CalculateAdjacentTurfs() + ImmediateCalculateAdjacentTurfs() SSair.add_to_active(src,command) /atom/movable/proc/move_update_air(turf/T) diff --git a/code/modules/holodeck/area_copy.dm b/code/modules/holodeck/area_copy.dm index efe7418e44..5e7d0a08dc 100644 --- a/code/modules/holodeck/area_copy.dm +++ b/code/modules/holodeck/area_copy.dm @@ -122,7 +122,7 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars,list( if(toupdate.len) for(var/turf/T1 in toupdate) - T1.CalculateAdjacentTurfs() + CALCULATE_ADJACENT_TURFS(T1) SSair.add_to_active(T1,1) diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 1b3a2a716c..06d1812ece 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -313,7 +313,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) playsound(T, 'sound/effects/supermatter.ogg', 50, 1) T.visible_message("[T] smacks into [src] and rapidly flashes to ash.",\ "You hear a loud crack as you are washed with a wave of heat.") - T.CalculateAdjacentTurfs() + CALCULATE_ADJACENT_TURFS(T) /obj/machinery/power/supermatter_crystal/process_atmos() var/turf/T = loc diff --git a/tgstation.dme b/tgstation.dme index 545687805b..89d5cb3a3c 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -224,6 +224,7 @@ #include "code\controllers\configuration\entries\game_options.dm" #include "code\controllers\configuration\entries\general.dm" #include "code\controllers\subsystem\acid.dm" +#include "code\controllers\subsystem\adjacent_air.dm" #include "code\controllers\subsystem\air.dm" #include "code\controllers\subsystem\air_turfs.dm" #include "code\controllers\subsystem\assets.dm" From a5086d58131f43e17fae004f34e8edc88bf0ba0e Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Tue, 29 Oct 2019 13:16:36 +0100 Subject: [PATCH 022/144] 3 seconds penalties fix --- code/modules/mob/dead/observer/observer.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index f2a24cd763..93988cf0c4 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -270,8 +270,8 @@ Works together with spawning an observer, noted above. SStgui.on_transfer(src, ghost) // Transfer NanoUIs. ghost.can_reenter_corpse = can_reenter_corpse if(penalize) //penalizing them from making a ghost role / midround antag comeback right away. - var/penalty = CONFIG_GET(number/suicide_reenter_round_timer) - var/roundstart_quit_limit = CONFIG_GET(number/roundstart_suicide_time_limit) + var/penalty = CONFIG_GET(number/suicide_reenter_round_timer) MINUTES + var/roundstart_quit_limit = CONFIG_GET(number/roundstart_suicide_time_limit) MINUTES if(world.time < roundstart_quit_limit) //add up the time difference to their antag rolling penalty if they quit before half a (ingame) hour even passed. penalty += roundstart_quit_limit - world.time if(penalty) From a5b37b658bc6183bcdc45e83132fe97bb44cc6eb Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Tue, 29 Oct 2019 15:46:31 +0100 Subject: [PATCH 023/144] Purging a lot of space indention in favor of tabs. --- code/__DEFINES/MC.dm | 20 +- code/__DEFINES/_globals.dm | 8 +- code/__DEFINES/_protect.dm | 6 +- code/__DEFINES/cargo.dm | 26 +- code/__DEFINES/maps.dm | 14 +- code/__DEFINES/subsystems.dm | 10 +- code/__HELPERS/game.dm | 8 +- code/__HELPERS/unused.dm | 2 +- code/_globalvars/bitfields.dm | 2 +- code/_js/menus.dm | 66 +- code/controllers/subsystem/traumas.dm | 2 +- code/controllers/subsystem/weather.dm | 14 +- code/datums/armor.dm | 90 +- code/datums/components/waddling.dm | 20 +- code/datums/datumvars.dm | 16 +- code/datums/embedding_behavior.dm | 84 +- .../mood_events/generic_negative_events.dm | 32 +- .../mood_events/generic_positive_events.dm | 4 +- .../dynamic/dynamic_rulesets_midround.dm | 8 +- code/game/machinery/aug_manipulator.dm | 4 +- code/game/machinery/computer/dna_console.dm | 2 +- code/game/machinery/dance_machine.dm | 2 +- code/game/machinery/launch_pad.dm | 10 +- code/game/mecha/combat/honker.dm | 20 +- code/game/mecha/mech_fabricator.dm | 12 +- code/game/mecha/mecha_topic.dm | 6 +- code/game/objects/items/manuals.dm | 4 +- code/game/objects/items/plushes.dm | 12 +- code/game/objects/items/toys.dm | 4 +- .../objects/structures/signs/signs_maps.dm | 3 +- code/modules/admin/verbs/randomverbs.dm | 2 +- code/modules/admin/verbs/spawnobjasmob.dm | 8 +- .../abductor/equipment/abduction_gear.dm | 33 +- .../clockcult/clock_items/clockwork_slab.dm | 2 +- code/modules/antagonists/cult/runes.dm | 2 +- .../nukeop/equipment/nuclear_challenge.dm | 2 +- .../antagonists/wizard/equipment/artefact.dm | 6 +- .../antagonists/wizard/equipment/spellbook.dm | 20 +- .../environmental/LINDA_system.dm | 6 +- code/modules/cargo/packs/livestock.dm | 2 +- code/modules/cargo/packs/security.dm | 10 +- code/modules/crafting/craft.dm | 2 +- .../recipes/recipes_weapon_and_ammo.dm | 4 +- code/modules/events/holiday/vday.dm | 152 ++-- .../food_and_drinks/food/snacks/meat.dm | 4 +- code/modules/food_and_drinks/pizzabox.dm | 2 +- .../recipes/tablecraft/recipes_pie.dm | 52 +- code/modules/holiday/halloween/bartholomew.dm | 150 ++-- .../integrated_electronics/core/assemblies.dm | 4 +- .../integrated_electronics/passive/power.dm | 2 +- code/modules/jobs/access.dm | 20 +- code/modules/jobs/job_types/chief_engineer.dm | 12 +- .../jobs/job_types/head_of_personnel.dm | 20 +- .../jobs/job_types/head_of_security.dm | 12 +- .../jobs/job_types/research_director.dm | 16 +- code/modules/mob/dead/new_player/poll.dm | 2 +- .../new_player/sprite_accessories/ears.dm | 12 +- code/modules/mob/living/carbon/carbon.dm | 2 +- code/modules/mob/living/carbon/emote.dm | 6 +- .../mob/living/simple_animal/bot/secbot.dm | 20 +- .../living/simple_animal/friendly/snake.dm | 74 +- .../chemistry/reagents/food_reagents.dm | 12 +- .../chemistry/reagents/impure_reagents.dm | 2 +- .../chemistry/reagents/medicine_reagents.dm | 22 +- .../ruins/spaceruin_code/hilbertshotel.dm | 786 +++++++++--------- code/modules/unit_tests/spawn_humans.dm | 8 +- code/modules/uplink/uplink_items.dm | 2 +- code/modules/vehicles/cars/clowncar.dm | 4 +- code/modules/vending/assist.dm | 22 +- code/modules/vending/autodrobe.dm | 40 +- code/modules/vending/boozeomat.dm | 8 +- code/modules/vending/cartridge.dm | 4 +- code/modules/vending/cigarette.dm | 8 +- code/modules/vending/clothesmate.dm | 224 ++--- code/modules/vending/coffee.dm | 12 +- code/modules/vending/cola.dm | 10 +- code/modules/vending/drinnerware.dm | 28 +- code/modules/vending/engineering.dm | 6 +- code/modules/vending/engivend.dm | 14 +- code/modules/vending/games.dm | 6 +- code/modules/vending/liberation.dm | 16 +- code/modules/vending/liberation_toy.dm | 12 +- code/modules/vending/magivend.dm | 14 +- code/modules/vending/medical.dm | 22 +- code/modules/vending/medical_wall.dm | 4 +- code/modules/vending/megaseed.dm | 22 +- code/modules/vending/nutrimax.dm | 8 +- code/modules/vending/plasmaresearch.dm | 4 +- code/modules/vending/robotics.dm | 6 +- code/modules/vending/security.dm | 14 +- code/modules/vending/snack.dm | 14 +- code/modules/vending/sustenance.dm | 6 +- code/modules/vending/youtool.dm | 24 +- interface/stylesheet.dm | 6 +- .../code/datums/mood_events/chem_events.dm | 32 +- .../game/objects/items/storage/firstaid.dm | 4 +- .../closets/secure/citadel_lockers.dm | 4 +- .../organs/genitals_sprite_accessories.dm | 16 +- .../code/modules/client/loadout/__donator.dm | 32 +- .../mob/living/simple_animal/banana_spider.dm | 4 +- .../boxes_magazines/external/pistol.dm | 40 +- .../projectiles/projectiles/reusable.dm | 4 +- .../modules/reagents/reagents/cit_reagents.dm | 4 +- .../research/designs/autoylathe_designs.dm | 114 +-- .../code/modules/vehicles/secway.dm | 4 +- 105 files changed, 1411 insertions(+), 1409 deletions(-) diff --git a/code/__DEFINES/MC.dm b/code/__DEFINES/MC.dm index 97ce6ef6fd..fe48edd266 100644 --- a/code/__DEFINES/MC.dm +++ b/code/__DEFINES/MC.dm @@ -2,12 +2,12 @@ #define MC_SPLIT_TICK_INIT(phase_count) var/original_tick_limit = Master.current_ticklimit; var/split_tick_phases = ##phase_count #define MC_SPLIT_TICK \ - if(split_tick_phases > 1){\ - Master.current_ticklimit = ((original_tick_limit - TICK_USAGE) / split_tick_phases) + TICK_USAGE;\ - --split_tick_phases;\ - } else {\ - Master.current_ticklimit = original_tick_limit;\ - } + if(split_tick_phases > 1){\ + Master.current_ticklimit = ((original_tick_limit - TICK_USAGE) / split_tick_phases) + TICK_USAGE;\ + --split_tick_phases;\ + } else {\ + Master.current_ticklimit = original_tick_limit;\ + } // Used to smooth out costs to try and avoid oscillation. #define MC_AVERAGE_FAST(average, current) (0.7 * (average) + 0.3 * (current)) @@ -65,14 +65,14 @@ #define SUBSYSTEM_DEF(X) GLOBAL_REAL(SS##X, /datum/controller/subsystem/##X);\ /datum/controller/subsystem/##X/New(){\ - NEW_SS_GLOBAL(SS##X);\ - PreInit();\ + NEW_SS_GLOBAL(SS##X);\ + PreInit();\ }\ /datum/controller/subsystem/##X #define PROCESSING_SUBSYSTEM_DEF(X) GLOBAL_REAL(SS##X, /datum/controller/subsystem/processing/##X);\ /datum/controller/subsystem/processing/##X/New(){\ - NEW_SS_GLOBAL(SS##X);\ - PreInit();\ + NEW_SS_GLOBAL(SS##X);\ + PreInit();\ }\ /datum/controller/subsystem/processing/##X diff --git a/code/__DEFINES/_globals.dm b/code/__DEFINES/_globals.dm index e5f5929a95..874223a612 100644 --- a/code/__DEFINES/_globals.dm +++ b/code/__DEFINES/_globals.dm @@ -3,8 +3,8 @@ //Creates a global initializer with a given InitValue expression, do not use #define GLOBAL_MANAGED(X, InitValue)\ /datum/controller/global_vars/proc/InitGlobal##X(){\ - ##X = ##InitValue;\ - gvars_datum_init_order += #X;\ + ##X = ##InitValue;\ + gvars_datum_init_order += #X;\ } //Creates an empty global initializer, do not use #define GLOBAL_UNMANAGED(X) /datum/controller/global_vars/proc/InitGlobal##X() { return; } @@ -13,8 +13,8 @@ #ifndef TESTING #define GLOBAL_PROTECT(X)\ /datum/controller/global_vars/InitGlobal##X(){\ - ..();\ - gvars_datum_protected_varlist[#X] = TRUE;\ + ..();\ + gvars_datum_protected_varlist[#X] = TRUE;\ } #else #define GLOBAL_PROTECT(X) diff --git a/code/__DEFINES/_protect.dm b/code/__DEFINES/_protect.dm index 2bfb984153..fd27d2fbe9 100644 --- a/code/__DEFINES/_protect.dm +++ b/code/__DEFINES/_protect.dm @@ -1,10 +1,10 @@ #define GENERAL_PROTECT_DATUM(Path)\ ##Path/can_vv_get(var_name){\ - return FALSE;\ + return FALSE;\ }\ ##Path/vv_edit_var(var_name, var_value){\ - return FALSE;\ + return FALSE;\ }\ ##Path/CanProcCall(procname){\ - return FALSE;\ + return FALSE;\ } \ No newline at end of file diff --git a/code/__DEFINES/cargo.dm b/code/__DEFINES/cargo.dm index 242889e3f8..0d07ef353a 100644 --- a/code/__DEFINES/cargo.dm +++ b/code/__DEFINES/cargo.dm @@ -17,17 +17,17 @@ #define POD_DESC 3 #define POD_STYLES list(\ - list("supplypod", "supply pod", "A Nanotrasen supply drop pod."),\ - list("bluespacepod", "bluespace supply pod" , "A Nanotrasen Bluespace supply pod. Teleports back to CentCom after delivery."),\ - list("centcompod", "\improper Centcom supply pod", "A Nanotrasen supply pod, this one has been marked with Central Command's designations. Teleports back to Centcom after delivery."),\ - list("syndiepod", "blood-red supply pod", "A dark, intimidating supply pod, covered in the blood-red markings of the Syndicate. It's probably best to stand back from this."),\ - list("squadpod", "\improper MK. II supply pod", "A Nanotrasen supply pod. This one has been marked the markings of some sort of elite strike team."),\ - list("cultpod", "bloody supply pod", "A Nanotrasen supply pod covered in scratch-marks, blood, and strange runes."),\ - list("missilepod", "cruise missile", "A big ass missile that didn't seem to fully detonate. It was likely launched from some far-off deep space missile silo. There appears to be an auxillery payload hatch on the side, though manually opening it is likely impossible."),\ - list("smissilepod", "\improper Syndicate cruise missile", "A big ass, blood-red missile that didn't seem to fully detonate. It was likely launched from some deep space Syndicate missile silo. There appears to be an auxillery payload hatch on the side, though manually opening it is likely impossible."),\ - list("boxpod", "\improper Aussec supply crate", "An incredibly sturdy supply crate, designed to withstand orbital re-entry. Has 'Aussec Armory - 2532' engraved on the side."),\ - list("honkpod", "\improper HONK pod", "A brightly-colored supply pod. It likely originated from the Clown Federation."),\ - list("fruitpod", "\improper Orange", "An angry orange."),\ - list("", "\improper S.T.E.A.L.T.H. pod MKVII", "A supply pod that, under normal circumstances, is completely invisible to conventional methods of detection. How are you even seeing this?"),\ - list("gondolapod", "gondola", "The silent walker. This one seems to be part of a delivery agency.")\ + list("supplypod", "supply pod", "A Nanotrasen supply drop pod."),\ + list("bluespacepod", "bluespace supply pod" , "A Nanotrasen Bluespace supply pod. Teleports back to CentCom after delivery."),\ + list("centcompod", "\improper Centcom supply pod", "A Nanotrasen supply pod, this one has been marked with Central Command's designations. Teleports back to Centcom after delivery."),\ + list("syndiepod", "blood-red supply pod", "A dark, intimidating supply pod, covered in the blood-red markings of the Syndicate. It's probably best to stand back from this."),\ + list("squadpod", "\improper MK. II supply pod", "A Nanotrasen supply pod. This one has been marked the markings of some sort of elite strike team."),\ + list("cultpod", "bloody supply pod", "A Nanotrasen supply pod covered in scratch-marks, blood, and strange runes."),\ + list("missilepod", "cruise missile", "A big ass missile that didn't seem to fully detonate. It was likely launched from some far-off deep space missile silo. There appears to be an auxillery payload hatch on the side, though manually opening it is likely impossible."),\ + list("smissilepod", "\improper Syndicate cruise missile", "A big ass, blood-red missile that didn't seem to fully detonate. It was likely launched from some deep space Syndicate missile silo. There appears to be an auxillery payload hatch on the side, though manually opening it is likely impossible."),\ + list("boxpod", "\improper Aussec supply crate", "An incredibly sturdy supply crate, designed to withstand orbital re-entry. Has 'Aussec Armory - 2532' engraved on the side."),\ + list("honkpod", "\improper HONK pod", "A brightly-colored supply pod. It likely originated from the Clown Federation."),\ + list("fruitpod", "\improper Orange", "An angry orange."),\ + list("", "\improper S.T.E.A.L.T.H. pod MKVII", "A supply pod that, under normal circumstances, is completely invisible to conventional methods of detection. How are you even seeing this?"),\ + list("gondolapod", "gondola", "The silent walker. This one seems to be part of a delivery agency.")\ ) \ No newline at end of file diff --git a/code/__DEFINES/maps.dm b/code/__DEFINES/maps.dm index 179f501fd1..22c18b2e51 100644 --- a/code/__DEFINES/maps.dm +++ b/code/__DEFINES/maps.dm @@ -52,12 +52,12 @@ require only minor tweaks. // enum - how space transitions should affect this level #define ZTRAIT_LINKAGE "Linkage" - // UNAFFECTED if absent - no space transitions - #define UNAFFECTED null - // SELFLOOPING - space transitions always self-loop - #define SELFLOOPING "Self" - // CROSSLINKED - mixed in with the cross-linked space pool - #define CROSSLINKED "Cross" + // UNAFFECTED if absent - no space transitions + #define UNAFFECTED null + // SELFLOOPING - space transitions always self-loop + #define SELFLOOPING "Self" + // CROSSLINKED - mixed in with the cross-linked space pool + #define CROSSLINKED "Cross" // default trait definitions, used by SSmapping #define ZTRAITS_CENTCOM list(ZTRAIT_CENTCOM = TRUE) @@ -72,7 +72,7 @@ require only minor tweaks. // must correspond to _basemap.dm for things to work correctly #define DEFAULT_MAP_TRAITS list(\ - DECLARE_LEVEL("CentCom", ZTRAITS_CENTCOM),\ + DECLARE_LEVEL("CentCom", ZTRAITS_CENTCOM),\ ) // Camera lock flags diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index d4086bc4d9..86ef67915a 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -40,11 +40,11 @@ //type and all subtypes should always call Initialize in New() #define INITIALIZE_IMMEDIATE(X) ##X/New(loc, ...){\ - ..();\ - if(!(flags_1 & INITIALIZED_1)) {\ - args[1] = TRUE;\ - SSatoms.InitAtom(src, args);\ - }\ + ..();\ + if(!(flags_1 & INITIALIZED_1)) {\ + args[1] = TRUE;\ + SSatoms.InitAtom(src, args);\ + }\ } // Subsystem init_order, from highest priority to lowest priority diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 19d0755085..d6d2091a54 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -1,9 +1,9 @@ //supposedly the fastest way to do this according to https://gist.github.com/Giacom/be635398926bb463b42a #define RANGE_TURFS(RADIUS, CENTER) \ - block( \ - locate(max(CENTER.x-(RADIUS),1), max(CENTER.y-(RADIUS),1), CENTER.z), \ - locate(min(CENTER.x+(RADIUS),world.maxx), min(CENTER.y+(RADIUS),world.maxy), CENTER.z) \ - ) + block( \ + locate(max(CENTER.x-(RADIUS),1), max(CENTER.y-(RADIUS),1), CENTER.z), \ + locate(min(CENTER.x+(RADIUS),world.maxx), min(CENTER.y+(RADIUS),world.maxy), CENTER.z) \ + ) #define Z_TURFS(ZLEVEL) block(locate(1,1,ZLEVEL), locate(world.maxx, world.maxy, ZLEVEL)) #define CULT_POLL_WAIT 2400 diff --git a/code/__HELPERS/unused.dm b/code/__HELPERS/unused.dm index fce25720b7..6d41856fd1 100644 --- a/code/__HELPERS/unused.dm +++ b/code/__HELPERS/unused.dm @@ -11,7 +11,7 @@ var/dest_y /datum/projectile_data/New(var/src_x, var/src_y, var/time, var/distance, \ - var/power_x, var/power_y, var/dest_x, var/dest_y) + var/power_x, var/power_y, var/dest_x, var/dest_y) src.src_x = src_x src.src_y = src_y src.time = time diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index 32f0fe2d8e..d2846a68d3 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -193,7 +193,7 @@ GLOBAL_LIST_INIT(bitfields, list( "clear_conversion" = list( "REACTION_CLEAR_IMPURE" = REACTION_CLEAR_IMPURE, "REACTION_CLEAR_INVERSE" = REACTION_CLEAR_INVERSE - ), + ), "organ_flags" = list( "ORGAN_SYNTHETIC" = ORGAN_SYNTHETIC, "ORGAN_FROZEN" = ORGAN_FROZEN, diff --git a/code/_js/menus.dm b/code/_js/menus.dm index 9b2fc40e68..da56850b07 100644 --- a/code/_js/menus.dm +++ b/code/_js/menus.dm @@ -1,37 +1,37 @@ #define js_dropdowns {" function dropdowns() { - var divs = document.getElementsByTagName('div'); - var headers = new Array(); - var links = new Array(); - for(var i=0;i=0) { - elem.className = elem.className.replace('visible','hidden'); - this.className = this.className.replace('open','closed'); - this.innerHTML = this.innerHTML.replace('-','+'); - } - else { - elem.className = elem.className.replace('hidden','visible'); - this.className = this.className.replace('closed','open'); - this.innerHTML = this.innerHTML.replace('+','-'); - } - return false; - } - })(links\[i\]); - } - } + var divs = document.getElementsByTagName('div'); + var headers = new Array(); + var links = new Array(); + for(var i=0;i=0) { + elem.className = elem.className.replace('visible','hidden'); + this.className = this.className.replace('open','closed'); + this.innerHTML = this.innerHTML.replace('-','+'); + } + else { + elem.className = elem.className.replace('hidden','visible'); + this.className = this.className.replace('closed','open'); + this.innerHTML = this.innerHTML.replace('+','-'); + } + return false; + } + })(links\[i\]); + } + } } "} \ No newline at end of file diff --git a/code/controllers/subsystem/traumas.dm b/code/controllers/subsystem/traumas.dm index ee1f5b8c3d..c7c8224cf7 100644 --- a/code/controllers/subsystem/traumas.dm +++ b/code/controllers/subsystem/traumas.dm @@ -40,7 +40,7 @@ SUBSYSTEM_DEF(traumas) "cats" = strings(PHOBIA_FILE, "cats"), "syndicate"= strings(PHOBIA_FILE, "syndicate"), "eye" = strings(PHOBIA_FILE, "eye") - ) + ) phobia_mobs = list("spiders" = typecacheof(list(/mob/living/simple_animal/hostile/poison/giant_spider)), "security" = typecacheof(list(/mob/living/simple_animal/bot/secbot, /mob/living/simple_animal/bot/ed209)), diff --git a/code/controllers/subsystem/weather.dm b/code/controllers/subsystem/weather.dm index 2391b4c839..5e44f2e4c3 100644 --- a/code/controllers/subsystem/weather.dm +++ b/code/controllers/subsystem/weather.dm @@ -74,10 +74,10 @@ SUBSYSTEM_DEF(weather) next_hit_by_zlevel["[z]"] = null /datum/controller/subsystem/weather/proc/get_weather(z, area/active_area) - var/datum/weather/A - for(var/V in processing) - var/datum/weather/W = V - if((z in W.impacted_z_levels) && W.area_type == active_area.type) - A = W - break - return A + var/datum/weather/A + for(var/V in processing) + var/datum/weather/W = V + if((z in W.impacted_z_levels) && W.area_type == active_area.type) + A = W + break + return A diff --git a/code/datums/armor.dm b/code/datums/armor.dm index cbf4b76c60..85915395f8 100644 --- a/code/datums/armor.dm +++ b/code/datums/armor.dm @@ -1,70 +1,70 @@ #define ARMORID "armor-[melee]-[bullet]-[laser]-[energy]-[bomb]-[bio]-[rad]-[fire]-[acid]-[magic]" /proc/getArmor(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0, magic = 0) - . = locate(ARMORID) - if (!.) - . = new /datum/armor(melee, bullet, laser, energy, bomb, bio, rad, fire, acid, magic) + . = locate(ARMORID) + if (!.) + . = new /datum/armor(melee, bullet, laser, energy, bomb, bio, rad, fire, acid, magic) /datum/armor - datum_flags = DF_USE_TAG - var/melee - var/bullet - var/laser - var/energy - var/bomb - var/bio - var/rad - var/fire - var/acid - var/magic + datum_flags = DF_USE_TAG + var/melee + var/bullet + var/laser + var/energy + var/bomb + var/bio + var/rad + var/fire + var/acid + var/magic /datum/armor/New(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0, magic = 0) - src.melee = melee - src.bullet = bullet - src.laser = laser - src.energy = energy - src.bomb = bomb - src.bio = bio - src.rad = rad - src.fire = fire - src.acid = acid - src.magic = magic - tag = ARMORID + src.melee = melee + src.bullet = bullet + src.laser = laser + src.energy = energy + src.bomb = bomb + src.bio = bio + src.rad = rad + src.fire = fire + src.acid = acid + src.magic = magic + tag = ARMORID /datum/armor/proc/modifyRating(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0, magic = 0) - return getArmor(src.melee+melee, src.bullet+bullet, src.laser+laser, src.energy+energy, src.bomb+bomb, src.bio+bio, src.rad+rad, src.fire+fire, src.acid+acid, src.magic+magic) + return getArmor(src.melee+melee, src.bullet+bullet, src.laser+laser, src.energy+energy, src.bomb+bomb, src.bio+bio, src.rad+rad, src.fire+fire, src.acid+acid, src.magic+magic) /datum/armor/proc/modifyAllRatings(modifier = 0) - return getArmor(melee+modifier, bullet+modifier, laser+modifier, energy+modifier, bomb+modifier, bio+modifier, rad+modifier, fire+modifier, acid+modifier, magic+modifier) + return getArmor(melee+modifier, bullet+modifier, laser+modifier, energy+modifier, bomb+modifier, bio+modifier, rad+modifier, fire+modifier, acid+modifier, magic+modifier) /datum/armor/proc/setRating(melee, bullet, laser, energy, bomb, bio, rad, fire, acid, magic) - return getArmor((isnull(melee) ? src.melee : melee),\ - (isnull(bullet) ? src.bullet : bullet),\ - (isnull(laser) ? src.laser : laser),\ - (isnull(energy) ? src.energy : energy),\ - (isnull(bomb) ? src.bomb : bomb),\ - (isnull(bio) ? src.bio : bio),\ - (isnull(rad) ? src.rad : rad),\ - (isnull(fire) ? src.fire : fire),\ - (isnull(acid) ? src.acid : acid),\ - (isnull(magic) ? src.magic : magic)) + return getArmor((isnull(melee) ? src.melee : melee),\ + (isnull(bullet) ? src.bullet : bullet),\ + (isnull(laser) ? src.laser : laser),\ + (isnull(energy) ? src.energy : energy),\ + (isnull(bomb) ? src.bomb : bomb),\ + (isnull(bio) ? src.bio : bio),\ + (isnull(rad) ? src.rad : rad),\ + (isnull(fire) ? src.fire : fire),\ + (isnull(acid) ? src.acid : acid),\ + (isnull(magic) ? src.magic : magic)) /datum/armor/proc/getRating(rating) - return vars[rating] + return vars[rating] /datum/armor/proc/getList() - return list("melee" = melee, "bullet" = bullet, "laser" = laser, "energy" = energy, "bomb" = bomb, "bio" = bio, "rad" = rad, "fire" = fire, "acid" = acid, "magic" = magic) + return list("melee" = melee, "bullet" = bullet, "laser" = laser, "energy" = energy, "bomb" = bomb, "bio" = bio, "rad" = rad, "fire" = fire, "acid" = acid, "magic" = magic) /datum/armor/proc/attachArmor(datum/armor/AA) - return getArmor(melee+AA.melee, bullet+AA.bullet, laser+AA.laser, energy+AA.energy, bomb+AA.bomb, bio+AA.bio, rad+AA.rad, fire+AA.fire, acid+AA.acid, magic+AA.magic) + return getArmor(melee+AA.melee, bullet+AA.bullet, laser+AA.laser, energy+AA.energy, bomb+AA.bomb, bio+AA.bio, rad+AA.rad, fire+AA.fire, acid+AA.acid, magic+AA.magic) /datum/armor/proc/detachArmor(datum/armor/AA) - return getArmor(melee-AA.melee, bullet-AA.bullet, laser-AA.laser, energy-AA.energy, bomb-AA.bomb, bio-AA.bio, rad-AA.rad, fire-AA.fire, acid-AA.acid, magic-AA.magic) + return getArmor(melee-AA.melee, bullet-AA.bullet, laser-AA.laser, energy-AA.energy, bomb-AA.bomb, bio-AA.bio, rad-AA.rad, fire-AA.fire, acid-AA.acid, magic-AA.magic) /datum/armor/vv_edit_var(var_name, var_value) - if (var_name == NAMEOF(src, tag)) - return FALSE - . = ..() - tag = ARMORID // update tag in case armor values were edited + if (var_name == NAMEOF(src, tag)) + return FALSE + . = ..() + tag = ARMORID // update tag in case armor values were edited #undef ARMORID diff --git a/code/datums/components/waddling.dm b/code/datums/components/waddling.dm index a1f538e4dd..f09a92c91c 100644 --- a/code/datums/components/waddling.dm +++ b/code/datums/components/waddling.dm @@ -1,15 +1,15 @@ /datum/component/waddling - dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS + dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS /datum/component/waddling/Initialize() - if(!isliving(parent)) - return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), .proc/Waddle) + if(!isliving(parent)) + return COMPONENT_INCOMPATIBLE + RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), .proc/Waddle) /datum/component/waddling/proc/Waddle() - var/mob/living/L = parent - if(L.incapacitated() || L.lying) - return - animate(L, pixel_z = 4, time = 0) - animate(pixel_z = 0, transform = turn(matrix(), pick(-12, 0, 12)), time=2) - animate(pixel_z = 0, transform = matrix(), time = 0) + var/mob/living/L = parent + if(L.incapacitated() || L.lying) + return + animate(L, pixel_z = 4, time = 0) + animate(pixel_z = 0, transform = turn(matrix(), pick(-12, 0, 12)), time=2) + animate(pixel_z = 0, transform = matrix(), time = 0) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index cfbd8be32c..e44134f01f 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -875,14 +875,14 @@ return // text2num conveniently returns a null on invalid values O.armor = O.armor.setRating(melee = text2num(result["values"]["melee"]),\ - bullet = text2num(result["values"]["bullet"]),\ - laser = text2num(result["values"]["laser"]),\ - energy = text2num(result["values"]["energy"]),\ - bomb = text2num(result["values"]["bomb"]),\ - bio = text2num(result["values"]["bio"]),\ - rad = text2num(result["values"]["rad"]),\ - fire = text2num(result["values"]["fire"]),\ - acid = text2num(result["values"]["acid"])) + bullet = text2num(result["values"]["bullet"]),\ + laser = text2num(result["values"]["laser"]),\ + energy = text2num(result["values"]["energy"]),\ + bomb = text2num(result["values"]["bomb"]),\ + bio = text2num(result["values"]["bio"]),\ + rad = text2num(result["values"]["rad"]),\ + fire = text2num(result["values"]["fire"]),\ + acid = text2num(result["values"]["acid"])) log_admin("[key_name(usr)] modified the armor on [O] ([O.type]) to melee: [O.armor.melee], bullet: [O.armor.bullet], laser: [O.armor.laser], energy: [O.armor.energy], bomb: [O.armor.bomb], bio: [O.armor.bio], rad: [O.armor.rad], fire: [O.armor.fire], acid: [O.armor.acid]") message_admins("[key_name_admin(usr)] modified the armor on [O] ([O.type]) to melee: [O.armor.melee], bullet: [O.armor.bullet], laser: [O.armor.laser], energy: [O.armor.energy], bomb: [O.armor.bomb], bio: [O.armor.bio], rad: [O.armor.rad], fire: [O.armor.fire], acid: [O.armor.acid]") else diff --git a/code/datums/embedding_behavior.dm b/code/datums/embedding_behavior.dm index f631b9b1c4..a261ea48c6 100644 --- a/code/datums/embedding_behavior.dm +++ b/code/datums/embedding_behavior.dm @@ -1,53 +1,53 @@ #define EMBEDID "embed-[embed_chance]-[embedded_fall_chance]-[embedded_pain_chance]-[embedded_pain_multiplier]-[embedded_fall_pain_multiplier]-[embedded_impact_pain_multiplier]-[embedded_unsafe_removal_pain_multiplier]-[embedded_unsafe_removal_time]" /proc/getEmbeddingBehavior(embed_chance = EMBED_CHANCE, - embedded_fall_chance = EMBEDDED_ITEM_FALLOUT, - embedded_pain_chance = EMBEDDED_PAIN_CHANCE, - embedded_pain_multiplier = EMBEDDED_PAIN_MULTIPLIER, - embedded_fall_pain_multiplier = EMBEDDED_FALL_PAIN_MULTIPLIER, - embedded_impact_pain_multiplier = EMBEDDED_IMPACT_PAIN_MULTIPLIER, - embedded_unsafe_removal_pain_multiplier = EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER, - embedded_unsafe_removal_time = EMBEDDED_UNSAFE_REMOVAL_TIME) - . = locate(EMBEDID) - if (!.) - . = new /datum/embedding_behavior(embed_chance, embedded_fall_chance, embedded_pain_chance, embedded_pain_multiplier, embedded_fall_pain_multiplier, embedded_impact_pain_multiplier, embedded_unsafe_removal_pain_multiplier, embedded_unsafe_removal_time) + embedded_fall_chance = EMBEDDED_ITEM_FALLOUT, + embedded_pain_chance = EMBEDDED_PAIN_CHANCE, + embedded_pain_multiplier = EMBEDDED_PAIN_MULTIPLIER, + embedded_fall_pain_multiplier = EMBEDDED_FALL_PAIN_MULTIPLIER, + embedded_impact_pain_multiplier = EMBEDDED_IMPACT_PAIN_MULTIPLIER, + embedded_unsafe_removal_pain_multiplier = EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER, + embedded_unsafe_removal_time = EMBEDDED_UNSAFE_REMOVAL_TIME) + . = locate(EMBEDID) + if (!.) + . = new /datum/embedding_behavior(embed_chance, embedded_fall_chance, embedded_pain_chance, embedded_pain_multiplier, embedded_fall_pain_multiplier, embedded_impact_pain_multiplier, embedded_unsafe_removal_pain_multiplier, embedded_unsafe_removal_time) /datum/embedding_behavior - var/embed_chance - var/embedded_fall_chance - var/embedded_pain_chance - var/embedded_pain_multiplier //The coefficient of multiplication for the damage this item does while embedded (this*w_class) - var/embedded_fall_pain_multiplier //The coefficient of multiplication for the damage this item does when falling out of a limb (this*w_class) - var/embedded_impact_pain_multiplier //The coefficient of multiplication for the damage this item does when first embedded (this*w_class) - var/embedded_unsafe_removal_pain_multiplier //The coefficient of multiplication for the damage removing this without surgery causes (this*w_class) - var/embedded_unsafe_removal_time //A time in ticks, multiplied by the w_class. + var/embed_chance + var/embedded_fall_chance + var/embedded_pain_chance + var/embedded_pain_multiplier //The coefficient of multiplication for the damage this item does while embedded (this*w_class) + var/embedded_fall_pain_multiplier //The coefficient of multiplication for the damage this item does when falling out of a limb (this*w_class) + var/embedded_impact_pain_multiplier //The coefficient of multiplication for the damage this item does when first embedded (this*w_class) + var/embedded_unsafe_removal_pain_multiplier //The coefficient of multiplication for the damage removing this without surgery causes (this*w_class) + var/embedded_unsafe_removal_time //A time in ticks, multiplied by the w_class. /datum/embedding_behavior/New(embed_chance = EMBED_CHANCE, - embedded_fall_chance = EMBEDDED_ITEM_FALLOUT, - embedded_pain_chance = EMBEDDED_PAIN_CHANCE, - embedded_pain_multiplier = EMBEDDED_PAIN_MULTIPLIER, - embedded_fall_pain_multiplier = EMBEDDED_FALL_PAIN_MULTIPLIER, - embedded_impact_pain_multiplier = EMBEDDED_IMPACT_PAIN_MULTIPLIER, - embedded_unsafe_removal_pain_multiplier = EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER, - embedded_unsafe_removal_time = EMBEDDED_UNSAFE_REMOVAL_TIME) - src.embed_chance = embed_chance - src.embedded_fall_chance = embedded_fall_chance - src.embedded_pain_chance = embedded_pain_chance - src.embedded_pain_multiplier = embedded_pain_multiplier - src.embedded_fall_pain_multiplier = embedded_fall_pain_multiplier - src.embedded_impact_pain_multiplier = embedded_impact_pain_multiplier - src.embedded_unsafe_removal_pain_multiplier = embedded_unsafe_removal_pain_multiplier - src.embedded_unsafe_removal_time = embedded_unsafe_removal_time - tag = EMBEDID + embedded_fall_chance = EMBEDDED_ITEM_FALLOUT, + embedded_pain_chance = EMBEDDED_PAIN_CHANCE, + embedded_pain_multiplier = EMBEDDED_PAIN_MULTIPLIER, + embedded_fall_pain_multiplier = EMBEDDED_FALL_PAIN_MULTIPLIER, + embedded_impact_pain_multiplier = EMBEDDED_IMPACT_PAIN_MULTIPLIER, + embedded_unsafe_removal_pain_multiplier = EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER, + embedded_unsafe_removal_time = EMBEDDED_UNSAFE_REMOVAL_TIME) + src.embed_chance = embed_chance + src.embedded_fall_chance = embedded_fall_chance + src.embedded_pain_chance = embedded_pain_chance + src.embedded_pain_multiplier = embedded_pain_multiplier + src.embedded_fall_pain_multiplier = embedded_fall_pain_multiplier + src.embedded_impact_pain_multiplier = embedded_impact_pain_multiplier + src.embedded_unsafe_removal_pain_multiplier = embedded_unsafe_removal_pain_multiplier + src.embedded_unsafe_removal_time = embedded_unsafe_removal_time + tag = EMBEDID /datum/embedding_behavior/proc/setRating(embed_chance, embedded_fall_chance, embedded_pain_chance, embedded_pain_multiplier, embedded_fall_pain_multiplier, embedded_impact_pain_multiplier, embedded_unsafe_removal_pain_multiplier, embedded_unsafe_removal_time) - return getEmbeddingBehavior((isnull(embed_chance) ? src.embed_chance : embed_chance),\ - (isnull(embedded_fall_chance) ? src.embedded_fall_chance : embedded_fall_chance),\ - (isnull(embedded_pain_chance) ? src.embedded_pain_chance : embedded_pain_chance),\ - (isnull(embedded_pain_multiplier) ? src.embedded_pain_multiplier : embedded_pain_multiplier),\ - (isnull(embedded_fall_pain_multiplier) ? src.embedded_fall_pain_multiplier : embedded_fall_pain_multiplier),\ - (isnull(embedded_impact_pain_multiplier) ? src.embedded_impact_pain_multiplier : embedded_impact_pain_multiplier),\ - (isnull(embedded_unsafe_removal_pain_multiplier) ? src.embedded_unsafe_removal_pain_multiplier : embedded_unsafe_removal_pain_multiplier),\ - (isnull(embedded_unsafe_removal_time) ? src.embedded_unsafe_removal_time : embedded_unsafe_removal_time)) + return getEmbeddingBehavior((isnull(embed_chance) ? src.embed_chance : embed_chance),\ + (isnull(embedded_fall_chance) ? src.embedded_fall_chance : embedded_fall_chance),\ + (isnull(embedded_pain_chance) ? src.embedded_pain_chance : embedded_pain_chance),\ + (isnull(embedded_pain_multiplier) ? src.embedded_pain_multiplier : embedded_pain_multiplier),\ + (isnull(embedded_fall_pain_multiplier) ? src.embedded_fall_pain_multiplier : embedded_fall_pain_multiplier),\ + (isnull(embedded_impact_pain_multiplier) ? src.embedded_impact_pain_multiplier : embedded_impact_pain_multiplier),\ + (isnull(embedded_unsafe_removal_pain_multiplier) ? src.embedded_unsafe_removal_pain_multiplier : embedded_unsafe_removal_pain_multiplier),\ + (isnull(embedded_unsafe_removal_time) ? src.embedded_unsafe_removal_time : embedded_unsafe_removal_time)) #undef EMBEDID diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm index f747c563ad..f4ca3a8ebd 100644 --- a/code/datums/mood_events/generic_negative_events.dm +++ b/code/datums/mood_events/generic_negative_events.dm @@ -5,8 +5,8 @@ mood_change = -1 /datum/mood_event/broken_vow //Used for when mimes break their vow of silence - description = "I have brought shame upon my name, and betrayed my fellow mimes by breaking our sacred vow...\n" - mood_change = -8 + description = "I have brought shame upon my name, and betrayed my fellow mimes by breaking our sacred vow...\n" + mood_change = -8 /datum/mood_event/on_fire description = "I'M ON FIRE!!!\n" @@ -55,14 +55,14 @@ timeout = 2 MINUTES /datum/mood_event/shameful_suicide //suicide_acts that return SHAME, like sord - description = "I can't even end it all!\n" - mood_change = -10 - timeout = 1 MINUTES + description = "I can't even end it all!\n" + mood_change = -10 + timeout = 1 MINUTES /datum/mood_event/dismembered - description = "AHH! I WAS USING THAT LIMB!\n" - mood_change = -8 - timeout = 2400 + description = "AHH! I WAS USING THAT LIMB!\n" + mood_change = -8 + timeout = 2400 /datum/mood_event/noshoes description = "I am a disgrace to comedy everywhere!\n" @@ -92,20 +92,20 @@ mood_change = 2 /datum/mood_event/brain_damage - mood_change = -3 + mood_change = -3 /datum/mood_event/brain_damage/add_effects() - var/damage_message = pick_list_replacements(BRAIN_DAMAGE_FILE, "brain_damage") - description = "Hurr durr... [damage_message]\n" + var/damage_message = pick_list_replacements(BRAIN_DAMAGE_FILE, "brain_damage") + description = "Hurr durr... [damage_message]\n" /datum/mood_event/hulk //Entire duration of having the hulk mutation - description = "HULK SMASH!\n" - mood_change = -4 + description = "HULK SMASH!\n" + mood_change = -4 /datum/mood_event/epilepsy //Only when the mutation causes a seizure - description = "I should have paid attention to the epilepsy warning.\n" - mood_change = -3 - timeout = 3000 + description = "I should have paid attention to the epilepsy warning.\n" + mood_change = -3 + timeout = 3000 /datum/mood_event/nyctophobia description = "It sure is dark around here...\n" diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index 422ec4476c..678802aed9 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -80,12 +80,12 @@ description = "Heh...hehehe...hehe...\n" mood_change = 4 - /datum/mood_event/chemical_laughter +/datum/mood_event/chemical_laughter description = "Laughter really is the best medicine! Or is it?\n" mood_change = 4 timeout = 3 MINUTES - /datum/mood_event/chemical_superlaughter +/datum/mood_event/chemical_superlaughter description = "*WHEEZE*\n" mood_change = 12 timeout = 3 MINUTES diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm index 56b6e57c4d..67a209eacd 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm @@ -29,10 +29,10 @@ // So for example you can get the list of all current dead players with var/list/dead_players = candidates[CURRENT_DEAD_PLAYERS] // Make sure to properly typecheck the mobs in those lists, as the dead_players list could contain ghosts, or dead players still in their bodies. // We're still gonna trim the obvious (mobs without clients, jobbanned players, etc) - living_players = trim_list(mode.current_players[CURRENT_LIVING_PLAYERS]) - living_antags = trim_list(mode.current_players[CURRENT_LIVING_ANTAGS]) - dead_players = trim_list(mode.current_players[CURRENT_DEAD_PLAYERS]) - list_observers = trim_list(mode.current_players[CURRENT_OBSERVERS]) + living_players = trim_list(mode.current_players[CURRENT_LIVING_PLAYERS]) + living_antags = trim_list(mode.current_players[CURRENT_LIVING_ANTAGS]) + dead_players = trim_list(mode.current_players[CURRENT_DEAD_PLAYERS]) + list_observers = trim_list(mode.current_players[CURRENT_OBSERVERS]) /datum/dynamic_ruleset/midround/proc/trim_list(list/L = list()) var/list/trimmed_list = L.Copy() diff --git a/code/game/machinery/aug_manipulator.dm b/code/game/machinery/aug_manipulator.dm index 99200e510e..8419f5803c 100644 --- a/code/game/machinery/aug_manipulator.dm +++ b/code/game/machinery/aug_manipulator.dm @@ -16,8 +16,8 @@ to_chat(user, "Alt-click to eject the limb.") /obj/machinery/aug_manipulator/Initialize() - initial_icon_state = initial(icon_state) - return ..() + initial_icon_state = initial(icon_state) + return ..() /obj/machinery/aug_manipulator/update_icon() cut_overlays() diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm index 9d49574317..394cc4593d 100644 --- a/code/game/machinery/computer/dna_console.dm +++ b/code/game/machinery/computer/dna_console.dm @@ -468,7 +468,7 @@ var/len = length(viable_occupant.dna.uni_identity) num = WRAP(num, 1, len+1) num = randomize_radiation_accuracy(num, radduration + (connected.precision_coeff ** 2), len) //Each manipulator level above 1 makes randomization as accurate as selected time + manipulator lvl^2 - //Value is this high for the same reason as with laser - not worth the hassle of upgrading if the bonus is low + //Value is this high for the same reason as with laser - not worth the hassle of upgrading if the bonus is low var/block = round((num-1)/DNA_BLOCK_SIZE)+1 var/subblock = num - block*DNA_BLOCK_SIZE last_change = "UI #[block]-[subblock]; " diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index 1c6d713437..91306585b8 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -364,7 +364,7 @@ //for(var/mob/living/carbon/NS in rangers) // NS.resting = !NS.resting // NS.update_canmove() - time-- + time-- /obj/machinery/jukebox/disco/proc/dance5(var/mob/living/M) animate(M, transform = matrix(180, MATRIX_ROTATE), time = 1, loop = 0) diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm index db59f3f413..5418dcdb97 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -153,11 +153,11 @@ var/obj/item/storage/briefcase/launchpad/briefcase /obj/machinery/launchpad/briefcase/Initialize(mapload, briefcase) - . = ..() - if(!briefcase) - log_game("[src] has been spawned without a briefcase.") - return INITIALIZE_HINT_QDEL - src.briefcase = briefcase + . = ..() + if(!briefcase) + log_game("[src] has been spawned without a briefcase.") + return INITIALIZE_HINT_QDEL + src.briefcase = briefcase /obj/machinery/launchpad/briefcase/Destroy() QDEL_NULL(briefcase) diff --git a/code/game/mecha/combat/honker.dm b/code/game/mecha/combat/honker.dm index 4c32e9c367..22c359fc85 100644 --- a/code/game/mecha/combat/honker.dm +++ b/code/game/mecha/combat/honker.dm @@ -57,19 +57,19 @@ [js_byjax] [js_dropdowns] function SSticker() { - setInterval(function(){ - window.location='byond://?src=[REF(src)]&update_content=1'; - document.body.style.color = get_rand_color_string(); - document.body.style.background = get_rand_color_string(); - }, 1000); + setInterval(function(){ + window.location='byond://?src=[REF(src)]&update_content=1'; + document.body.style.color = get_rand_color_string(); + document.body.style.background = get_rand_color_string(); + }, 1000); } function get_rand_color_string() { - var color = new Array; - for(var i=0;i<3;i++){ - color.push(Math.floor(Math.random()*255)); - } - return "rgb("+color.toString()+")"; + var color = new Array; + for(var i=0;i<3;i++){ + color.push(Math.floor(Math.random()*255)); + } + return "rgb("+color.toString()+")"; } window.onload = function() { diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 4acf7981bc..b219f1fdec 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -34,12 +34,12 @@ ) /obj/machinery/mecha_part_fabricator/Initialize() - var/datum/component/material_container/materials = AddComponent(/datum/component/material_container, - list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE), 0, - TRUE, /obj/item/stack, CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert)) - materials.precise_insertion = TRUE - stored_research = new - return ..() + var/datum/component/material_container/materials = AddComponent(/datum/component/material_container, + list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE), 0, + TRUE, /obj/item/stack, CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert)) + materials.precise_insertion = TRUE + stored_research = new + return ..() /obj/machinery/mecha_part_fabricator/RefreshParts() var/T = 0 diff --git a/code/game/mecha/mecha_topic.dm b/code/game/mecha/mecha_topic.dm index 79ee7435e4..f9e04990fc 100644 --- a/code/game/mecha/mecha_topic.dm +++ b/code/game/mecha/mecha_topic.dm @@ -21,9 +21,9 @@ [js_byjax] [js_dropdowns] function SSticker() { - setInterval(function(){ - window.location='byond://?src=[REF(src)]&update_content=1'; - }, 1000); + setInterval(function(){ + window.location='byond://?src=[REF(src)]&update_content=1'; + }, 1000); } window.onload = function() { diff --git a/code/game/objects/items/manuals.dm b/code/game/objects/items/manuals.dm index 6ae34e9ca2..d038ea7b4a 100644 --- a/code/game/objects/items/manuals.dm +++ b/code/game/objects/items/manuals.dm @@ -260,7 +260,7 @@ function pageloaded(myframe) { document.getElementById("loading").style.display = "none"; myframe.style.display = "inline"; - } + }

You start skimming through the manual...

@@ -295,7 +295,7 @@ function pageloaded(myframe) { document.getElementById("loading").style.display = "none"; myframe.style.display = "block"; - } + }

You start skimming through the manual...

diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index 48588cf9f3..309af9017c 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -945,12 +945,12 @@ attack_verb = list("pred", "coded", "remembered") /obj/item/toy/plush/catgirl/fermis - name = "medcat plushie" - desc = "An affectionate stuffed toy that resembles a certain medcat, comes complete with battery operated wagging tail!! You get the impression she's cheering you on to to find happiness and be kind to people." - icon_state = "fermis" - item_state = "fermis" - attack_verb = list("cuddled", "petpatted", "wigglepurred") - squeak_override = list('modular_citadel/sound/voice/merowr.ogg' = 1) + name = "medcat plushie" + desc = "An affectionate stuffed toy that resembles a certain medcat, comes complete with battery operated wagging tail!! You get the impression she's cheering you on to to find happiness and be kind to people." + icon_state = "fermis" + item_state = "fermis" + attack_verb = list("cuddled", "petpatted", "wigglepurred") + squeak_override = list('modular_citadel/sound/voice/merowr.ogg' = 1) /obj/item/toy/plush/catgirl/mariaf desc = "An adorable stuffed toy that resembles a very tall cat girl." diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 638dcd3556..110742d272 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -1293,8 +1293,8 @@ var/toysound = 'sound/machines/click.ogg' /obj/item/toy/figure/New() - desc = "A \"Space Life\" brand [src]." - ..() + desc = "A \"Space Life\" brand [src]." + ..() /obj/item/toy/figure/attack_self(mob/user as mob) if(cooldown <= world.time) diff --git a/code/game/objects/structures/signs/signs_maps.dm b/code/game/objects/structures/signs/signs_maps.dm index f3188b90c2..1e3bfd6d36 100644 --- a/code/game/objects/structures/signs/signs_maps.dm +++ b/code/game/objects/structures/signs/signs_maps.dm @@ -50,7 +50,8 @@ name = "bar" desc = "A direction sign, pointing out which way the Bar is." icon_state = "direction_bar" - /obj/structure/sign/directions/cafe + +/obj/structure/sign/directions/cafe name = "cafe" desc = "A direction sign, pointing out which way the Cafe is." icon_state = "direction_cafe" diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 246ccb1d07..7d63f92238 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -949,7 +949,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits Uniform: - [uniform_select] + [uniform_select] diff --git a/code/modules/admin/verbs/spawnobjasmob.dm b/code/modules/admin/verbs/spawnobjasmob.dm index 621e6c3618..1d3cf95222 100644 --- a/code/modules/admin/verbs/spawnobjasmob.dm +++ b/code/modules/admin/verbs/spawnobjasmob.dm @@ -16,10 +16,10 @@ var/obj/chosen_obj = text2path(chosen) var/list/settings = list( - "mainsettings" = list( - "name" = list("desc" = "Name", "type" = "string", "value" = "Bob"), + "mainsettings" = list( + "name" = list("desc" = "Name", "type" = "string", "value" = "Bob"), "maxhealth" = list("desc" = "Max. health", "type" = "number", "value" = 100), - "access" = list("desc" = "Access ID", "type" = "datum", "path" = "/obj/item/card/id", "value" = "Default"), + "access" = list("desc" = "Access ID", "type" = "datum", "path" = "/obj/item/card/id", "value" = "Default"), "objtype" = list("desc" = "Base obj type", "type" = "datum", "path" = "/obj", "value" = "[chosen]"), "googlyeyes" = list("desc" = "Googly eyes", "type" = "boolean", "value" = "No"), "disableai" = list("desc" = "Disable AI", "type" = "boolean", "value" = "Yes"), @@ -27,7 +27,7 @@ "dropitem" = list("desc" = "Drop obj on death", "type" = "boolean", "value" = "Yes"), "mobtype" = list("desc" = "Base mob type", "type" = "datum", "path" = "/mob/living/simple_animal/hostile/mimic/copy", "value" = "/mob/living/simple_animal/hostile/mimic/copy"), "ckey" = list("desc" = "ckey", "type" = "ckey", "value" = "none"), - ) + ) ) var/list/prefreturn = presentpreflikepicker(usr,"Customize mob", "Customize mob", Button1="Ok", width = 450, StealFocus = 1,Timeout = 0, settings=settings) diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index 3d874aac58..76305ff1b7 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -393,23 +393,22 @@ name = "Dissection Guide" icon_state = "alienpaper_words" info = {"Dissection for Dummies
- -
- 1.Acquire fresh specimen.
- 2.Put the specimen on operating table.
- 3.Apply surgical drapes, preparing for experimental dissection.
- 4.Apply scalpel to specimen's torso.
- 5.Clamp bleeders on specimen's torso with a hemostat.
- 6.Retract skin of specimen's torso with a retractor.
- 7.Apply scalpel again to specimen's torso.
- 8.Search through the specimen's torso with your hands to remove any superfluous organs.
- 9.Insert replacement gland (Retrieve one from gland storage).
- 10.Consider dressing the specimen back to not disturb the habitat.
- 11.Put the specimen in the experiment machinery.
- 12.Choose one of the machine options. The target will be analyzed and teleported to the selected drop-off point.
- 13.You will receive one supply credit, and the subject will be counted towards your quota.
-
-Congratulations! You are now trained for invasive xenobiology research!"} +
+ 1.Acquire fresh specimen.
+ 2.Put the specimen on operating table.
+ 3.Apply surgical drapes, preparing for experimental dissection.
+ 4.Apply scalpel to specimen's torso.
+ 5.Clamp bleeders on specimen's torso with a hemostat.
+ 6.Retract skin of specimen's torso with a retractor.
+ 7.Apply scalpel again to specimen's torso.
+ 8.Search through the specimen's torso with your hands to remove any superfluous organs.
+ 9.Insert replacement gland (Retrieve one from gland storage).
+ 10.Consider dressing the specimen back to not disturb the habitat.
+ 11.Put the specimen in the experiment machinery.
+ 12.Choose one of the machine options. The target will be analyzed and teleported to the selected drop-off point.
+ 13.You will receive one supply credit, and the subject will be counted towards your quota.
+
+ Congratulations! You are now trained for invasive xenobiology research!"} /obj/item/paper/guides/antag/abductor/update_icon() return diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm index ec712f2eec..7066109979 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm @@ -64,7 +64,7 @@ /obj/item/clockwork/slab/cyborg/janitor //six scriptures, plus a fabricator quickbound = list(/datum/clockwork_scripture/abscond, /datum/clockwork_scripture/create_object/replicant, /datum/clockwork_scripture/create_object/sigil_of_transgression, \ - /datum/clockwork_scripture/create_object/stargazer, /datum/clockwork_scripture/create_object/ocular_warden, /datum/clockwork_scripture/create_object/mania_motor) + /datum/clockwork_scripture/create_object/stargazer, /datum/clockwork_scripture/create_object/ocular_warden, /datum/clockwork_scripture/create_object/mania_motor) /obj/item/clockwork/slab/cyborg/service //six scriptures, plus xray vision quickbound = list(/datum/clockwork_scripture/abscond, /datum/clockwork_scripture/create_object/replicant,/datum/clockwork_scripture/create_object/stargazer, \ diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index 2e233d26e4..87158be557 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -249,7 +249,7 @@ structure_check() searches for nearby cultist structures required for the invoca convertee.adjustFireLoss(-(burndamage * 0.75)) convertee.visible_message("[convertee] writhes in pain \ [brutedamage || burndamage ? "even as [convertee.p_their()] wounds heal and close" : "as the markings below [convertee.p_them()] glow a bloody red"]!", \ - "AAAAAAAAAAAAAA-") + "AAAAAAAAAAAAAA-") SSticker.mode.add_cultist(convertee.mind, 1) new /obj/item/melee/cultblade/dagger(get_turf(src)) convertee.mind.special_role = ROLE_CULTIST diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm index 779dfb43a7..78e4d38b3c 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm @@ -64,7 +64,7 @@ GLOBAL_VAR_INIT(war_declared, FALSE) for(var/obj/machinery/computer/camera_advanced/shuttle_docker/D in GLOB.jam_on_wardec) D.jammed = TRUE - GLOB.war_declared = TRUE + GLOB.war_declared = TRUE var/list/nukeops = get_antag_minds(/datum/antagonist/nukeop) var/actual_players = GLOB.joined_player_list.len - nukeops.len var/tc_malus = 0 diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index 576fc6b9bf..e7d9fe0ba3 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -340,9 +340,9 @@ to_chat(victim, "You feel a dark presence from [A.name]") /obj/item/voodoo/suicide_act(mob/living/carbon/user) - user.visible_message("[user] links the voodoo doll to [user.p_them()]self and sits on it, infinitely crushing [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!") - user.gib() - return(BRUTELOSS) + user.visible_message("[user] links the voodoo doll to [user.p_them()]self and sits on it, infinitely crushing [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!") + user.gib() + return(BRUTELOSS) /obj/item/voodoo/fire_act(exposed_temperature, exposed_volume) if(target) diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm index bb7ffdc85d..4ebefd4dab 100644 --- a/code/modules/antagonists/wizard/equipment/spellbook.dm +++ b/code/modules/antagonists/wizard/equipment/spellbook.dm @@ -626,16 +626,16 @@ dat += {" - + body { font-size: 80%; font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif; } + ul#tabs { list-style-type: none; margin: 30px 0 0 0; padding: 0 0 0.3em 0; } + ul#tabs li { display: inline; } + ul#tabs li a { color: #42454a; background-color: #dedbde; border: 1px solid #c9c3ba; border-bottom: none; padding: 0.3em; text-decoration: none; } + ul#tabs li a:hover { background-color: #f1f0ee; } + ul#tabs li a.selected { color: #000; background-color: #f1f0ee; font-weight: bold; padding: 0.7em 0.3em 0.38em 0.3em; } + div.tabContent { border: 1px solid #c9c3ba; padding: 0.5em; background-color: #f1f0ee; } + div.tabContent.hide { display: none; } + + "} dat += {"[content]"} return dat diff --git a/code/modules/atmospherics/environmental/LINDA_system.dm b/code/modules/atmospherics/environmental/LINDA_system.dm index 084c35684c..a051b45fb6 100644 --- a/code/modules/atmospherics/environmental/LINDA_system.dm +++ b/code/modules/atmospherics/environmental/LINDA_system.dm @@ -102,9 +102,9 @@ SSair.add_to_active(src,command) /atom/movable/proc/move_update_air(turf/T) - if(isturf(T)) - T.air_update_turf(1) - air_update_turf(1) + if(isturf(T)) + T.air_update_turf(1) + air_update_turf(1) /atom/proc/atmos_spawn_air(text) //because a lot of people loves to copy paste awful code lets just make an easy proc to spawn your plasma fires var/turf/open/T = get_turf(src) diff --git a/code/modules/cargo/packs/livestock.dm b/code/modules/cargo/packs/livestock.dm index 6479869ee0..0f1ac09e91 100644 --- a/code/modules/cargo/packs/livestock.dm +++ b/code/modules/cargo/packs/livestock.dm @@ -29,7 +29,7 @@ cost = 5000 //Cats are worth as much as corgis. contains = list(/mob/living/simple_animal/pet/cat, /obj/item/clothing/neck/petcollar, - /obj/item/toy/cattoy) + /obj/item/toy/cattoy) crate_name = "cat crate" /datum/supply_pack/critter/cat/generate() diff --git a/code/modules/cargo/packs/security.dm b/code/modules/cargo/packs/security.dm index 3c68fe7f6d..0bda316ca3 100644 --- a/code/modules/cargo/packs/security.dm +++ b/code/modules/cargo/packs/security.dm @@ -34,11 +34,11 @@ desc = "Stay hot on the criminal's heels with Nanotrasen's Detective Essentials(tm). Contains a forensics scanner, six evidence bags, camera, tape recorder, white crayon, and of course, a fedora. Requires Security access to open." cost = 1800 contains = list(/obj/item/detective_scanner, - /obj/item/storage/box/evidence, - /obj/item/camera, - /obj/item/taperecorder, - /obj/item/toy/crayon/white, - /obj/item/clothing/head/fedora/det_hat) + /obj/item/storage/box/evidence, + /obj/item/camera, + /obj/item/taperecorder, + /obj/item/toy/crayon/white, + /obj/item/clothing/head/fedora/det_hat) crate_name = "forensics crate" /datum/supply_pack/security/helmets diff --git a/code/modules/crafting/craft.dm b/code/modules/crafting/craft.dm index 0fb46c3e46..795515835e 100644 --- a/code/modules/crafting/craft.dm +++ b/code/modules/crafting/craft.dm @@ -32,7 +32,7 @@ CAT_SANDWICH, CAT_SOUP, CAT_SPAGHETTI), - CAT_CLOTHING) //Clothing subcategories + CAT_NONE) //Clothing subcategories var/datum/action/innate/crafting/button var/display_craftable_only = FALSE diff --git a/code/modules/crafting/recipes/recipes_weapon_and_ammo.dm b/code/modules/crafting/recipes/recipes_weapon_and_ammo.dm index 6eb1c31b12..bc3a3dcf05 100644 --- a/code/modules/crafting/recipes/recipes_weapon_and_ammo.dm +++ b/code/modules/crafting/recipes/recipes_weapon_and_ammo.dm @@ -84,7 +84,7 @@ name = "Liz O' Nine Tails" result = /obj/item/melee/chainofcommand/tailwhip reqs = list(/obj/item/organ/tail/lizard = 1, - /obj/item/stack/cable_coil = 1) + /obj/item/stack/cable_coil = 1) time = 40 category = CAT_WEAPONRY subcategory = CAT_WEAPON @@ -93,7 +93,7 @@ name = "Cat O' Nine Tails" result = /obj/item/melee/chainofcommand/tailwhip/kitty reqs = list(/obj/item/organ/tail/cat = 1, - /obj/item/stack/cable_coil = 1) + /obj/item/stack/cable_coil = 1) time = 40 category = CAT_WEAPONRY subcategory = CAT_WEAPON diff --git a/code/modules/events/holiday/vday.dm b/code/modules/events/holiday/vday.dm index 8f77af58eb..dec55ed8ff 100644 --- a/code/modules/events/holiday/vday.dm +++ b/code/modules/events/holiday/vday.dm @@ -67,62 +67,62 @@ /obj/item/valentine/New() ..() message = pick("Roses are red / Violets are good / One day while Andy...", - "My love for you is like the singularity. It cannot be contained.", - "Will you be my lusty xenomorph maid?", - "We go together like the clown and the external airlock.", - "Roses are red / Liches are wizards / I love you more than a whole squad of lizards.", - "Be my valentine. Law 2.", - "You must be a mime, because you leave me speechless.", - "I love you like Ian loves the HoP.", - "You're hotter than a plasma fire in toxins.", - "Are you a rogue atmos tech? Because you're taking my breath away.", - "Could I have all access... to your heart?", - "Call me the doctor, because I'm here to inspect your johnson.", - "I'm not a changeling, but you make my proboscis extend.", - "I just can't get EI NATH of you.", - "You must be a nuke op, because you make my heart explode.", - "Roses are red / Botany is a farm / Not being my Valentine / causes human harm.", - "I want you more than an assistant wants insulated gloves.", - "If I was a security officer, I'd brig you all shift.", - "Are you the janitor? Because I think I've fallen for you.", - "You're always valid to my heart.", - "I'd risk the wrath of the gods to bwoink you.", - "You look as beautiful now as the last time you were cloned.", - "Someone check the gravitational generator, because I'm only attracted to you.", - "If I were the warden I'd always let you into my armory.", - "The virologist is rogue, and the only cure is a kiss from you.", - "Would you spend some time in my upgraded sleeper?", - "You must be a silicon, because you've unbolted my heart.", - "Are you Nar'Sie? Because there's nar-one else I sie.", - "If you were a taser, you'd be set to stunning.", - "Do you have stamina damage from running through my dreams?", - "If I were an alien, would you let me hug you?", - "My love for you is stronger than a reinforced wall.", - "This must be the captain's office, because I see a fox.", - "I'm not a highlander, but there can only be one for me.", - "The floor is made of lava! Quick, get on my bed.", - "If you were an abandoned station you'd be the DEARelict.", - "If you had a pickaxe you'd be a shaft FINEr.", - "Roses are red, tide is gray, if I were an assistant I'd steal you away.", - "Roses are red, text is green, I love you more than cleanbots clean.", - "If you were a carp I'd fi-lay you.", - "I'm a nuke op, and my pinpointer leads to your heart.", - "Wanna slay my megafauna?", - "I'm a clockwork cultist. Or zl inyragvar.", - "If you were a disposal bin I'd ride you all day.", - "Put on your explorer's suit because I'm taking you to LOVEaland.", - "I must be the CMO, 'cause I saw you on my CUTE sensors.", - "You're the vomit to my flyperson.", - "You must be liquid dark matter, because you're pulling me closer.", - "Not even sorium can drive me away from you.", - "Wanna make like a borg and do some heavy petting?", - "Are you powering the station? Because you super matter to me.", - "I wish science could make me a bag of holding you.", - "Let's call the emergency CUDDLE.", - "I must be tripping on BZ, because I saw an angel walk by.", - "Wanna empty out my tool storage?", - "Did you visit the medbay after you fell from heaven?", - "Are you wearing space pants? Wanna not be?" ) + "My love for you is like the singularity. It cannot be contained.", + "Will you be my lusty xenomorph maid?", + "We go together like the clown and the external airlock.", + "Roses are red / Liches are wizards / I love you more than a whole squad of lizards.", + "Be my valentine. Law 2.", + "You must be a mime, because you leave me speechless.", + "I love you like Ian loves the HoP.", + "You're hotter than a plasma fire in toxins.", + "Are you a rogue atmos tech? Because you're taking my breath away.", + "Could I have all access... to your heart?", + "Call me the doctor, because I'm here to inspect your johnson.", + "I'm not a changeling, but you make my proboscis extend.", + "I just can't get EI NATH of you.", + "You must be a nuke op, because you make my heart explode.", + "Roses are red / Botany is a farm / Not being my Valentine / causes human harm.", + "I want you more than an assistant wants insulated gloves.", + "If I was a security officer, I'd brig you all shift.", + "Are you the janitor? Because I think I've fallen for you.", + "You're always valid to my heart.", + "I'd risk the wrath of the gods to bwoink you.", + "You look as beautiful now as the last time you were cloned.", + "Someone check the gravitational generator, because I'm only attracted to you.", + "If I were the warden I'd always let you into my armory.", + "The virologist is rogue, and the only cure is a kiss from you.", + "Would you spend some time in my upgraded sleeper?", + "You must be a silicon, because you've unbolted my heart.", + "Are you Nar'Sie? Because there's nar-one else I sie.", + "If you were a taser, you'd be set to stunning.", + "Do you have stamina damage from running through my dreams?", + "If I were an alien, would you let me hug you?", + "My love for you is stronger than a reinforced wall.", + "This must be the captain's office, because I see a fox.", + "I'm not a highlander, but there can only be one for me.", + "The floor is made of lava! Quick, get on my bed.", + "If you were an abandoned station you'd be the DEARelict.", + "If you had a pickaxe you'd be a shaft FINEr.", + "Roses are red, tide is gray, if I were an assistant I'd steal you away.", + "Roses are red, text is green, I love you more than cleanbots clean.", + "If you were a carp I'd fi-lay you.", + "I'm a nuke op, and my pinpointer leads to your heart.", + "Wanna slay my megafauna?", + "I'm a clockwork cultist. Or zl inyragvar.", + "If you were a disposal bin I'd ride you all day.", + "Put on your explorer's suit because I'm taking you to LOVEaland.", + "I must be the CMO, 'cause I saw you on my CUTE sensors.", + "You're the vomit to my flyperson.", + "You must be liquid dark matter, because you're pulling me closer.", + "Not even sorium can drive me away from you.", + "Wanna make like a borg and do some heavy petting?", + "Are you powering the station? Because you super matter to me.", + "I wish science could make me a bag of holding you.", + "Let's call the emergency CUDDLE.", + "I must be tripping on BZ, because I saw an angel walk by.", + "Wanna empty out my tool storage?", + "Did you visit the medbay after you fell from heaven?", + "Are you wearing space pants? Wanna not be?" ) /obj/item/valentine/attackby(obj/item/W, mob/user, params) ..() @@ -162,24 +162,24 @@ /obj/item/reagent_containers/food/snacks/candyheart/New() ..() desc = pick("A heart-shaped candy that reads: HONK ME", - "A heart-shaped candy that reads: ERP", - "A heart-shaped candy that reads: LEWD", - "A heart-shaped candy that reads: LUSTY", - "A heart-shaped candy that reads: SPESS LOVE", - "A heart-shaped candy that reads: AYY LMAO", - "A heart-shaped candy that reads: TABLE ME", - "A heart-shaped candy that reads: HAND CUFFS", - "A heart-shaped candy that reads: SHAFT MINER", - "A heart-shaped candy that reads: BANGING DONK", - "A heart-shaped candy that reads: Y-YOU T-TOO", - "A heart-shaped candy that reads: GOT WOOD", - "A heart-shaped candy that reads: TFW NO GF", - "A heart-shaped candy that reads: WAG MY TAIL", - "A heart-shaped candy that reads: VALIDTINES", - "A heart-shaped candy that reads: FACEHUGGER", - "A heart-shaped candy that reads: BOX OF HUGS", - "A heart-shaped candy that reads: REEBE MINE", - "A heart-shaped candy that reads: PET ME", - "A heart-shaped candy that reads: TO THE DORMS", - "A heart-shaped candy that reads: DIS MEMBER") + "A heart-shaped candy that reads: ERP", + "A heart-shaped candy that reads: LEWD", + "A heart-shaped candy that reads: LUSTY", + "A heart-shaped candy that reads: SPESS LOVE", + "A heart-shaped candy that reads: AYY LMAO", + "A heart-shaped candy that reads: TABLE ME", + "A heart-shaped candy that reads: HAND CUFFS", + "A heart-shaped candy that reads: SHAFT MINER", + "A heart-shaped candy that reads: BANGING DONK", + "A heart-shaped candy that reads: Y-YOU T-TOO", + "A heart-shaped candy that reads: GOT WOOD", + "A heart-shaped candy that reads: TFW NO GF", + "A heart-shaped candy that reads: WAG MY TAIL", + "A heart-shaped candy that reads: VALIDTINES", + "A heart-shaped candy that reads: FACEHUGGER", + "A heart-shaped candy that reads: BOX OF HUGS", + "A heart-shaped candy that reads: REEBE MINE", + "A heart-shaped candy that reads: PET ME", + "A heart-shaped candy that reads: TO THE DORMS", + "A heart-shaped candy that reads: DIS MEMBER") icon_state = pick("candyheart", "candyheart2", "candyheart3", "candyheart4") diff --git a/code/modules/food_and_drinks/food/snacks/meat.dm b/code/modules/food_and_drinks/food/snacks/meat.dm index ee169e9861..ea573a2cf0 100644 --- a/code/modules/food_and_drinks/food/snacks/meat.dm +++ b/code/modules/food_and_drinks/food/snacks/meat.dm @@ -282,7 +282,7 @@ tastes = list("meat" = 1) /obj/item/reagent_containers/food/snacks/meat/steak/plain - foodtype = MEAT + foodtype = MEAT /obj/item/reagent_containers/food/snacks/meat/steak/plain/human tastes = list("tender meat" = 1) @@ -340,7 +340,7 @@ /obj/item/reagent_containers/food/snacks/meat/rawcutlet/plain - foodtype = MEAT + foodtype = MEAT /obj/item/reagent_containers/food/snacks/meat/rawcutlet/plain/human cooked_type = /obj/item/reagent_containers/food/snacks/meat/cutlet/plain/human diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm index d608a73560..057dc0d192 100644 --- a/code/modules/food_and_drinks/pizzabox.dm +++ b/code/modules/food_and_drinks/pizzabox.dm @@ -308,7 +308,7 @@ /obj/item/reagent_containers/food/snacks/pizza/margherita = 1, /obj/item/reagent_containers/food/snacks/pizza/sassysage = 0.8, /obj/item/reagent_containers/food/snacks/pizza/vegetable = 0.8, - /obj/item/reagent_containers/food/snacks/pizza/pineapple = 0.5, + /obj/item/reagent_containers/food/snacks/pizza/pineapple = 0.5, /obj/item/reagent_containers/food/snacks/pizza/donkpocket = 0.3, /obj/item/reagent_containers/food/snacks/pizza/dank = 0.1) //pizzas here are weighted by chance to be someone's favorite var/static/list/pizza_preferences diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm index 30c265e237..b5bed4d5fc 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm @@ -8,7 +8,7 @@ reqs = list( /datum/reagent/consumable/milk = 5, /obj/item/reagent_containers/food/snacks/pie/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/banana = 1 + /obj/item/reagent_containers/food/snacks/grown/banana = 1 ) result = /obj/item/reagent_containers/food/snacks/pie/cream subcategory = CAT_PIE @@ -46,7 +46,7 @@ name = "Cherry pie" reqs = list( /obj/item/reagent_containers/food/snacks/pie/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/cherries = 1 + /obj/item/reagent_containers/food/snacks/grown/cherries = 1 ) result = /obj/item/reagent_containers/food/snacks/pie/cherrypie subcategory = CAT_PIE @@ -122,11 +122,11 @@ /datum/crafting_recipe/food/grapetart name = "Grape tart" reqs = list( - /datum/reagent/consumable/milk = 5, - /datum/reagent/consumable/sugar = 5, - /obj/item/reagent_containers/food/snacks/pie/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/grapes = 3 - ) + /datum/reagent/consumable/milk = 5, + /datum/reagent/consumable/sugar = 5, + /obj/item/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/reagent_containers/food/snacks/grown/grapes = 3 + ) result = /obj/item/reagent_containers/food/snacks/pie/grapetart subcategory = CAT_PIE @@ -183,11 +183,11 @@ name = "Mime tart" always_availible = FALSE reqs = list( - /datum/reagent/consumable/milk = 5, - /datum/reagent/consumable/sugar = 5, - /obj/item/reagent_containers/food/snacks/pie/plain = 1, - /datum/reagent/consumable/nothing = 5 - ) + /datum/reagent/consumable/milk = 5, + /datum/reagent/consumable/sugar = 5, + /obj/item/reagent_containers/food/snacks/pie/plain = 1, + /datum/reagent/consumable/nothing = 5 + ) result = /obj/item/reagent_containers/food/snacks/pie/mimetart subcategory = CAT_PIE @@ -195,11 +195,11 @@ name = "Berry tart" always_availible = FALSE reqs = list( - /datum/reagent/consumable/milk = 5, - /datum/reagent/consumable/sugar = 5, - /obj/item/reagent_containers/food/snacks/pie/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/berries = 3 - ) + /datum/reagent/consumable/milk = 5, + /datum/reagent/consumable/sugar = 5, + /obj/item/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/reagent_containers/food/snacks/grown/berries = 3 + ) result = /obj/item/reagent_containers/food/snacks/pie/berrytart subcategory = CAT_PIE @@ -207,20 +207,20 @@ name = "Chocolate Lava tart" always_availible = FALSE reqs = list( - /datum/reagent/consumable/milk = 5, - /datum/reagent/consumable/sugar = 5, - /obj/item/reagent_containers/food/snacks/pie/plain = 1, - /obj/item/reagent_containers/food/snacks/chocolatebar = 3, - /obj/item/slime_extract = 1 - ) + /datum/reagent/consumable/milk = 5, + /datum/reagent/consumable/sugar = 5, + /obj/item/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/reagent_containers/food/snacks/chocolatebar = 3, + /obj/item/slime_extract = 1 + ) result = /obj/item/reagent_containers/food/snacks/pie/cocolavatart subcategory = CAT_PIE /datum/crafting_recipe/food/peachpie name = "Peach Pie" reqs = list( - /obj/item/reagent_containers/food/snacks/pie/plain = 1, - /obj/item/reagent_containers/food/snacks/grown/peach = 3 - ) + /obj/item/reagent_containers/food/snacks/pie/plain = 1, + /obj/item/reagent_containers/food/snacks/grown/peach = 3 + ) result = /obj/item/reagent_containers/food/snacks/pie/peachpie subcategory = CAT_PIE \ No newline at end of file diff --git a/code/modules/holiday/halloween/bartholomew.dm b/code/modules/holiday/halloween/bartholomew.dm index aa119dca84..f51b8b7ea1 100644 --- a/code/modules/holiday/halloween/bartholomew.dm +++ b/code/modules/holiday/halloween/bartholomew.dm @@ -1,72 +1,72 @@ /obj/effect/landmark/barthpot - name = "barthpot" + name = "barthpot" /obj/item/barthpot - name = "Bartholomew" - icon = 'icons/obj/halloween_items.dmi' - icon_state = "barthpot" - anchored = TRUE - var/items_list = list() - speech_span = "spooky" - var/active = TRUE + name = "Bartholomew" + icon = 'icons/obj/halloween_items.dmi' + icon_state = "barthpot" + anchored = TRUE + var/items_list = list() + speech_span = "spooky" + var/active = TRUE /obj/item/barthpot/Destroy() - var/obj/item/barthpot/n = new src(loc) - n.items_list = items_list - ..() + var/obj/item/barthpot/n = new src(loc) + n.items_list = items_list + ..() /obj/item/barthpot/attackby(obj/item/I, mob/user, params) - if(!active) - say("Meow!") - return + if(!active) + say("Meow!") + return - for(var/I2 in items_list) - if(istype(I, I2)) - qdel(I) - new /obj/item/reagent_containers/food/snacks/special_candy(loc) - to_chat(user, "You add the [I.name] to the pot and watch as it melts into the mixture, a candy crystalising in it's wake.") - say("Hooray! Thank you!") - items_list -= I2 - return - say("It doesn't seem like that's magical enough!") + for(var/I2 in items_list) + if(istype(I, I2)) + qdel(I) + new /obj/item/reagent_containers/food/snacks/special_candy(loc) + to_chat(user, "You add the [I.name] to the pot and watch as it melts into the mixture, a candy crystalising in it's wake.") + say("Hooray! Thank you!") + items_list -= I2 + return + say("It doesn't seem like that's magical enough!") /obj/item/barthpot/attack_hand(mob/user) - if(!active) - say("Meow!") - return - say("Hello there, I'm Bartholomew, Jacqueline's Familiar.") - sleep(20) + if(!active) + say("Meow!") + return + say("Hello there, I'm Bartholomew, Jacqueline's Familiar.") + sleep(20) - say("I'm currently seeking items to put into my pot, if we get the right items, it should crystalise into a magic candy!") - if(!iscarbon(user)) - say("Though... I'm not sure you can help me.") + say("I'm currently seeking items to put into my pot, if we get the right items, it should crystalise into a magic candy!") + if(!iscarbon(user)) + say("Though... I'm not sure you can help me.") - var/message = "From what I can tell, " - if(LAZYLEN(items_list) < 5) - generate_items() - for(var/I2 in items_list) - if(!I2) - items_list -= I2 - continue - var/obj/item/I3 = new I2 - message += "a [I3.name], " - message += "currently seem to have the most magic potential." - sleep(15) - say("[message]") - sleep(15) - //To help people find her - for(var/mob/living/simple_animal/jacq/J in GLOB.simple_animals[1]) - var/turf/L1 = J.loc - if(!L1) //Incase someone uh.. puts her in a locker - return - var/area/L2 = L1.loc - if(L2) - say("Also, it seems that Jacqueline is currently at the [L2], if you're looking for her too.") + var/message = "From what I can tell, " + if(LAZYLEN(items_list) < 5) + generate_items() + for(var/I2 in items_list) + if(!I2) + items_list -= I2 + continue + var/obj/item/I3 = new I2 + message += "a [I3.name], " + message += "currently seem to have the most magic potential." + sleep(15) + say("[message]") + sleep(15) + //To help people find her + for(var/mob/living/simple_animal/jacq/J in GLOB.simple_animals[1]) + var/turf/L1 = J.loc + if(!L1) //Incase someone uh.. puts her in a locker + return + var/area/L2 = L1.loc + if(L2) + say("Also, it seems that Jacqueline is currently at the [L2], if you're looking for her too.") /obj/item/barthpot/proc/generate_items() - var/length = LAZYLEN(items_list) - var/rand_items = list(/obj/item/bodybag = 1, + var/length = LAZYLEN(items_list) + var/rand_items = list(/obj/item/bodybag = 1, /obj/item/clothing/glasses/meson = 2, /obj/item/clothing/glasses/sunglasses = 1, /obj/item/clothing/gloves/color/fyellow = 1, @@ -94,7 +94,7 @@ /obj/item/stack/sheet/metal = 1, /obj/item/stack/sheet/mineral/plasma = 1, /obj/item/stack/sheet/rglass = 1, - /obj/item/coin = 1, + /obj/item/coin = 1, /obj/item/crowbar = 4, /obj/item/extinguisher = 3, /obj/item/hand_labeler = 1, @@ -129,28 +129,28 @@ /obj/item/storage/toolbox = 2, /obj/item/reagent_containers/pill = 2, /obj/item/clothing/shoes = 8, - /obj/item/clothing/head = 3, - /obj/item/reagent_containers/food/snacks = 3, - /obj/item/reagent_containers/syringe/dart = 2, - /obj/item/reagent_containers/food/drinks/soda_cans = 5) - if(length >= 5) - return TRUE - //var/metalist = pickweight(GLOB.maintenance_loot) - for(var/i = length, i <= 5, i+=1) - var/obj/item = pickweight(rand_items) - if(!item) - i-=1 - continue - for(var/obj/item_dupe in items_list) //No duplicates - if(item_dupe == item) - i-=1 - continue - items_list += item - return TRUE + /obj/item/clothing/head = 3, + /obj/item/reagent_containers/food/snacks = 3, + /obj/item/reagent_containers/syringe/dart = 2, + /obj/item/reagent_containers/food/drinks/soda_cans = 5) + if(length >= 5) + return TRUE + //var/metalist = pickweight(GLOB.maintenance_loot) + for(var/i = length, i <= 5, i+=1) + var/obj/item = pickweight(rand_items) + if(!item) + i-=1 + continue + for(var/obj/item_dupe in items_list) //No duplicates + if(item_dupe == item) + i-=1 + continue + items_list += item + return TRUE /obj/item/pinpointer/jacq - name = "The Jacq-Tracq" - desc = "A handheld tracking device that locks onto witchy signals." + name = "The Jacq-Tracq" + desc = "A handheld tracking device that locks onto witchy signals." /obj/item/pinpointer/jacq/attack_self(mob/living/user) for(var/mob/living/simple_animal/jacq/J in GLOB.simple_animals[1]) diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm index 3862967363..ae134c2415 100644 --- a/code/modules/integrated_electronics/core/assemblies.dm +++ b/code/modules/integrated_electronics/core/assemblies.dm @@ -65,7 +65,7 @@ src.max_complexity = round(max_complexity) /obj/item/electronic_assembly/GenerateTag() - tag = "assembly_[next_assembly_id++]" + tag = "assembly_[next_assembly_id++]" /obj/item/electronic_assembly/examine(mob/user) . = ..() @@ -616,7 +616,7 @@ ..() /obj/item/electronic_assembly/default //The /default electronic_assemblys are to allow the introduction of the new naming scheme without breaking old saves. - name = "type-a electronic assembly" + name = "type-a electronic assembly" /obj/item/electronic_assembly/calc name = "type-b electronic assembly" diff --git a/code/modules/integrated_electronics/passive/power.dm b/code/modules/integrated_electronics/passive/power.dm index d4899a4621..40ed235863 100644 --- a/code/modules/integrated_electronics/passive/power.dm +++ b/code/modules/integrated_electronics/passive/power.dm @@ -76,7 +76,7 @@ desc = "A seemingly enigmatic device which connects to nearby APCs wirelessly and draws power from them, now in industrial size!" w_class = WEIGHT_CLASS_BULKY extended_desc = "The siphon drains 2 kW of power from an APC in the same room as it as long as it has charge remaining. It will always drain \ - from the 'equipment' power channel." + from the 'equipment' power channel." icon_state = "power_relay" complexity = 15 spawn_flags = IC_SPAWN_RESEARCH diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm index 2119baf1a5..6100641bde 100644 --- a/code/modules/jobs/access.dm +++ b/code/modules/jobs/access.dm @@ -122,16 +122,16 @@ /proc/get_all_accesses() return list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP, - ACCESS_MEDICAL, ACCESS_GENETICS, ACCESS_MORGUE, ACCESS_RD, - ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_CHEMISTRY, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_MAINT_TUNNELS, - ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, - ACCESS_TELEPORTER, ACCESS_EVA, ACCESS_HEADS, ACCESS_CAPTAIN, ACCESS_ALL_PERSONAL_LOCKERS, - ACCESS_TECH_STORAGE, ACCESS_CHAPEL_OFFICE, ACCESS_ATMOSPHERICS, ACCESS_KITCHEN, - ACCESS_BAR, ACCESS_JANITOR, ACCESS_CREMATORIUM, ACCESS_ROBOTICS, ACCESS_CARGO, ACCESS_CONSTRUCTION, - ACCESS_HYDROPONICS, ACCESS_LIBRARY, ACCESS_LAWYER, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_QM, ACCESS_SURGERY, - ACCESS_THEATRE, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_MAILSORTING, ACCESS_WEAPONS, - ACCESS_VAULT, ACCESS_MINING_STATION, ACCESS_XENOBIOLOGY, ACCESS_CE, ACCESS_HOP, ACCESS_HOS, ACCESS_RC_ANNOUNCE, - ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM, ACCESS_MINISAT, ACCESS_NETWORK, ACCESS_CLONING) + ACCESS_MEDICAL, ACCESS_GENETICS, ACCESS_MORGUE, ACCESS_RD, + ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_CHEMISTRY, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_MAINT_TUNNELS, + ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, + ACCESS_TELEPORTER, ACCESS_EVA, ACCESS_HEADS, ACCESS_CAPTAIN, ACCESS_ALL_PERSONAL_LOCKERS, + ACCESS_TECH_STORAGE, ACCESS_CHAPEL_OFFICE, ACCESS_ATMOSPHERICS, ACCESS_KITCHEN, + ACCESS_BAR, ACCESS_JANITOR, ACCESS_CREMATORIUM, ACCESS_ROBOTICS, ACCESS_CARGO, ACCESS_CONSTRUCTION, + ACCESS_HYDROPONICS, ACCESS_LIBRARY, ACCESS_LAWYER, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_QM, ACCESS_SURGERY, + ACCESS_THEATRE, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_MAILSORTING, ACCESS_WEAPONS, + ACCESS_VAULT, ACCESS_MINING_STATION, ACCESS_XENOBIOLOGY, ACCESS_CE, ACCESS_HOP, ACCESS_HOS, ACCESS_RC_ANNOUNCE, + ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM, ACCESS_MINISAT, ACCESS_NETWORK, ACCESS_CLONING) /proc/get_all_centcom_access() return list(ACCESS_CENT_GENERAL, ACCESS_CENT_THUNDER, ACCESS_CENT_SPECOPS, ACCESS_CENT_MEDICAL, ACCESS_CENT_LIVING, ACCESS_CENT_STORAGE, ACCESS_CENT_TELEPORTER, ACCESS_CENT_CAPTAIN) diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm index f6505a4e2a..0aa1f2f05f 100644 --- a/code/modules/jobs/job_types/chief_engineer.dm +++ b/code/modules/jobs/job_types/chief_engineer.dm @@ -19,13 +19,13 @@ outfit = /datum/outfit/job/ce access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS, - ACCESS_EXTERNAL_AIRLOCKS, ACCESS_ATMOSPHERICS, ACCESS_EVA, - ACCESS_HEADS, ACCESS_CONSTRUCTION, ACCESS_SEC_DOORS, ACCESS_MINISAT, - ACCESS_CE, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM) + ACCESS_EXTERNAL_AIRLOCKS, ACCESS_ATMOSPHERICS, ACCESS_EVA, + ACCESS_HEADS, ACCESS_CONSTRUCTION, ACCESS_SEC_DOORS, ACCESS_MINISAT, + ACCESS_CE, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS, - ACCESS_EXTERNAL_AIRLOCKS, ACCESS_ATMOSPHERICS, ACCESS_EVA, - ACCESS_HEADS, ACCESS_CONSTRUCTION, ACCESS_SEC_DOORS, ACCESS_MINISAT, - ACCESS_CE, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM) + ACCESS_EXTERNAL_AIRLOCKS, ACCESS_ATMOSPHERICS, ACCESS_EVA, + ACCESS_HEADS, ACCESS_CONSTRUCTION, ACCESS_SEC_DOORS, ACCESS_MINISAT, + ACCESS_CE, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM) display_order = JOB_DISPLAY_ORDER_CHIEF_ENGINEER blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/paraplegic, /datum/quirk/insanity) diff --git a/code/modules/jobs/job_types/head_of_personnel.dm b/code/modules/jobs/job_types/head_of_personnel.dm index 2b757872d9..86b9cafa25 100644 --- a/code/modules/jobs/job_types/head_of_personnel.dm +++ b/code/modules/jobs/job_types/head_of_personnel.dm @@ -19,17 +19,17 @@ outfit = /datum/outfit/job/hop access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_COURT, ACCESS_WEAPONS, - ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, ACCESS_EVA, ACCESS_HEADS, - ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_MAINT_TUNNELS, ACCESS_BAR, ACCESS_JANITOR, ACCESS_CONSTRUCTION, ACCESS_MORGUE, - ACCESS_CREMATORIUM, ACCESS_KITCHEN, ACCESS_HYDROPONICS, ACCESS_LAWYER, - ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_VAULT, ACCESS_MINING_STATION, - ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM) + ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, ACCESS_EVA, ACCESS_HEADS, + ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_MAINT_TUNNELS, ACCESS_BAR, ACCESS_JANITOR, ACCESS_CONSTRUCTION, ACCESS_MORGUE, + ACCESS_CREMATORIUM, ACCESS_KITCHEN, ACCESS_HYDROPONICS, ACCESS_LAWYER, + ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_VAULT, ACCESS_MINING_STATION, + ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_COURT, ACCESS_WEAPONS, - ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, ACCESS_EVA, ACCESS_HEADS, - ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_MAINT_TUNNELS, ACCESS_BAR, ACCESS_JANITOR, ACCESS_CONSTRUCTION, ACCESS_MORGUE, - ACCESS_CREMATORIUM, ACCESS_KITCHEN, ACCESS_HYDROPONICS, ACCESS_LAWYER, - ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_VAULT, ACCESS_MINING_STATION, - ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM) + ACCESS_MEDICAL, ACCESS_ENGINE, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD, ACCESS_EVA, ACCESS_HEADS, + ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_MAINT_TUNNELS, ACCESS_BAR, ACCESS_JANITOR, ACCESS_CONSTRUCTION, ACCESS_MORGUE, + ACCESS_CREMATORIUM, ACCESS_KITCHEN, ACCESS_HYDROPONICS, ACCESS_LAWYER, + ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_VAULT, ACCESS_MINING_STATION, + ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM) display_order = JOB_DISPLAY_ORDER_HEAD_OF_PERSONNEL diff --git a/code/modules/jobs/job_types/head_of_security.dm b/code/modules/jobs/job_types/head_of_security.dm index c190d88bc7..e20315a1ca 100644 --- a/code/modules/jobs/job_types/head_of_security.dm +++ b/code/modules/jobs/job_types/head_of_security.dm @@ -20,13 +20,13 @@ mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM) access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP, - ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_ALL_PERSONAL_LOCKERS, - ACCESS_RESEARCH, ACCESS_ENGINE, ACCESS_MINING, ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING, - ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM) + ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_ALL_PERSONAL_LOCKERS, + ACCESS_RESEARCH, ACCESS_ENGINE, ACCESS_MINING, ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING, + ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP, - ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_ALL_PERSONAL_LOCKERS, - ACCESS_RESEARCH, ACCESS_ENGINE, ACCESS_MINING, ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING, - ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM) + ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_ALL_PERSONAL_LOCKERS, + ACCESS_RESEARCH, ACCESS_ENGINE, ACCESS_MINING, ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING, + ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM) display_order = JOB_DISPLAY_ORDER_HEAD_OF_SECURITY blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/nonviolent, /datum/quirk/paraplegic, /datum/quirk/insanity) diff --git a/code/modules/jobs/job_types/research_director.dm b/code/modules/jobs/job_types/research_director.dm index a90c5cea6c..ebf3b3eb40 100644 --- a/code/modules/jobs/job_types/research_director.dm +++ b/code/modules/jobs/job_types/research_director.dm @@ -19,15 +19,15 @@ outfit = /datum/outfit/job/rd access = list(ACCESS_RD, ACCESS_HEADS, ACCESS_TOX, ACCESS_GENETICS, ACCESS_MORGUE, - ACCESS_TOX_STORAGE, ACCESS_TELEPORTER, ACCESS_SEC_DOORS, - ACCESS_RESEARCH, ACCESS_ROBOTICS, ACCESS_XENOBIOLOGY, ACCESS_AI_UPLOAD, - ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM, - ACCESS_TECH_STORAGE, ACCESS_MINISAT, ACCESS_MAINT_TUNNELS, ACCESS_NETWORK) + ACCESS_TOX_STORAGE, ACCESS_TELEPORTER, ACCESS_SEC_DOORS, + ACCESS_RESEARCH, ACCESS_ROBOTICS, ACCESS_XENOBIOLOGY, ACCESS_AI_UPLOAD, + ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM, + ACCESS_TECH_STORAGE, ACCESS_MINISAT, ACCESS_MAINT_TUNNELS, ACCESS_NETWORK) minimal_access = list(ACCESS_RD, ACCESS_HEADS, ACCESS_TOX, ACCESS_GENETICS, ACCESS_MORGUE, - ACCESS_TOX_STORAGE, ACCESS_TELEPORTER, ACCESS_SEC_DOORS, - ACCESS_RESEARCH, ACCESS_ROBOTICS, ACCESS_XENOBIOLOGY, ACCESS_AI_UPLOAD, - ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM, - ACCESS_TECH_STORAGE, ACCESS_MINISAT, ACCESS_MAINT_TUNNELS, ACCESS_NETWORK) + ACCESS_TOX_STORAGE, ACCESS_TELEPORTER, ACCESS_SEC_DOORS, + ACCESS_RESEARCH, ACCESS_ROBOTICS, ACCESS_XENOBIOLOGY, ACCESS_AI_UPLOAD, + ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM, + ACCESS_TECH_STORAGE, ACCESS_MINISAT, ACCESS_MAINT_TUNNELS, ACCESS_NETWORK) display_order = JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity) diff --git a/code/modules/mob/dead/new_player/poll.dm b/code/modules/mob/dead/new_player/poll.dm index 04a28f6b5a..db792084cf 100644 --- a/code/modules/mob/dead/new_player/poll.dm +++ b/code/modules/mob/dead/new_player/poll.dm @@ -310,7 +310,7 @@ }); $( "#sortable" ).disableSelection(); $('form').submit(function(){ - $('#IRVdata').val($( "#sortable" ).sortable("toArray", { attribute: "voteid" })); + $('#IRVdata').val($( "#sortable" ).sortable("toArray", { attribute: "voteid" })); }); }); diff --git a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm index ca1253feb1..bab19528bf 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm @@ -130,10 +130,10 @@ color_src = MATRIXED /datum/sprite_accessory/ears/human/rabbit - name = "Rabbit" - icon_state = "rabbit" - color_src = MATRIXED - icon = 'modular_citadel/icons/mob/mam_ears.dmi' + name = "Rabbit" + icon_state = "rabbit" + color_src = MATRIXED + icon = 'modular_citadel/icons/mob/mam_ears.dmi' /datum/sprite_accessory/ears/human/sergal name = "Sergal" @@ -287,8 +287,8 @@ icon_state = "pede" /datum/sprite_accessory/mam_ears/rabbit - name = "Rabbit" - icon_state = "rabbit" + name = "Rabbit" + icon_state = "rabbit" /datum/sprite_accessory/mam_ears/sergal name = "Sergal" diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 88aa5f86d0..fbecb151ab 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -256,7 +256,7 @@ /mob/living/carbon/fall(forced) - loc.handle_fall(src, forced)//it's loc so it doesn't call the mob's handle_fall which does nothing + loc.handle_fall(src, forced)//it's loc so it doesn't call the mob's handle_fall which does nothing /mob/living/carbon/is_muzzled() return(istype(src.wear_mask, /obj/item/clothing/mask/muzzle)) diff --git a/code/modules/mob/living/carbon/emote.dm b/code/modules/mob/living/carbon/emote.dm index 71286ef691..345279df29 100644 --- a/code/modules/mob/living/carbon/emote.dm +++ b/code/modules/mob/living/carbon/emote.dm @@ -31,9 +31,9 @@ if (!user.get_bodypart(BODY_ZONE_L_ARM) || !user.get_bodypart(BODY_ZONE_R_ARM)) return var/clap = pick('sound/misc/clap1.ogg', - 'sound/misc/clap2.ogg', - 'sound/misc/clap3.ogg', - 'sound/misc/clap4.ogg') + 'sound/misc/clap2.ogg', + 'sound/misc/clap3.ogg', + 'sound/misc/clap4.ogg') playsound(user, clap, 50, 1, -1) /datum/emote/living/carbon/gnarl diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index f22139ac22..b164605e2f 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -159,16 +159,16 @@ Auto Patrol: []"}, mode = BOT_HUNT /mob/living/simple_animal/bot/secbot/proc/judgement_criteria() - var/final = FALSE - if(idcheck) - final = final|JUDGE_IDCHECK - if(check_records) - final = final|JUDGE_RECORDCHECK - if(weaponscheck) - final = final|JUDGE_WEAPONCHECK - if(emagged == 2) - final = final|JUDGE_EMAGGED - return final + var/final = FALSE + if(idcheck) + final = final|JUDGE_IDCHECK + if(check_records) + final = final|JUDGE_RECORDCHECK + if(weaponscheck) + final = final|JUDGE_WEAPONCHECK + if(emagged == 2) + final = final|JUDGE_EMAGGED + return final /mob/living/simple_animal/bot/secbot/proc/special_retaliate_after_attack(mob/user) //allows special actions to take place after being attacked. return diff --git a/code/modules/mob/living/simple_animal/friendly/snake.dm b/code/modules/mob/living/simple_animal/friendly/snake.dm index d8912ee25f..2f37857902 100644 --- a/code/modules/mob/living/simple_animal/friendly/snake.dm +++ b/code/modules/mob/living/simple_animal/friendly/snake.dm @@ -1,39 +1,39 @@ /mob/living/simple_animal/hostile/retaliate/poison - var/poison_per_bite = 0 - var/poison_type = "toxin" + var/poison_per_bite = 0 + var/poison_type = "toxin" /mob/living/simple_animal/hostile/retaliate/poison/AttackingTarget() - . = ..() - if(. && isliving(target)) - var/mob/living/L = target - if(L.reagents && !poison_per_bite == 0) - L.reagents.add_reagent(poison_type, poison_per_bite) - return . + . = ..() + if(. && isliving(target)) + var/mob/living/L = target + if(L.reagents && !poison_per_bite == 0) + L.reagents.add_reagent(poison_type, poison_per_bite) + return /mob/living/simple_animal/hostile/retaliate/poison/snake - name = "snake" - desc = "A slithery snake. These legless reptiles are the bane of mice and adventurers alike." - icon_state = "snake" - icon_living = "snake" - icon_dead = "snake_dead" - speak_emote = list("hisses") - health = 20 - maxHealth = 20 - attacktext = "bites" - melee_damage_lower = 5 - melee_damage_upper = 6 - response_help = "pets" - response_disarm = "shoos" - response_harm = "steps on" - faction = list("hostile") - ventcrawler = VENTCRAWLER_ALWAYS - density = FALSE - pass_flags = PASSTABLE | PASSMOB - mob_size = MOB_SIZE_SMALL - mob_biotypes = list(MOB_ORGANIC, MOB_BEAST, MOB_REPTILE) - gold_core_spawnable = FRIENDLY_SPAWN - obj_damage = 0 - environment_smash = ENVIRONMENT_SMASH_NONE + name = "snake" + desc = "A slithery snake. These legless reptiles are the bane of mice and adventurers alike." + icon_state = "snake" + icon_living = "snake" + icon_dead = "snake_dead" + speak_emote = list("hisses") + health = 20 + maxHealth = 20 + attacktext = "bites" + melee_damage_lower = 5 + melee_damage_upper = 6 + response_help = "pets" + response_disarm = "shoos" + response_harm = "steps on" + faction = list("hostile") + ventcrawler = VENTCRAWLER_ALWAYS + density = FALSE + pass_flags = PASSTABLE | PASSMOB + mob_size = MOB_SIZE_SMALL + mob_biotypes = list(MOB_ORGANIC, MOB_BEAST, MOB_REPTILE) + gold_core_spawnable = FRIENDLY_SPAWN + obj_damage = 0 + environment_smash = ENVIRONMENT_SMASH_NONE /mob/living/simple_animal/hostile/retaliate/poison/snake/ListTargets(atom/the_target) @@ -54,9 +54,9 @@ return mice /mob/living/simple_animal/hostile/retaliate/poison/snake/AttackingTarget() - if(istype(target, /mob/living/simple_animal/mouse)) - visible_message("[name] consumes [target] in a single gulp!", "You consume [target] in a single gulp!") - QDEL_NULL(target) - adjustBruteLoss(-2) - else - return ..() \ No newline at end of file + if(istype(target, /mob/living/simple_animal/mouse)) + visible_message("[name] consumes [target] in a single gulp!", "You consume [target] in a single gulp!") + QDEL_NULL(target) + adjustBruteLoss(-2) + else + return ..() \ No newline at end of file diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 056c5b1901..3894bcdf65 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -608,12 +608,12 @@ ..() /datum/reagent/consumable/honey/reaction_mob(mob/living/M, method=TOUCH, reac_volume) - if(iscarbon(M) && (method in list(TOUCH, VAPOR, PATCH))) - var/mob/living/carbon/C = M - for(var/s in C.surgeries) - var/datum/surgery/S = s - S.success_multiplier = max(0.6, S.success_multiplier) // +60% success probability on each step, compared to bacchus' blessing's ~46% - ..() + if(iscarbon(M) && (method in list(TOUCH, VAPOR, PATCH))) + var/mob/living/carbon/C = M + for(var/s in C.surgeries) + var/datum/surgery/S = s + S.success_multiplier = max(0.6, S.success_multiplier) // +60% success probability on each step, compared to bacchus' blessing's ~46% + ..() /datum/reagent/consumable/mayonnaise name = "Mayonnaise" diff --git a/code/modules/reagents/chemistry/reagents/impure_reagents.dm b/code/modules/reagents/chemistry/reagents/impure_reagents.dm index c96347cda2..4489088adc 100644 --- a/code/modules/reagents/chemistry/reagents/impure_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/impure_reagents.dm @@ -3,7 +3,7 @@ //Invert = Whole conversion /datum/reagent/impure - chemical_flags = REAGENT_INVISIBLE | REAGENT_SNEAKYNAME //by default, it will stay hidden on splitting, but take the name of the source on inverting + chemical_flags = REAGENT_INVISIBLE | REAGENT_SNEAKYNAME //by default, it will stay hidden on splitting, but take the name of the source on inverting /datum/reagent/impure/fermiTox diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 3db5c4c4dc..374712caf0 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -1192,19 +1192,19 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) pH = 11.8 /datum/reagent/medicine/neo_jelly/on_mob_life(mob/living/carbon/M) - M.adjustBruteLoss(-1.5*REM, 0) - M.adjustFireLoss(-1.5*REM, 0) - M.adjustOxyLoss(-1.5*REM, 0) - M.adjustToxLoss(-1.5*REM, 0, TRUE) //heals TOXINLOVERs - . = 1 - ..() + M.adjustBruteLoss(-1.5*REM, 0) + M.adjustFireLoss(-1.5*REM, 0) + M.adjustOxyLoss(-1.5*REM, 0) + M.adjustToxLoss(-1.5*REM, 0, TRUE) //heals TOXINLOVERs + . = 1 + ..() /datum/reagent/medicine/neo_jelly/overdose_process(mob/living/M) - M.adjustOxyLoss(2.6*REM, 0) - M.adjustBruteLoss(3.5*REM, 0) - M.adjustFireLoss(3.5*REM, 0) - ..() - . = 1 + M.adjustOxyLoss(2.6*REM, 0) + M.adjustBruteLoss(3.5*REM, 0) + M.adjustFireLoss(3.5*REM, 0) + ..() + . = 1 /datum/reagent/medicine/earthsblood //Created by ambrosia gaia plants name = "Earthsblood" diff --git a/code/modules/ruins/spaceruin_code/hilbertshotel.dm b/code/modules/ruins/spaceruin_code/hilbertshotel.dm index 0d4d2b6ad6..cd641adb33 100644 --- a/code/modules/ruins/spaceruin_code/hilbertshotel.dm +++ b/code/modules/ruins/spaceruin_code/hilbertshotel.dm @@ -2,194 +2,194 @@ GLOBAL_VAR_INIT(hhStorageTurf, null) GLOBAL_VAR_INIT(hhmysteryRoomNumber, 1337) /obj/item/hilbertshotel - name = "Hilbert's Hotel" - desc = "A sphere of what appears to be an intricate network of bluespace. Observing it in detail seems to give you a headache as you try to comprehend the infinite amount of infinitesimally distinct points on its surface." - icon_state = "hilbertshotel" - w_class = WEIGHT_CLASS_SMALL - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - var/datum/map_template/hilbertshotel/hotelRoomTemp - var/datum/map_template/hilbertshotel/empty/hotelRoomTempEmpty - var/datum/map_template/hilbertshotel/lore/hotelRoomTempLore - var/list/activeRooms = list() - var/list/storedRooms = list() - var/storageTurf - //Lore Stuff - var/ruinSpawned = FALSE - var/mysteryRoom + name = "Hilbert's Hotel" + desc = "A sphere of what appears to be an intricate network of bluespace. Observing it in detail seems to give you a headache as you try to comprehend the infinite amount of infinitesimally distinct points on its surface." + icon_state = "hilbertshotel" + w_class = WEIGHT_CLASS_SMALL + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + var/datum/map_template/hilbertshotel/hotelRoomTemp + var/datum/map_template/hilbertshotel/empty/hotelRoomTempEmpty + var/datum/map_template/hilbertshotel/lore/hotelRoomTempLore + var/list/activeRooms = list() + var/list/storedRooms = list() + var/storageTurf + //Lore Stuff + var/ruinSpawned = FALSE + var/mysteryRoom /obj/item/hilbertshotel/Initialize() - . = ..() - //Load templates - hotelRoomTemp = new() - hotelRoomTempEmpty = new() - hotelRoomTempLore = new() - var/area/currentArea = get_area(src) - if(currentArea.type == /area/ruin/space/has_grav/hilbertresearchfacility) - ruinSpawned = TRUE + . = ..() + //Load templates + hotelRoomTemp = new() + hotelRoomTempEmpty = new() + hotelRoomTempLore = new() + var/area/currentArea = get_area(src) + if(currentArea.type == /area/ruin/space/has_grav/hilbertresearchfacility) + ruinSpawned = TRUE /obj/item/hilbertshotel/Destroy() - ejectRooms() - return ..() + ejectRooms() + return ..() /obj/item/hilbertshotel/attack(mob/living/M, mob/living/user) - if(M.mind) - to_chat(user, "You invite [M] to the hotel.") - promptAndCheckIn(M) - else - to_chat(user, "[M] is not intelligent enough to understand how to use this device!") + if(M.mind) + to_chat(user, "You invite [M] to the hotel.") + promptAndCheckIn(M) + else + to_chat(user, "[M] is not intelligent enough to understand how to use this device!") /obj/item/hilbertshotel/attack_self(mob/user) - . = ..() - promptAndCheckIn(user) + . = ..() + promptAndCheckIn(user) /obj/item/hilbertshotel/proc/promptAndCheckIn(mob/user) - var/chosenRoomNumber = input(user, "What number room will you be checking into?", "Room Number") as null|num - if(!chosenRoomNumber) - return - if(chosenRoomNumber > SHORT_REAL_LIMIT) - to_chat(user, "You have to check out the first [SHORT_REAL_LIMIT] rooms before you can go to a higher numbered one!") - return - if((chosenRoomNumber < 1) || (chosenRoomNumber != round(chosenRoomNumber))) - to_chat(user, "That is not a valid room number!") - return - if(ismob(loc)) - if(user == loc) //Not always the same as user - forceMove(get_turf(user)) - if(!storageTurf) //Blame subsystems for not allowing this to be in Initialize - if(!GLOB.hhStorageTurf) - var/datum/map_template/hilbertshotelstorage/storageTemp = new() - var/datum/turf_reservation/storageReservation = SSmapping.RequestBlockReservation(3, 3) - storageTemp.load(locate(storageReservation.bottom_left_coords[1], storageReservation.bottom_left_coords[2], storageReservation.bottom_left_coords[3])) - GLOB.hhStorageTurf = locate(storageReservation.bottom_left_coords[1]+1, storageReservation.bottom_left_coords[2]+1, storageReservation.bottom_left_coords[3]) - else - storageTurf = GLOB.hhStorageTurf - if(tryActiveRoom(chosenRoomNumber, user)) - return - if(tryStoredRoom(chosenRoomNumber, user)) - return - sendToNewRoom(chosenRoomNumber, user) + var/chosenRoomNumber = input(user, "What number room will you be checking into?", "Room Number") as null|num + if(!chosenRoomNumber) + return + if(chosenRoomNumber > SHORT_REAL_LIMIT) + to_chat(user, "You have to check out the first [SHORT_REAL_LIMIT] rooms before you can go to a higher numbered one!") + return + if((chosenRoomNumber < 1) || (chosenRoomNumber != round(chosenRoomNumber))) + to_chat(user, "That is not a valid room number!") + return + if(ismob(loc)) + if(user == loc) //Not always the same as user + forceMove(get_turf(user)) + if(!storageTurf) //Blame subsystems for not allowing this to be in Initialize + if(!GLOB.hhStorageTurf) + var/datum/map_template/hilbertshotelstorage/storageTemp = new() + var/datum/turf_reservation/storageReservation = SSmapping.RequestBlockReservation(3, 3) + storageTemp.load(locate(storageReservation.bottom_left_coords[1], storageReservation.bottom_left_coords[2], storageReservation.bottom_left_coords[3])) + GLOB.hhStorageTurf = locate(storageReservation.bottom_left_coords[1]+1, storageReservation.bottom_left_coords[2]+1, storageReservation.bottom_left_coords[3]) + else + storageTurf = GLOB.hhStorageTurf + if(tryActiveRoom(chosenRoomNumber, user)) + return + if(tryStoredRoom(chosenRoomNumber, user)) + return + sendToNewRoom(chosenRoomNumber, user) /obj/item/hilbertshotel/proc/tryActiveRoom(var/roomNumber, var/mob/user) - if(activeRooms["[roomNumber]"]) - var/datum/turf_reservation/roomReservation = activeRooms["[roomNumber]"] - do_sparks(3, FALSE, get_turf(user)) - user.forceMove(locate(roomReservation.bottom_left_coords[1] + hotelRoomTemp.landingZoneRelativeX, roomReservation.bottom_left_coords[2] + hotelRoomTemp.landingZoneRelativeY, roomReservation.bottom_left_coords[3])) - return TRUE - else - return FALSE + if(activeRooms["[roomNumber]"]) + var/datum/turf_reservation/roomReservation = activeRooms["[roomNumber]"] + do_sparks(3, FALSE, get_turf(user)) + user.forceMove(locate(roomReservation.bottom_left_coords[1] + hotelRoomTemp.landingZoneRelativeX, roomReservation.bottom_left_coords[2] + hotelRoomTemp.landingZoneRelativeY, roomReservation.bottom_left_coords[3])) + return TRUE + else + return FALSE /obj/item/hilbertshotel/proc/tryStoredRoom(var/roomNumber, var/mob/user) - if(storedRooms["[roomNumber]"]) - var/datum/turf_reservation/roomReservation = SSmapping.RequestBlockReservation(hotelRoomTemp.width, hotelRoomTemp.height) - hotelRoomTempEmpty.load(locate(roomReservation.bottom_left_coords[1], roomReservation.bottom_left_coords[2], roomReservation.bottom_left_coords[3])) - var/turfNumber = 1 - for(var/i=0, iAs the sphere breaks apart, you're suddenly ejected into the depths of space!") - var/max = world.maxx-TRANSITIONEDGE - var/min = 1+TRANSITIONEDGE - var/list/possible_transtitons = list() - for(var/AZ in SSmapping.z_list) - var/datum/space_level/D = AZ - if (D.linkage == CROSSLINKED) - possible_transtitons += D.z_value - var/_z = pick(possible_transtitons) - var/_x = rand(min,max) - var/_y = rand(min,max) - var/turf/T = locate(_x, _y, _z) - A.forceMove(T) - qdel(room) + if(activeRooms.len) + for(var/x in activeRooms) + var/datum/turf_reservation/room = activeRooms[x] + for(var/i=0, iAs the sphere breaks apart, you're suddenly ejected into the depths of space!") + var/max = world.maxx-TRANSITIONEDGE + var/min = 1+TRANSITIONEDGE + var/list/possible_transtitons = list() + for(var/AZ in SSmapping.z_list) + var/datum/space_level/D = AZ + if (D.linkage == CROSSLINKED) + possible_transtitons += D.z_value + var/_z = pick(possible_transtitons) + var/_x = rand(min,max) + var/_y = rand(min,max) + var/turf/T = locate(_x, _y, _z) + A.forceMove(T) + qdel(room) - if(storedRooms.len) - for(var/x in storedRooms) - var/list/atomList = storedRooms[x] - for(var/atom/movable/A in atomList) - var/max = world.maxx-TRANSITIONEDGE - var/min = 1+TRANSITIONEDGE - var/list/possible_transtitons = list() - for(var/AZ in SSmapping.z_list) - var/datum/space_level/D = AZ - if (D.linkage == CROSSLINKED) - possible_transtitons += D.z_value - var/_z = pick(possible_transtitons) - var/_x = rand(min,max) - var/_y = rand(min,max) - var/turf/T = locate(_x, _y, _z) - A.forceMove(T) + if(storedRooms.len) + for(var/x in storedRooms) + var/list/atomList = storedRooms[x] + for(var/atom/movable/A in atomList) + var/max = world.maxx-TRANSITIONEDGE + var/min = 1+TRANSITIONEDGE + var/list/possible_transtitons = list() + for(var/AZ in SSmapping.z_list) + var/datum/space_level/D = AZ + if (D.linkage == CROSSLINKED) + possible_transtitons += D.z_value + var/_z = pick(possible_transtitons) + var/_x = rand(min,max) + var/_y = rand(min,max) + var/turf/T = locate(_x, _y, _z) + A.forceMove(T) //Template Stuff /datum/map_template/hilbertshotel - name = "Hilbert's Hotel Room" - mappath = '_maps/templates/hilbertshotel.dmm' - var/landingZoneRelativeX = 2 - var/landingZoneRelativeY = 8 + name = "Hilbert's Hotel Room" + mappath = '_maps/templates/hilbertshotel.dmm' + var/landingZoneRelativeX = 2 + var/landingZoneRelativeY = 8 /datum/map_template/hilbertshotel/empty - name = "Empty Hilbert's Hotel Room" - mappath = '_maps/templates/hilbertshotelempty.dmm' + name = "Empty Hilbert's Hotel Room" + mappath = '_maps/templates/hilbertshotelempty.dmm' /datum/map_template/hilbertshotel/lore - name = "Doctor Hilbert's Deathbed" - mappath = '_maps/templates/hilbertshotellore.dmm' + name = "Doctor Hilbert's Deathbed" + mappath = '_maps/templates/hilbertshotellore.dmm' /datum/map_template/hilbertshotelstorage - name = "Hilbert's Hotel Storage" - mappath = '_maps/templates/hilbertshotelstorage.dmm' + name = "Hilbert's Hotel Storage" + mappath = '_maps/templates/hilbertshotelstorage.dmm' //Turfs and Areas @@ -201,329 +201,329 @@ GLOBAL_VAR_INIT(hhmysteryRoomNumber, 1337) explosion_block = INFINITY /turf/open/indestructible/hotelwood - desc = "Stylish dark wood with extra reinforcement. Secured firmly to the floor to prevent tampering." - icon_state = "wood" - footstep = FOOTSTEP_WOOD - tiled_dirt = FALSE + desc = "Stylish dark wood with extra reinforcement. Secured firmly to the floor to prevent tampering." + icon_state = "wood" + footstep = FOOTSTEP_WOOD + tiled_dirt = FALSE /turf/open/indestructible/hoteltile - desc = "Smooth tile with extra reinforcement. Secured firmly to the floor to prevent tampering." - icon_state = "showroomfloor" - footstep = FOOTSTEP_FLOOR - tiled_dirt = FALSE + desc = "Smooth tile with extra reinforcement. Secured firmly to the floor to prevent tampering." + icon_state = "showroomfloor" + footstep = FOOTSTEP_FLOOR + tiled_dirt = FALSE /turf/open/space/bluespace - name = "\proper bluespace hyperzone" - icon_state = "bluespace" - baseturfs = /turf/open/space/bluespace - flags_1 = NOJAUNT_1 - explosion_block = INFINITY - var/obj/item/hilbertshotel/parentSphere + name = "\proper bluespace hyperzone" + icon_state = "bluespace" + baseturfs = /turf/open/space/bluespace + flags_1 = NOJAUNT_1 + explosion_block = INFINITY + var/obj/item/hilbertshotel/parentSphere /turf/open/space/bluespace/Entered(atom/movable/A) - . = ..() - A.forceMove(get_turf(parentSphere)) + . = ..() + A.forceMove(get_turf(parentSphere)) /turf/closed/indestructible/hoteldoor - name = "Hotel Door" - icon_state = "hoteldoor" - explosion_block = INFINITY - var/obj/item/hilbertshotel/parentSphere + name = "Hotel Door" + icon_state = "hoteldoor" + explosion_block = INFINITY + var/obj/item/hilbertshotel/parentSphere /turf/closed/indestructible/hoteldoor/proc/promptExit(mob/living/user) - if(!isliving(user)) - return - if(!user.mind) - return - if(!parentSphere) - to_chat(user, "The door seems to be malfunctioning and refuses to operate!") - return - if(alert(user, "Hilbert's Hotel would like to remind you that while we will do everything we can to protect the belongings you leave behind, we make no guarantees of their safety while you're gone, especially that of the health of any living creatures. With that in mind, are you ready to leave?", "Exit", "Leave", "Stay") == "Leave") - if(!user.canmove || (get_dist(get_turf(src), get_turf(user)) > 1)) //no teleporting around if they're dead or moved away during the prompt. - return - user.forceMove(get_turf(parentSphere)) - do_sparks(3, FALSE, get_turf(user)) + if(!isliving(user)) + return + if(!user.mind) + return + if(!parentSphere) + to_chat(user, "The door seems to be malfunctioning and refuses to operate!") + return + if(alert(user, "Hilbert's Hotel would like to remind you that while we will do everything we can to protect the belongings you leave behind, we make no guarantees of their safety while you're gone, especially that of the health of any living creatures. With that in mind, are you ready to leave?", "Exit", "Leave", "Stay") == "Leave") + if(!user.canmove || (get_dist(get_turf(src), get_turf(user)) > 1)) //no teleporting around if they're dead or moved away during the prompt. + return + user.forceMove(get_turf(parentSphere)) + do_sparks(3, FALSE, get_turf(user)) /turf/closed/indestructible/hoteldoor/attack_ghost(mob/dead/observer/user) - if(!isobserver(user) || !parentSphere) - return ..() - user.forceMove(get_turf(parentSphere)) + if(!isobserver(user) || !parentSphere) + return ..() + user.forceMove(get_turf(parentSphere)) //If only this could be simplified... /turf/closed/indestructible/hoteldoor/attack_tk(mob/user) - return //need to be close. + return //need to be close. /turf/closed/indestructible/hoteldoor/attack_hand(mob/user) - promptExit(user) + promptExit(user) /turf/closed/indestructible/hoteldoor/attack_animal(mob/user) - promptExit(user) + promptExit(user) /turf/closed/indestructible/hoteldoor/attack_paw(mob/user) - promptExit(user) + promptExit(user) /turf/closed/indestructible/hoteldoor/attack_hulk(mob/living/carbon/human/user, does_attack_animation) - promptExit(user) + promptExit(user) /turf/closed/indestructible/hoteldoor/attack_larva(mob/user) - promptExit(user) + promptExit(user) /turf/closed/indestructible/hoteldoor/attack_slime(mob/user) - promptExit(user) + promptExit(user) /turf/closed/indestructible/hoteldoor/attack_robot(mob/user) - if(get_dist(get_turf(src), get_turf(user)) <= 1) - promptExit(user) + if(get_dist(get_turf(src), get_turf(user)) <= 1) + promptExit(user) /turf/closed/indestructible/hoteldoor/AltClick(mob/user) - . = ..() - if(get_dist(get_turf(src), get_turf(user)) <= 1) - to_chat(user, "You peak through the door's bluespace peephole...") - user.reset_perspective(parentSphere) - user.set_machine(src) - var/datum/action/peepholeCancel/PHC = new - user.overlay_fullscreen("remote_view", /obj/screen/fullscreen/impaired, 1) - PHC.Grant(user) + . = ..() + if(get_dist(get_turf(src), get_turf(user)) <= 1) + to_chat(user, "You peak through the door's bluespace peephole...") + user.reset_perspective(parentSphere) + user.set_machine(src) + var/datum/action/peepholeCancel/PHC = new + user.overlay_fullscreen("remote_view", /obj/screen/fullscreen/impaired, 1) + PHC.Grant(user) /turf/closed/indestructible/hoteldoor/check_eye(mob/user) - if(get_dist(get_turf(src), get_turf(user)) >= 2) - user.unset_machine() - for(var/datum/action/peepholeCancel/PHC in user.actions) - PHC.Trigger() + if(get_dist(get_turf(src), get_turf(user)) >= 2) + user.unset_machine() + for(var/datum/action/peepholeCancel/PHC in user.actions) + PHC.Trigger() /datum/action/peepholeCancel - name = "Cancel View" - desc = "Stop looking through the bluespace peephole." - button_icon_state = "cancel_peephole" + name = "Cancel View" + desc = "Stop looking through the bluespace peephole." + button_icon_state = "cancel_peephole" /datum/action/peepholeCancel/Trigger() - . = ..() - to_chat(owner, "You move away from the peephole.") - owner.reset_perspective() - owner.clear_fullscreen("remote_view", 0) - qdel(src) + . = ..() + to_chat(owner, "You move away from the peephole.") + owner.reset_perspective() + owner.clear_fullscreen("remote_view", 0) + qdel(src) /area/hilbertshotel - name = "Hilbert's Hotel Room" - icon_state = "hilbertshotel" - requires_power = FALSE - has_gravity = TRUE - noteleport = TRUE - hidden = TRUE - unique = FALSE - dynamic_lighting = DYNAMIC_LIGHTING_FORCED - ambientsounds = list('sound/ambience/servicebell.ogg') - var/roomnumber = 0 - var/obj/item/hilbertshotel/parentSphere - var/datum/turf_reservation/reservation - var/turf/storageTurf + name = "Hilbert's Hotel Room" + icon_state = "hilbertshotel" + requires_power = FALSE + has_gravity = TRUE + noteleport = TRUE + hidden = TRUE + unique = FALSE + dynamic_lighting = DYNAMIC_LIGHTING_FORCED + ambientsounds = list('sound/ambience/servicebell.ogg') + var/roomnumber = 0 + var/obj/item/hilbertshotel/parentSphere + var/datum/turf_reservation/reservation + var/turf/storageTurf /area/hilbertshotel/Entered(atom/movable/AM) - . = ..() - if(istype(AM, /obj/item/hilbertshotel)) - relocate(AM) - var/list/obj/item/hilbertshotel/hotels = AM.GetAllContents(/obj/item/hilbertshotel) - for(var/obj/item/hilbertshotel/H in hotels) - if(parentSphere == H) - relocate(H) + . = ..() + if(istype(AM, /obj/item/hilbertshotel)) + relocate(AM) + var/list/obj/item/hilbertshotel/hotels = AM.GetAllContents(/obj/item/hilbertshotel) + for(var/obj/item/hilbertshotel/H in hotels) + if(parentSphere == H) + relocate(H) /area/hilbertshotel/proc/relocate(obj/item/hilbertshotel/H) - if(prob(0.135685)) //Because screw you - qdel(H) - return - var/turf/targetturf = find_safe_turf() - if(!targetturf) - if(GLOB.blobstart.len > 0) - targetturf = get_turf(pick(GLOB.blobstart)) - else - CRASH("Unable to find a blobstart landmark") - var/turf/T = get_turf(H) - var/area/A = T.loc - log_game("[H] entered itself. Moving it to [loc_name(targetturf)].") - message_admins("[H] entered itself. Moving it to [ADMIN_VERBOSEJMP(targetturf)].") - for(var/mob/M in A) - to_chat(M, "[H] almost implodes in upon itself, but quickly rebounds, shooting off into a random point in space!") - H.forceMove(targetturf) + if(prob(0.135685)) //Because screw you + qdel(H) + return + var/turf/targetturf = find_safe_turf() + if(!targetturf) + if(GLOB.blobstart.len > 0) + targetturf = get_turf(pick(GLOB.blobstart)) + else + CRASH("Unable to find a blobstart landmark") + var/turf/T = get_turf(H) + var/area/A = T.loc + log_game("[H] entered itself. Moving it to [loc_name(targetturf)].") + message_admins("[H] entered itself. Moving it to [ADMIN_VERBOSEJMP(targetturf)].") + for(var/mob/M in A) + to_chat(M, "[H] almost implodes in upon itself, but quickly rebounds, shooting off into a random point in space!") + H.forceMove(targetturf) /area/hilbertshotel/Exited(atom/movable/AM) - . = ..() - if(ismob(AM)) - var/mob/M = AM - if(M.mind) - var/stillPopulated = FALSE - var/list/currentLivingMobs = GetAllContents(/mob/living) //Got to catch anyone hiding in anything - for(var/mob/living/L in currentLivingMobs) //Check to see if theres any sentient mobs left. - if(L.mind) - stillPopulated = TRUE - break - if(!stillPopulated) - storeRoom() + . = ..() + if(ismob(AM)) + var/mob/M = AM + if(M.mind) + var/stillPopulated = FALSE + var/list/currentLivingMobs = GetAllContents(/mob/living) //Got to catch anyone hiding in anything + for(var/mob/living/L in currentLivingMobs) //Check to see if theres any sentient mobs left. + if(L.mind) + stillPopulated = TRUE + break + if(!stillPopulated) + storeRoom() /area/hilbertshotel/proc/storeRoom() - var/roomSize = (reservation.top_right_coords[1]-reservation.bottom_left_coords[1]+1)*(reservation.top_right_coords[2]-reservation.bottom_left_coords[2]+1) - var/storage[roomSize] - var/turfNumber = 1 - var/obj/item/abstracthotelstorage/storageObj = new(storageTurf) - storageObj.roomNumber = roomnumber - storageObj.parentSphere = parentSphere - storageObj.name = "Room [roomnumber] Storage" - for(var/i=0, i

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