S&T Additional Emotes (#6259)

* Species & Taurs Initial Launch

* Fixes and a quick attempt to update branch

* 'A quick fix'

* Cleaning up variables, applying crew vote, adding PR to readme

* changes 'exclamate' to 'exclaim', removes unused list.

* Fixes an overlay oversight, adds sound effects to all turf styles

* typo fix

* volume fix (also failcheck again)

* added suggestion and removed a switch

* patch cycle 1

* buff prints

* patch 2

Co-authored-by: Gandalf <jzo123@hotmail.com>
This commit is contained in:
Sza'Thi
2021-06-25 01:47:24 +01:00
committed by GitHub
co-authored by Gandalf
parent e711916ad2
commit d428cd749e
20 changed files with 548 additions and 0 deletions
+6
View File
@@ -15,6 +15,12 @@
/// This makes trait makes it so that the person cannot be infected by the zombie virus.
#define TRAIT_MUTANT_IMMUNE "mutant_immune"
//AdditionalEmotes *turf traits
#define TRAIT_WATER_ASPECT "water_aspect"
#define TRAIT_WEBBING_ASPECT "webbing_aspect"
#define TRAIT_FLORAL_ASPECT "floral_aspect"
#define TRAIT_ASH_ASPECT "ash_aspect"
// Trait sources
#define GHOSTROLE_TRAIT "ghostrole" // SKYRAT EDIT ADDITION -- Ghost Cafe Traits
@@ -13,3 +13,7 @@
#define isroundstartslime(A) (is_species(A,/datum/species/jelly/roundstartslime))
#define ishorrorling(A) (istype(A, /mob/living/simple_animal/hostile/true_changeling))
#define isaquatic(A) (is_species(A,/datum/species/aquatic))
#define isakula(A) (is_species(A,/datum/species/akula))
#define ishumanoid(A) (is_species(A,/datum/species/humanoid))
@@ -8,3 +8,40 @@
gain_text = "<span class='notice'>The ground doesn't feel so rough on your feet anymore.</span>"
lose_text = "<span class='danger'>You start feeling the ridges and imperfections on the ground.</span>"
medical_record_text = "Patient's feet are more resilient against traction."
//AdditionalEmotes *turf quirks
/datum/quirk/water_aspect
name = "Water aspect (Emotes)"
desc = "(Aquatic innate) Underwater societies are home to you, space ain't much different. (Say *turf to cast)"
value = 2
mob_trait = TRAIT_WATER_ASPECT
gain_text = "<span class='notice'>You feel like you can control water.</span>"
lose_text = "<span class='danger'>Somehow, you've lost your ability to control water!</span>"
medical_record_text = "Patient holds a collection of nanobots designed to synthesize H2O."
/datum/quirk/webbing_aspect
name = "Webbing aspect (Emotes)"
desc = "(Insect innate) Insect folk capable of weaving aren't unfamiliar with receiving envy from those lacking a natural 3D printer. (Say *turf to cast)"
value = 2
mob_trait = TRAIT_WEBBING_ASPECT
gain_text = "<span class='notice'>You could easily spin a web.</span>"
lose_text = "<span class='danger'>Somehow, you've lost your ability to weave.</span>"
medical_record_text = "Patient has the ability to weave webs with naturally synthesized silk."
/datum/quirk/floral_aspect
name = "Floral aspect (Emotes)"
desc = "(Podperson innate) Kudzu research isn't pointless, rapid photosynthesis technology is here! (Say *turf to cast)"
value = 2
mob_trait = TRAIT_FLORAL_ASPECT
gain_text = "<span class='notice'>You feel like you can grow vines.</span>"
lose_text = "<span class='danger'>Somehow, you've lost your ability to rapidly photosynthesize.</span>"
medical_record_text = "Patient can rapidly photosynthesize to grow vines."
/datum/quirk/ash_aspect
name = "Ash aspect (Emotes)"
desc = "(Lizard innate) The ability to forge ash and flame, a mighty power - yet mostly used for theatrics. (Say *turf to cast)"
value = 2
mob_trait = TRAIT_ASH_ASPECT
gain_text = "<span class='notice'>There is a forge smouldering inside of you.</span>"
lose_text = "<span class='danger'>Somehow, you've lost your ability to breathe fire.</span>"
medical_record_text = "Patients possess a fire breathing gland commonly found in lizard folk."
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.
@@ -73,6 +73,10 @@
if(HS.hardsuit_tail_colors)
return FALSE
return TRUE
if(H.owned_turf) //we do a lil' emoting
var/list/used_in_turf = list("tail")
if(H.owned_turf.name in used_in_turf)
return TRUE
return FALSE
/datum/sprite_accessory/tails/none
@@ -14,6 +14,10 @@
/datum/sprite_accessory/taur/is_hidden(mob/living/carbon/human/H, obj/item/bodypart/HD)
if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT))
return TRUE
if(H.owned_turf)
var/list/used_in_turf = list("tail")
if(H.owned_turf.name in used_in_turf)
return TRUE
return FALSE
/datum/sprite_accessory/taur/none
@@ -0,0 +1,79 @@
/datum/emote
var/overlay_emote = 'modular_skyrat/master_files/icons/effects/overlay_effects.dmi'
/datum/emote/living/sweatdrop
key = "sweatdrop"
key_third_person = "sweatdrops"
/datum/emote/living/sweatdrop/run_emote(mob/living/user, params, type_override, intentional)
. = ..()
if(iscarbon(user) || issilicon(user))
var/mutable_appearance/overlay = mutable_appearance(overlay_emote, "sweatdrop", ABOVE_MOB_LAYER)
overlay.pixel_x = 10
overlay.pixel_y = 10
flick_overlay_static(overlay, user, 50)
playsound(get_turf(user), 'modular_skyrat/modules/emotes/sound/emotes/sweatdrop.ogg', 25, TRUE)
/datum/emote/living/exclaim
key = "exclaim"
key_third_person = "exclaims"
/datum/emote/living/exclaim/run_emote(mob/living/user, params, type_override, intentional)
. = ..()
if(iscarbon(user) || issilicon(user))
var/mutable_appearance/overlay = mutable_appearance(overlay_emote, "exclamation", ABOVE_MOB_LAYER)
overlay.pixel_x = 10
overlay.pixel_y = 28
flick_overlay_static(overlay, user, 50)
playsound(get_turf(user), 'sound/machines/chime.ogg', 25, TRUE)
/datum/emote/living/realize
key = "realize"
key_third_person = "realizes"
/datum/emote/living/realize/run_emote(mob/living/user, params, type_override, intentional)
. = ..()
if(iscarbon(user) || issilicon(user))
var/mutable_appearance/overlay = mutable_appearance(overlay_emote, "realize", ABOVE_MOB_LAYER)
overlay.pixel_y = 15
flick_overlay_static(overlay, user, 50)
playsound(get_turf(user), 'modular_skyrat/modules/emotes/sound/emotes/realize.ogg', 25, TRUE)
/datum/emote/living/annoyed
key = "annoyed"
key_third_person = "is annoyed"
/datum/emote/living/annoyed/run_emote(mob/living/user, params, type_override, intentional)
. = ..()
if(iscarbon(user) || issilicon(user))
var/mutable_appearance/overlay = mutable_appearance(overlay_emote, "annoyed", ABOVE_MOB_LAYER)
overlay.pixel_x = 10
overlay.pixel_y = 10
flick_overlay_static(overlay, user, 50)
playsound(get_turf(user), 'modular_skyrat/modules/emotes/sound/emotes/annoyed.ogg', 25, TRUE)
/datum/emote/living/blush
key = "blush"
key_third_person = "blushes"
/datum/emote/living/blush/run_emote(mob/living/carbon/human/user, params, type_override, intentional)
. = ..()
if(iscarbon(user))
var/mutable_appearance/overlay = mutable_appearance(overlay_emote, "blush", ABOVE_MOB_LAYER)
flick_overlay_static(overlay, user, 50)
playsound(get_turf(user), 'modular_skyrat/modules/emotes/sound/emotes/blush.ogg', 25, TRUE)
/datum/emote/living/glasses
key = "glasses"
key_third_person = "glasses"
message = "pushes up their glasses."
/datum/emote/living/glasses/run_emote(mob/living/carbon/human/user, params, type_override, intentional)
. = ..()
var/obj/O = user.get_item_by_slot(ITEM_SLOT_EYES)
if(istype(O, /obj/item/clothing/glasses))
var/mutable_appearance/overlay = mutable_appearance(overlay_emote, "glasses", ABOVE_MOB_LAYER)
flick_overlay_static(overlay, user, 10)
else
return FALSE
@@ -0,0 +1,215 @@
var/current_turf
/mob/living
var/obj/owned_turf
var/list/allowed_turfs = list()
/datum/emote/living/mark_turf
key = "turf"
key_third_person = "turf"
cooldown = 4 SECONDS
/datum/emote/living/mark_turf/run_emote(mob/living/user, params, type_override, intentional)
. = ..()
var/mob/living/carbon/human/human_user = user
if(ishuman(user))
//feet
if(!(DIGITIGRADE in human_user.dna.species.species_traits) && !(human_user.dna.species.mutant_bodyparts["taur"]))
user.allowed_turfs += "footprint"
if((DIGITIGRADE in human_user.dna.species.species_traits) || human_user.dna.species.mutant_bodyparts["taur"])
user.allowed_turfs += list("pawprint", "hoofprint", "clawprint")
//species & taurs
if(islizard(user) || issynthliz(user) || HAS_TRAIT(user, TRAIT_ASH_ASPECT))
user.allowed_turfs += "smoke"
user.allowed_turfs -= list("pawprint", "hoofprint")
if(isplasmaman(user))
if(human_user.w_uniform && istype(human_user.w_uniform, /obj/item/clothing/under/plasmaman))
user.allowed_turfs += "holoseat"
if(isroundstartslime(user) || isslimeperson(user) || isjellyperson(user))
user.allowed_turfs += "slime"
if(isxenohybrid(user))
user.allowed_turfs += "xenoresin"
if(isinsect(user) || HAS_TRAIT(user, TRAIT_WEBBING_ASPECT))
user.allowed_turfs += "web"
if(isaquatic(user) || isakula(user) || HAS_TRAIT(user, TRAIT_WATER_ASPECT))
user.allowed_turfs += "water"
if(ispodperson(user) || ispodweak(user) || HAS_TRAIT(user, TRAIT_FLORAL_ASPECT))
user.allowed_turfs += "vines"
if(isipc(user) || issynthanthro(user) || issynthhuman(user) || issynthliz(user))
if(human_user.dna.species.mutant_bodyparts["taur"])
user.allowed_turfs += "holobed" //taurs get the holobed instead
else
user.allowed_turfs += "holoseat"
//wings
if(istype(user.getorganslot(ORGAN_SLOT_WINGS), /obj/item/organ/wings/moth))
user.allowed_turfs += "dust" //moth's dust ✨
//body parts
if(istype(user.getorganslot(ORGAN_SLOT_TAIL), /obj/item/organ/tail))
var/list/fluffy_tails = list("Tamamo Kitsune Tails", "Sergal", "Fox", "Fox (Alt 2)", "Fox (Alt 3)", "Fennec", "Red Panda", "Husky", "Skunk", "Lunasune", "Squirrel", "Wolf", "Stripe", "Kitsune", "Leopard", "Bat (Long)")
if(human_user.dna.species.mutant_bodyparts["tail"][MUTANT_INDEX_NAME] in fluffy_tails)
user.allowed_turfs += "tails"
if(human_user.dna.species.mutant_bodyparts["taur"])
var/list/snake_taurs = list("Naga", "Cybernetic Naga")
if(human_user.dna.species.mutant_bodyparts["taur"][MUTANT_INDEX_NAME] in snake_taurs)
user.allowed_turfs -= list("pawprint", "hoofprint", "clawprint")
if(!(human_user.wear_suit && istype(human_user.wear_suit, /obj/item/clothing/suit/space/hardsuit)))
user.allowed_turfs += "constrict"
//clothing
var/obj/item/shoes = user.get_item_by_slot(ITEM_SLOT_FEET)
if(istype(shoes, /obj/item/clothing/shoes))
if(!human_user.dna.species.mutant_bodyparts["taur"])
user.allowed_turfs += "shoeprint"
if(issilicon(user))
user.allowed_turfs += list("holoseat", "holobed", "borgmat")
var/list/display_turf = list()
for(var/choice in user.allowed_turfs)
var/datum/radial_menu_choice/option = new
option.image = image(icon = 'modular_skyrat/master_files/icons/effects/turf_effects_icons.dmi', icon_state = initial(choice))
display_turf[initial(choice)] = option
sortList(display_turf)
var/chosen_turf = show_radial_menu(user, user, display_turf, custom_check = CALLBACK(src, .proc/check_menu, user))
if(QDELETED(src) || QDELETED(user) || !chosen_turf)
return FALSE
if(do_after(user,10))
current_turf = chosen_turf
var/obj/turf_icon = /obj/structure/mark_turf
user.owned_turf = new turf_icon(get_turf(user))
user.owned_turf.dir = user.dir
if(ishuman(user))
human_user.update_mutant_bodyparts()
var/list/DNA_trail = list("shoeprint", "footprint", "pawprint", "hoofprint", "clawprint")
if(current_turf in DNA_trail) //These turfs leave clues of their owner
user.owned_turf.add_fingerprint(user)
var/list/colorable = list("dust", "slime", "vines", "footprint", "pawprint", "hoofprint", "clawprint")
if(current_turf in colorable) //These turfs are simply colored after their owner's primary
if(ishumanbasic(user) || ishumanoid(user))
user.owned_turf.color = "#" + human_user.dna.features["skin_color"]
else
user.owned_turf.color = "#" + human_user.dna.features["mcolor"]
var/list/body_part = list("tails", "constrict")
if(current_turf in body_part) //These turfs can be a body part and need color/size applied
var/key = null
var/list/tail_emotes = list("tails")
if(current_turf in tail_emotes)
key = "tail"
var/list/taur_emotes = list("constrict")
if(current_turf in taur_emotes)
key = "taur"
//coloring
var/list/finished_list = list()
var/list/color_list = human_user.dna.species.mutant_bodyparts[key][MUTANT_INDEX_COLOR_LIST] //identify color
var/datum/sprite_accessory/sprite_type = GLOB.sprite_accessories[key][human_user.dna.species.mutant_bodyparts[key][MUTANT_INDEX_NAME]] //identify type
switch(sprite_type.color_src)
if(USE_MATRIXED_COLORS)
finished_list += ReadRGB("[color_list[1]]0")
finished_list += ReadRGB("[color_list[2]]0")
finished_list += ReadRGB("[color_list[3]]0")
if(USE_ONE_COLOR)
finished_list += ReadRGB("[color_list[1]]0")
finished_list += ReadRGB("[color_list[1]]0")
finished_list += ReadRGB("[color_list[1]]0")
finished_list += list(0,0,0,255)
for(var/index in 1 to finished_list.len)
finished_list[index] /= 255
user.owned_turf.color = finished_list
if(isroundstartslime(user) || isslimeperson(user) || isjellyperson(user))
user.owned_turf.alpha = 130
//scaling
var/atom/movable/owned_turf = user.owned_turf
var/change_multiplier = human_user.dna.features["body_size"] / BODY_SIZE_NORMAL
var/translate = ((change_multiplier-1) * 32)/2
owned_turf.transform = owned_turf.transform.Scale(change_multiplier)
owned_turf.transform = owned_turf.transform.Translate(0, translate)
owned_turf.appearance_flags = PIXEL_SCALE
RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/turf_owner, override = TRUE)
return ..()
/datum/emote/living/mark_turf/select_message_type(mob/living/user, intentional)
. = ..()
if(current_turf == "web")
user.spin(8, 1) //Ssspin a web
/* Commented out to preserve text.
Voter decision to exclude pre-determined messages, can still use this area to apply animation onto the user!
. = "neatly spins a web beneath them."
if("water")
. = "submerges their surroundings in a pool of water."
if("vines")
. = "sprouts vines reaching down beneath them."
if("dust")
. = "flutters their wings, scattering their dust around."
if("smoke")
. = "expirates a mist of ashes around them."
if("slime")
. = "splits their gel, forming an oozing shape."
if("xenoresin")
. = "secretes thick resin, covering the ground beneath them."
if("holoseat")
. = "artificially summons a seat beneath them."
if("holobed")
. = "artificially summons a bed beneath them."
if("borgmat")
. = "dispenses a soft mat, rolling it out beneath them."
*/
current_turf = null
LAZYCLEARLIST(user.allowed_turfs)
/datum/emote/living/mark_turf/proc/check_menu(mob/living/user)
if(user.owned_turf != null)
return FALSE
if(isspaceturf(get_turf(user)))
return FALSE
if(user.buckled)
return FALSE
else
return TRUE
/datum/emote/living/mark_turf/proc/turf_owner(mob/living/user)
UnregisterSignal(user, COMSIG_MOVABLE_MOVED)
var/obj/owned_turf = user.owned_turf
INVOKE_ASYNC(owned_turf, /obj/structure/mark_turf/proc/turf_check, user)
@@ -0,0 +1,192 @@
/obj/structure/mark_turf
name = "turf"
icon = 'modular_skyrat/master_files/icons/effects/turf_effects.dmi'
desc = "It's turf." //Debug stuff, won't be seen
anchored = TRUE
density = FALSE
max_integrity = 15
/obj/structure/mark_turf/Initialize()
. = ..()
switch(current_turf)
if("web")
name = "hand-sewn web"
desc = "It's a sticky web."
icon_state = pick("stickyweb1", "stickyweb2")
playsound(get_turf(src), 'modular_skyrat/master_files/sound/effects/weave.ogg', 25, TRUE)
if("vines")
name = "sprouted vines"
desc = "It's an entanglement of vines."
icon_state = pick("kudzu1", "kudzu1", "kudzu3")
playsound(get_turf(src), 'sound/creatures/venus_trap_hurt.ogg', 25, TRUE)
if("water")
name = "puddle of water"
desc = "It's a patch of water."
icon_state = "water"
src.add_overlay(image('modular_skyrat/master_files/icons/effects/turf_effects.dmi', "water_top", ABOVE_MOB_LAYER))
flick_overlay_static(image('modular_skyrat/modules/liquids/icons/obj/effects/splash.dmi', "splash", ABOVE_MOB_LAYER), src, 20)
playsound(get_turf(src), 'modular_skyrat/sound/effects/watersplash.ogg', 25, TRUE)
if("smoke")
name = "blazing mist"
desc = "It's a storm of smoke."
icon_state = "smoke"
src.add_overlay(image('modular_skyrat/master_files/icons/effects/turf_effects.dmi', "smoke_top", ABOVE_MOB_LAYER))
playsound(get_turf(src), 'sound/effects/wounds/sizzle2.ogg', 25, TRUE)
if("xenoresin")
name = "resin"
desc = "Looks like some kind of thick resin."
icon_state = "xenoresin"
playsound(get_turf(src), 'sound/effects/splat.ogg', 25, TRUE)
if("holobed")
name = "physical hologram"
desc = "It's a hologram of a pet bed."
icon_state = "holobed"
playsound(get_turf(src), 'sound/misc/compiler-stage2.ogg', 25, TRUE)
if("holoseat")
name = "physical hologram"
desc = "It's a hologram of a barstool."
icon_state = "holoseat"
src.add_overlay(image('modular_skyrat/master_files/icons/effects/turf_effects.dmi', "holoseat_top", ABOVE_MOB_LAYER))
playsound(get_turf(src), 'sound/misc/compiler-stage2.ogg', 25, TRUE)
if("slime")
name = "pile of oozing slime"
desc = "It's just a bunch of slime."
alpha = 155
playsound(get_turf(src), 'sound/misc/soggy.ogg', 25, TRUE)
switch(rand(1,1000))
if(-INFINITY to 400)
icon_state = "slimeobj1"
src.add_overlay(image('modular_skyrat/master_files/icons/effects/turf_effects.dmi', "slimeobj1_top", ABOVE_MOB_LAYER))
if(400 to 800)
icon_state = "slimeobj2"
src.add_overlay(image('modular_skyrat/master_files/icons/effects/turf_effects.dmi', "slimeobj2_top", ABOVE_MOB_LAYER))
if(800 to 980)
icon_state = "slimeobj3"
src.add_overlay(image('modular_skyrat/master_files/icons/effects/turf_effects.dmi', "slimeobj3_top", ABOVE_MOB_LAYER))
if(980 to INFINITY)
name = "slime bust" //rare obj/item/statuebust
desc = "A priceless slime bust, the kind that belongs in a museum."
icon_state = "slimeobj4"
AddElement(/datum/element/art, GREAT_ART)
else
return
if("dust")
name = "cloud of dust"
desc = "It's a cloud of glittering moth's dust."
icon = 'modular_skyrat/master_files/icons/effects/turf_effects_64.dmi'
icon_state = "dust"
pixel_x = -16
src.add_overlay(image('modular_skyrat/master_files/icons/effects/turf_effects_64.dmi', "dust_top", ABOVE_MOB_LAYER))
playsound(get_turf(src), 'modular_skyrat/master_files/sound/effects/wing_flap.ogg', 25, TRUE)
if("borgmat")
name = "soft-foam mat"
desc = "It's a rolled out mat, doesn't include wireless charging."
icon = 'modular_skyrat/master_files/icons/effects/turf_effects_64.dmi'
icon_state = "borgmat"
pixel_x = -16
pixel_y = -4
playsound(get_turf(src), 'sound/items/handling/taperecorder_pickup.ogg', 25, TRUE)
//bodyparts
if("tails")
name = "tail"
desc = "It's a fluffy tail."
icon = 'modular_skyrat/master_files/icons/effects/turf_effects_64.dmi'
icon_state = "tails"
pixel_x = -16 //correcting the offset for 64
var/mutable_appearance/overlay = mutable_appearance('modular_skyrat/master_files/icons/effects/turf_effects_64.dmi', "tails_top", ABOVE_MOB_LAYER)
overlay.appearance_flags = TILE_BOUND|PIXEL_SCALE|KEEP_TOGETHER
src.add_overlay(overlay)
playsound(get_turf(src), 'sound/weapons/thudswoosh.ogg', 25, TRUE)
if("constrict")
name = "tail"
desc = "It's a scaly tail."
icon = 'modular_skyrat/master_files/icons/effects/turf_effects_64.dmi'
icon_state = "naga"
pixel_x = -16
var/mutable_appearance/overlay = mutable_appearance('modular_skyrat/master_files/icons/effects/turf_effects_64.dmi', "naga_top", ABOVE_MOB_LAYER)
overlay.appearance_flags = TILE_BOUND|PIXEL_SCALE|KEEP_TOGETHER
src.add_overlay(overlay)
playsound(get_turf(src), 'modular_skyrat/modules/emotes/sound/emotes/hiss.ogg', 25, TRUE)
//prints
if("pawprint")
name = "pawprint"
desc = "It's a pawprint left on the ground."
icon_state = pick("pawprint", "pawprint1")
playsound(get_turf(src), pick('sound/effects/footstep/hardbarefoot1.ogg',
'sound/effects/footstep/hardbarefoot2.ogg',
'sound/effects/footstep/hardbarefoot3.ogg',
'sound/effects/footstep/hardbarefoot4.ogg',
'sound/effects/footstep/hardbarefoot5.ogg'), 50, TRUE)
if("hoofprint")
name = "hoofprint"
desc = "It's a hoofprint left on the ground."
icon_state = pick("hoofprint", "hoofprint1")
playsound(get_turf(src), pick('sound/effects/footstep/hardbarefoot1.ogg',
'sound/effects/footstep/hardbarefoot2.ogg',
'sound/effects/footstep/hardbarefoot3.ogg',
'sound/effects/footstep/hardbarefoot4.ogg',
'sound/effects/footstep/hardbarefoot5.ogg'), 50, TRUE)
if("footprint")
name = "footprint"
desc = "It's a footprint left on the ground."
icon_state = pick("footprint", "footprint1")
playsound(get_turf(src), pick('sound/effects/footstep/hardbarefoot1.ogg',
'sound/effects/footstep/hardbarefoot2.ogg',
'sound/effects/footstep/hardbarefoot3.ogg',
'sound/effects/footstep/hardbarefoot4.ogg',
'sound/effects/footstep/hardbarefoot5.ogg'), 50, TRUE)
if("clawprint")
name = "clawprint"
desc = "It's a clawprint left on the ground."
icon_state = pick("clawprint", "clawprint1")
playsound(get_turf(src), pick('sound/effects/footstep/hardbarefoot1.ogg',
'sound/effects/footstep/hardbarefoot2.ogg',
'sound/effects/footstep/hardbarefoot3.ogg',
'sound/effects/footstep/hardbarefoot4.ogg',
'sound/effects/footstep/hardbarefoot5.ogg'), 50, TRUE)
if("shoeprint")
name = "shoeprint"
desc = "It's a shoeprint left on the ground."
icon_state = pick("shoeprint", "shoeprint1")
playsound(get_turf(src), pick('sound/effects/footstep/floor1.ogg',
'sound/effects/footstep/floor2.ogg',
'sound/effects/footstep/floor3.ogg',
'sound/effects/footstep/floor4.ogg',
'sound/effects/footstep/floor5.ogg'), 50, TRUE)
else
return
/obj/structure/mark_turf/proc/turf_check(mob/living/user) //This gets called when a player leaves their turf
var/list/no_trail = list("tail", "constrict")
var/list/long_trail = list("pawprint", "hoofprint", "clawprint", "footprint", "shoeprint")
if(user.owned_turf.name in no_trail)
QDEL_NULL(src)
if(user.owned_turf.name in long_trail)
QDEL_IN(src, 150 SECONDS)
user.owned_turf = null
else
QDEL_IN(src, 15 SECONDS)
user.owned_turf = null
if(ishuman(user))
var/mob/living/carbon/human/human_user = user
human_user.update_mutant_bodyparts()
+4
View File
@@ -1,6 +1,7 @@
https://github.com/Skyrat-SS13/Skyrat-tg/pull/892
https://github.com/Skyrat-SS13/Skyrat-tg/pull/1925
https://github.com/Skyrat-SS13/Skyrat-tg/pull/2320
https://github.com/Skyrat-SS13/Skyrat-tg/pull/6259
## Title: All the emotes.
@@ -49,4 +50,7 @@ modular_skyrat/modules/emotes/code/emotes.dm | `#define EMOTE_DELAY`
- refactoring code
- adjusting existing sound files
- adding more emotes
- TheOOZ Additional emotes
- overlay emotes
- turf emotes
- VOREstation - a couple of the soundfiles and emote texts
Binary file not shown.
+3
View File
@@ -4110,6 +4110,9 @@
#include "modular_skyrat\modules\emotes\code\scream_emote.dm"
#include "modular_skyrat\modules\emotes\code\silicon_emotes.dm"
#include "modular_skyrat\modules\emotes\code\synth_emotes.dm"
#include "modular_skyrat\modules\emotes\code\additionalemotes\overlay_emote.dm"
#include "modular_skyrat\modules\emotes\code\additionalemotes\turf_emote.dm"
#include "modular_skyrat\modules\emotes\code\additionalemotes\turf_list.dm"
#include "modular_skyrat\modules\encounters\enclave_pirates.dm"
#include "modular_skyrat\modules\ERT_Factions\FTU\code\items.dm"
#include "modular_skyrat\modules\ERT_Factions\FTU\code\projectiles.dm"