merge fixes

This commit is contained in:
Seris02
2020-02-02 11:51:26 +08:00
427 changed files with 10673 additions and 4240 deletions
@@ -389,6 +389,7 @@
if(resilience)
actual_trauma.resilience = resilience
SSblackbox.record_feedback("tally", "traumas", 1, actual_trauma.type)
return actual_trauma
//Add a random trauma of a certain subtype
/obj/item/organ/brain/proc/gain_trauma_type(brain_trauma_type = /datum/brain_trauma, resilience)
@@ -44,7 +44,8 @@
if(M.occupant == src)
M.go_out()
dna.species.spec_death(gibbed, src)
if(!QDELETED(dna)) //The gibbed param is bit redundant here since dna won't exist at this point if they got deleted.
dna.species.spec_death(gibbed, src)
if(SSticker.HasRoundStarted())
SSblackbox.ReportDeath(src)
+11 -14
View File
@@ -387,20 +387,17 @@
else if(isobserver(user) && traitstring)
. += "<span class='info'><b>Traits:</b> [traitstring]</span>"
if(print_flavor_text())
if(get_visible_name() == "Unknown") //Are we sure we know who this is? Don't show flavor text unless we can recognize them. Prevents certain metagaming with impersonation.
. += "...?"
else if(skipface) //Sometimes we're not unknown, but impersonating someone in a hardsuit, let's not reveal our flavor text then either.
. += "...?"
else
. += "[print_flavor_text()]"
if(print_flavor_text_2())
if(get_visible_name() == "Unknown") //Are we sure we know who this is? Don't show flavor text unless we can recognize them. Prevents certain metagaming with impersonation.
. += "...?"
else if(skipface) //Sometimes we're not unknown, but impersonating someone in a hardsuit, let's not reveal our flavor text then either.
. += "...?"
else
. += "[print_flavor_text_2()]"
//No flavor text unless the face can be seen. Prevents certain metagaming with impersonation.
var/invisible_man = skipface || get_visible_name() == "Unknown"
if(invisible_man)
. += "...?"
else
var/flavor = print_flavor_text()
if(flavor)
. += flavor
var/temp_flavor = print_flavor_text_2()
if(temp_flavor)
. += temp_flavor
. += "*---------*</span>"
/mob/living/proc/status_effect_examines(pronoun_replacement) //You can include this in any mob's examine() to show the examine texts of status effects!
@@ -25,8 +25,7 @@
create_internal_organs() //most of it is done in set_species now, this is only for parent call
physiology = new()
handcrafting = new()
AddComponent(/datum/component/personal_crafting)
. = ..()
if(CONFIG_GET(flag/disable_stambuffer))
@@ -45,10 +44,6 @@
QDEL_NULL_LIST(vore_organs) // CITADEL EDIT belly stuff
return ..()
/mob/living/carbon/human/OpenCraftingMenu()
handcrafting.ui_interact(src)
/mob/living/carbon/human/prepare_data_huds()
//Update med hud images...
..()
@@ -59,7 +59,6 @@
var/custom_species = null
var/datum/personal_crafting/handcrafting
var/datum/physiology/physiology
var/list/datum/bioware = list()
@@ -849,6 +849,8 @@
linked_mobs.Add(M)
if(!selflink)
to_chat(M, "<span class='notice'>You are now connected to [slimelink_owner.real_name]'s Slime Link.</span>")
RegisterSignal(M, COMSIG_MOB_DEATH , .proc/unlink_mob)
RegisterSignal(M, COMSIG_PARENT_QDELETING, .proc/unlink_mob)
var/datum/action/innate/linked_speech/action = new(src)
linked_actions.Add(action)
action.Grant(M)
@@ -858,6 +860,7 @@
var/link_id = linked_mobs.Find(M)
if(!(link_id))
return
UnregisterSignal(M, list(COMSIG_MOB_DEATH, COMSIG_PARENT_QDELETING))
var/datum/action/innate/linked_speech/action = linked_actions[link_id]
action.Remove(M)
to_chat(M, "<span class='notice'>You are no longer connected to [slimelink_owner.real_name]'s Slime Link.</span>")
@@ -890,18 +893,11 @@
Remove(H)
return
if(QDELETED(H) || H.stat == DEAD)
species.unlink_mob(H)
return
if(message)
var/msg = "<i><font color=#008CA2>\[[species.slimelink_owner.real_name]'s Slime Link\] <b>[H]:</b> [message]</font></i>"
log_directed_talk(H, species.slimelink_owner, msg, LOG_SAY, "slime link")
for(var/X in species.linked_mobs)
var/mob/living/M = X
if(QDELETED(M) || M.stat == DEAD)
species.unlink_mob(M)
continue
to_chat(M, msg)
for(var/X in GLOB.dead_mob_list)
@@ -461,6 +461,8 @@ There are several things that need to be remembered:
var/alt_icon = M.alternate_worn_icon || 'icons/mob/mask.dmi'
var/muzzled = FALSE
var/variation_flag = NONE
if(head && (head.flags_inv & HIDEMASK))
return
if(("mam_snouts" in dna.species.default_features) && dna.features["mam_snouts"] != "None")
muzzled = TRUE
if(!muzzled && ("snout" in dna.species.default_features) && dna.features["snout"] != "None")
+27 -12
View File
@@ -200,25 +200,25 @@
message_param = "blows a kiss to %t."
emote_type = EMOTE_AUDIBLE
/datum/emote/living/laugh
/datum/emote/living/audio_emote
emote_type = EMOTE_AUDIBLE
/datum/emote/living/audio_emote/can_run_emote(mob/living/user, status_check = TRUE)
. = ..()
if(. && iscarbon(user))
var/mob/living/carbon/C = user
return !C.silent && (!C.mind || !C.mind.miming)
/datum/emote/living/audio_emote/laugh
key = "laugh"
key_third_person = "laughs"
message = "laughs."
message_mime = "laughs silently!"
emote_type = EMOTE_AUDIBLE
/datum/emote/living/laugh/can_run_emote(mob/living/user, status_check = TRUE)
. = ..()
if(. && iscarbon(user))
var/mob/living/carbon/C = user
return !C.silent
/datum/emote/living/laugh/run_emote(mob/user, params)
/datum/emote/living/audio_emote/laugh/run_emote(mob/user, params)
. = ..()
if(. && iscarbon(user)) //Citadel Edit because this is hilarious
var/mob/living/carbon/C = user
if(!C.mind || C.mind.miming)
return
if(iscatperson(C)) //we ask for is cat first because they're a subtype that tests true for ishumanbasic because HERESY
playsound(C, pick('sound/voice/catpeople/nyahaha1.ogg',
'sound/voice/catpeople/nyahaha2.ogg',
@@ -226,12 +226,27 @@
'sound/voice/catpeople/nyahehe.ogg'),
50, 1)
return
if(ishumanbasic(C))
else if(ismoth(C))
playsound(C, 'sound/voice/moth/mothlaugh.ogg', 50, 1)
else if(ishumanbasic(C))
if(user.gender == FEMALE)
playsound(C, 'sound/voice/human/womanlaugh.ogg', 50, 1)
else
playsound(C, pick('sound/voice/human/manlaugh1.ogg', 'sound/voice/human/manlaugh2.ogg'), 50, 1)
/datum/emote/living/audio_emote/chitter
key = "chitter"
key_third_person = "chitters"
message = "chitters."
message_mime = "chitters silently!"
/datum/emote/living/audio_emote/chitter/run_emote(mob/user, params)
. = ..()
if(. && iscarbon(user)) //Citadel Edit because this is hilarious
var/mob/living/carbon/C = user
if(ismoth(C))
playsound(C, 'sound/voice/moth/mothchitter.ogg', 50, 1)
/datum/emote/living/look
key = "look"
key_third_person = "looks"
@@ -81,7 +81,6 @@
var/dextrous = FALSE //If the creature has, and can use, hands
var/dextrous_hud_type = /datum/hud/dextrous
var/datum/personal_crafting/handcrafting
var/AIStatus = AI_ON //The Status of our AI, can be set to AI_ON (On, usual processing), AI_IDLE (Will not process, but will return to AI_ON if an enemy comes near), AI_OFF (Off, Not processing ever), AI_Z_OFF (Temporarily off due to nonpresence of players)
var/can_have_ai = TRUE //once we have become sentient, we can never go back
@@ -98,7 +97,6 @@
/mob/living/simple_animal/Initialize()
. = ..()
GLOB.simple_animals[AIStatus] += src
handcrafting = new()
if(gender == PLURAL)
gender = pick(MALE,FEMALE)
if(!real_name)
@@ -106,6 +104,8 @@
if(!loc)
stack_trace("Simple animal being instantiated in nullspace")
update_simplemob_varspeed()
if(dextrous)
AddComponent(/datum/component/personal_crafting)
/mob/living/simple_animal/Destroy()
GLOB.simple_animals[AIStatus] -= src
@@ -471,10 +471,6 @@
/mob/living/simple_animal/get_idcard(hand_first = TRUE)
return ..() || access_card
/mob/living/simple_animal/OpenCraftingMenu()
if(dextrous)
handcrafting.ui_interact(src)
/mob/living/simple_animal/can_hold_items()
return dextrous