diff --git a/baystation12.dme b/baystation12.dme index 2e0db0b4a20..5d40cf3cafc 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1368,6 +1368,7 @@ #include "code\modules\nano\interaction\default.dm" #include "code\modules\nano\interaction\inventory.dm" #include "code\modules\nano\interaction\inventory_deep.dm" +#include "code\modules\nano\interaction\outside.dm" #include "code\modules\nano\interaction\physical.dm" #include "code\modules\nano\interaction\self.dm" #include "code\modules\nano\interaction\zlevel.dm" diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 05b71733238..7a707e3057e 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -1,155 +1,3 @@ -///////////////////////////////////////// -// SLEEPER CONSOLE -///////////////////////////////////////// - -/obj/machinery/sleep_console - name = "Sleeper Console" - icon = 'icons/obj/Cryogenic2.dmi' - icon_state = "sleeperconsole" - var/obj/machinery/sleeper/connected = null - anchored = 1 //About time someone fixed this. - density = 1 - var/orient = "LEFT" // "RIGHT" changes the dir suffix to "-r" - - use_power = 1 - idle_power_usage = 40 - interact_offline = 1 - -/obj/machinery/sleep_console/process() - if(stat & (NOPOWER|BROKEN)) - return - src.updateUsrDialog() - return - -/obj/machinery/sleep_console/ex_act(severity) - switch(severity) - if(1.0) - //SN src = null - qdel(src) - return - if(2.0) - if (prob(50)) - //SN src = null - qdel(src) - return - else - return - -/obj/machinery/sleep_console/New() - ..() - spawn( 5 ) - if(orient == "RIGHT") - icon_state = "sleeperconsole-r" - src.connected = locate(/obj/machinery/sleeper, get_step(src, EAST)) - else - src.connected = locate(/obj/machinery/sleeper, get_step(src, WEST)) - - return - return - -/obj/machinery/sleep_console/attack_ai(mob/user as mob) - return src.attack_hand(user) - -/obj/machinery/sleep_console/attack_hand(mob/user as mob) - if(..()) - return - if(stat & (NOPOWER|BROKEN)) - return - var/dat = "" - if (!src.connected || (connected.stat & (NOPOWER|BROKEN))) - dat += "This console is not connected to a sleeper or the sleeper is non-functional." - else - var/mob/living/occupant = src.connected.occupant - dat += "Occupant Statistics:
" - if (occupant) - var/t1 - switch(occupant.stat) - if(0) - t1 = "Conscious" - if(1) - t1 = "Unconscious" - if(2) - t1 = "*dead*" - else - dat += text("[]\tHealth %: [] ([])
", (occupant.health > 50 ? "" : ""), occupant.health, t1) - if(iscarbon(occupant)) - var/mob/living/carbon/C = occupant - dat += text("[]\t-Pulse, bpm: []
", (C.pulse == PULSE_NONE || C.pulse == PULSE_THREADY ? "" : ""), C.get_pulse(GETPULSE_TOOL)) - dat += text("[]\t-Brute Damage %: []
", (occupant.getBruteLoss() < 60 ? "" : ""), occupant.getBruteLoss()) - dat += text("[]\t-Respiratory Damage %: []
", (occupant.getOxyLoss() < 60 ? "" : ""), occupant.getOxyLoss()) - dat += text("[]\t-Toxin Content %: []
", (occupant.getToxLoss() < 60 ? "" : ""), occupant.getToxLoss()) - dat += text("[]\t-Burn Severity %: []
", (occupant.getFireLoss() < 60 ? "" : ""), occupant.getFireLoss()) - dat += text("
Paralysis Summary %: [] ([] seconds left!)
", occupant.paralysis, round(occupant.paralysis / 4)) - if(occupant.reagents) - for(var/chemical in connected.available_chemicals) - dat += "[connected.available_chemicals[chemical]]: [occupant.reagents.get_reagent_amount(chemical)] units
" - dat += "Refresh Meter Readings
" - if(src.connected.beaker) - dat += "
Remove Beaker
" - if(src.connected.filtering) - dat += "Stop Dialysis
" - dat += text("Output Beaker has [] units of free space remaining

", src.connected.beaker.reagents.maximum_volume - src.connected.beaker.reagents.total_volume) - else - dat += "
Start Dialysis
" - dat += text("Output Beaker has [] units of free space remaining

", src.connected.beaker.reagents.maximum_volume - src.connected.beaker.reagents.total_volume) - else - dat += "
No Dialysis Output Beaker is present.

" - - for(var/chemical in connected.available_chemicals) - dat += "Inject [connected.available_chemicals[chemical]]: " - for(var/amount in connected.amounts) - dat += "[amount] units
" - - - dat += "
Eject Patient" - else - dat += "The sleeper is empty." - dat += text("

Close", user) - user << browse(dat, "window=sleeper;size=400x500") - onclose(user, "sleeper") - return - -/obj/machinery/sleep_console/Topic(href, href_list) - if(..()) - return - if ((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai))) - usr.set_machine(src) - if (href_list["chemical"]) - if (src.connected) - if (src.connected.occupant) - if (src.connected.occupant.stat == DEAD) - usr << "This person has no life for to preserve anymore. Take them to a department capable of reanimating them." - else if(src.connected.occupant.health > 0 || href_list["chemical"] == "inaprovaline") - src.connected.inject_chemical(usr,href_list["chemical"],text2num(href_list["amount"])) - else - usr << "This person is not in good enough condition for sleepers to be effective! Use another means of treatment, such as cryogenics!" - src.updateUsrDialog() - if (href_list["refresh"]) - src.updateUsrDialog() - if (href_list["removebeaker"]) - src.connected.remove_beaker() - src.updateUsrDialog() - if (href_list["togglefilter"]) - src.connected.toggle_filter() - src.updateUsrDialog() - if (href_list["ejectify"]) - src.connected.eject() - src.updateUsrDialog() - src.add_fingerprint(usr) - return - - - - - - - - - -///////////////////////////////////////// -// THE SLEEPER ITSELF -///////////////////////////////////////// - /obj/machinery/sleeper name = "Sleeper" desc = "A fancy bed with built-in injectors, a dialysis machine, and a limited health scanner." @@ -159,8 +7,7 @@ anchored = 1 var/orient = "LEFT" // "RIGHT" changes the dir suffix to "-r" var/mob/living/carbon/human/occupant = null - var/available_chemicals = list("inaprovaline" = "Inaprovaline", "stoxin" = "Soporific", "paracetamol" = "Paracetamol", "anti_toxin" = "Dylovene", "dexalin" = "Dexalin") - var/amounts = list(5, 10) + var/list/available_chemicals = list("inaprovaline" = "Inaprovaline", "stoxin" = "Soporific", "paracetamol" = "Paracetamol", "anti_toxin" = "Dylovene", "dexalin" = "Dexalin") var/obj/item/weapon/reagent_containers/glass/beaker = null var/filtering = 0 @@ -168,269 +15,261 @@ idle_power_usage = 15 active_power_usage = 200 //builtin health analyzer, dialysis machine, injectors. - New() - ..() - beaker = new /obj/item/weapon/reagent_containers/glass/beaker/large(src) - spawn( 5 ) - if(orient == "RIGHT") - icon_state = "sleeper_0-r" - return +/obj/machinery/sleeper/New() + ..() + beaker = new /obj/item/weapon/reagent_containers/glass/beaker/large(src) + spawn(5) + update_icon() + +/obj/machinery/sleeper/process() + if(stat & (NOPOWER|BROKEN)) return - process() - if (stat & (NOPOWER|BROKEN)) - return - - if(filtering > 0) - if(beaker) - if(beaker.reagents.total_volume < beaker.reagents.maximum_volume) - var/pumped = 0 - for(var/datum/reagent/x in src.occupant.reagents.reagent_list) - src.occupant.reagents.trans_to_obj(beaker, 3) - pumped++ - if (ishuman(src.occupant)) - src.occupant.vessel.trans_to_obj(beaker, pumped + 1) - src.updateUsrDialog() - return - - - blob_act() - if(prob(75)) - for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc - A.blob_act() - qdel(src) - return - - attackby(var/obj/item/weapon/G as obj, var/mob/user as mob) - if(istype(G, /obj/item/weapon/reagent_containers/glass)) - if(!beaker) - beaker = G - user.drop_item() - G.loc = src - user.visible_message("[user] adds \a [G] to \the [src]!", "You add \a [G] to \the [src]!") - src.updateUsrDialog() - return - else - user << "The sleeper has a beaker already." - return - - else if(istype(G, /obj/item/weapon/grab)) - if(!ismob(G:affecting)) - return - - if(src.occupant) - user << "The sleeper is already occupied!" - return - - for(var/mob/living/carbon/slime/M in range(1,G:affecting)) - if(M.Victim == G:affecting) - usr << "[G:affecting.name] will not fit into the sleeper because they have a slime latched onto their head." - return - - visible_message("[user] starts putting [G:affecting:name] into the sleeper.", 3) - - if(do_after(user, 20)) - if(src.occupant) - user << "The sleeper is already occupied!" - return - if(!G || !G:affecting) return - var/mob/M = G:affecting - if(M.client) - M.client.perspective = EYE_PERSPECTIVE - M.client.eye = src - M.loc = src - update_use_power(2) - src.occupant = M - src.icon_state = "sleeper_1" - if(orient == "RIGHT") - icon_state = "sleeper_1-r" - - src.add_fingerprint(user) - qdel(G) - return - return - - - ex_act(severity) - if(filtering) - toggle_filter() - switch(severity) - if(1.0) - for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc - ex_act(severity) - qdel(src) - return - if(2.0) - if(prob(50)) - for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc - ex_act(severity) - qdel(src) - return - if(3.0) - if(prob(25)) - for(var/atom/movable/A as mob|obj in src) - A.loc = src.loc - ex_act(severity) - qdel(src) - return - return - emp_act(severity) - if(filtering) - toggle_filter() - if(stat & (BROKEN|NOPOWER)) - ..(severity) - return - if(occupant) - go_out() - ..(severity) - - alter_health(mob/living/M as mob) - if (M.health > 0) - if (M.getOxyLoss() >= 10) - var/amount = max(0.15, 1) - M.adjustOxyLoss(-amount) - else - M.adjustOxyLoss(-12) - M.updatehealth() - M.AdjustParalysis(-4) - M.AdjustWeakened(-4) - M.AdjustStunned(-4) - M.Paralyse(1) - M.Weaken(1) - M.Stun(1) - if (M:reagents.get_reagent_amount("inaprovaline") < 5) - M:reagents.add_reagent("inaprovaline", 5) - return - proc/toggle_filter() - if(!src.occupant) - filtering = 0 - return - if(filtering) - filtering = 0 - else - filtering = 1 - - proc/go_out() - if(filtering) - toggle_filter() - if(!src.occupant) - return - if(src.occupant.client) - src.occupant.client.eye = src.occupant.client.mob - src.occupant.client.perspective = MOB_PERSPECTIVE - src.occupant.loc = src.loc - src.occupant = null - update_use_power(1) - if(orient == "RIGHT") - icon_state = "sleeper_0-r" - return - - - proc/inject_chemical(mob/living/user as mob, chemical, amount) - if (stat & (BROKEN|NOPOWER)) - return - - if(src.occupant && src.occupant.reagents) - if(src.occupant.reagents.get_reagent_amount(chemical) + amount <= 20) - use_power(amount * CHEM_SYNTH_ENERGY) - src.occupant.reagents.add_reagent(chemical, amount) - user << "Occupant now has [src.occupant.reagents.get_reagent_amount(chemical)] units of [available_chemicals[chemical]] in his/her bloodstream." - return - user << "There's no occupant in the sleeper or the subject has too many chemicals!" - return - - - proc/check(mob/living/user as mob) - if(src.occupant) - user << text("Occupant ([]) Statistics:", src.occupant) - var/t1 - switch(src.occupant.stat) - if(0.0) - t1 = "Conscious" - if(1.0) - t1 = "Unconscious" - if(2.0) - t1 = "*dead*" - else - user << text("\t Health %: [] ([])", (src.occupant.health > 50 ? "notice" : "warning"), src.occupant.health, t1) - user << text("\t -Core Temperature: []°C ([]°F)", (src.occupant.bodytemperature > 50 ? "notice" : "warning"), src.occupant.bodytemperature-T0C, src.occupant.bodytemperature*1.8-459.67) - user << text("\t -Brute Damage %: []", (src.occupant.getBruteLoss() < 60 ? "notice" : "warning"), src.occupant.getBruteLoss()) - user << text("\t -Respiratory Damage %: []", (src.occupant.getOxyLoss() < 60 ? "notice" : "warning"), src.occupant.getOxyLoss()) - user << text("\t -Toxin Content %: []", (src.occupant.getToxLoss() < 60 ? "notice" : "warning"), src.occupant.getToxLoss()) - user << text("\t -Burn Severity %: []", (src.occupant.getFireLoss() < 60 ? "notice" : "warning"), src.occupant.getFireLoss()) - user << "Expected time till occupant can safely awake: (note: If health is below 20% these times are inaccurate)" - user << text("\t [] second\s (if around 1 or 2 the sleeper is keeping them asleep.)", src.occupant.paralysis / 5) - if(src.beaker) - user << text("\t Dialysis Output Beaker has [] of free space remaining.", src.beaker.reagents.maximum_volume - src.beaker.reagents.total_volume) - else - user << "No Dialysis Output Beaker loaded." - else - user << "There is no one inside!" - return - - - verb/eject() - set name = "Eject Sleeper" - set category = "Object" - set src in oview(1) - if(usr.stat != 0) - return - if(orient == "RIGHT") - icon_state = "sleeper_0-r" - src.icon_state = "sleeper_0" - src.go_out() - add_fingerprint(usr) - return - - verb/remove_beaker() - set name = "Remove Beaker" - set category = "Object" - set src in oview(1) - if(usr.stat != 0) - return + if(filtering > 0) if(beaker) - filtering = 0 - beaker.loc = usr.loc - beaker = null - add_fingerprint(usr) + if(beaker.reagents.total_volume < beaker.reagents.maximum_volume) + var/pumped = 0 + for(var/datum/reagent/x in occupant.reagents.reagent_list) + occupant.reagents.trans_to_obj(beaker, 3) + pumped++ + if(ishuman(occupant)) + occupant.vessel.trans_to_obj(beaker, pumped + 1) + else + toggle_filter() + +/obj/machinery/sleeper/update_icon() + icon_state = "sleeper_[occupant ? "1" : "0"][orient == "RIGHT" ? "-r" : ""]" + +/obj/machinery/sleeper/attack_hand(var/mob/user) + if(..()) return - verb/move_inside() - set name = "Enter Sleeper" - set category = "Object" - set src in oview(1) + ui_interact(user) - if(usr.stat != 0 || !(ishuman(usr) || issmall(usr))) - return +/obj/machinery/sleeper/ui_interact(var/mob/user, var/ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = outside_state) + var/data[0] - if(src.occupant) - usr << "The sleeper is already occupied!" - return + data["power"] = stat & (NOPOWER|BROKEN) ? 0 : 1 - for(var/mob/living/carbon/slime/M in range(1,usr)) - if(M.Victim == usr) - usr << "You're too busy getting your life sucked out of you." - return - visible_message("[usr] starts climbing into the sleeper.", 3) - if(do_after(usr, 20)) - if(src.occupant) - usr << "The sleeper is already occupied!" - return - usr.stop_pulling() - usr.client.perspective = EYE_PERSPECTIVE - usr.client.eye = src - usr.loc = src - update_use_power(2) - src.occupant = usr - src.icon_state = "sleeper_1" - if(orient == "RIGHT") - icon_state = "sleeper_1-r" + var/list/reagents = list() + for(var/T in available_chemicals) + var/list/reagent = list() + reagent["id"] = T + reagent["name"] = available_chemicals[T] + if(occupant) + reagent["amount"] = occupant.reagents.get_reagent_amount(T) + reagents += list(reagent) + data["reagents"] = reagents.Copy() - for(var/obj/O in src) - qdel(O) - src.add_fingerprint(usr) - return + if(occupant) + data["occupant"] = 1 + switch(occupant.stat) + if(CONSCIOUS) + data["stat"] = "Conscious" + if(UNCONSCIOUS) + data["stat"] = "Unconscious" + if(DEAD) + data["stat"] = "dead" + data["health"] = occupant.health + if(iscarbon(occupant)) + var/mob/living/carbon/C = occupant + data["pulse"] = C.get_pulse(GETPULSE_TOOL) + data["brute"] = occupant.getBruteLoss() + data["burn"] = occupant.getFireLoss() + data["oxy"] = occupant.getOxyLoss() + data["tox"] = occupant.getToxLoss() + else + data["occupant"] = 0 + if(beaker) + data["beaker"] = beaker.reagents.get_free_space() + else + data["beaker"] = -1 + data["filtering"] = filtering + + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) + if(!ui) + ui = new(user, src, ui_key, "sleeper.tmpl", "Sleeper UI", 600, 600, state = state) + ui.set_initial_data(data) + ui.open() + ui.set_auto_update(1) + +/* +[17:55] GinjaNinja32 https://github.com/Baystation12/Baystation12/tree/dev-freeze/code/modules/nano/interaction +[17:55] NanoTrasen_Inc Ginja: Baystation12/code/modules/nano/interaction at dev-freeze · Baystation12/Baystation12 · GitHub +[17:55] PsiOmegaDelta Hmm +[17:55] Kelenius I suppose I could send a parameter to NanoUI and blank out the UI +[17:56] GinjaNinja32 use a topic state +[17:56] Kelenius blinks cluelessly +[17:56] GinjaNinja32 look at what I just linked +[17:57] PsiOmegaDelta What you probably want to do is extend nano/interaction/default.dm +[17:57] PsiOmegaDelta And override mob/living/default_can_use_topic() +[17:57] PsiOmegaDelta Have it first check if src is inside src_object, if so return STATUS_CLOSE +[17:58] PsiOmegaDelta Otherwise, return ..() +[17:57] PsiOmegaDelta What you probably want to do is extend nano/interaction/default.dm +[17:57] PsiOmegaDelta And override mob/living/default_can_use_topic() +[17:57] PsiOmegaDelta Have it first check if src is inside src_object, if so return STATUS_CLOSE +[17:58] PsiOmegaDelta Otherwise, return ..() +[17:58] Azlier if you dont what i say ill start quoting kurt vonnegut and the art of war +[17:59] PsiOmegaDelta Then, at your ui = new(...) line +[17:59] PsiOmegaDelta Add the argument: state = new your_new_state() +[17:59] PsiOmegaDelta You can make it global as with the other state handlers tho + + +[18:04] Kelenius So uh, I need return 1 at the end of Topic? +[18:04] Kelenius Or all returns in Topic must return 1? +[18:04] GinjaNinja32 return 1 for any call that did something that requires a UI update +[18:04] GinjaNinja32 well, anything that did something, really +[18:04] Kelenius Do I need to up nanomanager.update_uis(src) if I do return 1? +[18:04] GinjaNinja32 no +[18:05] Kelenius Where do I need it? +[18:05] GinjaNinja32 nowhere +[18:05] Kelenius How about process()? +[18:05] GinjaNinja32 unless a change comes through that's not from Topic() that needs an update sent through +[18:05] Kelenius Because a sleeper needs to update every tick +[18:06] GinjaNinja32 nanoui will call ui_interact() every tick +[18:06] PsiOmegaDelta If you've set ui.set_auto_update(1) it will update every tick +[18:06] PsiOmegaDelta Or as often as the NanoUI process runs anyway +[18:06] Kelenius Where do I need to set it? In UI creation? +[18:06] Mloc yes +[18:06] Mloc I told you this +[18:06] Mloc +[18:06] PsiOmegaDelta You basically have the lines +[18:06] PsiOmegaDelta ui = new(...) +[18:06] PsiOmegaDelta ui.set_initial_data(data) +[18:07] PsiOmegaDelta ui.open() +[18:07] PsiOmegaDelta ui.set_auto_update(1) +[18:07] PsiOmegaDelta Auto-refresh go +[18:07] Mloc with an if(!ui) first +*/ + +/obj/machinery/sleeper/Topic(href, href_list) + if(..()) return + + if(usr == occupant) + usr << "You can't reach the controls from the inside." + return + + add_fingerprint(usr) + + if(href_list["eject"]) + go_out() + if(href_list["beaker"]) + remove_beaker() + if(href_list["filter"]) + toggle_filter() + if(href_list["chemical"] && href_list["amount"]) + if(occupant && occupant.stat != DEAD) + if(href_list["chemical"] in available_chemicals) // Your hacks are bad and you should feel bad + inject_chemical(usr, href_list["chemical"], text2num(href_list["amount"])) + + return 1 + +/obj/machinery/sleeper/attack_ai(var/mob/user) + return attack_hand(user) + +/obj/machinery/sleeper/attackby(var/obj/item/I, var/mob/user) + add_fingerprint(user) + if(istype(I, /obj/item/weapon/reagent_containers/glass)) + if(!beaker) + beaker = I + user.drop_item() + I.loc = src + user.visible_message("[user] adds \a [I] to \the [src].", "You add \a [I] to \the [src].") + else + user << "\The [src] has a beaker already." + return + +/obj/machinery/sleeper/MouseDrop_T(var/mob/target, var/mob/user) + if(user.stat || user.lying || !Adjacent(user) || !target.Adjacent(user)|| !ishuman(target)) + return + go_in(target, user) + +/obj/machinery/sleeper/relaymove(var/mob/user) + ..() + go_out() + +/obj/machinery/sleeper/emp_act(var/severity) + if(filtering) + toggle_filter() + + if(stat & (BROKEN|NOPOWER)) + ..(severity) + return + + if(occupant) + go_out() + + ..(severity) + +/obj/machinery/sleeper/proc/toggle_filter() + if(!occupant || !beaker) + filtering = 0 + return + if(filtering) + filtering = 0 + else + filtering = 1 + +/obj/machinery/sleeper/proc/go_in(var/mob/M, var/mob/user) + if(!M) + return + if(stat & (BROKEN|NOPOWER)) + return + if(occupant) + user << "The sleeper is already occupied." + return + + if(M == user) + visible_message("[user] starts climbing into \the [src].") + else + visible_message("[user] starts putting [M] into \the [src].") + + if(do_after(user, 20)) + if(occupant) + user << "The sleeper is already occupied." + return + M.stop_pulling() + if(M.client) + M.client.perspective = EYE_PERSPECTIVE + M.client.eye = src + M.loc = src + update_use_power(2) + occupant = M + update_icon() + +/obj/machinery/sleeper/proc/go_out() + if(!occupant) + return + if(occupant.client) + occupant.client.eye = occupant.client.mob + occupant.client.perspective = MOB_PERSPECTIVE + occupant.loc = loc + occupant = null + for(var/atom/movable/A in src) // In case an object was dropped inside or something + if(A == beaker) + continue + A.loc = loc + update_use_power(1) + update_icon() + toggle_filter() + +/obj/machinery/sleeper/proc/remove_beaker() + if(beaker) + beaker.loc = usr.loc + beaker = null + toggle_filter() + +/obj/machinery/sleeper/proc/inject_chemical(var/mob/living/user, var/chemical, var/amount) + if(stat & (BROKEN|NOPOWER)) + return + + if(occupant && occupant.reagents) + if(occupant.reagents.get_reagent_amount(chemical) + amount <= 20) + use_power(amount * CHEM_SYNTH_ENERGY) + occupant.reagents.add_reagent(chemical, amount) + user << "Occupant now has [occupant.reagents.get_reagent_amount(chemical)] units of [available_chemicals[chemical]] in their bloodstream." + else + user << "The subject has too many chemicals." + else + user << "There's no suitable occupant in the sleeper." diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index 5ba75ab41a9..e6fcb92230f 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -712,10 +712,6 @@ M.lying = 1 ..() -/obj/machinery/bot/mulebot/alter_health() - return get_turf(src) - - // called from mob/living/carbon/human/Crossed() // when mulebot is in the same loc /obj/machinery/bot/mulebot/proc/RunOver(var/mob/living/carbon/human/H) diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 795027ea3f1..250ed847e2e 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -118,10 +118,6 @@ if(istype(M) && M.client && M.machine == src) src.attack_self(M) - -/obj/proc/alter_health() - return 1 - /obj/proc/hide(h) return diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 68aeecd9127..91b19ae0879 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -53,11 +53,6 @@ else user << "It is full." - - -/obj/structure/closet/alter_health() - return get_turf(src) - /obj/structure/closet/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if(air_group || (height==0 || wall_mounted)) return 1 return (!density) diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 083d33259b7..2cb282fa0a1 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -60,9 +60,6 @@ return return -/obj/structure/morgue/alter_health() - return src.loc - /obj/structure/morgue/attack_hand(mob/user as mob) if (src.connected) for(var/atom/movable/A as mob|obj in src.connected.loc) @@ -230,9 +227,6 @@ return return -/obj/structure/crematorium/alter_health() - return src.loc - /obj/structure/crematorium/attack_hand(mob/user as mob) // if (cremating) AWW MAN! THIS WOULD BE SO MUCH MORE FUN ... TO WATCH // user.show_message("Uh-oh, that was a bad idea.", 1) diff --git a/code/modules/nano/interaction/outside.dm b/code/modules/nano/interaction/outside.dm new file mode 100644 index 00000000000..9ae0e24fe01 --- /dev/null +++ b/code/modules/nano/interaction/outside.dm @@ -0,0 +1,6 @@ +/var/global/datum/topic_state/default/outside/outside_state = new() + +/datum/topic_state/default/outside/can_use_topic(var/src_object, var/mob/user) + if(user in src_object) + return STATUS_CLOSE + return ..() diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index fd1e53ae0a7..5e9866f3358 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -187,10 +187,6 @@ update() return -// can breath normally in the disposal -/obj/machinery/disposal/alter_health() - return get_turf(src) - // attempt to move while inside /obj/machinery/disposal/relaymove(mob/user as mob) if(user.stat || src.flushing) diff --git a/html/changelogs/Kelenius-ofSleepersAndNano.yml b/html/changelogs/Kelenius-ofSleepersAndNano.yml new file mode 100644 index 00000000000..6a850e99207 --- /dev/null +++ b/html/changelogs/Kelenius-ofSleepersAndNano.yml @@ -0,0 +1,37 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: N3X15 + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added a changelog editing system that should cause fewer conflicts and more accurate timestamps." + - rscdel: "Killed innocent kittens." diff --git a/icons/obj/Cryogenic2.dmi b/icons/obj/Cryogenic2.dmi index 1a524c7621c..8f060a6a0d4 100644 Binary files a/icons/obj/Cryogenic2.dmi and b/icons/obj/Cryogenic2.dmi differ diff --git a/maps/exodus-1.dmm b/maps/exodus-1.dmm index 9fbdfaa5ab8..99ed48d2efb 100644 --- a/maps/exodus-1.dmm +++ b/maps/exodus-1.dmm @@ -4627,7 +4627,6 @@ "bKY" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor,/area/hallway/primary/central_two) "bKZ" = (/obj/structure/closet/secure_closet/medical1,/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -31},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/random/medical,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bLa" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/space,/area/space) -"bLb" = (/obj/machinery/sleep_console,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bLc" = (/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "scanhide"; name = "Diagnostics Room Separation Shutters"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) "bLd" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/closet/fireaxecabinet{pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bLe" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) @@ -7516,9 +7515,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaaaaaabKvbKwbKxbKwbKyaaaaaaaaabGtbGtbMMbKAbIVbKAbMPbKCbMSbKDbKEbtCbKFbvtbKGbKHbAabKIbAabsybHHbsybAabKKbKLbKMbKNbKObAcbAabKPbKQbHLbKRbHLbHLbKSbGrbMXbGrbKWbKXbcLbKYaRpaRpaRpaJlbMZbFlbFnbNdbJmbNfbJybJxbFIbLgbLhbLibLjbHgbDEbIkbIabIzbHhbDJbDJbLobLobLobCpbNhbLqbNkbLsbLtbCpbLubLvbIxbLwbFGbLybNqbLAbLBbLCbIFbJCbLEbKbbKbbzAbRsbSLbCvbwwbLGbNtbNsbLJbNzbLLbGabLMbLNbLObLObLObLPbGdaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbLQbLRbLSbLRbKsbKtbKtbLTbLUbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLVbNAbLXbNBbLVbGsbHGbHwbGtbMcbMdbMebMfbMgbNLbNKbMjbMjbMkbtCbtCbtCbNQbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbMmbMnbMobtCbtCbtCbtCbtCbNZbtCbtCbtCaJlaJlbObaJlaKSaMpbMraJlbKZbOcbOdbGFbLdbxCbDzbLDbxCbOfbMzbMAbMBbwkbOibMDbMEbOkbMGbOlbOnbMJbMKbMLbItbJObFDbFDbOtbJObCpbMNbMObMObMObMObMObMObMObMObMObMObOxbMQbMRbMRbzAbHIbIAbHSbwwbMVbMVbMVbMWbOEbMYbMVbMVbMVbMVbMVbMVbNabNbaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymbOFbLRbLRbNebKtbKtbLTbLTbOGbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKxbNgbMsbNgbKxbIBbNjbOHbNlbNmbNnbKAbNobNpbGvbOIbNrbOJbOKbGvbNubNvbNwbNxaaaaaaaaaaaabNybOLbONbOMbNDbNCbNEbNFbNGbNHbNIbNFbNJbOQbORbNMbNNbNObNPbOTbNRbNSbNTbNUbNUbNUbNUbDtbDtbDtbDtbILbILbxCbOUbOabPebMzbMvbMubOebPubOgbOhbPvbOjbPCbPAbOmbPDbMKbOobFDbFDbNVbJObJObOobCpbMNbMObOqbOrbOsbPEbOubOvbOwbPFbMObOybOzbOAbOAbzAbOBbPGbCvbzIbPHbPKbPJbPMbPLbPVbPSbPXbPWbPYbVFbMVbPZbEnbOObOObOObOObOOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabOPbKtbOFbKtbKtbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLVbNgbNgbNgbQcbQbbKAbOSbQebQdbKAbQgbOVbOWbGvbGvbGvbGvbGvbGvbOXbOYbOZbJhaaabJjbKzbKzbKJbQjbPfbPgbPhbPfbPibNFbKUbKTbKVbNFbPmbNXbPobPpbPqbPrbPsbPtbPtbNSbQubQpbPwbPxbPybDtbNYbLbbQBbGFbGFbQDbDzbQLbxCbQMbQXbQPbRbbwkbRcbPIbwkbRdbRibRebRpbPNbMKbCpbCpbCpbCpbCpbCpbCpbCpbPObMObPPbQYbPRbOsbOsbOsbOsbRvbMObPTbLEbPUbPUbzAbBhbSLbCvbRxbQabQabRybRAbRzbRDbRBbRJbRFbRJbRMbMVbQfbRObOObQhbRWbOpbLZaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKsbKtbQlbQmbQmbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLVbNgbNgbNgbQcbQbbKAbOSbQebQdbKAbQgbOVbOWbGvbGvbGvbGvbGvbGvbOXbOYbOZbJhaaabJjbKzbKzbKJbQjbPfbPgbPhbPfbPibNFbKUbKTbKVbNFbPmbNXbPobPpbPqbPrbPsbPtbPtbNSbQubQpbPwbPxbPybDtbNYbGFbQBbGFbGFbQDbDzbQLbxCbQMbQXbQPbRbbwkbRcbPIbwkbRdbRibRebRpbPNbMKbCpbCpbCpbCpbCpbCpbCpbCpbPObMObPPbQYbPRbOsbOsbOsbOsbRvbMObPTbLEbPUbPUbzAbBhbSLbCvbRxbQabQabRybRAbRzbRDbRBbRJbRFbRJbRMbMVbQfbRObOObQhbRWbOpbLZaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKsbKtbQlbQmbQmbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKxbMsbMsbMsbKxbMabQobScbQqbQrbKAbKAbQsbQtbSgbQvbQvbQvbQvbQvbQvbQwbQxbMbaaabMhbQAbSibQCbSlbPfbQEbQGbQFbPfbNFbQIbQJbQKbNFbSrbSnbQNbQObSubQQbQRbPtbQSbPxbQTbNUbPxbPxbQUbDtbPnbGFbQVbSwbGFbPzbDzbLebRCbQZbPBbSEbSMbRGbDEbIkbSpbRdbRebRebRpbRfbMKbRgbRhbSNbRjbRkbRlbSObRnbPObMObOsbOsbRobOsbOsbOsbOsbSPbMObRqbLEbRrbRrbzAbRsbRtbRubSQbRwbSSbSRbSWbSVbTsbTgbTAbTubTNbTMbMtbREbTWbMTbRHbRIbQibMUaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRLbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaabLVbUbbRNbUkbLVbNibHGbHwbGtbGtbRQbRQbRQbGtbGtbNxbRRbRRbRSbRSbRSbRSbNwbMbaaabOCbRUbRVbUobRXbRYbRZbSabSbbSbbUqbSdbSebUwbNFbPtbPtbPtbPtbPtbUAbPtbPtbShbUGbSjbNUbPxbSkbUObDtbQHbLbbQVbSmbUPbPzbSobJAbJBbSqbRabSsbStbJzbFsbSvbIEbSxbUWbURbSAbSBbMKbRmbSDbVebRjbSfbSGbVjbRnbPObMObMObMObRobOsbOsbOsbMObMObMObSIbSJbRrbRrbzAbSKbSLbCvbzIbVkbVvbVmbRDbVybVGbVzbVVbVObWibWgbMVbQfbWkbOObSXbSYbSybODaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKtbLTbLTbLTbLTbLTbLTbTbbLTbTcbLTbLTbLTbLTbLTbKtbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaabLVbUbbRNbUkbLVbNibHGbHwbGtbGtbRQbRQbRQbGtbGtbNxbRRbRRbRSbRSbRSbRSbNwbMbaaabOCbRUbRVbUobRXbRYbRZbSabSbbSbbUqbSdbSebUwbNFbPtbPtbPtbPtbPtbUAbPtbPtbShbUGbSjbNUbPxbSkbUObDtbQHbGFbQVbSmbUPbPzbSobJAbJBbSqbRabSsbStbJzbFsbSvbIEbSxbUWbURbSAbSBbMKbRmbSDbVebRjbSfbSGbVjbRnbPObMObMObMObRobOsbOsbOsbMObMObMObSIbSJbRrbRrbzAbSKbSLbCvbzIbVkbVvbVmbRDbVybVGbVzbVVbVObWibWgbMVbQfbWkbOObSXbSYbSybODaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKtbLTbLTbLTbLTbLTbLTbTbbLTbTcbLTbLTbLTbLTbLTbKtbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabTdbKwbTebKwbTfbWoaafaaaaaabGtbPbbPabPcbGtaaabNxbTkbTlbTmbTnbTnbTnbTobMbaaabMhbTpbTqbTrbWIbPfbTtbTvbWMbTwbNFbSzbTybTzbWVbTBbTBbTBbTCbTCbTDbTEbULbPxbPxbTFbNUbNUbNUbNUbDtbDtbLfbLkbLcbDtbTJbTKbTLbJFbJEbTJbPebLlbLmbTRbTSbTJbMKbMKbMKbMKbMKbMKbXabTUbTVbRjbXcbTXbTYbRnbPObMObTZbQWbPQbXfbXebNWbNcbTZbUgbUhbUibIIbIJbzAbIKbSLbUjbwwbMVbMVbXibXnbMVbMVbMVbMVbXpbSCbVFbMVbXqbUnbOObPjbPdbPkbOOaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbUsbUsbUsbUsbUsbUsbUtbLTbUubUsbTcbLTbLTbLTbLTbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbUvbNxbNxbNxbNxbRSbXvbNwbPlaaabQkbKzbKzbQnbXxbPfbPfbUBbPfbSFbNFbUDbSHbSTbNFbSUbSUbSUbSUbSUbSUbSUbSUbUHbUIbUJbUKbUKbUMbNUbDtbUNbSZbTxbUQbYabwabUTbUUbYtbYobYwbUTbUYbUZbVabVbbUebTPbVdbYybVgbVhbVibUlbYzbUmbRjbUCbYHbUCbRnbPObMObVnbUFbVpbVqbVrbVsbVtbVubUgbzAbQybzAbzAbVwbCxbSLbCxbQzaafbnxbYSbYYblSbVBbYZbZcbZbbZebUVbMVbVHbVIbOObVJbVKbVKbwhaaLaaLaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwibLRbLRbLRbLRbLRbLRbLRbVNbLUbLTbLTbLTbLTbZibLUbKuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVPbVQbVQbVRbVSbNxbVTbRSbVUbNxaaaaaaaaaaaabNybZrbVWbVXbVZbVYbPfbNFbWabWbbNIbNFbSUbUXbVfbVcbVDbVCbVEbSUcaqcaqcaqcaqcaqbTFbWjbZsbWlbWcbWdbZubWpbxgbWrbWsbWtbWubWtbWvbWtbWwbWxbWybWzbWAbWBbWAbWCbWDbWEbWFbWGbWebZvbWfbWKbWLbZzbxVbMObxWbZBbzlbWSbWTbWhbWSbWSbRKbWWbWXbWYbWZbCxbCxbSLbCxbRPaafbnxbZLbZLbXbbZObXdbZSbZPbXgbXhbMVbVHbZUbOObOObOObOObOOaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbQmbQmbQmbQmbQmbQmbXkbLTbQlbQmbXlbLTbLTbLTbLTbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/exodus-2.dmm b/maps/exodus-2.dmm index 32323a9755c..c2e16764016 100644 --- a/maps/exodus-2.dmm +++ b/maps/exodus-2.dmm @@ -527,7 +527,7 @@ "kg" = (/obj/structure/window/shuttle{icon_state = "window12"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) "kh" = (/obj/machinery/door/airlock/hatch{name = "Infirmary"},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/centcom/evac) "ki" = (/obj/machinery/sleeper,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) -"kj" = (/obj/machinery/sleep_console,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) +"kj" = (/turf/unsimulated/floor{dir = 8; icon_state = "whitehall"; tag = "icon-whitehall (EAST)"},/area/centcom/holding) "kk" = (/obj/structure/window/shuttle{icon_state = "window4"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/transport1/centcom) "kl" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/stamp,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) "km" = (/obj/structure/bed/chair{dir = 1},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor4"},/area/centcom/evac) @@ -841,7 +841,6 @@ "qX" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/supply/dock) "qY" = (/turf/simulated/shuttle/floor,/area/supply/dock) "qZ" = (/obj/structure/table/standard,/obj/structure/closet/secure_closet/medical_wall{pixel_y = 32; req_access = list(150)},/obj/item/bodybag,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = -4; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline{pixel_x = 4; pixel_y = 7},/obj/item/weapon/reagent_containers/syringe,/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) -"ra" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "rb" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 4; start_pressure = 740.5},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/syndicate_station/start) "rc" = (/obj/structure/table/rack,/obj/item/clothing/suit/storage/vest/heavy/merc{pixel_x = 2; pixel_y = 2},/obj/item/clothing/suit/storage/vest/heavy/merc{pixel_x = -2; pixel_y = -2},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) "rd" = (/obj/structure/table/standard,/obj/item/roller{pixel_y = 8},/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) @@ -1103,7 +1102,6 @@ "wa" = (/obj/structure/closet/secure_closet/medical1{pixel_x = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/test) "wb" = (/obj/structure/closet/secure_closet/medical2{pixel_x = 5},/turf/unsimulated/floor{icon_state = "white"},/area/centcom/test) "wc" = (/obj/machinery/sleeper,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/test) -"wd" = (/obj/machinery/sleep_console,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/test) "we" = (/obj/structure/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "wf" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "wg" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/space,/area/space) @@ -1488,7 +1486,6 @@ "DW" = (/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership{name = "\improper Raider Base"}) "DX" = (/obj/structure/bed/roller,/turf/unsimulated/floor{dir = 4; icon_state = "whitegreenfull"},/area/centcom/holding) "DY" = (/obj/machinery/sleeper,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) -"DZ" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "Ea" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "Eb" = (/obj/structure/bed/roller,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "Ec" = (/obj/structure/closet/secure_closet/freezer/kitchen,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/syndicate_mothership{name = "\improper Raider Base"}) @@ -1530,7 +1527,6 @@ "EO" = (/turf/simulated/floor/holofloor{icon_state = "carpetsymbol"; dir = 6},/area/holodeck/source_theatre) "EP" = (/turf/unsimulated/floor{dir = 6; icon_state = "whitegreen"},/area/centcom/holding) "EQ" = (/turf/unsimulated/floor{dir = 10; icon_state = "whitegreen"},/area/centcom/holding) -"ER" = (/obj/machinery/sleep_console{icon_state = "sleeperconsole-r"; orient = "RIGHT"},/turf/unsimulated/floor{dir = 8; icon_state = "whitehall"; tag = "icon-whitehall (EAST)"},/area/centcom/holding) "ES" = (/obj/machinery/sleeper{icon_state = "sleeper_0-r"; orient = "RIGHT"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/holding) "ET" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/shuttle/escape/centcom) "EU" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/simulated/floor/plating/airless,/area/shuttle/escape/centcom) @@ -1960,7 +1956,6 @@ "Nq" = (/obj/machinery/hologram/holopad,/turf/unsimulated/floor{dir = 9; icon_state = "whitegreen"},/area/centcom/holding) "Nr" = (/obj/structure/table/rack,/obj/item/weapon/grenade/empgrenade,/obj/item/weapon/grenade/flashbang,/obj/item/weapon/grenade/spawnergrenade,/obj/machinery/light/small{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/skipjack/station) "Ns" = (/obj/machinery/sleeper{icon_state = "sleeper_0-r"; orient = "RIGHT"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) -"Nt" = (/obj/machinery/sleep_console{icon_state = "sleeperconsole-r"; orient = "RIGHT"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "Nu" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/shuttle/plating,/area/shuttle/skipjack/station) "Nv" = (/obj/item/robot_parts/robot_suit,/obj/item/robot_parts/r_leg,/obj/item/robot_parts/r_arm,/turf/simulated/shuttle/plating,/area/shuttle/skipjack/station) "Nw" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access = list(101)},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome) @@ -2111,9 +2106,9 @@ abaRaXbebcaVaUbaaVaRaXbebcaVaUbaaVaUbaaRaXbebcaVaUbaaiaMaMaMaMaYagbbaTaZgSgggqgI aebaaWbbbfbeaXbdbebaaWbbbfbeaXbdbeaXbdbaaWbbbfbeaXbdafaMaMaMaMbaacaYbcaVhbgrgugqgtghgjgvgqgigIgkgggsghgjgvgqgwbaaZbfaabaaSaLfLaXbcbcbbaXaZaZaZaZaZgQhphcgNhphdhdhdhdhdhdhdhdhdgQaMaMaMaMbbaXbcbbaXbcbcfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhGhHhHhHjyimilimimjzhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM ahaSaSaYaRbbaWaTbbaSaSaYaRbbaWaTbbaWaTaSaSaYaRbbaWaTanaMaMaMaMbdaibabfbehlgfgjgughgkgggJgugtgqgvgrglgkgggJgugKbdaVaRajbdaZaLfLaWbfbfaYaWaZaZaZaZaZgQhthkhahthdhdhdhdhdhdhdhdhdgQaMaMaMaMaYaWbfaYaWbfbffLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEjJjJjKjLimilimimiljMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM agaZaZbaaUaYaSbcaYaZaZbaaUaYaSbcaYaSbcaZaZbaaUaYaSbcakaMaMaMaMaTafbdaRbbgxgigggjgkgvgrgsgjghgugJgfgIgvgrgsgjgQaTbeaUamaTbeaLfLaSaRaRbaaSaZaZaZaZaZgQgQgQhdhdhdhdhdhdhdhdhdgQgQgQaMaMaMaMbaaSaRbaaSaRaRfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjTjUjUjUjVimjWjXjYjXhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -acaVaVbdaXbaaZbfbaaVaVbdaXbaaZbfbaaZbfaVaVbdaXbaaZbfaaaMaMaMaMbcanaTaUaYgLgtgrgggvgigJgkgIgsghgqgrgtgJgfglgggZbcbbaXadbcbbaLfLaZaUaUbdaZaUaMaMaMaMaMaMjQjQjPjPjPjPjPjPjPjQjQaMaMaMaMaMaMbdaZaUbdaZaUaUfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEkikjjUkhimklkmknkohEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +acaVaVbdaXbaaZbfbaaVaVbdaXbaaZbfbaaZbfaVaVbdaXbaaZbfaaaMaMaMaMbcanaTaUaYgLgtgrgggvgigJgkgIgsghgqgrgtgJgfglgggZbcbbaXadbcbbaLfLaZaUaUbdaZaUaMaMaMaMaMaMjQjQjPjPjPjPjPjPjPjQjQaMaMaMaMaMaMbdaZaUbdaZaUaUfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEkijUjUkhimklkmknkohEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aibebeaTaWbdaVaRbdbebeaTaWbdaVaRbdaVaRbebeaTaWbdaVaRajaMaMaMaMbfakbcaXbagRghgfgrgJgtgsgvgqglgkgugfghgsgigIgrhhbfaYaWalbfaYaLfLaVaXaXaTaVaXaTaVaXaTaVaXaTgZgmhlgZgZgmgmhlgZaXaTaVaXaTaVaXaTaVaXaTaVaXaXfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEkujUjUjLimjXkykykzhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -afbbbbbcaSaTbeaUaTbbbbbcaSaTbeaUaTbeaUbbbbbcaSaTbeaUamaMaMaMaMaRaabfaWbdfFgkgigfgsghglgJgugIgvgjgigkglgtgqgfdcaRbaaSaoaRbaaLfLbeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbebeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbeaWaWfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEkikjjUjVimkFkykykIhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +afbbbbbcaSaTbeaUaTbbbbbcaSaTbeaUaTbeaUbbbbbcaSaTbeaUamaMaMaMaMaRaabfaWbdfFgkgigfgsghglgJgugIgvgjgigkglgtgqgfdcaRbaaSaoaRbaaLfLbeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbebeaWaWbcbeaWbcbeaWbcbeaWbcbeaWbcbeaWaWfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEkijUjUjVimkFkykykIhEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM analahajaoacaeabanagakafamaafLfLfLfLfLahajabafaoaaagadaMaMaMaMaUajaRaSaTfYgvgtgiglgkgIgsgjgqgJgggtgvgIghgugidtaUbdaZabaUbdaLfLbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbbbaSaSbfbbaSbfbbaSbfbbaSbfbbaSbfbbaSaSfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMiEkNkNhHkOkMhHhHkNkNiGaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM bebcaXbabfaSaUaRbeaWbbaVbdaYaZaTaUaSbbaXbaaRaVbfaYaWaTaMaMaMaMaXamaUaZbchCgJghgtgIgvcgglgggugsgrcwgJgqgkgjgthDaXaTbeaeaXaTaLfLaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaRaYaZaYaZaRaYaZaRaYaZaRaYaZaRaYaZaZfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMiEhKkVjdimkWkXhGiGaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM bbaWbdaUbeaRaUbeaRaWbdaUbeaRaWbdaUbeaRaWbdaUbeaRbaaSbcaMaMaMaMaWadaXaVbffXgsgkghgqgJfZgIgrgjglgfizgsgugvggghfWaWbcbeahaWbcaLfLaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaVaUbaaVbaaVaUbaaVaUbaaVaUbaaVaUbaaMaVfLaLaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMhEkSiliSillchEaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM @@ -2170,7 +2165,7 @@ aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUoVoVoVpdpepepepepRpRpepepepepgoVoVoVoVoNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMmumumumuaMaMaMaMnHpSnRnRnRpTnRnRnRqanRnRnRqbnHmKmKmKmKaMaMaMaMmumumuihoEkQoEihmumumumumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUoVoVpdpppqprkspeqcpupelgkLpepepepgoVoVoNaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumumumumuaMaMaMaMnHqCnRnRnRqdnRnRnRqpnRnRnRqtnHaMaMaMaMaMaMaMaMaMmumuihoEkQoEihmumumumumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUoVpdpepBpBpBpBpeququpepBpBqDlhpepepgoVpFpFpFpFpFaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumumumuaMaMaMaMnvnHnHnHnHnHnHnRnRnRnHnHnHnHnHnHnzaMaMaMaMaMmAaMmBmumuihoEkQoEihmumumumumumumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUpdpepepMlilkljpepBpBpQpBpBpBpBqFqEpeoVpFqIpUpVpFpFpFpFpFpWpXpXpYpFpFaMaMaMaMaMaMaMaMpZpZpZpZpZpZpZpZpZpZpZaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumumumuaMaMaMaMnHqJraserdqZnHrfnRrgnHrkrqrqrArtnHaMaMaMaMaMmAmBmumumuihoEkQoEihmumumumumumumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUpdpepepMlilkljpepBpBpQpBpBpBpBqFqEpeoVpFqIpUpVpFpFpFpFpFpWpXpXpYpFpFaMaMaMaMaMaMaMaMpZpZpZpZpZpZpZpZpZpZpZaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumumumuaMaMaMaMnHqJrjserdqZnHrfnRrgnHrkrqrqrArtnHaMaMaMaMaMmAmBmumumuihoEkQoEihmumumumumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUqeqfqgpBqhqhqhpepBpBpeqiqjqkqlqmqnpeoVpFqopUpUrEqqqrqsrGrFqsqvqwqxpFpFpFpFpFpFpFpFpFpFqyqzqzqzqzqzqzqzqAjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumumuaMaMaMaMaMnxrjrjrjrjrjnHnRnRnRnHrenRnRnRrHnwaMaMaMaMaMmPaMmumumuihihyxihihmumumumumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUqGqfpBpBpBpBpBpQpBpBpepepepepepepeqHrKpFpFpFpFpFqqqvqsrQrOqsqvqvqvqLqMqMqMqMqMqMqMqMjNqyqOqPqPqPqPqPqQqAjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMmumuaMaMaMaMaMaMnhrCrDrjrjrjrRnRnRnRrSnRnRnRrXrTmiaMaMaMaMaMmAmBmBmumumuihihihmumumumumumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMjHoUqRpeqSpBqSpBqSpepBpBpBqTqUoVoVoVoVoVqVqWqMqMqMqLqvqvqvqvqvqvqvqvqvqLqMqMqMqMqMqMqMqMjNqyqXqYqYqYqYqYqXqAjIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMnyrjrjrjrjrjrYnRnRnRrZnRnRnRnRsanBaMaMaMaMaMmAaMaMmBmumumumumumumumumumumumumumumumu @@ -2190,7 +2185,7 @@ aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMuUuVuVuVuVuVuVuVuVuVuVuVuVuVAIuXuVuVuVuYAIuZvavbvbvctvwluhuhuhuhuhuhuhtvwmuhuhuhuhvpwownwpwpyhzrzpzEyIyIyhwqwqwqtvuDuEuFuGuHtxuIuIuItxtWtWtWtWtWtxuJuKuJuLuMuguNuNuNuOurururuOuruPuQuPuruRuSuTtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvvQtvtvtvuhuhuhuhuhuhuhuhtvuhuhuhuhwytvtvtvtvtvyhyhyhyhyhyhyhxQxQxQtvwzwAvlvmvntxufJyuftxvlvmvowAwBtxvqvrvqvrvqugtxtxtxtxurururtxvsvtuPvuvsvvvwvwtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumuaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvutvIvbvbwEtvvxwPukxowVwXuhuhtvuhuhuhuhwYtvxawZwZxaxcxbxexdxQxQxQxQxQxgtvufufvBvCvCvCvCvCvCvCvCvCvDufufxhvqvqvqvqvqugvFuNuotxurururtxvGvGxkvGvGvvvwvwtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumu -aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMuUuVuVuVuVuVuVuVuVuVuVuVuVuVwWuXuVuVuVuYwWwivavbvbxltvwFwGwGwGwItvuhuhtvuhuhuhuhxmtvuhxQxQxQxnxQxQxQxQxQxQxQxQxptvufJyvVvWvXvXvXvXvXvXvXvYueJyufugvZwawbwcwdugweuNwjtxurururtxwfwfuNwfwfvvvwvwtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMwgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumu +aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMuUuVuVuVuVuVuVuVuVuVuVuVuVuVwWuXuVuVuVuYwWwivavbvbxltvwFwGwGwGwItvuhuhtvuhuhuhuhxmtvuhxQxQxQxnxQxQxQxQxQxQxQxQxptvufJyvVvWvXvXvXvXvXvXvXvYueJyufugvZwawbwcvqugweuNwjtxurururtxwfwfuNwfwfvvvwvwtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMwgaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvutwxvbvbxqxcxrxtxsxvxuxcuhuhxcuhuhuhuhxwxcuhxQxQuwxxxQxQxQxexetvtvtvtvtvufufvVwrwsufwtwuwvufwswrueufufugugugugugugugweuNwjtxurururtxwwwwuNwwwwvvvwvwtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMuUuVuVuVuVuVuVuVuVuVuVuVuVuVxyuXuVuVuVuYxyxzvavbvbxAxnxHuhuhuhxIxnuhuhxnuhuhxKxJxLxnxMxQxQxQtvwFwGwHwGwItvwJwJwJxNufufwKwLwMwNwOxOwQwRwSwLwTufufxRwUwUwUwUwUtxtxuOtxtxtxuOtxtxuNuNuNuNuNvvvwvwtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumu aMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMustvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvtvutxXvbvbxYtvyauhuhuhuhtvybybtvycyctvtvtvtvxMxQxQuwuWxfxfxfxfxfydxfxfxfydufufufyeufufxiufxiufufyeufufufxjurururururxjurururururururxjwwwwwwwwwwvvvwvwtxaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMmumumumumumumumumuaMaMaMaMaMaMaMaMaMaMaMaMaMaMmu @@ -2223,8 +2218,8 @@ dCmuBvBvBvBvBvBvmuaMaMaMaMaMKiKjKjKsaMaMaMaMaMaMaMaMaMaMaMaMaMKiKjKjKsaMaMaMaMmt dCmumumumumumumumumuaMaMaMaMKiKzKyKsaMaMaMaMaMaMaMaMaMaMaMaMaMKiKzKyKsaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJUJUKAJUKBDsDiDNDODlCPDmDPDQDlCPDGDRDSDSDSDSDSCNDTDTDTNDDVDVKCDXDXCNDyDyDyDyCNaMaMAtNENFAtNHNIEaKDNJAtNLNGAtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumumumumumumuaMaMaMaMaMKiKzKyKsaMaMaMaMaMaMaMaMaMaMaMaMaMKiKzKyKsaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNKKJUJUKLJUDsDiEeEfDlCPDmEgEhDlCPDGDSDSDSDSDSDSCNEiEjEjElDVDVDVDXDXCNCNCNCNCNCNaMaMAtKNKMAtKONVEaEaKPAtKQKRAtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumumumumumumuaMaMaMaMaMKSKjKjKTaMaMaMKSaMaMaMaMaMKTaMaMaMKSKjKjKTaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNKUJUJUJUJUEoDaCPCPCPCPCPCPCPCPCPDGDSDSKVEqKWKXCNEtDVDVDVEwExDVDVEyCNaMaMaMaMaMaMaMEAEBEBAtKYEaNREbKZAtEBEBBVaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumumumuaMaMaMaMaMaMaMaMLalxAeLaaMaMaMLaDLDMDMDMDULaaMaMaMLaFYlyLaaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJULiLjKaLlLkEFEGEGEGEHEHEHEIEJLmELEMEHEHEHCNCNCNLnDVDVEwEPEQExERESCNaMaMaMaMaMaMaMETEVEVBVDYDZEaNtNsEAEVEVEWaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM -dCmumumumumuaMaMaMaMaMaMaMaMLaLpLoLaaMaMKSLaLaLsLrLtlCLaKTaMaMLaLwLyLaaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJUJUJULlLWEZEZEZEZEZEHLXFbFcFdFeFfFgFbLXEHCNCNCNCNCNCNLYFiNqFkERESCNaMaMaMaMaMaMaMaMaMaMETATEUEUEUATEWaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumumumuaMaMaMaMaMaMaMaMLalxAeLaaMaMaMLaDLDMDMDMDULaaMaMaMLaFYlyLaaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJULiLjKaLlLkEFEGEGEGEHEHEHEIEJLmELEMEHEHEHCNCNCNLnDVDVEwEPEQExkjESCNaMaMaMaMaMaMaMETEVEVBVDYEaEaEaNsEAEVEVEWaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM +dCmumumumumuaMaMaMaMaMaMaMaMLaLpLoLaaMaMKSLaLaLsLrLtlCLaKTaMaMLaLwLyLaaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJUJUJULlLWEZEZEZEZEZEHLXFbFcFdFeFfFgFbLXEHCNCNCNCNCNCNLYFiNqFkkjESCNaMaMaMaMaMaMaMaMaMaMETATEUEUEUATEWaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumumumuaMaMaMaMaMaMaMaMLalDMbLaaMaMLaLaMdMfMeMfMgLaLaaMaMLaMhlFLaaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNMjJULlLWEZEZEZEZEZEZEHFbFmFnFdFeFfFnFoFbEHMkMmMlMoMnCNDVFhFkDVDVEwFuaMaMaMaMaMaMaMaMaMaMaMETEVEVEVEWaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumumumuaMaMaMaMaMaMaMaMLaLbLaLaLaLaLaMrMqMqMqMqMqMsLaLaLaLaLaLdLaaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNJULlLWEZEZEZEZEZEZEZEHFvFbFvFdFeFfFvFbFvEHFwDVDVDVDVMuDVDVDVDVDVFyFzaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM dCmumumumumuaMaMaMaMaMaMaMaMLalGMvMyMxMzLaMBMqMqMqMqMqMBLaMDMClvMElHLaaMaMaMaMmtaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMCNLlLWEZEZEZEZEZEZEZEZEHFAFbFbFdFeFfFbFbFBEHFCFDFEFFMGCNDVDVDVDVDVMHFIaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaMaM diff --git a/maps/exodus-3.dmm b/maps/exodus-3.dmm index 4a2ecd8688b..4e8eeed0615 100644 --- a/maps/exodus-3.dmm +++ b/maps/exodus-3.dmm @@ -6,7 +6,6 @@ "af" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/derelict/ship) "ag" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "ah" = (/obj/machinery/sleeper,/obj/machinery/light{dir = 1},/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) -"ai" = (/obj/machinery/sleep_console,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship) "aj" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/derelict/ship) "ak" = (/turf/simulated/shuttle/wall{icon_state = "swall13"; dir = 2},/area/derelict/ship) "al" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 8},/turf/space,/area/derelict/ship) @@ -458,7 +457,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacadaeaaaaaaaaaaaaaaabaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacafagagahaiajakadaeaaaaaaaaabakalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacafagagahagajakadaeaaaaaaaaabakalaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabamanagagagagagagaoajapaeaaaaabaqarasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabapakatagagagagauagagagavapaeabaqawarasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabapafaxajacadayazaAacacaBakakakamawawarasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/exodus-5.dmm b/maps/exodus-5.dmm index b83337aa4cc..6a24f4c6937 100644 --- a/maps/exodus-5.dmm +++ b/maps/exodus-5.dmm @@ -475,7 +475,7 @@ "jg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/outpost/research/dock) "jh" = (/obj/machinery/sleeper{dir = 1},/turf/simulated/floor{dir = 9; icon_state = "warnwhite"},/area/outpost/research/medical) "ji" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'INTERNALS REQUIRED'."; name = "INTERNALS REQUIRED"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) -"jj" = (/obj/machinery/sleep_console,/obj/machinery/light/small,/turf/simulated/floor{icon_state = "warnwhite"; dir = 5},/area/outpost/research/medical) +"jj" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "warnwhite"; dir = 5},/area/outpost/research/medical) "jk" = (/obj/machinery/door/window/westleft,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/outpost/research/eva) "jl" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/outpost/research/eva) "jm" = (/obj/machinery/conveyor{dir = 9; id = "anotempload"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 5},/area/outpost/research/eva) @@ -1516,7 +1516,7 @@ "Dh" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/obj/structure/plasticflaps/mining,/turf/simulated/floor{icon_state = "floorgrime"},/area/outpost/mining_main/refinery) "Di" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/obj/machinery/mineral/output,/obj/structure/plasticflaps/mining,/turf/simulated/floor{icon_state = "floorgrime"},/area/outpost/mining_main/refinery) "Dj" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored) -"Dk" = (/obj/machinery/sleep_console,/turf/simulated/floor{icon_state = "warnwhite"; dir = 5},/area/outpost/mining_main/medbay) +"Dk" = (/turf/simulated/floor{icon_state = "warnwhite"; dir = 5},/area/outpost/mining_main/medbay) "Dl" = (/obj/machinery/sleeper,/turf/simulated/floor{icon_state = "warnwhite"; dir = 1},/area/outpost/mining_main/medbay) "Dm" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/o2{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/floor{icon_state = "white"},/area/outpost/mining_main/medbay) "Dn" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/camera/network/mining{c_tag = "Mining Outpost Medical"; dir = 1},/turf/simulated/floor{icon_state = "white"},/area/outpost/mining_main/medbay) diff --git a/nano/templates/sleeper.tmpl b/nano/templates/sleeper.tmpl new file mode 100644 index 00000000000..ae6c3558742 --- /dev/null +++ b/nano/templates/sleeper.tmpl @@ -0,0 +1,91 @@ +

Sleeper

+{{if !data.power}} +
+
+ NO POWER +
+ {{if data.occupant}} +
+ {{:helper.link("Eject occupant", null, {'eject' : 0})}} +
+ {{/if}} +{{else}} + {{if data.occupant}} +
+
+ Occupant status: +
+
+ Health: {{:data.health}}% ({{:data.stat}}). +
+
+ Pulse: +
+
+ {{:data.pulse}} +
+
+ Brute damage: +
+
+ {{:helper.displayBar(data.brute, 0, 100, (data.brute <= 25) ? 'good' : (data.brute <= 50) ? 'average' : 'bad')}}{{:helper.round(data.brute)}} +
+
+ Burn severity: +
+
+ {{:helper.displayBar(data.burn, 0, 100, (data.burn <= 25) ? 'good' : (data.burn <= 50) ? 'average' : 'bad')}}{{:helper.round(data.burn)}} +
+
+ Respiratory damage: +
+
+ {{:helper.displayBar(data.oxy, 0, 100, (data.oxy <= 25) ? 'good' : (data.oxy <= 50) ? 'average' : 'bad')}}{{:helper.round(data.oxy)}} +
+
+ Toxin content: +
+
+ {{:helper.displayBar(data.tox, 0, 100, (data.tox <= 25) ? 'good' : (data.tox <= 50) ? 'average' : 'bad')}}{{:helper.round(data.tox)}} +
+
+ {{:helper.link(data.filtering ? "Dialysis active" : "Dialysis inactive", null, {'filter' : 0})}} +
+
+ {{:helper.link("Eject occupant", null, {'eject' : 0})}} +
+
+ {{else}} +
+ No occupant. +
+ {{/if}} +
+ {{for data.reagents}} +
+ {{:value.name}} +
+
+ {{if data.occupant}}Occupant: {{:value.amount}} units{{/if}} + {{:helper.link('Inject 5', null, {'chemical' : value.id, 'amount' : 5}, data.occupant ? null : 'disabled')}}{{:helper.link('Inject 10', null, {'chemical' : value.id, 'amount' : 10}, data.occupant ? null : 'disabled')}} +
+ {{/for}} +
+ {{if data.beaker != -1}} +
+
+ Beaker: +
+
+ {{:data.beaker}} units of free space remaining. + {{:helper.link("Eject", null, {'beaker' : 0})}} +
+
+ {{else}} +
+
+ No beaker inserted. +
+
+ {{/if}} +{{/if}}