mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-30 20:13:53 +00:00
Merge remote-tracking branch 'PolarisSS13/master'
This commit is contained in:
@@ -9,6 +9,8 @@
|
||||
S["ooccolor"] >> pref.ooccolor
|
||||
S["tooltipstyle"] >> pref.tooltipstyle
|
||||
S["client_fps"] >> pref.client_fps
|
||||
S["ambience_freq"] >> pref.ambience_freq
|
||||
S["ambience_chance"] >> pref.ambience_chance
|
||||
S["tgui_fancy"] >> pref.tgui_fancy
|
||||
S["tgui_lock"] >> pref.tgui_lock
|
||||
|
||||
@@ -19,16 +21,20 @@
|
||||
S["ooccolor"] << pref.ooccolor
|
||||
S["tooltipstyle"] << pref.tooltipstyle
|
||||
S["client_fps"] << pref.client_fps
|
||||
S["ambience_freq"] << pref.ambience_freq
|
||||
S["ambience_chance"] << pref.ambience_freq
|
||||
S["tgui_fancy"] << pref.tgui_fancy
|
||||
S["tgui_lock"] << pref.tgui_lock
|
||||
|
||||
/datum/category_item/player_setup_item/player_global/ui/sanitize_preferences()
|
||||
pref.UI_style = sanitize_inlist(pref.UI_style, all_ui_styles, initial(pref.UI_style))
|
||||
pref.UI_style_color = sanitize_hexcolor(pref.UI_style_color, initial(pref.UI_style_color))
|
||||
pref.UI_style_alpha = sanitize_integer(pref.UI_style_alpha, 0, 255, initial(pref.UI_style_alpha))
|
||||
pref.ooccolor = sanitize_hexcolor(pref.ooccolor, initial(pref.ooccolor))
|
||||
pref.tooltipstyle = sanitize_inlist(pref.tooltipstyle, all_tooltip_styles, initial(pref.tooltipstyle))
|
||||
pref.client_fps = sanitize_integer(pref.client_fps, 0, MAX_CLIENT_FPS, initial(pref.client_fps))
|
||||
pref.UI_style = sanitize_inlist(pref.UI_style, all_ui_styles, initial(pref.UI_style))
|
||||
pref.UI_style_color = sanitize_hexcolor(pref.UI_style_color, initial(pref.UI_style_color))
|
||||
pref.UI_style_alpha = sanitize_integer(pref.UI_style_alpha, 0, 255, initial(pref.UI_style_alpha))
|
||||
pref.ooccolor = sanitize_hexcolor(pref.ooccolor, initial(pref.ooccolor))
|
||||
pref.tooltipstyle = sanitize_inlist(pref.tooltipstyle, all_tooltip_styles, initial(pref.tooltipstyle))
|
||||
pref.client_fps = sanitize_integer(pref.client_fps, 0, MAX_CLIENT_FPS, initial(pref.client_fps))
|
||||
pref.ambience_freq = sanitize_integer(pref.ambience_freq, 0, 60, initial(pref.ambience_freq)) // No more than once per hour.
|
||||
pref.ambience_chance = sanitize_integer(pref.ambience_chance, 0, 100, initial(pref.ambience_chance)) // 0-100 range.
|
||||
pref.tgui_fancy = sanitize_integer(pref.tgui_fancy, 0, 1, initial(pref.tgui_fancy))
|
||||
pref.tgui_lock = sanitize_integer(pref.tgui_lock, 0, 1, initial(pref.tgui_lock))
|
||||
|
||||
@@ -39,6 +45,8 @@
|
||||
. += "-Alpha(transparency): <a href='?src=\ref[src];select_alpha=1'><b>[pref.UI_style_alpha]</b></a> <a href='?src=\ref[src];reset=alpha'>reset</a><br>"
|
||||
. += "<b>Tooltip Style:</b> <a href='?src=\ref[src];select_tooltip_style=1'><b>[pref.tooltipstyle]</b></a><br>"
|
||||
. += "<b>Client FPS:</b> <a href='?src=\ref[src];select_client_fps=1'><b>[pref.client_fps]</b></a><br>"
|
||||
. += "<b>Random Ambience Frequency:</b> <a href='?src=\ref[src];select_ambience_freq=1'><b>[pref.ambience_freq]</b></a><br>"
|
||||
. += "<b>Ambience Chance:</b> <a href='?src=\ref[src];select_ambience_chance=1'><b>[pref.ambience_chance]</b></a><br>"
|
||||
. += "<b>tgui Window Mode:</b> <a href='?src=\ref[src];tgui_fancy=1'><b>[(pref.tgui_fancy) ? "Fancy (default)" : "Compatible (slower)"]</b></a><br>"
|
||||
. += "<b>tgui Window Placement:</b> <a href='?src=\ref[src];tgui_lock=1'><b>[(pref.tgui_lock) ? "Primary Monitor" : "Free (default)"]</b></a><br>"
|
||||
if(can_select_ooc_color(user))
|
||||
@@ -87,6 +95,20 @@
|
||||
if(pref.client)
|
||||
pref.client.fps = fps_new
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["select_ambience_freq"])
|
||||
var/ambience_new = input(user, "Input how often you wish to hear ambience repeated! (1-60 MINUTES, 0 for disabled)", "Global Preference", pref.ambience_freq) as null|num
|
||||
if(isnull(ambience_new) || !CanUseTopic(user)) return TOPIC_NOACTION
|
||||
if(ambience_new < 0 || ambience_new > 60) return TOPIC_NOACTION
|
||||
pref.ambience_freq = ambience_new
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["select_ambience_chance"])
|
||||
var/ambience_chance_new = input(user, "Input the chance you'd like to hear ambience played to you (On area change, or by random ambience). 35 means a 35% chance to play ambience. This is a range from 0-100. 0 disables ambience playing entirely. This is also affected by Ambience Frequency.", "Global Preference", pref.ambience_freq) as null|num
|
||||
if(isnull(ambience_chance_new) || !CanUseTopic(user)) return TOPIC_NOACTION
|
||||
if(ambience_chance_new < 0 || ambience_chance_new > 100) return TOPIC_NOACTION
|
||||
pref.ambience_chance = ambience_chance_new
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["tgui_fancy"])
|
||||
pref.tgui_fancy = !pref.tgui_fancy
|
||||
|
||||
@@ -61,6 +61,7 @@
|
||||
. = list()
|
||||
. += "<tt><center>"
|
||||
. += "<b>Choose occupation chances</b><br>Unavailable occupations are crossed out.<br>"
|
||||
. += "<script type='text/javascript'>function setJobPrefRedirect(level, rank) { window.location.href='?src=\ref[src];level=' + level + ';set_job=' + encodeURIComponent(rank); return false; }</script>"
|
||||
. += "<table width='100%' cellpadding='1' cellspacing='0'><tr><td width='20%' valign='top'>" // Table within a table for alignment, also allows you to easily add more columns.
|
||||
. += "<table width='100%' cellpadding='1' cellspacing='0'>"
|
||||
var/index = -1
|
||||
@@ -140,7 +141,32 @@
|
||||
|
||||
. += "</td><td width='40%'>"
|
||||
|
||||
. += "<a href='?src=\ref[src];set_job=[rank]'>"
|
||||
var/prefLevelLabel = "ERROR"
|
||||
var/prefLevelColor = "pink"
|
||||
var/prefUpperLevel = -1 // level to assign on left click
|
||||
var/prefLowerLevel = -1 // level to assign on right click
|
||||
if(pref.GetJobDepartment(job, 1) & job.flag)
|
||||
prefLevelLabel = "High"
|
||||
prefLevelColor = "55cc55"
|
||||
prefUpperLevel = 4
|
||||
prefLowerLevel = 2
|
||||
else if(pref.GetJobDepartment(job, 2) & job.flag)
|
||||
prefLevelLabel = "Medium"
|
||||
prefLevelColor = "eecc22"
|
||||
prefUpperLevel = 1
|
||||
prefLowerLevel = 3
|
||||
else if(pref.GetJobDepartment(job, 3) & job.flag)
|
||||
prefLevelLabel = "Low"
|
||||
prefLevelColor = "cc5555"
|
||||
prefUpperLevel = 2
|
||||
prefLowerLevel = 4
|
||||
else
|
||||
prefLevelLabel = "NEVER"
|
||||
prefLevelColor = "black"
|
||||
prefUpperLevel = 3
|
||||
prefLowerLevel = 1
|
||||
|
||||
. += "<a href='?src=\ref[src];set_job=[rank];level=[prefUpperLevel]' oncontextmenu='javascript:return setJobPrefRedirect([prefLowerLevel], \"[rank]\");'>"
|
||||
|
||||
if(job.type == /datum/job/assistant)//Assistant is special
|
||||
if(pref.job_civilian_low & ASSISTANT)
|
||||
@@ -152,14 +178,7 @@
|
||||
. += "</a></td></tr>"
|
||||
continue
|
||||
|
||||
if(pref.GetJobDepartment(job, 1) & job.flag)
|
||||
. += " <font color=55cc55>\[High]</font>"
|
||||
else if(pref.GetJobDepartment(job, 2) & job.flag)
|
||||
. += " <font color=eecc22>\[Medium]</font>"
|
||||
else if(pref.GetJobDepartment(job, 3) & job.flag)
|
||||
. += " <font color=cc5555>\[Low]</font>"
|
||||
else
|
||||
. += " <font color=black>\[NEVER]</font>"
|
||||
. += " <font color=[prefLevelColor]>\[[prefLevelLabel]]</font>"
|
||||
if(LAZYLEN(job.alt_titles))
|
||||
. += "</a></td></tr><tr bgcolor='[lastJob.selection_color]'><td width='60%' align='center'> </td><td><a href='?src=\ref[src];select_alt_title=\ref[job]'>\[[pref.GetPlayerAltTitle(job)]\]</a></td></tr>"
|
||||
. += "</a></td></tr>"
|
||||
@@ -200,8 +219,8 @@
|
||||
return (pref.equip_preview_mob ? TOPIC_REFRESH_UPDATE_PREVIEW : TOPIC_REFRESH)
|
||||
|
||||
else if(href_list["set_job"])
|
||||
if(SetJob(user, href_list["set_job"])) return (pref.equip_preview_mob ? TOPIC_REFRESH_UPDATE_PREVIEW : TOPIC_REFRESH)
|
||||
|
||||
if(SetJob(user, href_list["set_job"], text2num(href_list["level"])))
|
||||
return (pref.equip_preview_mob ? TOPIC_REFRESH_UPDATE_PREVIEW : TOPIC_REFRESH)
|
||||
|
||||
else if(href_list["job_info"])
|
||||
var/rank = href_list["job_info"]
|
||||
@@ -250,7 +269,7 @@
|
||||
if(job.title != new_title)
|
||||
pref.player_alt_titles[job.title] = new_title
|
||||
|
||||
/datum/category_item/player_setup_item/occupation/proc/SetJob(mob/user, role)
|
||||
/datum/category_item/player_setup_item/occupation/proc/SetJob(mob/user, role, level)
|
||||
var/datum/job/job = job_master.GetJob(role)
|
||||
if(!job)
|
||||
return 0
|
||||
@@ -262,63 +281,58 @@
|
||||
pref.job_civilian_low |= job.flag
|
||||
return 1
|
||||
|
||||
if(pref.GetJobDepartment(job, 1) & job.flag)
|
||||
SetJobDepartment(job, 1)
|
||||
else if(pref.GetJobDepartment(job, 2) & job.flag)
|
||||
SetJobDepartment(job, 2)
|
||||
else if(pref.GetJobDepartment(job, 3) & job.flag)
|
||||
SetJobDepartment(job, 3)
|
||||
else//job = Never
|
||||
SetJobDepartment(job, 4)
|
||||
|
||||
SetJobDepartment(job, level)
|
||||
return 1
|
||||
|
||||
/datum/category_item/player_setup_item/occupation/proc/reset_jobhigh()
|
||||
pref.job_civilian_med |= pref.job_civilian_high
|
||||
pref.job_medsci_med |= pref.job_medsci_high
|
||||
pref.job_engsec_med |= pref.job_engsec_high
|
||||
pref.job_civilian_high = 0
|
||||
pref.job_medsci_high = 0
|
||||
pref.job_engsec_high = 0
|
||||
|
||||
// Level is equal to the desired new level of the job. So for a value of 4, we want to disable the job.
|
||||
/datum/category_item/player_setup_item/occupation/proc/SetJobDepartment(var/datum/job/job, var/level)
|
||||
if(!job || !level) return 0
|
||||
switch(level)
|
||||
if(1)//Only one of these should ever be active at once so clear them all here
|
||||
pref.job_civilian_high = 0
|
||||
pref.job_medsci_high = 0
|
||||
pref.job_engsec_high = 0
|
||||
return 1
|
||||
if(2)//Set current highs to med, then reset them
|
||||
pref.job_civilian_med |= pref.job_civilian_high
|
||||
pref.job_medsci_med |= pref.job_medsci_high
|
||||
pref.job_engsec_med |= pref.job_engsec_high
|
||||
pref.job_civilian_high = 0
|
||||
pref.job_medsci_high = 0
|
||||
pref.job_engsec_high = 0
|
||||
if(!job || !level)
|
||||
return 0
|
||||
|
||||
switch(job.department_flag)
|
||||
if(CIVILIAN)
|
||||
pref.job_civilian_low &= ~job.flag
|
||||
pref.job_civilian_med &= ~job.flag
|
||||
pref.job_civilian_high &= ~job.flag
|
||||
switch(level)
|
||||
if(2)
|
||||
if(1)
|
||||
reset_jobhigh()
|
||||
pref.job_civilian_high = job.flag
|
||||
pref.job_civilian_med &= ~job.flag
|
||||
if(3)
|
||||
if(2)
|
||||
pref.job_civilian_med |= job.flag
|
||||
pref.job_civilian_low &= ~job.flag
|
||||
else
|
||||
if(3)
|
||||
pref.job_civilian_low |= job.flag
|
||||
if(MEDSCI)
|
||||
pref.job_medsci_low &= ~job.flag
|
||||
pref.job_medsci_med &= ~job.flag
|
||||
pref.job_medsci_high &= ~job.flag
|
||||
switch(level)
|
||||
if(2)
|
||||
if(1)
|
||||
reset_jobhigh()
|
||||
pref.job_medsci_high = job.flag
|
||||
pref.job_medsci_med &= ~job.flag
|
||||
if(3)
|
||||
if(2)
|
||||
pref.job_medsci_med |= job.flag
|
||||
pref.job_medsci_low &= ~job.flag
|
||||
else
|
||||
if(3)
|
||||
pref.job_medsci_low |= job.flag
|
||||
if(ENGSEC)
|
||||
pref.job_engsec_low &= ~job.flag
|
||||
pref.job_engsec_med &= ~job.flag
|
||||
pref.job_engsec_high &= ~job.flag
|
||||
switch(level)
|
||||
if(2)
|
||||
if(1)
|
||||
reset_jobhigh()
|
||||
pref.job_engsec_high = job.flag
|
||||
pref.job_engsec_med &= ~job.flag
|
||||
if(3)
|
||||
if(2)
|
||||
pref.job_engsec_med |= job.flag
|
||||
pref.job_engsec_low &= ~job.flag
|
||||
else
|
||||
if(3)
|
||||
pref.job_engsec_low |= job.flag
|
||||
return 1
|
||||
|
||||
|
||||
@@ -23,6 +23,8 @@ datum/preferences
|
||||
var/UI_style_alpha = 255
|
||||
var/tooltipstyle = "Midnight" //Style for popup tooltips
|
||||
var/client_fps = 0
|
||||
var/ambience_freq = 5 // How often we're playing repeating ambience to a client.
|
||||
var/ambience_chance = 35 // What's the % chance we'll play ambience (in conjunction with the above frequency)
|
||||
|
||||
var/tgui_fancy = TRUE
|
||||
var/tgui_lock = FALSE
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
. = FALSE
|
||||
if(LAZYLEN(accessories))
|
||||
for(var/obj/item/clothing/C in accessories)
|
||||
if(C.handle_low_temperature(tempcheck))
|
||||
if(C.handle_high_temperature(tempcheck))
|
||||
. = TRUE
|
||||
|
||||
if(max_heat_protection_temperature && max_heat_protection_temperature >= tempcheck)
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
departments = list(DEPARTMENT_EVERYONE, DEPARTMENT_SECURITY, DEPARTMENT_ENGINEERING)
|
||||
chaos = 60
|
||||
chaotic_threshold = EVENT_CHAOS_THRESHOLD_HIGH_IMPACT
|
||||
enabled = FALSE // Turns out they are in fact grossly OP.
|
||||
var/safe_for_extended = FALSE
|
||||
|
||||
/datum/event2/meta/swarm_boarder/get_weight()
|
||||
|
||||
@@ -824,6 +824,7 @@ var/list/name_to_material
|
||||
name = "alienalloy"
|
||||
display_name = "durable alloy"
|
||||
stack_type = null
|
||||
flags = MATERIAL_UNMELTABLE
|
||||
icon_colour = "#6C7364"
|
||||
integrity = 1200
|
||||
melting_point = 6000 // Hull plating.
|
||||
@@ -1176,4 +1177,4 @@ var/list/name_to_material
|
||||
hardness = 1
|
||||
weight = 1
|
||||
protectiveness = 0 // 0%
|
||||
conductive = 0
|
||||
conductive = 0
|
||||
|
||||
@@ -101,6 +101,7 @@
|
||||
var/chemOD_mod = 1 // Damage modifier for overdose; higher = more damage from ODs
|
||||
var/alcohol_mod = 1 // Multiplier to alcohol strength; 0.5 = half, 0 = no effect at all, 2 = double, etc.
|
||||
var/pain_mod = 1 // Multiplier to pain effects; 0.5 = half, 0 = no effect (equal to NO_PAIN, really), 2 = double, etc.
|
||||
var/spice_mod = 1 // Multiplier to spice/capsaicin/frostoil effects; 0.5 = half, 0 = no effect (immunity), 2 = double, etc.
|
||||
// set below is EMP interactivity for nonsynth carbons
|
||||
var/emp_sensitivity = 0 // bitflag. valid flags are: EMP_PAIN, EMP_BLIND, EMP_DEAFEN, EMP_CONFUSE, EMP_STUN, and EMP_(BRUTE/BURN/TOX/OXY)_DMG
|
||||
var/emp_dmg_mod = 1 // Multiplier to all EMP damage sustained by the mob, if it's EMP-sensitive
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
//Check if we're on fire
|
||||
handle_fire()
|
||||
|
||||
if(client) // Handle re-running ambience to mobs if they've remained in an area, AND have an active client assigned to them.
|
||||
if(client && !(client.prefs.ambience_freq == 0)) // Handle re-running ambience to mobs if they've remained in an area, AND have an active client assigned to them, and do not have repeating ambience disabled.
|
||||
handle_ambience()
|
||||
|
||||
//stuff in the stomach
|
||||
@@ -91,10 +91,11 @@
|
||||
/mob/living/proc/handle_stomach()
|
||||
return
|
||||
|
||||
/mob/living/proc/handle_ambience() // If you're in an ambient area and have not moved out of it for x time, we're going to play ambience again to you, to help break up the silence.
|
||||
if(world.time >= (lastareachange + 30 SECONDS)) // Every 30 seconds, we're going to run a 35% chance to play ambience.
|
||||
/mob/living/proc/handle_ambience() // If you're in an ambient area and have not moved out of it for x time as configured per-client, and do not have it disabled, we're going to play ambience again to you, to help break up the silence.
|
||||
if(world.time >= (lastareachange + client.prefs.ambience_freq MINUTES)) // Every 5 minutes (by default, set per-client), we're going to run a 35% chance (by default, also set per-client) to play ambience.
|
||||
var/area/A = get_area(src)
|
||||
if(A)
|
||||
lastareachange = world.time // This will refresh the last area change to prevent this call happening LITERALLY every life tick.
|
||||
A.play_ambience(src, initial = FALSE)
|
||||
|
||||
/mob/living/proc/update_pulling()
|
||||
|
||||
@@ -675,9 +675,26 @@
|
||||
|
||||
if(istype(user,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.species.can_shred(H))
|
||||
attack_generic(H, rand(30,50), "slashed")
|
||||
return
|
||||
//Adding borg petting. Help intent pets, Disarm intent taps, Grab should remove the battery for replacement, and Harm is punching(no damage)
|
||||
switch(H.a_intent)
|
||||
if(I_HELP)
|
||||
visible_message("<span class='notice'>[H] pets [src].</span>")
|
||||
return
|
||||
if(I_HURT)
|
||||
H.do_attack_animation(src)
|
||||
if(H.species.can_shred(H))
|
||||
attack_generic(H, rand(30,50), "slashed")
|
||||
return
|
||||
else
|
||||
playsound(src.loc, 'sound/effects/bang.ogg', 10, 1)
|
||||
visible_message("<span class='warning'>[H] punches [src], but doesn't leave a dent.</span>")
|
||||
return
|
||||
if(I_DISARM)
|
||||
H.do_attack_animation(src)
|
||||
playsound(src.loc, 'sound/effects/clang2.ogg', 10, 1)
|
||||
visible_message("<span class='warning'>[H] taps [src].</span>")
|
||||
return
|
||||
//Addition of borg petting end
|
||||
|
||||
if(opened && !wiresexposed && (!istype(user, /mob/living/silicon)))
|
||||
var/datum/robot_component/cell_component = components["power cell"]
|
||||
|
||||
@@ -613,6 +613,23 @@
|
||||
M.emote("shiver")
|
||||
holder.remove_reagent("capsaicin", 5)
|
||||
|
||||
/datum/reagent/frostoil/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) // Eating frostoil now acts like capsaicin. Wee!
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!H.can_feel_pain())
|
||||
return
|
||||
var/effective_dose = (dose * M.species.spice_mod)
|
||||
if((effective_dose < 5) && (dose == metabolism || prob(5)))
|
||||
to_chat(M, "<span class='danger'>Your insides suddenly feel a spreading chill!</span>")
|
||||
if(effective_dose >= 5)
|
||||
M.apply_effect(2 * M.species.spice_mod, AGONY, 0)
|
||||
M.bodytemperature -= rand(1, 5) * M.species.spice_mod // Really fucks you up, cause it makes you cold.
|
||||
if(prob(5))
|
||||
M.visible_message("<span class='warning'>[M] [pick("dry heaves!","coughs!","splutters!")]</span>", pick("<span class='danger'>You feel like your insides are freezing!</span>", "<span class='danger'>Your insides feel like they're turning to ice!</span>"))
|
||||
holder.remove_reagent("capsaicin", 5)
|
||||
|
||||
/datum/reagent/frostoil/cryotoxin //A longer lasting version of frost oil.
|
||||
name = "Cryotoxin"
|
||||
id = "cryotoxin"
|
||||
@@ -643,13 +660,15 @@
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!H.can_feel_pain())
|
||||
return
|
||||
|
||||
if(dose < 5 && (dose == metabolism || prob(5)))
|
||||
|
||||
var/effective_dose = (dose * M.species.spice_mod)
|
||||
if((effective_dose < 5) && (dose == metabolism || prob(5)))
|
||||
to_chat(M, "<span class='danger'>Your insides feel uncomfortably hot!</span>")
|
||||
if(dose >= 5)
|
||||
M.apply_effect(2, AGONY, 0)
|
||||
if(effective_dose >= 5)
|
||||
M.apply_effect(2 * M.species.spice_mod, AGONY, 0)
|
||||
M.bodytemperature += rand(1, 5) * M.species.spice_mod // Really fucks you up, cause it makes you overheat, too.
|
||||
if(prob(5))
|
||||
M.visible_message("<span class='warning'>[M] [pick("dry heaves!","coughs!","splutters!")]</span>", "<span class='danger'>You feel like your insides are burning!</span>")
|
||||
M.visible_message("<span class='warning'>[M] [pick("dry heaves!","coughs!","splutters!")]</span>", pick("<span class='danger'>You feel like your insides are burning!</span>", "<span class='danger'>You feel like your insides are on fire!</span>", "<span class='danger'>You feel like your belly is full of lava!</span>"))
|
||||
holder.remove_reagent("frostoil", 5)
|
||||
|
||||
/datum/reagent/condensedcapsaicin
|
||||
|
||||
@@ -31,6 +31,9 @@ var/list/ventcrawl_machinery = list(
|
||||
if(incapacitated())
|
||||
to_chat(src, "<span class='warning'>You cannot ventcrawl in your current state!</span>")
|
||||
return FALSE
|
||||
if(buckled)
|
||||
to_chat(src, "<span class='warning'>You cannot ventcrawl while buckled!</span>")
|
||||
return FALSE
|
||||
return ventcrawl_carry()
|
||||
|
||||
/mob/living/Login()
|
||||
@@ -199,4 +202,4 @@ var/list/ventcrawl_machinery = list(
|
||||
client.screen -= global_hud.centermarker
|
||||
client.eye = src
|
||||
|
||||
pipes_shown.len = 0
|
||||
pipes_shown.len = 0
|
||||
|
||||
Reference in New Issue
Block a user