Merge remote-tracking branch 'Upstream/master' into TGUI-3.0
This commit is contained in:
@@ -121,7 +121,7 @@
|
||||
if(-INFINITY to T0C)
|
||||
add_wet(TURF_WET_ICE, max_time_left()) //Water freezes into ice!
|
||||
if(T0C to T0C + 100)
|
||||
decrease = ((T.air.temperature - T0C) / SSwet_floors.temperature_coeff) * (diff / SSwet_floors.time_ratio)
|
||||
decrease = ((T.air.return_temperature() - T0C) / SSwet_floors.temperature_coeff) * (diff / SSwet_floors.time_ratio)
|
||||
if(T0C + 100 to INFINITY)
|
||||
decrease = INFINITY
|
||||
decrease = max(0, decrease)
|
||||
|
||||
@@ -404,7 +404,7 @@
|
||||
if(M.loc)
|
||||
environment = M.loc.return_air()
|
||||
if(environment)
|
||||
plasmamount = environment.gases[/datum/gas/plasma]
|
||||
plasmamount = environment.get_moles(/datum/gas/plasma)
|
||||
if(plasmamount && plasmamount > GLOB.meta_gas_visibility[/datum/gas/plasma]) //if there's enough plasma in the air to see
|
||||
. += power * 0.5
|
||||
if(M.reagents.has_reagent(/datum/reagent/toxin/plasma))
|
||||
|
||||
@@ -117,9 +117,8 @@
|
||||
continue
|
||||
|
||||
var/datum/gas_mixture/A = F.air
|
||||
var/list/A_gases = A.gases
|
||||
var/trace_gases
|
||||
for(var/id in A_gases)
|
||||
for(var/id in A.get_gases())
|
||||
if(id in GLOB.hardcoded_gases)
|
||||
continue
|
||||
trace_gases = TRUE
|
||||
@@ -128,15 +127,15 @@
|
||||
// Can most things breathe?
|
||||
if(trace_gases)
|
||||
continue
|
||||
if(A_gases[/datum/gas/oxygen] <= 16)
|
||||
if(A.get_moles(/datum/gas/oxygen) < 16)
|
||||
continue
|
||||
if(A_gases[/datum/gas/plasma])
|
||||
if(A.get_moles(/datum/gas/plasma))
|
||||
continue
|
||||
if(A_gases[/datum/gas/carbon_dioxide] >= 10)
|
||||
if(A.get_moles(/datum/gas/carbon_dioxide) >= 10)
|
||||
continue
|
||||
|
||||
// Aim for goldilocks temperatures and pressure
|
||||
if((A.temperature <= 270) || (A.temperature >= 360))
|
||||
if((A.return_temperature() <= 270) || (A.return_temperature() >= 360))
|
||||
continue
|
||||
var/pressure = A.return_pressure()
|
||||
if((pressure <= 20) || (pressure >= 550))
|
||||
|
||||
@@ -124,6 +124,8 @@
|
||||
transfer_martial_arts(new_character)
|
||||
if(active || force_key_move)
|
||||
new_character.key = key //now transfer the key to link the client to our new body
|
||||
if(new_character.client)
|
||||
LAZYCLEARLIST(new_character.client.recent_examines)
|
||||
current.update_atom_languages()
|
||||
|
||||
//CIT CHANGE - makes arousal update when transfering bodies
|
||||
|
||||
@@ -226,9 +226,8 @@
|
||||
/obj/effect/proc_holder/spell/targeted/olfaction/cast(list/targets, mob/living/user = usr)
|
||||
//can we sniff? is there miasma in the air?
|
||||
var/datum/gas_mixture/air = user.loc.return_air()
|
||||
var/list/cached_gases = air.gases
|
||||
|
||||
if(cached_gases[/datum/gas/miasma])
|
||||
if(air.get_moles(/datum/gas/miasma))
|
||||
user.adjust_disgust(sensitivity * 45)
|
||||
to_chat(user, "<span class='warning'>With your overly sensitive nose, you get a whiff of stench and feel sick! Try moving to a cleaner area!</span>")
|
||||
return
|
||||
|
||||
@@ -314,6 +314,13 @@ GLOBAL_LIST_EMPTY(family_heirlooms)
|
||||
medical_record_text = "Patient is usually anxious in social encounters and prefers to avoid them."
|
||||
var/dumb_thing = TRUE
|
||||
|
||||
/datum/quirk/social_anxiety/add()
|
||||
RegisterSignal(quirk_holder, COMSIG_MOB_EYECONTACT, .proc/eye_contact)
|
||||
RegisterSignal(quirk_holder, COMSIG_MOB_EXAMINATE, .proc/looks_at_floor)
|
||||
|
||||
/datum/quirk/social_anxiety/remove()
|
||||
UnregisterSignal(quirk_holder, list(COMSIG_MOB_EYECONTACT, COMSIG_MOB_EXAMINATE))
|
||||
|
||||
/datum/quirk/social_anxiety/on_process()
|
||||
var/nearby_people = 0
|
||||
for(var/mob/living/carbon/human/H in oview(3, quirk_holder))
|
||||
@@ -330,6 +337,45 @@ GLOBAL_LIST_EMPTY(family_heirlooms)
|
||||
dumb_thing = FALSE //only once per life
|
||||
if(prob(1))
|
||||
new/obj/item/reagent_containers/food/snacks/pastatomato(get_turf(H)) //now that's what I call spaghetti code
|
||||
// small chance to make eye contact with inanimate objects/mindless mobs because of nerves
|
||||
|
||||
|
||||
|
||||
/datum/quirk/social_anxiety/proc/looks_at_floor(datum/source, atom/A)
|
||||
var/mob/living/mind_check = A
|
||||
if(prob(85) || (istype(mind_check) && mind_check.mind))
|
||||
return
|
||||
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, quirk_holder, "<span class='smallnotice'>You make eye contact with [A].</span>"), 3)
|
||||
|
||||
/datum/quirk/social_anxiety/proc/eye_contact(datum/source, mob/living/other_mob, triggering_examiner)
|
||||
if(prob(75))
|
||||
return
|
||||
var/msg
|
||||
if(triggering_examiner)
|
||||
msg = "You make eye contact with [other_mob], "
|
||||
else
|
||||
msg = "[other_mob] makes eye contact with you, "
|
||||
|
||||
switch(rand(1,3))
|
||||
if(1)
|
||||
quirk_holder.Jitter(10)
|
||||
msg += "causing you to start fidgeting!"
|
||||
if(2)
|
||||
quirk_holder.stuttering = max(3, quirk_holder.stuttering)
|
||||
msg += "causing you to start stuttering!"
|
||||
if(3)
|
||||
quirk_holder.Stun(2 SECONDS)
|
||||
msg += "causing you to freeze up!"
|
||||
|
||||
SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, "anxiety_eyecontact", /datum/mood_event/anxiety_eyecontact)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, quirk_holder, "<span class='userdanger'>[msg]</span>"), 3) // so the examine signal has time to fire and this will print after
|
||||
return COMSIG_BLOCK_EYECONTACT
|
||||
|
||||
/datum/mood_event/anxiety_eyecontact
|
||||
description = "<span class='warning'>Sometimes eye contact makes me so nervous...</span>\n"
|
||||
mood_change = -5
|
||||
timeout = 3 MINUTES
|
||||
|
||||
/datum/quirk/phobia
|
||||
name = "Phobia"
|
||||
|
||||
Reference in New Issue
Block a user