Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into upstream-merge-32916
This commit is contained in:
@@ -217,7 +217,7 @@
|
||||
C = owner
|
||||
no_update = 0
|
||||
|
||||
if(C.disabilities & HUSK)
|
||||
if(C.has_disability(HUSK))
|
||||
species_id = "husk" //overrides species_id
|
||||
dmg_overlay_type = "" //no damage overlay shown when husked
|
||||
should_draw_gender = FALSE
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
return 0
|
||||
|
||||
var/obj/item/bodypart/affecting = C.get_bodypart("chest")
|
||||
affecting.receive_damage(Clamp(brute_dam/2, 15, 50), Clamp(burn_dam/2, 0, 50)) //Damage the chest based on limb's existing damage
|
||||
affecting.receive_damage(CLAMP(brute_dam/2, 15, 50), CLAMP(burn_dam/2, 0, 50)) //Damage the chest based on limb's existing damage
|
||||
C.visible_message("<span class='danger'><B>[C]'s [src.name] has been violently dismembered!</B></span>")
|
||||
C.emote("scream")
|
||||
drop_limb()
|
||||
@@ -142,11 +142,11 @@
|
||||
//when a limb is dropped, the internal organs are removed from the mob and put into the limb
|
||||
/obj/item/organ/proc/transfer_to_limb(obj/item/bodypart/LB, mob/living/carbon/C)
|
||||
Remove(C)
|
||||
loc = LB
|
||||
forceMove(LB)
|
||||
|
||||
/obj/item/organ/brain/transfer_to_limb(obj/item/bodypart/head/LB, mob/living/carbon/human/C)
|
||||
Remove(C) //Changeling brain concerns are now handled in Remove
|
||||
loc = LB
|
||||
forceMove(LB)
|
||||
LB.brain = src
|
||||
if(brainmob)
|
||||
LB.brainmob = brainmob
|
||||
@@ -270,7 +270,7 @@
|
||||
attach_limb(C, special)
|
||||
|
||||
/obj/item/bodypart/proc/attach_limb(mob/living/carbon/C, special)
|
||||
loc = null
|
||||
moveToNullspace()
|
||||
owner = C
|
||||
C.bodyparts += src
|
||||
if(held_index)
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
C = owner
|
||||
|
||||
real_name = C.real_name
|
||||
if(C.disabilities & HUSK)
|
||||
if(C.has_disability(HUSK))
|
||||
real_name = "Unknown"
|
||||
hair_style = "Bald"
|
||||
facial_hair_style = "Shaved"
|
||||
|
||||
@@ -23,9 +23,9 @@
|
||||
|
||||
/datum/surgery_step/fix_eyes/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
user.visible_message("[user] successfully fixes [target]'s eyes!", "<span class='notice'>You succeed in fixing [target]'s eyes.</span>")
|
||||
target.cure_blind()
|
||||
target.cure_blind(list(EYE_DAMAGE))
|
||||
target.set_blindness(0)
|
||||
target.cure_nearsighted()
|
||||
target.cure_nearsighted(list(EYE_DAMAGE))
|
||||
target.blur_eyes(35) //this will fix itself slowly.
|
||||
target.set_eye_damage(0)
|
||||
return TRUE
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
possible_locs = list("chest")
|
||||
|
||||
/datum/surgery/lipoplasty/can_start(mob/user, mob/living/carbon/target)
|
||||
if(target.disabilities & FAT)
|
||||
if(target.has_disability(FAT))
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
/obj/item/organ/cyberimp/arm/emag_act()
|
||||
return 0
|
||||
|
||||
/obj/item/organ/cyberimp/arm/gun/emp_act(severity)
|
||||
/obj/item/organ/cyberimp/arm/emp_act(severity)
|
||||
if(prob(15/severity) && owner)
|
||||
to_chat(owner, "<span class='warning'>[src] is hit by EMP!</span>")
|
||||
// give the owner an idea about why his implant is glitching
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
return
|
||||
var/mob/living/carbon/C = owner
|
||||
// genetic deafness prevents the body from using the ears, even if healthy
|
||||
if(C.disabilities & DEAF)
|
||||
if(C.has_disability(DEAF))
|
||||
deaf = max(deaf, 1)
|
||||
else
|
||||
if(C.ears && (C.ears.flags_2 & HEALS_EARS_2))
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
var/mob/living/carbon/C = owner
|
||||
|
||||
if(iscarbon(owner) && C.disabilities & DEAF)
|
||||
if(iscarbon(owner) && C.has_disability(DEAF))
|
||||
deaf = 1
|
||||
|
||||
/obj/item/organ/ears/proc/adjustEarDamage(ddmg, ddeaf)
|
||||
|
||||
@@ -199,7 +199,7 @@
|
||||
return
|
||||
var/range = input(user, "Enter range (0 - [max_light_beam_distance])", "Range Select", 0) as null|num
|
||||
|
||||
set_distance(Clamp(range, 0, max_light_beam_distance))
|
||||
set_distance(CLAMP(range, 0, max_light_beam_distance))
|
||||
assume_rgb(C)
|
||||
|
||||
/obj/item/organ/eyes/robotic/glow/proc/assume_rgb(newcolor)
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
if(safe_oxygen_max)
|
||||
if(O2_pp > safe_oxygen_max)
|
||||
var/ratio = (breath_gases[/datum/gas/oxygen][MOLES]/safe_oxygen_max) * 10
|
||||
H.apply_damage_type(Clamp(ratio, oxy_breath_dam_min, oxy_breath_dam_max), oxy_damage_type)
|
||||
H.apply_damage_type(CLAMP(ratio, oxy_breath_dam_min, oxy_breath_dam_max), oxy_damage_type)
|
||||
H.throw_alert("too_much_oxy", /obj/screen/alert/too_much_oxy)
|
||||
else
|
||||
H.clear_alert("too_much_oxy")
|
||||
@@ -139,7 +139,7 @@
|
||||
if(safe_nitro_max)
|
||||
if(N2_pp > safe_nitro_max)
|
||||
var/ratio = (breath_gases[/datum/gas/nitrogen][MOLES]/safe_nitro_max) * 10
|
||||
H.apply_damage_type(Clamp(ratio, nitro_breath_dam_min, nitro_breath_dam_max), nitro_damage_type)
|
||||
H.apply_damage_type(CLAMP(ratio, nitro_breath_dam_min, nitro_breath_dam_max), nitro_damage_type)
|
||||
H.throw_alert("too_much_nitro", /obj/screen/alert/too_much_nitro)
|
||||
else
|
||||
H.clear_alert("too_much_nitro")
|
||||
@@ -205,7 +205,7 @@
|
||||
if(safe_toxins_max)
|
||||
if(Toxins_pp > safe_toxins_max)
|
||||
var/ratio = (breath_gases[/datum/gas/plasma][MOLES]/safe_toxins_max) * 10
|
||||
H.apply_damage_type(Clamp(ratio, tox_breath_dam_min, tox_breath_dam_max), tox_damage_type)
|
||||
H.apply_damage_type(CLAMP(ratio, tox_breath_dam_min, tox_breath_dam_max), tox_damage_type)
|
||||
H.throw_alert("too_much_tox", /obj/screen/alert/too_much_tox)
|
||||
else
|
||||
H.clear_alert("too_much_tox")
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
/datum/language/monkey,
|
||||
/datum/language/narsie,
|
||||
/datum/language/beachbum,
|
||||
/datum/language/ratvar
|
||||
/datum/language/ratvar,
|
||||
/datum/language/aphasia
|
||||
))
|
||||
|
||||
/obj/item/organ/tongue/Initialize(mapload)
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
///////////VOICE OF GOD///////////////
|
||||
//////////////////////////////////////
|
||||
|
||||
/proc/voice_of_god(message, mob/living/user, list/span_list, base_multiplier = 1)
|
||||
/proc/voice_of_god(message, mob/living/user, list/span_list, base_multiplier = 1, include_speaker = FALSE, message_admins = TRUE)
|
||||
var/cooldown = 0
|
||||
|
||||
if(!user || !user.can_speak() || user.stat)
|
||||
@@ -139,7 +139,9 @@
|
||||
message = lowertext(message)
|
||||
var/mob/living/list/listeners = list()
|
||||
for(var/mob/living/L in get_hearers_in_view(8, user))
|
||||
if(L.can_hear() && !L.null_rod_check() && L != user && L.stat != DEAD)
|
||||
if(L.can_hear() && !L.null_rod_check() && L.stat != DEAD)
|
||||
if(L == user && !include_speaker)
|
||||
continue
|
||||
if(ishuman(L))
|
||||
var/mob/living/carbon/human/H = L
|
||||
if(istype(H.ears, /obj/item/clothing/ears/earmuffs))
|
||||
@@ -209,12 +211,12 @@
|
||||
var/static/regex/stun_words = regex("stop|wait|stand still|hold on|halt")
|
||||
var/static/regex/knockdown_words = regex("drop|fall|trip|knockdown")
|
||||
var/static/regex/sleep_words = regex("sleep|slumber|rest")
|
||||
var/static/regex/vomit_words = regex("vomit|throw up")
|
||||
var/static/regex/silence_words = regex("shut up|silence|ssh|quiet|hush")
|
||||
var/static/regex/vomit_words = regex("vomit|throw up|sick")
|
||||
var/static/regex/silence_words = regex("shut up|silence|be silent|ssh|quiet|hush")
|
||||
var/static/regex/hallucinate_words = regex("see the truth|hallucinate")
|
||||
var/static/regex/wakeup_words = regex("wake up|awaken")
|
||||
var/static/regex/heal_words = regex("live|heal|survive|mend|heroes never die")
|
||||
var/static/regex/hurt_words = regex("die|suffer|hurt|pain")
|
||||
var/static/regex/heal_words = regex("live|heal|survive|mend|life|heroes never die")
|
||||
var/static/regex/hurt_words = regex("die|suffer|hurt|pain|death")
|
||||
var/static/regex/bleed_words = regex("bleed|there will be blood")
|
||||
var/static/regex/burn_words = regex("burn|ignite")
|
||||
var/static/regex/hot_words = regex("heat|hot|hell")
|
||||
@@ -566,7 +568,8 @@
|
||||
else
|
||||
cooldown = COOLDOWN_NONE
|
||||
|
||||
message_admins("[key_name_admin(user)] has said '[log_message]' with a Voice of God, affecting [english_list(listeners)], with a power multiplier of [power_multiplier].")
|
||||
if(message_admins)
|
||||
message_admins("[key_name_admin(user)] has said '[log_message]' with a Voice of God, affecting [english_list(listeners)], with a power multiplier of [power_multiplier].")
|
||||
log_game("[key_name(user)] has said '[log_message]' with a Voice of God, affecting [english_list(listeners)], with a power multiplier of [power_multiplier].")
|
||||
SSblackbox.record_feedback("tally", "voice_of_god", 1, log_message)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user