mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-31 09:08:30 +01:00
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:
@@ -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.
Binary file not shown.
+4
@@ -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
|
||||
|
||||
+4
@@ -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()
|
||||
@@ -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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user