[MIRROR] Ring/Watch Accessory Transfer (#9489)

Co-authored-by: Heroman3003 <31296024+Heroman3003@users.noreply.github.com>
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2024-11-19 11:14:32 -07:00
committed by GitHub
parent cc1e6f932e
commit f7e9f8d12b
105 changed files with 799 additions and 767 deletions

View File

@@ -0,0 +1,5 @@
/datum/uplink_item/item/stealthy_weapons/angrybuzzer
name = "Morphium Shock Ring"
desc = "An enigmatic ring used to create powerful electric shocks when punching. Can be used as a brute-force method of defibrillation."
item_cost = 40
path = /obj/item/clothing/gloves/ring/buzzer

View File

@@ -9,10 +9,10 @@
/datum/gear/gloves/ringworld1
display_name = "world gem ring"
path = /obj/item/clothing/gloves/ring/ringworld1
path = /obj/item/clothing/accessory/ring/ringworld1
cost = 1
/datum/gear/gloves/ringworld2
display_name = "world ring"
path = /obj/item/clothing/gloves/ring/ringworld2
path = /obj/item/clothing/accessory/ring/ringworld2
cost = 1

View File

@@ -0,0 +1,30 @@
/obj/item/clothing/accessory/collar/casinoslave
name = "a disabled Sentient Prize Collar"
desc = "A collar worn by sentient prizes on the Golden Goose Casino. Although the red text on it shows its disconnected and nonfunctional."
icon = 'icons/obj/clothing/ties_ch.dmi'
icon_override = 'icons/mob/ties_ch.dmi'
icon_state = "casinoslave"
item_state = "casinoslave"
overlay_state = "casinoslave"
sprite_sheets = list(SPECIES_TESHARI = 'icons/inventory/accessory/mob_ch_teshari.dmi')
var/slavename = null //Name for system to put on collar description
var/ownername = null //Name for system to put on collar description
var/slaveckey = null //Ckey for system to check who is the person and ensure no abuse of system or errors
var/slaveflavor = null //Description to show on the SPASM
var/slaveooc = null //OOC text to show on the SPASM
/obj/item/clothing/accessory/collar/casinoslave/attack_self(mob/user as mob)
//keeping it blank so people don't tag and reset collar status
/obj/item/clothing/accessory/collar/holo/casinoslave_fake
name = "a Sentient Prize Collar"
desc = "A collar worn by sentient prizes on the Golden Goose Casino. This one has been disconnected from the system and is now an accessory!"
icon = 'icons/obj/clothing/ties_ch.dmi'
icon_override = 'icons/mob/ties_ch.dmi'
icon_state = "casinoslave_owned"
item_state = "casinoslave_owned"
overlay_state = "casinoslave_owned"
sprite_sheets = list(SPECIES_TESHARI = 'icons/inventory/accessory/mob_ch_teshari.dmi')

View File

@@ -1,12 +1,11 @@
/obj/item/clothing/gloves/ring/ringworld1
/obj/item/clothing/accessory/ring/ringworld1
name = "world gem ring"
desc = "A ring that has a tiny world inside its glassy gem. You can even see clouds moving."
icon = 'modular_chomp/icons/inventory/hands/item_ch.dmi'
icon_state = "ringworld1"
drop_sound = 'sound/items/drop/ring.ogg'
/obj/item/clothing/gloves/ring/ringworld2
/obj/item/clothing/accessory/ring/ringworld2
name = "world ring"
desc = "A ring that has a tiny landscape all around its exterior. You can even see clouds moving."
icon = 'modular_chomp/icons/inventory/hands/item_ch.dmi'

View File

@@ -0,0 +1,66 @@
// Buzzer Ring - Traitor, Merc.
/obj/item/clothing/gloves/ring/buzzer
name = "ring"
desc = "A plain metal band."
description_antag = "This morphium-alloy ring continually generates an electric field, capable of electrocuting a target while not injuring the wearer.\
The device is also capable of 'frankenstein'-ing a corpse, long after normal technology would be able to save them. The body will still be tied to the\
normal damage limits for survival, however, so care must be taken."
icon_state = "material"
var/battery_type = /obj/item/cell/device/weapon/recharge
var/obj/item/cell/battery = null
/obj/item/clothing/gloves/ring/buzzer/get_cell()
return battery
/obj/item/clothing/gloves/ring/buzzer/Initialize()
. = ..()
if(!battery)
battery = new battery_type(src)
/obj/item/clothing/gloves/ring/buzzer/Touch(var/atom/A, var/proximity)
if(proximity && istype(usr, /mob/living/carbon/human))
return zap(usr, A, proximity)
return 0
/obj/item/clothing/gloves/ring/buzzer/proc/zap(var/mob/living/carbon/human/user, var/atom/movable/target, var/proximity)
. = FALSE
if(user.a_intent == I_HURT && battery.percent() >= 50)
if(isliving(target))
var/mob/living/L = target
if(ishuman(L) && battery.percent() >= 90) // Silent text-wise, for maximum potential for gimmicks.
var/mob/living/carbon/human/H = L
if(H.stat == DEAD)
. = TRUE
do_defib(H)
to_chat(L, span_warning("You feel a powerful shock!"))
if(!.)
playsound(L, 'sound/effects/sparks7.ogg', 40, 1)
L.electrocute_act(battery.percent() * 0.25, src)
battery.emp_act(2)
return .
return 0
/obj/item/clothing/gloves/ring/buzzer/proc/do_defib(var/mob/living/carbon/human/H = null)
if(!istype(H))
return 0
dead_mob_list.Remove(H)
if((H in living_mob_list) || (H in dead_mob_list))
WARNING("Mob [H] was ring-defibbed but already in the living or dead list still!")
living_mob_list += H
H.timeofdeath = 0
H.set_stat(UNCONSCIOUS)
H.failed_last_breath = 0
H.reload_fullscreen()
H.emote("gasp")
H.Weaken(rand(10,25))
H.updatehealth()
battery.emp_act(1)