Merge branch 'master' into fourth_week_preparation_and_fixes

# Conflicts:
#	code/game/jobs/faction/zavodskoi.dm
This commit is contained in:
alberyk
2022-02-10 13:36:46 -03:00
65 changed files with 561 additions and 262 deletions
+3 -10
View File
@@ -348,17 +348,10 @@ var/list/holder_mob_icon_cache = list()
sync(contained)
/obj/item/holder/proc/sync(var/mob/living/M)
dir = SOUTH
cut_overlays()
icon = M.icon
icon_state = M.icon_state
item_state = M.item_state
color = M.color
name = M.name
desc = M.desc
overlays |= M.overlays
update_held_icon()
overlays = M.overlays
dir = M.dir
reagents = M.reagents
//#TODO-MERGE
//Port the reduced-duplication holder method from baystation upstream:
+18 -2
View File
@@ -223,9 +223,9 @@
log_say("[key_name(speaker)] : ([name]) [message]",ckey=key_name(speaker))
if(!speaker_mask)
speaker_mask = speaker.name
speaker_mask = speaker.real_name
var/msg = "<i><span class='game say'>[name], <span class='name'>[speaker_mask]</span>[format_message(message, get_spoken_verb(message))]</span></i>"
var/msg = "<i><span class='game say'>[name], <span class='name'>[speaker_mask]</span>[format_message(message, get_spoken_verb(message), speaker_mask)]</span></i>"
if(isvaurca(speaker))
speaker.custom_emote(VISIBLE_MESSAGE, "[pick("twitches their antennae", "twitches their antennae rhythmically")].")
@@ -240,6 +240,22 @@
if(istype(player,/mob/abstract/observer) || ((src in player.languages && !within_jamming_range(player)) || check_special_condition(player)))
to_chat(player, msg)
/datum/language/bug/format_message(message, verb, speaker_mask)
var/message_color = colour
var/list/speaker_surname = splittext(speaker_mask, " ")
switch(speaker_surname[2])
if("Zo'ra")
message_color = "vaurca_zora"
if("C'thur")
message_color = "vaurca_cthur"
if("K'lax")
message_color = "vaurca_klax"
if("Lii'dra")
message_color = "vaurca_liidra"
if(copytext(message, 1, 2) == "!")
return " projects <span class='message'><span class='[message_color]'>[copytext(message, 2)]</span></span>"
return "[verb], <span class='message'><span class='[message_color]'>\"[capitalize(message)]\"</span></span>"
/datum/language/bug/check_special_condition(var/mob/other)
if(istype(other, /mob/living/silicon))
return 1
@@ -122,7 +122,10 @@
if ("assisted")
I.mechassist()
if ("mechanical")
I.robotize()
if (rlimb_data[name])
I.robotize(rlimb_data[name])
else
I.robotize()
if ("removed")
qdel(I)
@@ -260,7 +260,7 @@
var/pass_flags = 0
var/obj/effect/decal/cleanable/blood/tracks/move_trail = /obj/effect/decal/cleanable/blood/tracks/footprints // What marks are left when walking
var/obj/effect/decal/cleanable/blood/tracks/move_trail = /obj/effect/decal/cleanable/blood/tracks/footprints/barefoot // What marks are left when walking
var/default_h_style = "Bald"
var/default_f_style = "Shaved"
@@ -637,6 +637,35 @@
/datum/species/proc/can_breathe_water()
return FALSE
/datum/species/proc/handle_trail(var/mob/living/carbon/human/H, var/turf/T)
var/list/trail_info = list()
if(H.shoes)
var/obj/item/clothing/shoes/S = H.shoes
if(istype(S))
S.handle_movement(T, H.m_intent == M_RUN ? TRUE : FALSE)
if(S.track_footprint)
if(S.blood_DNA)
trail_info["footprint_DNA"] = S.blood_DNA
trail_info["footprint_color"] = S.blood_color
S.track_footprint--
else
if(H.track_footprint)
if(H.feet_blood_DNA)
trail_info["footprint_DNA"] = H.feet_blood_DNA
trail_info["footprint_color"] = H.footprint_color
H.track_footprint--
return trail_info
/datum/species/proc/deploy_trail(var/mob/living/carbon/human/H, var/turf/T)
var/list/trail_info = handle_trail(H, T)
if(length(trail_info))
var/track_path = trail_info["footprint_type"]
T.add_tracks(track_path ? track_path : H.species.get_move_trail(H), trail_info["footprint_DNA"], H.dir, 0, trail_info["footprint_color"]) // Coming
var/turf/simulated/from = get_step(H, reverse_direction(H.dir))
if(istype(from))
from.add_tracks(track_path ? track_path : H.species.get_move_trail(H), trail_info["footprint_DNA"], 0, H.dir, trail_info["footprint_color"]) // Going
/datum/species/proc/get_move_trail(var/mob/living/carbon/human/H)
if(H.lying)
return /obj/effect/decal/cleanable/blood/tracks/body
@@ -94,6 +94,18 @@
zombie_type = SPECIES_ZOMBIE_SKRELL
bodyfall_sound = /decl/sound_category/bodyfall_skrell_sound
alterable_internal_organs = list(BP_HEART, BP_EYES, BP_LUNGS, BP_LIVER, BP_KIDNEYS, BP_STOMACH)
/datum/species/skrell/handle_trail(var/mob/living/carbon/human/H, var/turf/T)
var/list/trail_info = ..()
if(!length(trail_info) && !H.shoes)
var/list/blood_data = REAGENT_DATA(H.vessel, /decl/reagent/blood)
trail_info["footprint_DNA"] = list(blood_data["blood_DNA"] = blood_data["blood_type"])
trail_info["footprint_color"] = rgb(H.r_skin, H.g_skin, H.b_skin, 25)
trail_info["footprint_type"] = /obj/effect/decal/cleanable/blood/tracks/footprints/barefoot/del_dry // makes skrellprints del on dry
return trail_info
/datum/species/skrell/handle_post_spawn(mob/living/carbon/human/H)
..()
H.set_psi_rank(PSI_COERCION, PSI_RANK_OPERANT)
@@ -109,6 +109,8 @@
BP_EYES = /obj/item/organ/internal/eyes/unathi
)
alterable_internal_organs = list(BP_HEART, BP_EYES, BP_LUNGS, BP_LIVER, BP_KIDNEYS, BP_STOMACH)
pain_emotes_with_pain_level = list(
list(/decl/emote/audible/wheeze, /decl/emote/audible/roar, /decl/emote/audible/bellow) = 80,
list(/decl/emote/audible/grunt, /decl/emote/audible/groan, /decl/emote/audible/wheeze, /decl/emote/audible/hiss) = 50,
+2 -1
View File
@@ -55,7 +55,8 @@
var/id_card_type = /obj/item/card/id/synthetic
var/list/possible_accents = list(ACCENT_TTS, ACCENT_CETI, ACCENT_GIBSON, ACCENT_SOL, ACCENT_LUNA, ACCENT_MARTIAN, ACCENT_VENUS, ACCENT_VENUSJIN, ACCENT_JUPITER, ACCENT_COC, ACCENT_ELYRA, ACCENT_ERIDANI,
ACCENT_SILVERSUN_EXPATRIATE, ACCENT_KONYAN, ACCENT_EARTH)
ACCENT_SILVERSUN_EXPATRIATE, ACCENT_KONYAN, ACCENT_EARTH, ACCENT_PERSEPOLIS, ACCENT_MEDINA, ACCENT_AEMAQ, ACCENT_NEWSUEZ, ACCENT_DAMASCUS, ACCENT_ERIDANI, ACCENT_PHONG,
ACCENT_VISEGRAD, ACCENT_HIMEO, ACCENT_PLUTO)
// Misc
uv_intensity = 175 //Lights cast by robots have reduced effect on diona
+1 -1
View File
@@ -93,7 +93,7 @@
return
attacker.visible_message("<span class='danger'>[attacker] thrusts [attacker.get_pronoun("his")] head into [target]'s skull!</span>")
var/damage = 20
var/damage = 15
if(attacker.mob_size >= 10)
damage += min(attacker.mob_size, 20)