bugfixes + nerfs cold damage + changelog + everything else

This commit is contained in:
DrCelt
2016-01-04 18:47:46 +00:00
parent b7a6d7d230
commit 48e3c8d697
46 changed files with 370 additions and 194 deletions

View File

@@ -28,8 +28,8 @@ Bonus
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/carbon/M = A.affected_mob
to_chat(M, "<span class='notice'>[pick("You feel cold.", "You start shaking from the cold.")]</span>")
to_chat(M, "<span class='notice'>[pick("You feel cold.", "You start shaking from the cold.")]</span>")
if(M.bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT)
M.bodytemperature = min(M.bodytemperature - (20 * A.stage), BODYTEMP_COLD_DAMAGE_LIMIT + 1)
M.bodytemperature = min(M.bodytemperature - (2 * A.stage), BODYTEMP_COLD_DAMAGE_LIMIT + 1)
return

View File

@@ -14,9 +14,9 @@
..()
switch(stage)
if(2)
affected_mob.bodytemperature -= 10
affected_mob.bodytemperature--
if(prob(1) && prob(10))
to_chat(affected_mob, "<span class='notice'>You feel better.</span>")
to_chat(affected_mob, "<span class='notice'>You feel better.</span>")
cure()
return
if(prob(1))
@@ -24,16 +24,16 @@
if(prob(1))
affected_mob.emote("cough")
if(prob(1))
to_chat(affected_mob, "<span class='warning'>Your throat feels sore.</span>")
to_chat(affected_mob, "<span class='warning'>Your throat feels sore.</span>")
if(prob(5))
to_chat(affected_mob, "<span class='warning'>You feel stiff.</span>")
to_chat(affected_mob, "<span class='warning'>You feel stiff.</span>")
if(3)
affected_mob.bodytemperature -= 20
affected_mob.bodytemperature -= 2
if(prob(1))
affected_mob.emote("sneeze")
if(prob(1))
affected_mob.emote("cough")
if(prob(1))
to_chat(affected_mob, "<span class='warning'>Your throat feels sore.</span>")
to_chat(affected_mob, "<span class='warning'>Your throat feels sore.</span>")
if(prob(10))
to_chat(affected_mob, "<span class='warning'>You feel stiff.</span>")
to_chat(affected_mob, "<span class='warning'>You feel stiff.</span>")

View File

@@ -15,22 +15,22 @@
..()
switch(stage)
if(2)
affected_mob.bodytemperature += 10
affected_mob.bodytemperature++
if(prob(5))
affected_mob.emote("sneeze")
if(prob(5))
affected_mob.emote("cough")
if(prob(1))
to_chat(affected_mob, "<span class='warning'>You're burning in your own skin!</span>")
to_chat(affected_mob, "<span class='warning'>You're burning in your own skin!</span>")
affected_mob.take_organ_damage(0,5)
if(3)
affected_mob.bodytemperature += 20
affected_mob.bodytemperature += 2
if(prob(5))
affected_mob.emote("sneeze")
if(prob(5))
affected_mob.emote("cough")
if(prob(5))
to_chat(affected_mob, "<span class='warning'>You're burning in your own skin!</span>")
to_chat(affected_mob, "<span class='warning'>You're burning in your own skin!</span>")
affected_mob.take_organ_damage(0,5)
return

View File

@@ -171,10 +171,10 @@
else
H.visible_message("<span class='warning'>A cloud of fine ice crystals engulfs [H]!</span>",
"<span class='warning'>A cloud of fine ice crystals cover your [H.head]'s visor and make it into your air vents!.</span>")
H.bodytemperature = max(0, H.bodytemperature - 50)
H.bodytemperature = max(T0C + 31, H.bodytemperature - 3)
H.adjustFireLoss(5)
if(!handle_suit)
target.bodytemperature = max(0, target.bodytemperature - 100)
target.bodytemperature = max(T0C + 29, target.bodytemperature - 5)
target.adjustFireLoss(10)
target.ExtinguishMob()

View File

@@ -277,8 +277,8 @@
C.Weaken(1)
C.Stun(1)
playsound(C.loc, "swing_hit", 50, 1)
if(C.bodytemperature >= 265)
C.bodytemperature -= 5
if(C.bodytemperature >= T0C+30)
C.bodytemperature -= 0.5
else if(istype(hit_atom,/mob/living/simple_animal/hostile/retaliate/snowman))
var/mob/living/simple_animal/hostile/retaliate/snowman/S = hit_atom
playsound(S.loc, "swing_hit", 50, 1)
@@ -294,7 +294,7 @@
S.say(pick("A fight? With pleasure.","Don't forget that you're the one who started it all."))
S.Retaliate()
if(S.bodytemperature >= COSMICSNOW_MINIMALTEMP)
S.bodytemperature -= 5
S.bodytemperature -= 2
else ..()
var/global/list/datum/stack_recipe/snow_recipes = list (

View File

@@ -1,5 +1,3 @@
#define SLEEPER_SOPORIFIC_DELAY 30
/////////////////////////////////////////
// SLEEPER CONSOLE
/////////////////////////////////////////
@@ -13,6 +11,7 @@
density = 1
var/orient = "LEFT" // "RIGHT" changes the dir suffix to "-r"
/obj/machinery/sleep_console/ex_act(severity)
switch(severity)
if(1.0)
@@ -174,6 +173,9 @@
var/on = 0
var/target_time = 0
var/setting
var/automatic = 0
var/drag_delay = 20
var/cools = 0
/obj/machinery/sleeper/New()
..()
@@ -189,11 +191,11 @@
t = get_step(get_turf(src), EAST)
// generate_console(get_step(get_turf(src), EAST))
ASSERT(t)
var/obj/machinery/sleep_console/c = locate(connected_type) in t.contents
var/obj/machinery/sleep_console/c = locate() in t.contents
if(c)
connected = c
c.connected = src
else
else if (!connected)
world.log << "DEBUG: generating console at [t.loc.x],[t.loc.y],[t.loc.z] for sleeper at [src.loc.x],[src.loc.y],[src.loc.z]"
generate_console(t)
return
@@ -274,15 +276,15 @@
return
if(L == user)
visible_message("[user] climbs into \the [src].", 2) //spooky
visible_message("[user] climbs into \the [src].", 3)
else
visible_message("[user] places [L.name] into \the [src].", 2) //spooky
visible_message("[user] places [L.name] into \the [src].", 3)
L.forceMove(src)
L.reset_view()
src.occupant = L
update_icon()
to_chat(L, "<span class='notice'><b>You feel cool air surround you. You go numb as your senses turn inward.</b></span>")
to_chat(L, "<span class='notice'><b>You feel an anaesthetising air surround you. You go numb as your senses turn inward.</b></span>")
connected.process()
for(var/obj/OO in src)
OO.loc = src.loc
src.add_fingerprint(user)
@@ -291,7 +293,8 @@
if(!(stat & (BROKEN|NOPOWER)))
set_light(light_range_on, light_power_on)
sedativeblock = 1
sleep(SLEEPER_SOPORIFIC_DELAY)
update_icon()
sleep(drag_delay)
sedativeblock = 0
return
@@ -322,9 +325,9 @@
continue
return
if(occupant == usr)
visible_message("[usr] climbs out of \the [src].", 2) //spooky
visible_message("[usr] climbs out of \the [src].", 3)
else
visible_message("[usr] removes [occupant.name] from \the [src].", 2) //spooky
visible_message("[usr] removes [occupant.name] from \the [src].", 3)
go_out(over_location)
/obj/machinery/sleeper/allow_drop()
@@ -381,7 +384,7 @@
to_chat(usr, "[G.affecting.name] will not fit into \the [src] because they have a slime latched onto their head.")
return
visible_message("[user] places [G.affecting.name] into the sleeper.", 2) //spooky
visible_message("[user] places [G.affecting.name] into \the [src].", 3)
var/mob/M = G.affecting
if(!isliving(M) || M.locked_to)
@@ -389,18 +392,18 @@
M.forceMove(src)
M.reset_view()
src.occupant = M
update_icon()
to_chat(M, "<span class='notice'><b>You feel an anaesthetising air surround you. You go numb as your senses turn inward.</b></span>")
connected.process()
for(var/obj/O in src)
O.loc = src.loc
src.add_fingerprint(user)
qdel(G)
if(!(stat & (BROKEN|NOPOWER)))
set_light(light_range_on, light_power_on)
update_icon()
sedativeblock = 1
spawn(SLEEPER_SOPORIFIC_DELAY)
spawn(drag_delay)
sedativeblock = 0
return
@@ -456,9 +459,9 @@
/obj/machinery/sleeper/proc/cook(var/cook_setting)
var/time = available_options[cook_setting]
target_time = world.timeofday + time
update_icon()
on = 1
setting = cook_setting
update_icon()
/obj/machinery/sleeper/proc/go_out(var/exit = src.loc)
if(!occupant)
@@ -533,7 +536,7 @@
return
if(src.occupant)
to_chat(usr, "<span class='notice'><B>The sleeper is already occupied!</B></span>")
to_chat(usr, "<span class='notice'><B>\The [src] is already occupied!</B></span>")
return
if(usr.restrained() || usr.isUnconscious() || usr.weakened || usr.stunned || usr.paralysis || usr.resting) //are you cuffed, dying, lying, stunned or other
return
@@ -543,8 +546,8 @@
return
if(usr.locked_to)
return
visible_message("[usr] starts climbing into the sleeper.", 2) //spooky
if(do_after(usr, src, 20))
visible_message("[usr] starts climbing into the sleeper.", 3)
if(do_after(usr, src, drag_delay))
if(src.occupant)
to_chat(usr, "<span class='notice'><B>The sleeper is already occupied!</B></span>")
return
@@ -554,21 +557,19 @@
usr.loc = src
usr.reset_view()
src.occupant = usr
update_icon()
connected.process()
for(var/obj/O in src)
qdel(O)
src.add_fingerprint(usr)
if(!(stat & (BROKEN|NOPOWER)))
set_light(light_range_on, light_power_on)
update_icon()
return
return
#undef SLEEPER_SOPORIFIC_DELAY
/obj/machinery/sleeper/mancrowave
name = "mancrowave"
desc = "A human-sized microwave meant for warming up patients. Modern medical technology is amazing."
name = "thermal homeostasis regulator"
desc = "This invention by Mancrowave Inc. is meant for stabilising body temperature. Modern medical technology is amazing."
icon_state = "mancrowave_open"
base_icon = "mancrowave"
component_parts = newlist(
@@ -578,9 +579,11 @@
/obj/item/weapon/stock_parts/manipulator
)
connected_type = "/obj/machinery/sleep_console/mancrowave_console"
setting = "Defrost"
available_options = list("Defrost" = 30)
setting = "Thermoregulate"
available_options = list("Thermoregulate" = 50)
light_color = LIGHT_COLOR_ORANGE
automatic = 1
drag_delay = 0
/obj/machinery/sleeper/mancrowave/go_out(var/exit = src.loc)
if(on && !emagged)
@@ -589,75 +592,68 @@
on = 0
..()
obj/machinery/sleeper/mancrowave/process()
if(stat & (NOPOWER|BROKEN))
return
src.updateUsrDialog()
if(world.timeofday >= target_time && on && istype(occupant,/mob/living/carbon))
switch(setting)
if("Defrost")
occupant.bodytemperature = (T0C + 37)
occupant.sleeping = 0
go_out()
if("Rare")
qdel(occupant)
occupant = null
for(var/i = 1;i < 5;i++)
new /obj/item/weapon/reagent_containers/food/snacks/soylentgreen(src.loc)
if("Medium")
qdel(occupant)
occupant = null
for(var/i = 1;i < 5;i++)
new /obj/item/weapon/reagent_containers/food/snacks/badrecipe(src.loc)
if("Well Done")
qdel(occupant)
occupant = null
new /obj/effect/decal/cleanable/ash(src.loc)
playsound(get_turf(src), 'sound/machines/ding.ogg', 50, 1)
on = 0
update_icon()
return
/obj/machinery/sleeper/mancrowave/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
if(istype(W,/obj/item/weapon/card/emag))
emag(user)
/obj/machinery/sleeper/mancrowave/update_icon()
if(!occupant)
icon_state = "[base_icon]_open"
else
icon_state = "[base_icon]_[on][emagged && on? "emag" : null ]"
icon_state = "[base_icon]_[on]"
if(setting != "Thermoregulate" && on)
light_color = LIGHT_COLOR_RED
icon_state += "emag"
else
light_color = LIGHT_COLOR_ORANGE
if(on)
set_light(light_range_on, light_power_on)
else
set_light(0)
if(connected)
connected.update_icon()
else
qdel(src)
/obj/machinery/sleeper/mancrowave/emag(mob/user)
if(!emagged)
emagged = 1
connected.emagged = 1
to_chat(user, "<span class='warning'>You short out the safety features of \the [src]</span>")
available_options = list("Thermoregulate" = 50,"Rare" = 500,"Medium" = 600,"Well Done" = 700)
update_icon()
available_options = list("Defrost" = 30,"Rare" = 500,"Medium" = 600,"Well Done" = 700)
light_color = LIGHT_COLOR_RED
return 1
return -1
/obj/machinery/sleeper/mancrowave/RefreshParts()
/obj/machinery/sleep_console/mancrowave_console
name = "mancrowave"
desc = "A human-sized microwave meant for warming up patients. Modern medical technology is amazing."
name = "thermal homeostasis regulator"
desc = "This invention by Mancrowave Inc. is meant for stabilising body temperature. Modern medical technology is amazing."
icon_state = "manconsole_open"
/obj/machinery/sleeper/mancrowave/New()
spawn( 5 )
var/turf/t
t = get_step(get_turf(src), EAST)
ASSERT(t)
var/obj/machinery/sleep_console/mancrowave_console/c = locate() in t.contents
if(c)
c.connected = src
connected = c
else
..()
/obj/machinery/sleep_console/mancrowave_console/update_icon()
if(connected)
if(!connected.occupant)
icon_state = "manconsole_open"
else
icon_state = "manconsole_[connected.on][emagged && connected.on? "emag" : null ]"
icon_state = "manconsole_[connected.on]"
if(connected.setting != "Thermoregulate" && connected.on && connected.occupant)
icon_state += "emag"
/obj/machinery/sleep_console/mancrowave_console/emag(mob/user)
connected.emag(user)
/obj/machinery/sleep_console/mancrowave_console/Destroy()
. = ..()
@@ -687,33 +683,94 @@ obj/machinery/sleeper/mancrowave/process()
var/mob/living/carbon/C = occupant
dat += text("[]\t-Pulse, bpm: []</FONT><BR>", (C.pulse == PULSE_NONE || C.pulse == PULSE_2SLOW || C.pulse == PULSE_THREADY ? "<font color='red'>" : "<font color='blue'>"), C.get_pulse(GETPULSE_TOOL))
dat += text("[]\t -Core Temperature: []&deg;C </FONT><BR></span>", (C.undergoing_hypothermia() ? "<font color='red'>" : "<font color='blue'>"), C.bodytemperature-T0C)
dat += "<HR><A href='?src=\ref[src];refresh=1'>Refresh meter readings each second</A><BR>"
dat += "<HR><b>Cook settings:</b><BR>"
for(var/cook_setting in connected.available_options)
dat += "<a href ='?src=\ref[src];cook=[cook_setting]'>[cook_setting] - [connected.available_options[cook_setting]/10] seconds</a>"
dat += "<br>"
else
dat += "\The [src] is empty."
dat += "<HR><A href='?src=\ref[src];refresh=1'>Refresh meter readings each second</A><BR>"
dat += "<A href='?src=\ref[src];auto=1'>Turn [connected.automatic ? "off": "on" ] Automatic Thermoregulation.</A><BR>"
dat += "[(connected.emagged) ? "<A href='?src=\ref[src];security=1'>Re-enable Security Features.</A><BR>" : ""]"
dat += "[(connected.on) ? "<A href='?src=\ref[src];turnoff=1'>\[EMERGENCY STOP\]</A> <i>: cancels the current job.</i><BR>" : ""]"
dat += text("<BR><BR><A href='?src=\ref[];mach_close=sleeper'>Close</A>", user)
user << browse(dat, "window=sleeper;size=400x500")
onclose(user, "sleeper")
return
/obj/machinery/sleeper/mancrowave/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
if(istype(W,/obj/item/weapon/card/emag))
src.emag(user)
/obj/machinery/sleep_console/mancrowave_console/Topic(href, href_list)
usr.set_machine(src)
if (href_list["cook"])
if (src.connected)
if (src.connected.occupant)
if (src.connected.occupant.stat == DEAD && !emagged)
to_chat(usr, "<span class='danger'>Why would you mancrowave a dead guy? That's just stupid.</span>")
else
connected.cook(href_list["cook"])
if (connected.on)
to_chat(usr, "<span class='danger'>\The [src] is already turned on!</span>")
else
if (src.connected.occupant)
if ((locate(/obj/item/weapon/disk/nuclear) in get_contents_in_object(connected.occupant)) && href_list["cook"] != "Thermoregulate" )
to_chat(usr, "<span class='danger'>Even with the safety features turned off, \the [src] won't cook that!</span>")
else connected.cook(href_list["cook"])
if (href_list["refresh"])
src.updateUsrDialog()
if(href_list["auto"])
connected.automatic = !connected.automatic
if(href_list["turnoff"])
connected.on = 0
connected.go_out()
connected.update_icon()
if(href_list["security"])
connected.emagged = 0
emagged = 0
connected.available_options = list("Thermoregulate" = 50)
connected.update_icon()
src.add_fingerprint(usr)
src.updateUsrDialog()
return
/obj/machinery/sleep_console/mancrowave_console/process()
..()
if(connected.automatic && connected.occupant && !connected.on)
connected.cook("Thermoregulate")
if(!connected.on)
else if(!src || !connected || !connected.occupant || connected.occupant.loc != connected) //Check if someone's released/replaced/bombed him already
connected.occupant = null
connected.on = 0
connected.update_icon()
return
if(world.timeofday >= connected.target_time && connected.on && istype(connected.occupant,/mob/living/carbon))
switch(connected.setting)
if("Thermoregulate")
connected.occupant.bodytemperature = (T0C + 37)
connected.occupant.sleeping = 0
connected.occupant.paralysis = 0
connected.go_out()
if("Rare")
qdel(connected.occupant)
connected.occupant = null
for(var/i = 1;i < 5;i++)
new /obj/item/weapon/reagent_containers/food/snacks/soylentgreen(connected.loc)
if("Medium")
qdel(connected.occupant)
connected.occupant = null
for(var/i = 1;i < 5;i++)
new /obj/item/weapon/reagent_containers/food/snacks/badrecipe(connected.loc)
if("Well Done")
qdel(connected.occupant)
connected.occupant = null
var/obj/effect/decal/cleanable/ash/ashed = new /obj/effect/decal/cleanable/ash(connected.loc)
ashed.layer = src.layer + 0.01
playsound(get_turf(src), 'sound/machines/ding.ogg', 50, 1)
connected.on = 0
if(connected.occupant)
connected.go_out()
connected.update_icon()
/obj/machinery/sleep_console/mancrowave_console/MouseDrop(over_object, src_location, var/turf/over_location, src_control, over_control, params)
connected.MouseDrop(over_object, src_location, over_location, src_control, over_control, params)
/obj/machinery/sleep_console/mancrowave_console/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob)
connected.MouseDrop_T(O,user)
/obj/machinery/sleep_console/mancrowave_console/attackby(obj/item/weapon/W as obj, mob/user as mob)
connected.attackby(W,user)

View File

@@ -431,8 +431,8 @@ var/global/list/cryo_health_indicator = list( "full" = image("icon" = 'icons/obj
else
occupant.forceMove(exit)
occupant.reset_view()
if (occupant.bodytemperature < 261 && occupant.bodytemperature > 140) //Patch by Aranclanos to stop people from taking burn damage after being ejected
occupant.bodytemperature = 261
if (occupant.bodytemperature < T0C+23)
occupant.bodytemperature = T0C+23
// occupant.metabslow = 0
occupant = null
update_icon()
@@ -473,11 +473,12 @@ var/global/list/cryo_health_indicator = list( "full" = image("icon" = 'icons/obj
if(usr == occupant)//If the user is inside the tube...
if (usr.isDead())//and he's not dead....
return
to_chat(usr, "<span class='notice'>Release sequence activated. This will take two minutes.</span>")
sleep(1200)
to_chat(usr, "<span class='notice'>Release sequence activated. This will take thirty seconds.</span>")
sleep(300)
if(!src || !usr || !occupant || (occupant != usr)) //Check if someone's released/replaced/bombed him already
return
go_out()//and release him from the eternal prison.
occupant.bodytemperature = T0C+25 // because they've suffered enough.
else
if (usr.isUnconscious() || istype(usr, /mob/living/simple_animal))
return

View File

@@ -738,10 +738,13 @@ steam.start() -- spawns the effect
var/ccolor = mix_color_from_reagents(reagents.reagent_list)
if(ccolor)
icon += ccolor
var/savedtemp
//playsound(src, 'sound/effects/bubbles2.ogg', 80, 1, -3)
if(reagents.has_reagent("water"))
var/turf/simulated/T = get_turf(src)
if(istype(T))
// var/datum/gas_mixture/old_air = T.return_air() - I've a feeling they'll want me to re-add this cap, but after holding a vote I've decided to let this one slide.
// savedtemp = old_air.temperature
if(istype(T) && savedtemp > T0C - 20)
var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() )
lowertemp.temperature = max( min(lowertemp.temperature-500,lowertemp.temperature / 2) ,0)
lowertemp.react()
@@ -751,7 +754,13 @@ steam.start() -- spawns the effect
spawn(120)
processing_objects.Remove(src)
sleep(30)
// var/turf/simulated/T = get_turf(src)
// var/datum/gas_mixture/local_air = T.return_air()
flick("[icon_state]-disolve", src)
// if((local_air.temperature < T0C - 20)&&(savedtemp > T0C - 20)) //ie, we have over-chilled
// local_air.temperature = T0C - 20
// else if ((local_air.temperature < T0C - 20)&&(savedtemp < T0C - 20) && savedtemp) //ie it chilled when it shouldn't have
// local_air.temperature = savedtemp
sleep(5)
qdel(src)
AddToProfiler()

View File

@@ -47,7 +47,7 @@
if (empty) return
new /obj/item/stack/medical/bruise_pack(src)
new /obj/item/stack/medical/bruise_pack(src)
new /obj/item/stack/medical/bruise_pack(src)
new /obj/item/clothing/suit/spaceblanket(src)
new /obj/item/stack/medical/ointment(src)
new /obj/item/stack/medical/ointment(src)
new /obj/item/device/healthanalyzer(src)
@@ -160,7 +160,7 @@
if(!I) return
if(istype(I, /obj/item/weapon/storage/bag/chem))
var/obj/item/weapon/storage/bag/chem/C = I
to_chat(user, "<span class='notice'>You transfer the contents of [C].<span>")
to_chat(user, "<span class='notice'>You transfer the contents of [C].<span>")
for(var/obj/item/O in C.contents)
if(can_be_inserted(O))
handle_item_insertion(O, 1)

View File

@@ -357,7 +357,7 @@
//Note : Remember process() rechecks this, so the mix/max procs slowly increase/decrease body temperature
if(watertemp == "freezing cold")
C.bodytemperature = max(T0C - 200, C.bodytemperature - 50) //Down to -200<EFBFBD>C
C.bodytemperature = max(T0C - 10, C.bodytemperature - 0.5) //Down to -10<EFBFBD>C - sorry.
return
if(watertemp == "searing hot")
C.bodytemperature = min(T0C + 300, C.bodytemperature + 50) //Up to 300<30>C

View File

@@ -77,7 +77,7 @@
siemens_coefficient = pick(0,0.5,0.5,0.5,0.5,0.75,1.5)
/obj/item/clothing/gloves/black
desc = "These gloves are quite insulative!"
desc = "These gloves are quite comfortable, and will keep you warm!"
name = "black gloves"
icon_state = "black"
item_state = "black"

View File

@@ -375,6 +375,7 @@
icon_state = "cowboy"
item_state = "cowboy"
/obj/item/clothing/head/christmas/santahat/red
name = "red santa hat"
desc = "Not quite as magical as the real thing, but it flops over one ear and itches your head just the same"

View File

@@ -13,6 +13,30 @@
siemens_coefficient = 0.9
species_fit = list("Vox")
body_parts_covered = FULL_HEAD
var/stage = 0
/obj/item/clothing/mask/gas/attackby(obj/item/W,mob/user)
..()
if(istype(W,/obj/item/clothing/suit/spaceblanket) && !stage)
stage = 1
to_chat(user,"<span class='notice'>You add \the [W] to \the [src]</span>")
qdel(W)
icon_state = "gas_mask1"
if(istype(W,/obj/item/stack/cable_coil) && stage == 1)
var/obj/item/stack/cable_coil/C = W
if(C.amount <= 4)
return
icon_state = "gas_mask2"
to_chat(user,"<span class='notice'>You tie up \the [src] with \the [W]</span>")
stage = 2
if(istype(W,/obj/item/clothing/head/hardhat/red) && stage == 2)
to_chat(user,"<span class='notice'>You finish the ghetto helmet</span>")
var/obj/ghetto = new /obj/item/clothing/head/helmet/space/rig/ghettorig (src.loc)
user.put_in_hands(ghetto)
qdel(src)
qdel(W)
//Plague Dr suit can be found in clothing/suits/bio.dm
/obj/item/clothing/mask/gas/plaguedoctor

View File

@@ -45,6 +45,7 @@
w_class = 2
gas_transfer_coefficient = 0.90
can_flip = 1
heat_conductivity = INS_MASK_HEAT_CONDUCTIVITY
/obj/item/clothing/mask/scarf/blue
name = "blue neck scarf"

View File

@@ -25,6 +25,13 @@
update_brightness()
update_icon()
/obj/item/clothing/head/helmet/space/rig/ghettorig
name = "jury-rigged fire helmet"
desc = "Let me give it to you straight like a pear cider made from 100% pears, this helmet isn't particularly good"
icon_state = "ghettorig"
_color = "ghetto"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/head/helmet/space/rig/examine(mob/user)
..()
@@ -84,6 +91,14 @@
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE
pressure_resistance = 200 * ONE_ATMOSPHERE
/obj/item/clothing/suit/space/rig/ghettorig
name = "jury-rigged firesuit"
icon_state = "ghettorig"
item_state = "ghettorig"
desc = "Let me give it to you straight like a pear cider made from 100% pears, this space suit isn't particularly good"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
//Chief Engineer's rig
/obj/item/clothing/head/helmet/space/rig/elite
name = "advanced hardsuit helmet"

View File

@@ -484,9 +484,12 @@
user.pixel_y -= 6
..()
/obj/item/clothing/suit/jumper/christmas
name = "christmas jumper"
desc = "Made by professional knitting nanas to truly fit the festive mood."
heat_conductivity = INS_ARMOUR_HEAT_CONDUCTIVITY
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARM_LEFT|ARM_RIGHT
/obj/item/clothing/suit/jumper/christmas/red
desc = "Made by professional knitting nanas to truly fit the festive mood. This one has a tasteful red colour to it, and a festive Fir tree."
@@ -502,3 +505,29 @@
desc = "Made by professional knitting nanas to truly fit the festive mood. This one is green in colour, and has a reindeer with a red nose on the front. At least you think it's a reindeer."
icon_state = "cjumper-green"
item_state = "cjumper-green"
/obj/item/clothing/suit/spaceblanket
icon_state = "shittyuglyawfulBADblanket"
name = "space blanket"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
desc = "First developed by NASA in 1964 for the US space program!"
heat_conductivity = 0 // Good luck losing heat in this!
slowdown = 10
/obj/item/clothing/suit/spaceblanket/attackby(obj/item/W,mob/user)
..()
if(istype(W,/obj/item/clothing/head/bearpelt))
to_chat(user,"<span class='notice'>You add \the [W] to \the [src].</span>")
qdel(W)
qdel(src)
var/obj/advanced = new /obj/item/clothing/suit/spaceblanket/advanced (src.loc)
user.put_in_hands(advanced)
/obj/item/clothing/suit/spaceblanket/advanced
name = "advanced space blanket"
desc = "Using an Advanced Space Blanket requires Advanced Power Blanket Training."
icon_state = "goodblanket"
item_state = "shittyuglyawfulBADblanket"
heat_conductivity = 0
slowdown = 5

View File

@@ -30,7 +30,23 @@
/obj/item/clothing/suit/fire/firefighter
icon_state = "firesuit"
item_state = "firefighter"
var/stage = 0
/obj/item/clothing/suit/fire/firefighter/attackby(obj/item/W,mob/user)
..()
if(istype(W,/obj/item/clothing/suit/spaceblanket) && !stage)
stage = 1
to_chat(user,"<span class='notice'>you add \the [W] to \the [src]</span>")
qdel(W)
if(istype(W,/obj/item/stack/cable_coil) && stage == 1)
var/obj/item/stack/cable_coil/C = W
if(C.amount <= 4)
return
to_chat(user,"<span class='notice'>you tie up \the [src] with some of \the [C]</span>")
C.use(4)
var/obj/ghetto = new /obj/item/clothing/suit/space/rig/ghettorig (src.loc)
user.put_in_hands(ghetto)
qdel(src)
/obj/item/clothing/suit/fire/heavy
name = "firesuit"

View File

@@ -199,8 +199,9 @@
to_chat(src, "<span class='danger'>You suddenly feel blubbery !</span>")
mutations.Add(M_FAT)
burn_calories(HUNGER_FACTOR)
burn_calories(2*HUNGER_FACTOR / 3)
if(!stat)
burn_calories(HUNGER_FACTOR / 3)
if (drowsyness)
drowsyness--
eye_blurry = max(2, eye_blurry)

View File

@@ -16,10 +16,10 @@
if(.)
if(nutrition && stat != DEAD)
burn_calories(HUNGER_FACTOR / 10)
burn_calories(HUNGER_FACTOR / 20)
if(m_intent == "run")
burn_calories(HUNGER_FACTOR / 10)
burn_calories(HUNGER_FACTOR / 20)
update_minimap()
/mob/living/carbon/attack_animal(mob/living/simple_animal/M as mob)//humans and slimes have their own

View File

@@ -67,7 +67,7 @@
if (bodytemperature < 183.222)
tally += (283.222 - bodytemperature) / 10 * 1.75
else if (undergoing_hypothermia())
tally += (1/2)*undergoing_hypothermia()
tally += 2*undergoing_hypothermia()
var/skate_bonus = 0
var/disease_slow = 0
for(var/obj/item/weapon/bomberman/dispenser in src)

View File

@@ -6,7 +6,7 @@
var/mob/living/carbon/human/H = src
var/obj/item/I = H.get_active_hand()
if(!I)
to_chat(H, "<span class='notice'>You are not holding anything to equip.</span>")
to_chat(H, "<span class='notice'>You are not holding anything to equip.</span>")
return
if(H.equip_to_appropriate_slot(I))
if(hand)
@@ -14,7 +14,7 @@
else
update_inv_r_hand(0)
else
to_chat(H, "<span class='warning'>You are unable to equip that.</span>")
to_chat(H, "<span class='warning'>You are unable to equip that.</span>")
/mob/living/carbon/human/get_all_slots()
. = get_head_slots() | get_body_slots()
@@ -72,7 +72,8 @@
obscured |= slot_w_uniform
if(wear_suit.flags_inv & HIDESHOES)
obscured |= slot_shoes
if(wear_suit.flags_inv & HIDEBAG)
obscured |= slot_back
if(head)
if(head.flags_inv & HIDEMASK)
obscured |= slot_wear_mask
@@ -411,7 +412,7 @@
W.loc = src.back
return
else
to_chat(src, "<span class='warning'>You are trying to equip this item to an unsupported inventory slot. Report this to a coder!</span>")
to_chat(src, "<span class='warning'>You are trying to equip this item to an unsupported inventory slot. Report this to a coder!</span>")
return
update_hidden_item_icons(W)
@@ -607,7 +608,7 @@
if(!pickpocket)
message = "<span class='danger'>[source] is trying to take off the [target.belt] from [target]'s belt!</span>"
else
to_chat(source, "<span class='notice'>You try to take off the [target.belt] from [target]'s belt!</span>")
to_chat(source, "<span class='notice'>You try to take off the [target.belt] from [target]'s belt!</span>")
if("suit")
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their suit ([target.wear_suit]) removed by [source.name] ([source.ckey])</font>")
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to remove [target.name]'s ([target.ckey]) suit ([target.wear_suit])</font>")
@@ -661,7 +662,7 @@
if(!pickpocket)
message = "<span class='danger'>[source] is trying to take off [target.wear_id] from [target]'s uniform!</span>"
else
to_chat(source, "<span class='notice'>You try to take off [target.wear_id] from [target]'s uniform!</span>")
to_chat(source, "<span class='notice'>You try to take off [target.wear_id] from [target]'s uniform!</span>")
if("internal")
target.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has had their internals toggled by [source.name] ([source.ckey])</font>")
source.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to toggle [target.name]'s ([target.ckey]) internals</font>")
@@ -807,8 +808,8 @@ It can still be worn/put on as normal.
target.updatehealth()
for(var/mob/O in viewers(source, null))
O.show_message("<span class='warning'>[source] performs CPR on [target]!</span>", 1)
to_chat(target, "<span class='notice'><b>You feel a breath of fresh air enter your lungs. It feels good.</b></span>")
to_chat(source, "<span class='warning'>Repeat at least every 7 seconds.</span>")
to_chat(target, "<span class='notice'><b>You feel a breath of fresh air enter your lungs. It feels good.</b></span>")
to_chat(source, "<span class='warning'>Repeat at least every 7 seconds.</span>")
if("dnainjector")
var/obj/item/weapon/dnainjector/S = item
if(S)

View File

@@ -28,6 +28,6 @@
handle_hypothermia()
if(bodytemperature > 310.15)
//We totally need a sweat system cause it totally makes sense...~ - Now we do, sort of!
var/recovery_amt = Clamp((body_temperature_difference / BODYTEMP_AUTORECOVERY_DIVISOR),body_temperature_difference,BODYTEMP_AUTORECOVERY_MAXIMUM)
var/recovery_amt = min((body_temperature_difference / BODYTEMP_AUTORECOVERY_DIVISOR),BODYTEMP_AUTORECOVERY_MAXIMUM)
//log_debug("Hot. Difference = [body_temperature_difference]. Recovering [recovery_amt]")
sweat(recovery_amt)

View File

@@ -77,13 +77,7 @@
//Nutrition decrease
if(stat != 2)
//Nutrition decreases slower when you're sleeping
var/reduce_nutrition_by = HUNGER_FACTOR
if(sleeping)
reduce_nutrition_by *= 0.25 //Reduce hunger factor by 75%
burn_calories(reduce_nutrition_by)
burn_calories(HUNGER_FACTOR)
if(nutrition > 450)
if(overeatduration < 600) //capped so people don't take forever to unfat

View File

@@ -14,9 +14,9 @@
//After then, it reacts to the surrounding atmosphere based on your thermal protection
if(!on_fire) //If you're on fire, you do not heat up or cool down based on surrounding gases
if(loc_temp < bodytemperature)
if(loc_temp < get_skin_temperature())
var/thermal_loss = get_thermal_loss(environment)
bodytemperature -= abs(thermal_loss)
bodytemperature -= thermal_loss
else
var/thermal_protection = get_heat_protection(loc_temp) //This returns a 0 - 1 value, which corresponds to the percentage of protection based on what you're wearing and what you're exposed to.
if(thermal_protection < 1)
@@ -89,13 +89,16 @@
if(loc_temp < bodytemperature)
// We're going to try and just use exposed area(temperature difference)/cold divisor, and assume we're only conducting.
var/thermal_loss = (1-get_cold_protection()) // How much of your skin is exposed.
thermal_loss *= environment.total_moles/103.934 // Multiplied by how many moles are in the environment over 103.934, the normal value of a station - this means space will not take heat from you.
if(environment.total_moles > 103.934 || !IS_SPACE_COLD)
thermal_loss *= environment.total_moles/103.934 // Multiplied by how many moles are in the environment over 103.934, the normal value of a station. - More moles means more heat transfer, that's basic science.
thermal_loss *= (get_skin_temperature() - loc_temp) // Multiplied by the difference between you and the room temperature
thermal_loss /= BODYTEMP_COLD_DIVISOR // Divided by the cold_divisor
return thermal_loss
return 0
/mob/living/carbon/human/proc/get_loc_temp(var/datum/gas_mixture/environment)
if(!environment)
environment = loc.return_air()
var/loc_temp = T0C
if(istype(loc, /obj/mecha))
var/obj/mecha/M = loc

View File

@@ -1,6 +1,13 @@
var/global/list/coldwarning_light = list("It's a wee bit chilly, isn't it?","Your nose feels numb","It's pretty cold!","You should probably wrap up some more.","You can see your breath!","You feel like taking a nap.")
var/global/list/coldwarning_hard = list("Holy shit, it's freezing cold out here!","You should probably get warmed up quickly!","You can't feel your hands!","You can't feel anything!","You're absolutely exhausted!")
/mob/living/proc/undergoing_hypothermia()
if(!istype(src,/mob/living/carbon/human))
return NO_HYPOTHERMIA
else
var/mob/living/carbon/human/H = src
if(H.species == "/datum/species/horror")
return NO_HYPOTHERMIA
if((status_flags & GODMODE) || (flags & INVULNERABLE) || istype(loc, /obj/machinery/atmospherics/unary/cryo_cell))
return NO_HYPOTHERMIA
var/body_temp_celcius = src.bodytemperature - T0C
@@ -9,9 +16,9 @@
return MILD_HYPOTHERMIA // awake and shivering
if(28 to 32)
return MODERATE_HYPOTHERMIA // drowsy and not shivering
if(20 to 28)
if(24 to 28)
return SEVERE_HYPOTHERMIA // unconcious, not shivering
if(-T0C to 20)
if(-T0C to 24)
return PROFOUND_HYPOTHERMIA // no vital signs
return NO_HYPOTHERMIA
@@ -24,7 +31,7 @@
for(var/datum/reagent/chem in blood.reagent_list)
if(istype(chem,/datum/reagent/ethanol)) // alcohol is a vasodilator.
vessel_dilated = 1
if(undergoing_hypothermia() == MODERATE_HYPOTHERMIA && nutrition < 250) // conserve our energy for something else.
if(undergoing_hypothermia() == MODERATE_HYPOTHERMIA && bodytemperature < 29) // conserve our energy for something else.
vessel_dilated = 1
return vessel_dilated
@@ -38,17 +45,27 @@
skin_temperature += T0C
return skin_temperature
/mob/living/carbon/human/proc/handle_hypothermia() // called in handle_body_temperature.dm
switch(undergoing_hypothermia())
if(MILD_HYPOTHERMIA) // shivering + stuttering + slowed down
// see human_movement.dm for slowdown.
// see handle_regular_status_updates for "shivering"
if(prob(5) && !is_vessel_dilated())
if(prob(75))
to_chat(src,"<b>[pick(coldwarning_light)]</b>")
else to_chat(src,"<span class='danger'>[pick(coldwarning_hard)]</span>")
if(prob(25)) // shivering
jitteriness = min(jitteriness + 15,30)
if(MODERATE_HYPOTHERMIA) // drowsy and not shivering + slowed down
// at this stage, you have a 25% chance of 'momentarily forgetting' how to use machines, like when braindamaged.
// see handle_regular_status_updates for the increased dizziness.
// may stutter - see say.dm
// may slur words - see a different say.dm there's like a billion.
// see human_movement.dm for slowdown.
if(prob(5) && !is_vessel_dilated())
if(prob(50))
to_chat(src,"<b>[pick(coldwarning_light)]</b>")
else to_chat(src,"<span class='danger'>[pick(coldwarning_hard)]</span>")
burn_calories(0.2)
if(prob(2) && get_active_hand())
to_chat(src, "<span class='warning'>You lose your grip of \the [get_active_hand()], and it slides out of your hand!</span>")
@@ -59,10 +76,9 @@
if(SEVERE_HYPOTHERMIA) // unconcious, not shivering - we're going to burn up all you've eaten now.
// at this point, the pulse will go to rougly 30bpm, see handle_pulse for details.
// at this point, you are unconcious; see handle_regular_status_updates.dm for details.
src.adjustOxyLoss(0.5)
if(prob(25))
src.adjustOxyLoss(5) // this seems pretty deadly but they're still breathing so it'll decay.
if(PROFOUND_HYPOTHERMIA) // all vital signs are gone, we've can't even burn fuel it's 2cold, try to keep the brain alive.
for(var/datum/organ/internal/organ in internal_organs_by_name) // total organ shutdown except the brain, which the body tries to use all the energy it has keep alive.
if(!istype(organ,/datum/organ/internal/brain))
organ.take_damage(1,1)
// at this point, they will have no pulse, see handle_pulse for details.
src.adjustOxyLoss(1) //see handle_breath.dm, they aren't breathing.
if(prob(25))
src.adjustOxyLoss(5) //see handle_breath.dm, they aren't breathing.

View File

@@ -218,13 +218,17 @@
else fire.icon_state = "fire0"
if(bodytemp)
if(!undergoing_hypothermia())
if(!(get_thermal_loss(loc.return_air()) > 0.1) || bodytemperature > T0C + 50)
switch(bodytemperature) //310.055 optimal body temp
if(370 to INFINITY) bodytemp.icon_state = "temp4"
if(350 to 370) bodytemp.icon_state = "temp3"
if(335 to 350) bodytemp.icon_state = "temp2"
if(320 to 335) bodytemp.icon_state = "temp1"
if(0 to 320) bodytemp.icon_state = "temp0"
if(305 to 320) bodytemp.icon_state = "temp0"
if(303 to 305) bodytemp.icon_state = "temp-1"
if(300 to 303) bodytemp.icon_state = "temp-2"
if(290 to 295) bodytemp.icon_state = "temp-3"
if(0 to 290) bodytemp.icon_state = "temp-4"
else if(is_vessel_dilated() && undergoing_hypothermia() == MODERATE_HYPOTHERMIA)
bodytemp.icon_state = "temp4" // yes, this is intentional - this is the cause of "paradoxical undressing", ie feeling 2hot when hypothermic
else

View File

@@ -120,7 +120,7 @@
//Dizziness
if(dizziness || undergoing_hypothermia() == MODERATE_HYPOTHERMIA)
var/wasdizzy = 1
if(undergoing_hypothermia() == MODERATE_HYPOTHERMIA && !dizziness && prob(25))
if(undergoing_hypothermia() == MODERATE_HYPOTHERMIA && !dizziness && prob(50))
dizziness = 120
wasdizzy = 0
var/client/C = client
@@ -158,11 +158,7 @@
dizziness = 0
//Jitteryness
if(jitteriness || undergoing_hypothermia() == MILD_HYPOTHERMIA)
var/wasjittery = 1
if(undergoing_hypothermia() == MILD_HYPOTHERMIA && !jitteriness && prob(25))
jitteriness = 120
wasjittery = 0
if(jitteriness)
var/amplitude = min(8, (jitteriness/70) + 1)
var/pixel_x_diff = rand(-amplitude, amplitude)
var/pixel_y_diff = rand(-amplitude, amplitude)
@@ -179,8 +175,6 @@
pixel_y_diff = rand(-amplitude, amplitude)
animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff , time = 1, loop = -1)
animate(pixel_x = pixel_x - pixel_x_diff, pixel_y = pixel_y - pixel_y_diff, time = 1, loop = -1, easing = BOUNCE_EASING)
if(!wasjittery)
jitteriness = 0
//Flying
if(flying)
spawn()

View File

@@ -330,8 +330,8 @@
if(prob(20))
if(istype(src, /mob/living/carbon/slime/adult)) burn_calories(4,6)
else burn_calories(2,3)
if(istype(src, /mob/living/carbon/slime/adult)) burn_calories(rand(4,6))
else burn_calories(rand(2,3))
if(nutrition <= 0)
nutrition = 0

View File

@@ -93,9 +93,8 @@
stance = HOSTILE_STANCE_ATTACK
if(isliving(target))
var/mob/living/L = target
if(L.bodytemperature > 261)
L.bodytemperature = 261
visible_message("<span class='danger'>The [src.name]'s stare chills [L.name] to the bone!</span>")
L.bodytemperature = min(L.bodytemperature-5,T0C+20)
visible_message("<span class='danger'>The [src.name]'s stare chills [L.name] to the bone!</span>")
return
/mob/living/simple_animal/hostile/asteroid/basilisk/ex_act(severity)

View File

@@ -1,6 +1,6 @@
/mob/living/proc/burn_calories(var/amount)
if(nutrition - amount > 0)
var/heatmodifier = 0.6
var/heatmodifier = 0.7
nutrition = max(nutrition - amount,0)
if((M_FAT in mutations))
heatmodifier = heatmodifier*2
@@ -10,9 +10,10 @@
return 0
/mob/living/proc/sweat(var/amount)
if(nutrition - amount > 0)
var/sustenance = amount / 50
if(nutrition - sustenance > 0)
var/heatmodifier = 1
nutrition = max(nutrition - amount,0)
nutrition = max(nutrition - sustenance,0)
if((M_FAT in mutations))
heatmodifier = heatmodifier*2
bodytemperature -= amount * heatmodifier

View File

@@ -77,7 +77,7 @@
var/mob/living/M = target
if(M.flags & INVULNERABLE)
return 0
M.bodytemperature = temperature
M.bodytemperature -= 2*((temperature-T0C)/(-T0C))
if(temperature > 500)//emagged
M.adjust_fire_stacks(0.5)
M.on_fire = 1

View File

@@ -2493,7 +2493,7 @@
switch(data)
if(1 to 15)
M.bodytemperature -= 5 * TEMPERATURE_DAMAGE_COEFFICIENT
M.bodytemperature = max(M.bodytemperature-0.1 * TEMPERATURE_DAMAGE_COEFFICIENT,0)
if(holder.has_reagent("capsaicin"))
holder.remove_reagent("capsaicin", 5)
if(isslime(M))
@@ -2501,13 +2501,13 @@
if(M.dna && M.dna.mutantrace == "slime")
M.bodytemperature -= rand(5,20)
if(15 to 25)
M.bodytemperature -= 10 * TEMPERATURE_DAMAGE_COEFFICIENT
M.bodytemperature = max(M.bodytemperature-0.2 * TEMPERATURE_DAMAGE_COEFFICIENT,0)
if(isslime(M))
M.bodytemperature -= rand(10,20)
if(M.dna.mutantrace == "slime")
M.bodytemperature -= rand(10,20)
if(25 to INFINITY)
M.bodytemperature -= 15 * TEMPERATURE_DAMAGE_COEFFICIENT
M.bodytemperature = max(M.bodytemperature-0.3 * TEMPERATURE_DAMAGE_COEFFICIENT,0)
if(prob(1))
M.emote("shiver")
if(isslime(M))
@@ -3523,7 +3523,7 @@
switch(data)
if(1 to 15)
M.bodytemperature -= 5 * TEMPERATURE_DAMAGE_COEFFICIENT
M.bodytemperature -= 0.1 * TEMPERATURE_DAMAGE_COEFFICIENT
if(holder.has_reagent("capsaicin"))
holder.remove_reagent("capsaicin", 5)
if(isslime(M))
@@ -3531,13 +3531,13 @@
if(M.dna.mutantrace == "slime")
M.bodytemperature -= rand(5,20)
if(15 to 25)
M.bodytemperature -= 10 * TEMPERATURE_DAMAGE_COEFFICIENT
M.bodytemperature -= 0.2 * TEMPERATURE_DAMAGE_COEFFICIENT
if(isslime(M))
M.bodytemperature -= rand(10,20)
if(M.dna.mutantrace == "slime")
M.bodytemperature -= rand(10,20)
if(25 to INFINITY)
M.bodytemperature -= 15 * TEMPERATURE_DAMAGE_COEFFICIENT
M.bodytemperature -= 0.3 * TEMPERATURE_DAMAGE_COEFFICIENT
if(prob(1)) M.emote("shiver")
if(isslime(M))
M.bodytemperature -= rand(15,20)
@@ -3929,8 +3929,6 @@
M.nutrition += nutriment_factor
M.drowsyness = max(0, M.drowsyness - 7)
if(M.bodytemperature > 310)
M.bodytemperature = max(310, M.bodytemperature - 5)
M.Jitter(1)
/////////////////////////////////////////////////////////////////Cocktail Entities//////////////////////////////////////////////
@@ -4297,8 +4295,8 @@
if(..()) return 1
if(M.bodytemperature < 270)
M.bodytemperature = min(270, M.bodytemperature - 40) //310 is the normal bodytemp. 310.055
if(M.bodytemperature < T0C+33)
M.bodytemperature = min(T0C+33, M.bodytemperature - 4) //310 is the normal bodytemp. 310.055
/datum/reagent/ethanol/deadrum/grog
name = "Grog"

View File

@@ -1483,7 +1483,7 @@ datum
playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1)
for(var/mob/living/M in range (get_turf(holder.my_atom), 7))
M.bodytemperature -= 240
M.bodytemperature -= 6
to_chat(M, "<span class='notice'>You feel a chill!</span>")
//Orange

View File

@@ -69,7 +69,7 @@ var/global/disable_vents = 0
#define TEMPERATURE_DAMAGE_COEFFICIENT 1.5 //This is used in handle_temperature_damage() for humans, and in reagents that affect body temperature. Temperature damage is multiplied by this amount.
#define BODYTEMP_AUTORECOVERY_DIVISOR 4 //This is the divisor which handles how much of the temperature difference between the current body temperature and 310.15K (optimal temperature) humans auto-regenerate each tick. The higher the number, the slower the recovery. This is applied each tick, so long as the mob is alive.
#define BODYTEMP_AUTORECOVERY_MAXIMUM 2 //Maximum amount of kelvin moved toward 310.15K per tick. So long as abs(310.15 - bodytemp) is more than 50.
#define BODYTEMP_AUTORECOVERY_MAXIMUM 0.25 //Maximum amount of kelvin moved toward 310.15K per tick. So long as abs(310.15 - bodytemp) is more than 0.5 .
#define BODYTEMP_COLD_DIVISOR 150 //Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is lower than their body temperature. Make it lower to lose bodytemp faster.
#define BODYTEMP_HEAT_DIVISOR 6 //Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is higher than their body temperature. Make it lower to gain bodytemp faster.
#define BODYTEMP_HEATING_MAX 30 //The maximum number of degrees that your body can heat up in 1 tick, when in a hot area.
@@ -88,20 +88,20 @@ var/global/disable_vents = 0
#define GLOVES_MAX_HEAT_PROTECTION_TEMPERATURE 1500 //For some gloves
#define SHOE_MAX_HEAT_PROTECTION_TEMPERATURE 1500 //For gloves
#define IS_SPACE_COLD 1
#define PRESSURE_DAMAGE_COEFFICIENT 4 //The amount of pressure damage someone takes is equal to (pressure / HAZARD_HIGH_PRESSURE)*PRESSURE_DAMAGE_COEFFICIENT, with the maximum of MAX_PRESSURE_DAMAGE
#define MAX_HIGH_PRESSURE_DAMAGE 4 //This used to be 20... I got this much random rage for some retarded decision by polymorph?! Polymorph now lies in a pool of blood with a katana jammed in his spleen. ~Errorage --PS: The katana did less than 20 damage to him :(
#define LOW_PRESSURE_DAMAGE 2 //The amounb of damage someone takes when in a low pressure area (The pressure threshold is so low that it doesn't make sense to do any calculations, so it just applies this flat value).
#define PRESSURE_DAMAGE_COEFFICIENT 12 //The amount of pressure damage someone takes is equal to (pressure / HAZARD_HIGH_PRESSURE)*PRESSURE_DAMAGE_COEFFICIENT, with the maximum of MAX_PRESSURE_DAMAGE
#define MAX_HIGH_PRESSURE_DAMAGE 12 //This used to be 20... I got this much random rage for some retarded decision by polymorph?! Polymorph now lies in a pool of blood with a katana jammed in his spleen. ~Errorage --PS: The katana did less than 20 damage to him :(
#define LOW_PRESSURE_DAMAGE 6 //The amounb of damage someone takes when in a low pressure area (The pressure threshold is so low that it doesn't make sense to do any calculations, so it just applies this flat value).
#define PRESSURE_SUIT_REDUCTION_COEFFICIENT 0.9 //This is how much (percentual) a suit with the flag STOPSPRESSUREDMG reduces pressure.
#define PRESSURE_HEAD_REDUCTION_COEFFICIENT 0.6 //This is how much (percentual) a helmet/hat with the flag STOPSPRESSUREDMG reduces pressure.
#define PRESSURE_SUIT_REDUCTION_COEFFICIENT 0.8 //This is how much (percentual) a suit with the flag STOPSPRESSUREDMG reduces pressure.
#define PRESSURE_HEAD_REDUCTION_COEFFICIENT 0.4 //This is how much (percentual) a helmet/hat with the flag STOPSPRESSUREDMG reduces pressure.
// Heat Conductivity - 1 is fully conductive, 0 is fully insulative.
#define ARMOUR_HEAT_CONDUCTIVITY 0.4 //For armour
#define INS_ARMOUR_HEAT_CONDUCTIVITY 0.2 //For heat insulated suits like hardsuits.
#define INS_ARMOUR_HEAT_CONDUCTIVITY 0.2 //For heat insulated suits like hardsuits or jumpers.
#define MASK_HEAT_CONDUCTIVITY 0.4 //For normal masks
#define INS_MASK_HEAT_CONDUCTIVITY 0.2 //For heat insulated masks such as the balaclava & gas mask
#define INS_MASK_HEAT_CONDUCTIVITY 0.2 //For heat insulated masks such as a balaclavas, scarves & gas masks
#define JUMPSUIT_HEAT_CONDUCTIVITY 0.4 //For normal jumpsuits
#define INS_JUMPSUIT_HEAT_CONDUCTIVITY 0.1 //For heat insulated jumpsuits, if such a thing is even possible.
@@ -119,7 +119,7 @@ var/global/disable_vents = 0
#define DOOR_CRUSH_DAMAGE 10
// Factor of how fast mob nutrition decreases
#define HUNGER_FACTOR 0.12
#define HUNGER_FACTOR 0.15 // Please remember when editing this that it will also affect hypothermia.
// How many units of reagent are consumed per tick, by default.
#define REAGENTS_METABOLISM 0.2
@@ -289,6 +289,7 @@ var/MAX_EXPLOSION_RANGE = 14
#define HIDESUITSTORAGE 2 //APPLIES ONLY TO THE EXTERIOR SUIT!!
#define HIDEJUMPSUIT 4 //APPLIES ONLY TO THE EXTERIOR SUIT!!
#define HIDESHOES 8 //APPLIES ONLY TO THE EXTERIOR SUIT!!
#define HIDEBAG 16 //APPLIES ONLY TO THE EXTERIOR SUIT
#define HIDEMASK 1 //APPLIES ONLY TO HELMETS/MASKS!!
#define HIDEEARS 2 //APPLIES ONLY TO HELMETS/MASKS!! (ears means headsets and such)
#define HIDEEYES 4 //APPLIES ONLY TO HELMETS/MASKS!! (eyes means glasses)

View File

@@ -47,7 +47,7 @@
usr.verbs += /proc/bioproc_cryokinesis
usr.verbs -= /proc/bioproc_cryokinesis_cd
C.bodytemperature = -1500
C.bodytemperature = T0C + 30
if(C.burning) C.burning = 0
C.visible_message("<span class='warning'>A cloud of fine ice crystals engulfs [C]!</span>")

View File

@@ -1,2 +1,12 @@
author: DrCelt
changes: []
changes:
- experiment: Added Hypothermia - see the wiki for symptoms
- experiment: PLEASE USE THE THERMAL HOMEOSTASIS MACHINE AFTER TAKING SOMEONE OUT OF CRYO.
- rscdel: removes useless variables heat_protection and cold_protection
- rscadd: added a new variable heat_conductivity to all items determining how fast they conduct heat away from you
- experiment: refactored how heat transfer away from humans worked
- rscadd: added a machine that stabilises body temperature
- tweak: nerfs anything that I can find that does cold damage, but overall makes them more deadly including but not limited to coldingtons, cryokinesis, showers, goliaths, temperature gun, and chemicals which chill people
- rscadd: adds space blankets and advanced space blankets
- rscadd: adds ghetto rig suits by applying space blankets and cables to firesuits & gas masks.
- rscadd: probably a bunch of other stuff.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 203 KiB

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 KiB

After

Width:  |  Height:  |  Size: 380 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 130 KiB

View File

@@ -1399,7 +1399,7 @@
"aAU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "cafeteria"},/area/medical/break_room)
"aAV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor/plating,/area/medical/break_room)
"aAW" = (/obj/structure/bed,/obj/item/weapon/bedsheet/medical,/turf/simulated/floor{icon_state = "white"},/area/medical/patients_rooms)
"aAX" = (/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor{icon_state = "white"},/area/medical/patients_rooms)
"aAX" = (/obj/machinery/alarm{pixel_y = 22},/obj/machinery/sleeper/mancrowave,/turf/simulated/floor{icon_state = "white"},/area/medical/patients_rooms)
"aAY" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/medical/patients_rooms)
"aAZ" = (/obj/machinery/sleeper,/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_y = 25},/turf/simulated/floor,/area/medical/medbay)
"aBa" = (/obj/machinery/sleep_console,/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor,/area/medical/medbay)
@@ -10317,6 +10317,7 @@
"dQu" = (/obj/machinery/alarm{pixel_y = 24},/obj/machinery/light{dir = 1},/obj/structure/closet/secure_closet/miner,/turf/simulated/floor,/area/mine/production)
"dQv" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/closet/emcloset,/turf/simulated/floor{icon_state = "browncorner"},/area/mine/production)
"dQw" = (/turf/simulated/wall,/area/maintenance/fstarboardsolar)
"dQx" = (/obj/machinery/sleep_console/mancrowave_console,/turf/simulated/floor{icon_state = "white"},/area/medical/patients_rooms)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -10410,7 +10411,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWaaTauIawdauKaabauIaweauKaabauIawfauKaaaaaWaaaaaaaaaaaaaaaaaaaaaaqKaqKaqKaqKaaaaabaqKaqKaqKaqKanoaqKaqPaqPaqPaqPawhamiawiawjauVaqNaqNawkamiamiawlawmamiamiamiatramiamiamiaqSawnawoawpaqSatwatxawqawratxatxannawsawtawuawtazpatCawvawwawxavkawyawzawAawBavkawCawDawEawFawGawHawGawGawIawJawKawLawMawNawLawOawPawQawRawSawTawUasHawVavEavEawWawXawYawZavCaxaaxbasIaoTaoUainaxcaxdaxeaxfaxgaxhaxiaxjaxkaxlaaYaaYaaYaaYakAaxmaxnaxoasVaxpaxqaxraxsaxtaxuaxvaxwaxxasVaxyaxzaxAaxBaxCapqaaaaaaaabaaWaaaaaaaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaWaaaauIaxDauKaaaauIawdauKaaaauIaweauKaabaabaaaaaaaaaaaaaaaaaaaabaqKaxEaxFaqKaqKaqKaqKaxGaxHaxIaxJaqPaqPawhaqPaxKaxLaxMaxNaxOaxPaqNaqNaqNamiaxQaxRaxSaxTaxUaxVaxUaxWaxVaxUaxXaxYaxZayaaybaycatxaydayeayfavfannaygayhayiayhayjaykaylaymaynayoaypayqaypayravkaysaytayuayvatQaywaywaywaywaywaywaywaywaywaywagcarsartatWayxawTayyasHayzavEavCawXayAawXawXayBaxaayCasIaoTaoUainayDayEafbayFayGayHayIayJayKayLayMayNayOayPakAakAayQayRasVasVasVasVasVaySayTasVasVayUasVayVayVayWayXayYapqayZaaaaabaaWaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaUaaaaaUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaWaaaauIaweauKaabauIaxDauKaaaauIaxDauKaabaaaaaaaaaaaaaaaaaaaaaaabaqKazaazbaqKazcazdaqKaxLazeazeazfazeazeazeazeazgazhamiawkaziawhawkaqNaqNamiaxQazjazkazlaAMaAMaAMaAMaAMaAMaAMaznazoaGxatxatxatxazratxazsazsannannannannannannannaztazuazvazwazxazyazzazAavkavkavkahZazBazCazDazEazFazGazHazIazJazKazLaywazMazNazOasHazPawTazQasHazRazSavCavCavEazTavCazUavFazVasIaoTazWainazXazYadwazZaAaauoauoaAbaAcaAdaAeaAfaAgaAhaaYaAiaAjaAkaAlaAmaAnaAoaAnaApaAqaAraAsaAtaAsaAsaAuaAvaAwaAxaAyayZaaaaabaaaaaaaaaaaaaabaaaaaaaabaaaaaaaaaaaUaaaaaUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWaaWaaWaAzaabauIawfauKaaaauIaweauKaaaauIaweauKaaaaaaaaaaaaaabazmawgawgawgawgaqKaACaqKaADaAEaqKaAFaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAHawhaqPaAIaAMaAJaAKaALaAMaANaAMaAOaAPaAQaAAaASaATaAUaAVaAWaAXaAWaAYaAZaBaaBbaBcaBdaBeaBfaBgaBhaBiaBjaBkaBlaBmaBnavkaBoaBpaBqaywaBraBsaBtaBuaBtaBtaBvaBwaBxaByaBzaBAaBBaBCaBDaBEasHaBFaBGaBHaBIaBJaBKaBLaBMaBNaBOasIaoTaBPaBQaBRaBSaaYaBTaBUaBVaBWaBXaBYaBZayMaCaaCbaCcaaYaCdaCeaCfaCfaCgaChaCiaCfaCfaCjaCfaCkaCfaCfaCfaCfaClaCmaCnaAyayZaaaaabaaaaaaaaaaaaaabaabaaaaabaaaaabaabaaUaabaaUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWaaWaaWaAzaabauIawfauKaaaauIaweauKaaaauIaweauKaaaaaaaaaaaaaabazmawgawgawgawgaqKaACaqKaADaAEaqKaAFaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAHawhaqPaAIaAMaAJaAKaALaAMaANaAMaAOaAPaAQaAAaASaATaAUaAVaAWaAXdQxaAYaAZaBaaBbaBcaBdaBeaBfaBgaBhaBiaBjaBkaBlaBmaBnavkaBoaBpaBqaywaBraBsaBtaBuaBtaBtaBvaBwaBxaByaBzaBAaBBaBCaBDaBEasHaBFaBGaBHaBIaBJaBKaBLaBMaBNaBOasIaoTaBPaBQaBRaBSaaYaBTaBUaBVaBWaBXaBYaBZayMaCaaCbaCcaaYaCdaCeaCfaCfaCgaChaCiaCfaCfaCjaCfaCkaCfaCfaCfaCfaClaCmaCnaAyayZaaaaabaaaaaaaaaaaaaabaabaaaaabaaaaabaabaaUaabaaUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCoaaaaaaaaaaabaaaaCpaaaaabaaaaCqaaaaabaaaaCqaabaaaaaaaabaARaABaCsaCraCuaCtaCvaqPaqPaqKaqKaACaqKaAFaAGaaaaabaaaaabaaaaabaaaaCyaaaaabaaaaabaaaaabaaaaAGaxIaxIaxIaAIaAMaAJaAKaCzaCAaANaAMaCBaCCaCDaCwaCFaCGaCHaCIaCJaCKaCKaCLaCMaCNaCOaCMaCPaylaCQaCRaCSaCTaCUaCVaCWaCXaCYavkaCZaDaaDbaywaDcaDdaDeaDfaDgaDeaDhaDiaywaDjaDkaDlasHasHasHasHasHaDmaDnaDoaDpaDpaDpaDpaDqaDraDsasIaDtaBPaDuaDvaDwaaYaDxaaYaDyaDzaDyaaYaDAaDBaDCaDDaaYaaYaDEaAxaDFaDGaDHaDIayZayZayZayZayZayZaDJaDJaDJaDJaDJaDKaDLaDJaDJaDMaDNaDOaDOaDOaDOaDPaDMaDNaDPaDMaDQaaaaaUaaaaaUaaUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWaaaaDRaDSaDTaDUaDVaDSaDWaDWaDVaDXaDUaDYaDVaDXaDUaDYaDZaCEaCxaCEaEaaEcaEbaEdaEgaEhaEhaEgaEhaEiaEjaAGaabaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaabaAGaEkaElawhaAIaAMaEmaEnaEoaEpaEqaEraEsaEtaEuatxaEvaEwaExaEyaEzaEAaEBaECaEDaEEaEFaEGaEHaEIaEJaEKaELaEMaENaEOaEPavkaEQaEQaERaESaETaEQaEQaEQaywaEUaDeaDeaEVaEWaywaEXaEYaEZaFaaFbaFbaFcaFbaFbaFdaFbaFeaFeaFeaFeaFfaFgaFhaFiaFjaFkaFlaFmaFeaFnaFoaFpaFqaFraFsaFtaFuaFvaFwaFxaFyaFzaFAaAxaFBaAyaFCaFDaFEaFFaFGaFHaFIaFJaFKaFLaFMaFNaFOaFPaFQaFRaFSaFTaFUaFUaFVaFWaFWaFWaFXaFYaFZaGaaGbaGcaaUaaaaaaaaUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWaabaabaCoaaaaaaaCpaabaaaaaaaCpaabaabaaaaCpaaaaabaabaaaaARaABaEfaEeaGeaGdawgaGhaGhaqKaACaqKaqKaAFaAGaaaaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaAGaaaaAGaGiaqPawhaGjaAMaGkaGlaGmaGmaGnaGoaGpaGqaGratxaGsaGtaGuatxaGvaGwaNnaGyaGzaGAaGBaGCaGDawvaGEaGFavkavkavkavkavkavkaESaGGaGfaGGaGIaGgaGKaGHaywaGLaDeaDeaGMaGNaywaGOaGPaGQaGRaGSaGTaGUaGSaGSaGSaGSaGSaGTaGSaGSaGVaGWaGXaGSaGYaGZaGUaHaaGTaHbaGSaGUaGTaHcaHdaHeaHfaHgaHhaHiaHjaHkaHlaHmaHnaHoaHpaHqayZaHraHsaHtaHuaHvaHwaHxaHyaFYaHzaHAaHAaHAaHAaHBaFYaFYaHCaHDaHDaHDaFYaFYaFYaHEaHFaHFaaUaaUaaaaaUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

View File

@@ -6259,7 +6259,7 @@
"cqs" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/iv_drip,/turf/simulated/floor{dir = 2; icon_state = "whitehall"; tag = "icon-whitehall (WEST)"},/area/medical/cryo)
"cqt" = (/turf/simulated/floor{dir = 2; icon_state = "whitehall"; tag = "icon-whitehall (WEST)"},/area/medical/cryo)
"cqu" = (/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/AMinus,/obj/item/weapon/reagent_containers/blood/AMinus,/obj/item/weapon/reagent_containers/blood/APlus,/obj/item/weapon/reagent_containers/blood/BMinus,/obj/item/weapon/reagent_containers/blood/BPlus,/obj/item/weapon/reagent_containers/blood/BPlus,/obj/item/weapon/reagent_containers/blood/OPlus,/obj/item/weapon/reagent_containers/blood/OPlus,/obj/item/weapon/reagent_containers/blood/chemo,/obj/item/weapon/reagent_containers/blood/chemo,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/structure/table,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 30; pixel_y = 0},/turf/simulated/floor{dir = 2; icon_state = "whitehall"; tag = "icon-whitehall (WEST)"},/area/medical/cryo)
"cqv" = (/obj/machinery/power/apc{dir = 1; name = "Cryogenics APC"; pixel_y = 24},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone,/obj/machinery/light/small{dir = 8},/obj/structure/table,/turf/simulated/floor{dir = 6; icon_state = "floor"},/area/medical/cryo)
"cqv" = (/obj/machinery/power/apc{dir = 1; name = "Cryogenics APC"; pixel_y = 24},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone,/obj/machinery/light/small{dir = 8},/obj/structure/table,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/turf/simulated/floor{dir = 6; icon_state = "floor"},/area/medical/cryo)
"cqw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 6; icon_state = "floor"},/area/medical/cryo)
"cqx" = (/turf/simulated/floor{dir = 6; icon_state = "floor"},/area/medical/cryo)
"cqy" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor{dir = 1; icon_state = "floor"},/area/medical/cryo)
@@ -6497,9 +6497,9 @@
"cuW" = (/obj/structure/bedsheetbin{pixel_x = 2},/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/mask/muzzle,/obj/item/clothing/glasses/eyepatch,/obj/item/clothing/glasses/sunglasses/blindfold,/obj/item/clothing/ears/earmuffs,/obj/structure/table,/turf/simulated/floor{icon_state = "white"},/area/medical/cryo)
"cuX" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/cryo)
"cuY" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{dir = 6; icon_state = "floor"},/area/medical/cryo)
"cuZ" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/machinery/camera{c_tag = "Medbay - Cryogenics"; dir = 1; network = list("SS13","Medbay")},/obj/structure/table,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1; scrub_Toxins = 0},/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/floor{dir = 6; icon_state = "floor"},/area/medical/cryo)
"cva" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 1; on = 1},/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/machinery/light,/turf/simulated/floor{dir = 6; icon_state = "floor"},/area/medical/cryo)
"cvb" = (/obj/machinery/atmospherics/unary/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor{dir = 2; icon_state = "floor"},/area/medical/cryo)
"cuZ" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/camera{c_tag = "Medbay - Cryogenics"; dir = 1; network = list("SS13","Medbay")},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1; scrub_Toxins = 0},/obj/machinery/sleeper/mancrowave,/turf/simulated/floor{dir = 6; icon_state = "floor"},/area/medical/cryo)
"cva" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 1; on = 1},/turf/simulated/floor{dir = 2; icon_state = "floor"},/area/medical/cryo)
"cvb" = (/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/machinery/light,/obj/machinery/sleep_console/mancrowave_console,/turf/simulated/floor{dir = 6; icon_state = "floor"},/area/medical/cryo)
"cvc" = (/obj/machinery/atmospherics/unary/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor{dir = 6; icon_state = "floor"},/area/medical/cryo)
"cvd" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 2; icon_state = "whitebluecorner"},/area/medical/medbay{name = "Medbay Central"})
"cve" = (/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo)
@@ -10689,7 +10689,7 @@
"dXC" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{dir = 8},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/spectro)
"dXD" = (/obj/machinery/atmospherics/unary/tank/nitrogen{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "dark vault full"},/area/research_outpost/spectro)
"dXE" = (/obj/machinery/alarm{pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro)
"dXF" = (/obj/structure/rack,/obj/item/clothing/suit/fire/heavy{desc = "A suit that protects against temperatures up to -50 C"; max_heat_protection_temperature = 273; min_cold_protection_temperature = 223; name = "thermal protection suit"},/obj/item/clothing/gloves/black{desc = "These gloves are cold-resistant."; max_heat_protection_temperature = 273; min_cold_protection_temperature = 223; name = "warm gloves"},/obj/item/clothing/ears/earmuffs{cold_protection = 1; desc = "Protects your hearing from loud noises and keeps your ears warm."; min_cold_protection_temperature = 223},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro)
"dXF" = (/obj/structure/rack,/obj/item/clothing/suit/fire/heavy{desc = "A suit that protects against temperatures up to -50 C"; max_heat_protection_temperature = 273; name = "thermal protection suit"},/obj/item/clothing/gloves/black{desc = "These gloves are cold-resistant."; max_heat_protection_temperature = 273; name = "warm gloves"},/obj/item/clothing/ears/earmuffs{desc = "Protects your hearing from loud noises and keeps your ears warm."},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro)
"dXG" = (/obj/machinery/biogenerator,/turf/simulated/floor{tag = "icon-whitegreen (NORTHEAST)"; icon_state = "whitegreen"; dir = 5},/area/research_outpost/xenobot)
"dXH" = (/turf/simulated/floor{dir = 1; icon_state = "whitegreen"},/area/research_outpost/xenobot)
"dXI" = (/obj/structure/transit_tube{icon_state = "NW-SE"},/obj/structure/lattice,/turf/space,/area)
@@ -10713,7 +10713,7 @@
"dYa" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor{icon_state = "dark vault full"},/area/research_outpost/spectro)
"dYb" = (/obj/machinery/door/window{base_state = "left"; dir = 4; name = "Spectrometry Lab"; req_access_txt = "47"},/obj/machinery/door/window{dir = 8; base_state = "left"; name = "Spectrometry Lab"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark vault full"},/area/research_outpost/spectro)
"dYc" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro)
"dYd" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/rack,/obj/item/clothing/suit/fire/heavy{desc = "A suit that protects against temperatures up to -50 C"; max_heat_protection_temperature = 273; min_cold_protection_temperature = 223; name = "thermal protection suit"},/obj/item/clothing/gloves/black{desc = "These gloves are cold-resistant."; max_heat_protection_temperature = 273; min_cold_protection_temperature = 223; name = "warm gloves"},/obj/item/clothing/ears/earmuffs{cold_protection = 1; desc = "Protects your hearing from loud noises and keeps your ears warm."; min_cold_protection_temperature = 223},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/research_outpost/spectro)
"dYd" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/rack,/obj/item/clothing/suit/fire/heavy{desc = "A suit that protects against temperatures up to -50 C"; max_heat_protection_temperature = 273; name = "thermal protection suit"},/obj/item/clothing/gloves/black{desc = "These gloves are cold-resistant."; max_heat_protection_temperature = 273; name = "warm gloves"},/obj/item/clothing/ears/earmuffs{desc = "Protects your hearing from loud noises and keeps your ears warm."},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/research_outpost/spectro)
"dYe" = (/turf/simulated/wall/r_wall,/area/research_outpost/sample)
"dYf" = (/obj/effect/landmark{name = "bluespacerift"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/xenobot)
"dYg" = (/obj/structure/transit_tube{icon_state = "D-NE"},/obj/structure/lattice,/turf/space,/area)
@@ -12137,7 +12137,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLaahcmgcmgcmgcmgcmgaaacrjaahcmgcmgcmgcmgcmgaaaabLaaaaahaaaaaaaIlaJLcrkbWicleclecleclecleclecrlcrmcrncrocrpclecrqcrrcrscrtcrucrvcrwcrxcrycrtcrzcrAcrBcqDcrCcrDcrEcrFcrGcqDcrHckpcrIcobcrJcobcrKckrcrLcrMcrNcrOcrPcrQcrRcrScrTcrUcrVcrWcrXcrYcrZcsacgMcsbcsccsdcsecsfcsgcfqcgMcgMcshcoxcsicsgcsjcgMcsfcskcslcsmclLbuuburcsnburbrXburburcsoaaaaaacspcsqckOcsrckOcsqaahaaaaaaaaaaaaaahaaaaaaaaaaahaaaaaaaaaaaaaahaahaahaahaaaaaaaaaaaaaaaaaaabLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacssaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKOaaaaahaaaaahaaaaahaaachAaaaaahaaaaahaahaahaahaKOaaaaahaaaaaaciGaJLcrkbWiclecstcsucsvcswclecsxcsycszcsAcsBclecsCcrrcsDcsEcsFcrvcsGcqxcqxcsHcrzcrAcrBcsIcsJcsKcsLcsMcsNcqDcsOckpcsPcsQcsRcsScsTcsUcsVcjfcjgcsWcsXcsYcsZctactbcrUctccibcicctdctectfctgcthctictjctkctlctmctnctoctpctqctrctscttcgMcgMcgMctuctvctwclLbuvctxctybrXbrXcbUburctzaaaaaactAaahaaaaaaaaaaahaaaaaaaaaaaaaaaaahaaaaaaaaaaahaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaabLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLaaacjPcjPcjPcjPcjPaahctBaahcjPcjPcjPcjPcjPaahabLaaaaahaaaaaacjRaJLcrkbWiclectCctDctEctFctGctHctIctJctKctLctMctNctOctPctQctRcqwctSctTctUcsHctVctWcpjctXctYctZcuacubcuccqDcudckpcuecufcugcuhcuickrcujcjfcjgckycukculcumcuncuocupckxcuqcurcuscutcuucuvcuwcuxcuycuzcuAcuBcuCcuDcuEcuFcozcuGcuHcgMcuIcgMcuJcuKcsfclLburckLcuLbrXcuMburburbrXaaaaaaaaaaaaaaaaaaaaaaahaahaafabLabLabLabLabLabLaafabLabLabLabLaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaabLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLaahckVckWckWckWckWckXckYckZclaclaclaclaclbaahabLaahaahaaaaaaaIlbQYcrkbWiclecuNcuOcuPcuQclecuRcuScuTcuUcuVclecuWcrrcuXcrtcuYcuZcvacvbcvccrtcrzcrAcvdcqDcvecvfcuacubcvgcqDaJLckpckpckpcvhckpckpckpcvicvjcvkckxckxckxckxckxcvlcvmckxclLclLcvncvocvpcvqcvrcvscvtcvucvqcvqcvvcvwcvxcvvcvvcvvcvvcvvcvvcvvcvycvzcvAclLburckLbrXbrXbrXbrXbrXbrXaaaaaaaaaaaaaaaaaaaaaaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaabLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLaahckVckWckWckWckWckXckYckZclaclaclaclaclbaahabLaahaahaaaaaaaIlbQYcrkbWiclecuNcuOcuPcuQclecuRcuScuTcuUcuVclecuWcrrcuXcrtcuYcuZcvbcvacvccrtcrzcrAcvdcqDcvecvfcuacubcvgcqDaJLckpckpckpcvhckpckpckpcvicvjcvkckxckxckxckxckxcvlcvmckxclLclLcvncvocvpcvqcvrcvscvtcvucvqcvqcvvcvwcvxcvvcvvcvvcvvcvvcvvcvvcvycvzcvAclLburckLbrXbrXbrXbrXbrXbrXaaaaaaaaaaaaaaaaaaaaaaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaabLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLaahcmgcmgcmgcmgcmgaaacrjaaacmgcmgcmgcmgcmgaaaabLaaaaahaaaaaaaIlcvBcvCcvDclecvEcvFcvGcvHcvIcvJcvKcvLcvMcvNclecvOcvPcvQcpecvRcpecpecpecpecpecvScvTcvUcvVcvWcvXcvYcvZcwacqDcwbevgcwdcwecwfcwgcwgcwhcwicwjcwkcwlcwmcwmcwmcwmcwncwocwpcwqcwrcwscwtcwucvqcwvcwwcwxcwycwzcvqcwAcwBcwCcwDcwEcwFcwGcwHcwIcvvclLcwJclLclLcefcwKcwLcwMcwNcwOcwPcwLcwQcwRcwLaaaaaaaaaaaaaahabLabLaafabLabLabLaafabLabLabLaafabLabLabLabLabLabLaafabLabLabLabLabLabLabLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLaaaaaaaahaahaahaaaaaacwSaahaaaaaaaahaahaaaaaaaahaaaaahaaaaIlaIlaIlaIlcwTclecleclecwUcleclecleclecleclecleclecpecwVcpecpecpecwWcwXcwYcwZcxacxbcxccxdcqDcxecuacxfcxgcxhcxicrkcxicxicxicxicxicxicxicoecxjcxkaIlaJLaJLbDNaJLaJLcxlcxmaJLcsOcxncgMcxocvqcxpcxqcxrcxscxtcvqcxucxvcxwcxxcxycxzcxAcxBcxCcvvcxDcxEcxFcxGcxHcxIcwLcxJcxKcxKcxKcxLcxMcxNcxOaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaahaaaaaaaahaaaaahaaaaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKOaaaaaaaaaaaaaaaaaaaaacwSaaaaaaaaaaaaaahaaaaaaaaaaaaaahaaaaIlcgccxPaIlcwTaJLaJLaJLbBKaJLaJLaJLaJLaJLaJLcxQaJLcpeevfcpecxRcxScwWcxTcxUcxVcxWcxXcpicxYcqDcqDcqEcxZcxicxicxicrkcxicyacybcyccydcyecxicyfcxjcygaIlbSqbWjcyhcyicyicyjcyicyicykcylcymcxocvqcyncyocypcyqcyrcvqcyscytcyucyvcxBcywcyxcyycyzcvvcyAcyBcyCcyDcyCcyEcyFcyGcxKcxKcxKcyHcyIcyJcyKaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

View File

@@ -325,7 +325,7 @@
"agm" = (/obj/machinery/conveyor/auto{dir = 8; id_tag = "disposal_conveyors"},/turf/simulated/floor/plating,/area/maintenance/fsmaint2{icon_state = "disposal"; name = "Disposals Medical"})
"agn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"ago" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/medical/medbay)
"agp" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/break_room)
"agp" = (/obj/machinery/sleeper/mancrowave,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"agq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"agr" = (/obj/structure/closet/walllocker/defiblocker{pixel_y = 32},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"ags" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
@@ -373,7 +373,7 @@
"ahi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"ahj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"ahk" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"ahl" = (/obj/machinery/power/apc{dir = 1; pixel_y = 24; pixel_x = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/alarm{dir = 4; pixel_x = -22},/obj/structure/bed/chair/comfy/black{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/break_room)
"ahl" = (/obj/machinery/sleep_console/mancrowave_console,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"ahm" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/medical/medbay2)
"ahn" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/medical/medbay2)
"aho" = (/turf/simulated/wall/r_wall,/area/medical/chemistry)
@@ -404,7 +404,7 @@
"ahN" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/science/robotics)
"ahO" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/science/robotics)
"ahP" = (/obj/machinery/atmospherics/unary/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/medical/medbay)
"ahQ" = (/obj/structure/closet/secure_closet/medical1,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"ahQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/alarm{dir = 4; pixel_x = -22},/turf/simulated/floor{icon_state = "white"},/area/medical/break_room)
"ahR" = (/turf/simulated/wall,/area/medical/break_room)
"ahS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/newscaster{dir = 1; pixel_y = -28},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/engine,/area/medical/medbay)
"ahT" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/medical/break_room)
@@ -434,7 +434,7 @@
"air" = (/obj/machinery/computer/aifixer,/turf/simulated/floor,/area/science/robotics)
"ais" = (/turf/simulated/wall,/area/science/robotics)
"ait" = (/obj/machinery/light{dir = 4},/obj/machinery/light_switch{pixel_x = 25; pixel_y = 0},/obj/structure/bed/chair/comfy/black{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"},/area/medical/break_room)
"aiu" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/break_room)
"aiu" = (/obj/structure/bed/chair/comfy/black{dir = 4},/obj/machinery/power/apc{dir = 1; pixel_y = 24; pixel_x = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/break_room)
"aiv" = (/obj/machinery/conveyor/auto{dir = 5; id_tag = "disposal_conveyors"},/turf/simulated/floor/plating/airless,/area)
"aiw" = (/obj/machinery/power/apc{dir = 8; pixel_x = -24; pixel_y = 5},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id_tag = "MedbayFoyer"; name = "Medbay Exit Button"; normaldoorcontrol = 1; pixel_x = -26; pixel_y = -10},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"aix" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
@@ -469,7 +469,7 @@
"aja" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/light/small,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -35},/turf/simulated/floor/plating,/area/maintenance/fsmaint2{icon_state = "disposal"; name = "Disposals Medical"})
"ajb" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/science/robotics)
"ajc" = (/obj/structure/bed/chair/office/light{dir = 8},/obj/effect/landmark/start{name = "Chemist"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry)
"ajd" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/break_room)
"ajd" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/break_room)
"aje" = (/obj/structure/bed/chair/office/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark/start{name = "Chemist"},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry)
"ajf" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/medical/break_room)
"ajg" = (/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access_txt = "5"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
@@ -7574,9 +7574,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxaaaaaaabxaaaaaaaaaaaaaaaaaaabxafKaaaabxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxaaaaaaafmaaaaiWaaaaaaabxaaaaaaaaaabxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafLafLafLafLafLafLafLafLafLafLafLaohabAaoiaojacrajsafPafQafRacraeYadganoafTadgadgaejafVafWafwafwafXafYafZagaagbacOagcagcacOagdageagfaggaghafiagiagiagiaaaaaaaeIafjaeKaaaaeIafjaeKaaaaeIafjaeKabxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxaaaaaaabxaaaaaaaaaagjagjagjabxagkabxagjagjagjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxabxabxaDPalWaDPaiWaDPabxabxabxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafLafLafLafLafLafLafLafLafLafLafLafLahLaglaolaoZagoaegaenaenagqagragsadgapaaeRagtaguagvafVagwagxagyapcapbagBagCagDacOacOacOacOagEafGabmabmabmagiabtadRagHabxabxabxagIabxabxaaaagIabxabxabxagIaaaaaaabxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxabxabxabxabxabxabxabxagJagKagKagMagLagMagNagNagOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxaaabHaalWbHaaiWbHaaaaabxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafLafLagPagQagRagSagTagUagVagWagXagYafLapdapiaphapUahcahdaheaheahfahgapXahiapYahjahkahkafSahmahnahoahpaqAaqmahsahoahoahtahuahvahwahxafGabmabTabmahyahzahAahBahDahCahFahEahCahCahFahEahCahCahFahEahCahFahGabxaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxaaaaaaabxaaaaaaaaaahHahHahHaaaafKaaaahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxaaaabxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafLafLahIahJahJahJahJahJahJahJahJahKafLahLahMahNahOacrahPahQahRahRacfahTahRahUaeRagsahVahWahXahYahoahZaqBaiEaicaaiahoaieaifaifaigahxafGabmaihaihaiiaijaikaihabxabxaaaagIabxaaaabxagIabxabxaaaagIabxabxabxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxaaaaaaabxaaaaaaaaaaaaabxabxabxagkaaaaaaabxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxaaaabxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafLafLailaimahJahJahJahJahJainaioaipafLahLahMaiqairaisaisaisaisahlaiuaitahRaiwaixaiyaizaiAaiBaiCahoaiDaibaiEaiEaflahoajpaiHaiIaiJahxafGabmaiKaiLaiMaiNaiOaihaaaaaaaeIaiPaeKaaaaeIaiPaeKabxaeIaiPaeKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxaaaaaaabxaaaaaaagjagjagjagjabxagkabxagjagjagjagjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxabxabxabxabxabxabxabxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafLafLajCajBajDaiRaiSaiTahJahJahJaipafLadGabUaqEaiXaiYaiZajEajbagpajdafUajfajgajhajiafqajjadgajkahoajlaqHaqGajoakrahoaiGajqajrakZahxafGabmajtagFajvajwajxajyaaaaaaaeIaiPaeKabxaeIaiPaeKabxaeIaiPaeKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxaaaaaaabxaaaaaaaaaahHahHahHaaaafKaaaahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxaaaabxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafLafLahIahJahJahJahJahJahJahJahJahKafLahLahMahNahOacrahPagpahlacracfahTahRahUaeRagsahVahWahXahYahoahZaqBaiEaicaaiahoaieaifaifaigahxafGabmaihaihaiiaijaikaihabxabxaaaagIabxaaaabxagIabxabxaaaagIabxabxabxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxaaaaaaabxaaaaaaaaaaaaabxabxabxagkaaaaaaabxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxaaaabxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafLafLailaimahJahJahJahJahJainaioaipafLahLahMaiqairaisaisaisaisahRahQaitahRaiwaixaiyaizaiAaiBaiCahoaiDaibaiEaiEaflahoajpaiHaiIaiJahxafGabmaiKaiLaiMaiNaiOaihaaaaaaaeIaiPaeKaaaaeIaiPaeKabxaeIaiPaeKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxaaaaaaabxaaaaaaagjagjagjagjabxagkabxagjagjagjagjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxabxabxabxabxabxabxabxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafLafLajCajBajDaiRaiSaiTahJahJahJaipafLadGabUaqEaiXaiYaiZajEajbaiuajdafUajfajgajhajiafqajjadgajkahoajlaqHaqGajoakrahoaiGajqajrakZahxafGabmajtagFajvajwajxajyaaaaaaaeIaiPaeKabxaeIaiPaeKabxaeIaiPaeKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxabxabxabxabxabxabxagJagKagKagKagMagLagMagNagNagNagOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxaaaabxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafLafLakoajAalEalfalKalfamxambakUajFafLahLahMaqIajJajJajKajLajMajNaksajPajQajRajSajTaJCajUajVajWahoajXajcajZajeajXahoakbargaqJarNaruarOakhakiakjakkaklakmaihaaaaaaaeIaknaeKaaaaeIaiPaeKaaaaeIaknaeKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxaaaaaaabxaaaaaaahHahHahHahHaaaafKaaaahHahHahHahHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafLafLajzahJahJakpaiSakqahKafLamCafLafLahLahMajOaktajJakuakvaisahRahRakwakxakyahraiFakBakCakDakDakEakFakAakHakGahoahoakJaqFahxakJahxakLakMakIakOakPakQakRajyaaaaaaaaaaaaaaaaaaaeIaknaeKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabxaaaaaaabxaaaaaaaaaaaaabxabxaaaagkabxabxabxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafLafLakSakTakUakVakWakXajFakYanHakYalaahLahMalbaktajJalcaGQaleaofalgcCTalialjalkallalmalhalnaloalpalqalralsaltabmacCaluarQalwalxalyalzalAaihalBaILalDaqgaihaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa