Rings can now be placed on gloves. (#144)

* upload files

* stupid maps
This commit is contained in:
SandPoot
2021-03-01 19:20:40 -03:00
committed by GitHub
parent 7a5c5eb2ee
commit e38f302b79
10 changed files with 188 additions and 32 deletions
@@ -24,7 +24,7 @@
/turf/open/floor/mineral/silver,
/area/ruin/powered/pride)
"i" = (
/obj/item/clothing/gloves/ring,
/obj/item/clothing/accessory/ring,
/turf/open/floor/mineral/silver,
/area/ruin/powered/pride)
"j" = (
@@ -70,7 +70,7 @@
/obj/structure/mirror{
pixel_x = -32
},
/obj/item/clothing/gloves/ring/silver,
/obj/item/clothing/accessory/ring/silver,
/turf/open/floor/mineral/silver,
/area/ruin/powered/pride)
"r" = (
@@ -92,7 +92,7 @@
/turf/closed/mineral/volcanic/lava_land_surface,
/area/lavaland/surface/outdoors)
"I" = (
/obj/item/clothing/gloves/ring/silver,
/obj/item/clothing/accessory/ring/silver,
/turf/open/floor/mineral/silver,
/area/ruin/powered/pride)
"J" = (
@@ -109,7 +109,7 @@
/turf/open/floor/mineral/silver,
/area/ruin/powered/pride)
"O" = (
/obj/item/clothing/gloves/ring/diamond,
/obj/item/clothing/accessory/ring/diamond,
/turf/open/floor/mineral/silver,
/area/ruin/powered/pride)
"V" = (
+4 -5
View File
@@ -460,21 +460,20 @@
icon_state = "gold ringbox"
icon_type = "gold ring"
w_class = WEIGHT_CLASS_TINY
spawn_type = /obj/item/clothing/gloves/ring
spawn_type = /obj/item/clothing/accessory/ring
/obj/item/storage/fancy/ringbox/ComponentInitialize()
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 1
STR.can_hold = typecacheof(list(/obj/item/clothing/gloves/ring))
STR.can_hold = typecacheof(list(/obj/item/clothing/accessory/ring))
/obj/item/storage/fancy/ringbox/diamond
icon_state = "diamond ringbox"
icon_type = "diamond ring"
spawn_type = /obj/item/clothing/gloves/ring/diamond
spawn_type = /obj/item/clothing/accessory/ring/diamond
/obj/item/storage/fancy/ringbox/silver
icon_state = "silver ringbox"
icon_type = "silver ring"
spawn_type = /obj/item/clothing/gloves/ring/silver
spawn_type = /obj/item/clothing/accessory/ring/silver
+3 -1
View File
@@ -1,4 +1,4 @@
/obj/item/clothing/gloves/ring
/* /obj/item/clothing/gloves/ring
name = "gold ring"
desc = "A tiny gold ring, sized to wrap around a finger."
gender = NEUTER
@@ -39,3 +39,5 @@
obj_flags = UNIQUE_RENAME
icon_state = "ringsilver"
item_state = "sring"
*/
+1 -1
View File
@@ -90,7 +90,7 @@
/obj/item/clothing/under/proc/attach_accessory(obj/item/I, mob/user, notifyAttach = 1)
. = FALSE
if(istype(I, /obj/item/clothing/accessory))
if(istype(I, /obj/item/clothing/accessory) && !istype(I, /obj/item/clothing/accessory/ring))
var/obj/item/clothing/accessory/A = I
if(length(attached_accessories) >= max_accessories)
if(user)
+1 -1
View File
@@ -116,7 +116,7 @@
/obj/item/clothing/accessory/examine(mob/user)
. = ..()
. += "<span class='notice'>\The [src] can be attached to a uniform. Alt-click to remove it once attached.</span>"
. += "<span class='notice'>\The [src] can be attached to [istype(src, /obj/item/clothing/accessory/ring) ? "gloves" : "a uniform"]. Alt-click to remove it once attached.</span>"
if(initial(above_suit))
. += "<span class='notice'>\The [src] can be worn above or below your suit. Alt-click to toggle.</span>"
@@ -9,26 +9,7 @@
/datum/gear/gloves/evening
name = "Evening gloves"
path = /obj/item/clothing/gloves/evening
/datum/gear/gloves/midnight
name = "Midnight gloves"
path = /obj/item/clothing/gloves/evening/black
/datum/gear/gloves/goldring
name = "A gold ring"
path = /obj/item/clothing/gloves/ring
cost = 2
/datum/gear/gloves/silverring
name = "A silver ring"
path = /obj/item/clothing/gloves/ring/silver
cost = 2
/datum/gear/gloves/diamondring
name = "A diamond ring"
path = /obj/item/clothing/gloves/ring/diamond
cost = 4
/datum/gear/gloves/customring
name = "A ring, renameable"
path = /obj/item/clothing/gloves/ring/custom
@@ -0,0 +1,22 @@
/datum/gear/accessories/ring
category = LOADOUT_CATEGORY_GLOVES
slot = SLOT_GLOVES
/datum/gear/accessories/ring/goldring
name = "A gold ring"
path = /obj/item/clothing/accessory/ring
cost = 2
/datum/gear/accessories/ring/silverring
name = "A silver ring"
path = /obj/item/clothing/accessory/ring/silver
cost = 2
/datum/gear/accessories/ring/diamondring
name = "A diamond ring"
path = /obj/item/clothing/accessory/ring/diamond
cost = 4
/datum/gear/accessories/ring/customring
name = "A ring, renameable"
path = /obj/item/clothing/accessory/ring/custom
@@ -0,0 +1,112 @@
/obj/item/clothing/gloves
var/dummy_thick = FALSE // is able to hold accessories on its item
//SKYRAT EDIT - Removed the old attached accessory system. We use a list of accessories instead.
var/list/obj/item/clothing/accessory/ring/attached_accessories = list()
var/max_accessories = 1
//SKYRAT EDIT END
var/mutable_appearance/accessory_overlay
/obj/item/clothing/gloves/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE)
. = ..()
if(!isinhands)
if(accessory_overlay)
. += accessory_overlay
/obj/item/clothing/gloves/attackby(obj/item/I, mob/user, params)
if(!attach_accessory(I, user))
return ..()
/obj/item/clothing/gloves/AltClick(mob/user)
. = ..()
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
return
if(length(attached_accessories)) //SKYRAT EDIT
remove_accessory(user)
/obj/item/clothing/gloves/equipped(mob/user, slot)
..()
//SKYRAT EDIT
for(var/obj/item/clothing/accessory/ring/attached_accessory in attached_accessories)
if(attached_accessory && slot != SLOT_HANDS && ishuman(user))
var/mob/living/carbon/human/H = user
attached_accessory.on_uniform_equip(src, user)
if(attached_accessory.above_suit)
H.update_inv_wear_suit()
//SKYRAT EDIT END
/obj/item/clothing/gloves/dropped(mob/user)
//SKYRAT EDIT
for(var/obj/item/clothing/accessory/ring/attached_accessory in attached_accessories)
attached_accessory.on_uniform_dropped(src, user)
if(ishuman(user))
var/mob/living/carbon/human/H = user
if(attached_accessory.above_suit)
H.update_inv_wear_suit()
//SKYRAT EDIT END
..()
/obj/item/clothing/gloves/proc/attach_accessory(obj/item/I, mob/user, notifyAttach = 1)
. = FALSE
if(istype(I, /obj/item/clothing/accessory/ring))
var/obj/item/clothing/accessory/ring/A = I
if(length(attached_accessories) >= max_accessories)
if(user)
to_chat(user, "<span class='warning'>[src] already has [length(attached_accessories)] accessories.</span>")
return
if(dummy_thick)
if(user)
to_chat(user, "<span class='warning'>[src] is too bulky and cannot have accessories attached to it!</span>")
return
else
if(user && !user.temporarilyRemoveItemFromInventory(I))
return
if(!A.attach(src, user))
return
if(user && notifyAttach)
to_chat(user, "<span class='notice'>You attach [I] to [src].</span>")
if((flags_inv & HIDEACCESSORY) || (A.flags_inv & HIDEACCESSORY))
return TRUE
//SKYRAT EDIT
accessory_overlay = mutable_appearance(I.mob_overlay_icon, I.item_state)
for(var/obj/item/clothing/accessory/ring/attached_accessory in attached_accessories)
var/mutable_appearance/Y = mutable_appearance(attached_accessory.mob_overlay_icon, attached_accessory.icon_state, ABOVE_HUD_LAYER)
Y.alpha = attached_accessory.alpha
Y.color = attached_accessory.color
accessory_overlay.add_overlay(Y)
//SKYRAT EDIT END
if(ishuman(loc))
var/mob/living/carbon/human/H = loc
H.update_inv_gloves()
return TRUE
/obj/item/clothing/gloves/proc/remove_accessory(mob/user)
if(!isliving(user))
return
if(!can_use(user))
return
//SKYRAT EDIT
if(length(attached_accessories))
var/obj/item/clothing/accessory/ring/A = attached_accessories[length(attached_accessories)]
//SKYRAT EDIT END
A.detach(src, user)
if(user.put_in_hands(A))
to_chat(user, "<span class='notice'>You detach [A] from [src].</span>")
else
to_chat(user, "<span class='notice'>You detach [A] from [src] and it falls on the floor.</span>")
if(ishuman(loc))
var/mob/living/carbon/human/H = loc
H.update_inv_gloves()
/obj/item/clothing/gloves/examine(mob/user)
. = ..()
if(length(attached_accessories))
for(var/obj/item/clothing/accessory/ring/attached_accessory in attached_accessories)
. += "\A [attached_accessory] is attached to one of it's fingers."
@@ -0,0 +1,37 @@
/obj/item/clothing/accessory/ring
name = "gold ring"
desc = "A tiny gold ring, sized to wrap around a finger."
gender = NEUTER
w_class = WEIGHT_CLASS_TINY
slot_flags = ITEM_SLOT_GLOVES
icon = 'icons/obj/ring.dmi'
mob_overlay_icon = 'icons/mob/clothing/hands.dmi'
icon_state = "ringgold"
item_state = "gring"
strip_delay = 40
/obj/item/clothing/accessory/ring/suicide_act(mob/living/carbon/user)
user.visible_message("<span class='suicide'>\[user] is putting the [src] in [user.p_their()] mouth! It looks like [user] is trying to choke on the [src]!</span>")
return OXYLOSS
/obj/item/clothing/accessory/ring/attack_self(mob/user)
user.visible_message("<span class='warning'>\The [user] gets down on one knee, presenting \the [src].</span>","<span class='warning'>You get down on one knee, presenting \the [src].</span>")
/obj/item/clothing/accessory/ring/diamond
name = "diamond ring"
desc = "An expensive ring, studded with a diamond. Cultures have used these rings in courtship for a millenia."
icon_state = "ringdiamond"
item_state = "dring"
/obj/item/clothing/accessory/ring/silver
name = "silver ring"
desc = "A tiny silver ring, sized to wrap around a finger."
icon_state = "ringsilver"
item_state = "sring"
/obj/item/clothing/accessory/ring/custom
name = "ring"
desc = "A ring."
icon_state = "ringsilver"
item_state = "sring"
obj_flags = UNIQUE_RENAME
+3
View File
@@ -3786,11 +3786,14 @@
#include "modular_sand\code\modules\client\asset_cache.dm"
#include "modular_sand\code\modules\client\preferences.dm"
#include "modular_sand\code\modules\client\preferences_savefile.dm"
#include "modular_sand\code\modules\client\loadout\accessories.dm"
#include "modular_sand\code\modules\client\loadout\boxers.dm"
#include "modular_sand\code\modules\client\loadout\shirts.dm"
#include "modular_sand\code\modules\client\loadout\socks.dm"
#include "modular_sand\code\modules\client\loadout\wrists.dm"
#include "modular_sand\code\modules\clothing\refactor.dm"
#include "modular_sand\code\modules\clothing\gloves\_gloves.dm"
#include "modular_sand\code\modules\clothing\gloves\accessories.dm"
#include "modular_sand\code\modules\clothing\head\misc.dm"
#include "modular_sand\code\modules\clothing\masks\miscellaneous.dm"
#include "modular_sand\code\modules\clothing\outfits\standard.dm"