Adds on-mob sprites for the pocketwatch + differing states per slot worn (#20375)

I feel so sigma!
![image](https://i.imgur.com/F3jQTaK.gif)
![image](https://i.imgur.com/WUKJSEO.gif)

---------

Co-authored-by: Gabby <59633984+feartheblackout@users.noreply.github.com>
This commit is contained in:
FearTheGabby
2025-01-19 11:16:51 +00:00
committed by GitHub
co-authored by Gabby
parent eebc1fb770
commit cb109da3d7
19 changed files with 114 additions and 68 deletions
@@ -33,7 +33,7 @@
watchtype["holo watch"] = /obj/item/clothing/wrists/watch/holo
watchtype["leather watch"] = /obj/item/clothing/wrists/watch/leather
watchtype["spy watch"] = /obj/item/clothing/wrists/watch/spy
watchtype["pocketwatch"] = /obj/item/pocketwatch
watchtype["pocketwatch"] = /obj/item/clothing/wrists/watch/pocketwatch
gear_tweaks += new /datum/gear_tweak/path(watchtype)
/*
@@ -421,7 +421,7 @@ ABSTRACT_TYPE(/datum/gear/shoes/tajara)
/datum/gear/adhomai_watch
display_name = "adhomian watch selection"
description = "A selection of Adhomian watches."
path = /obj/item/pocketwatch/adhomai
path = /obj/item/clothing/wrists/watch/pocketwatch/adhomai
sort_category = "Xenowear - Tajara"
whitelisted = list(SPECIES_TAJARA, SPECIES_TAJARA_ZHAN, SPECIES_TAJARA_MSAI)
flags = GEAR_HAS_DESC_SELECTION
@@ -429,7 +429,7 @@ ABSTRACT_TYPE(/datum/gear/shoes/tajara)
/datum/gear/adhomai_watch/New()
..()
var/list/watch = list()
watch["adhomian pocket watch"] = /obj/item/pocketwatch/adhomai
watch["adhomian pocket watch"] = /obj/item/clothing/wrists/watch/pocketwatch/adhomai
watch["male adhomian wrist watch"] = /obj/item/clothing/wrists/watch/tajara
watch["female adhomian wrist watch"] = /obj/item/clothing/wrists/watch/tajara/female
gear_tweaks += new /datum/gear_tweak/path(watch)
+36
View File
@@ -40,11 +40,47 @@
/obj/item/clothing/wrists/watch/spy/checktime()
to_chat(usr, "You check your watch. Unfortunately for you, it's not a real watch, dork.")
/obj/item/clothing/wrists/watch/pocketwatch
name = "pocketwatch"
desc = "A watch that goes in your pocket."
desc_extended = "Because your wrists have better things to do. Can go on your belt, suit storage, or on your wrist to create different appearances."
icon_state = "pocketwatch"
item_state = "pocketwatch"
slot_flags = SLOT_WRISTS | SLOT_BELT | SLOT_S_STORE
var/closed = FALSE
/obj/item/clothing/wrists/watch/pocketwatch/AltClick(mob/user)
if(!closed)
icon_state = "[initial(icon_state)]_closed"
user.visible_message(SPAN_NOTICE("[user] clasps \the [name] shut."), SPAN_NOTICE("You clasp \the [name] shut."))
playsound(src.loc, 'sound/weapons/blade_close.ogg', 50, 1)
else
icon_state = "[initial(icon_state)]"
user.visible_message(SPAN_NOTICE("[user] flips \the [name] open."), SPAN_NOTICE("You flip \the [name] open."))
playsound(src.loc, 'sound/weapons/blade_open.ogg', 50, 1)
closed = !closed
/obj/item/clothing/wrists/watch/pocketwatch/get_wrist_examine_text(mob/user)
var/mob/living/carbon/human/H = user
return "in [user.get_pronoun("his")] pocket[H.pants ? ", the chain connected to [user.get_pronoun("his")] [H.pants.name]'s belt loop" : ""]"
/obj/item/clothing/wrists/watch/examine(mob/user, distance, is_adjacent, infix, suffix, show_extended)
. = ..()
if (distance <= 1)
checktime()
/obj/item/clothing/wrists/watch/pocketwatch/checktime(mob/user)
if(closed)
to_chat(usr, "You check your watch, realising it's closed.")
else
to_chat(usr, "You check your watch, glancing over at the watch face, reading the time to be '[worldtime2text()]'. Today's date is '[time2text(world.time, "Month DD")]. [GLOB.game_year]'.")
/obj/item/clothing/wrists/watch/pocketwatch/pointatwatch()
if(closed)
usr.visible_message(SPAN_NOTICE("[usr] taps their foot on the floor, arrogantly pointing at the [src] in their hand with a look of derision in their eyes, not noticing it's closed."), SPAN_NOTICE("You point down at the [src], an arrogant look about your eyes."))
else
usr.visible_message(SPAN_NOTICE("[usr] taps their foot on the floor, arrogantly pointing at the [src] in their hand with a look of derision in their eyes."), SPAN_NOTICE("You point down at the [src], an arrogant look about your eyes."))
/obj/item/clothing/wrists/watch/verb/checktime()
set category = "Object"
set name = "Check Time"