diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 384a1e4ee4..e17fe20977 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -579,6 +579,9 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) /obj/item/proc/get_belt_overlay() //Returns the icon used for overlaying the object on a belt return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', icon_state) +/obj/item/proc/get_worn_belt_overlay(icon_file) + return + /obj/item/proc/update_slot_icon() if(!ismob(loc)) return diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index 0d45960767..daeceb7f87 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -89,6 +89,12 @@ if(istype(B)) playsound(B, 'sound/items/sheath.ogg', 25, 1) +/obj/item/melee/sabre/get_belt_overlay() + return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', "sabre") + +/obj/item/melee/sabre/get_worn_belt_overlay(icon_file) + return mutable_appearance(icon_file, "-sabre") + /obj/item/melee/sabre/suicide_act(mob/living/user) user.visible_message("[user] is trying to cut off all [user.p_their()] limbs with [src]! it looks like [user.p_theyre()] trying to commit suicide!") var/i = 0 @@ -147,13 +153,19 @@ flags_1 = CONDUCT_1 obj_flags = UNIQUE_RENAME w_class = WEIGHT_CLASS_BULKY - sharpness = IS_SHARP_ACCURATE //It cant be sharpend cook -_- + sharpness = IS_SHARP_ACCURATE //It cant be sharpend cook -_- attack_verb = list("slashed", "cut", "pierces", "pokes") /obj/item/melee/rapier/Initialize() . = ..() AddComponent(/datum/component/butchering, 20, 65, 0) +/obj/item/melee/rapier/get_belt_overlay() + return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', "rapier") + +/obj/item/melee/rapier/get_worn_belt_overlay(icon_file) + return mutable_appearance(icon_file, "-rapier") + /obj/item/melee/classic_baton name = "police baton" desc = "A wooden truncheon for beating criminal scum." diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index b746058588..aaf65a329c 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -10,6 +10,7 @@ attack_verb = list("whipped", "lashed", "disciplined") max_integrity = 300 var/content_overlays = FALSE //If this is true, the belt will gain overlays based on what it's holding + var/worn_overlays = FALSE //worn counterpart of the above. /obj/item/storage/belt/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins belting [user.p_them()]self with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") @@ -23,6 +24,12 @@ add_overlay(M) ..() +/obj/item/storage/belt/worn_overlays(isinhands, icon_file) + . = ..() + if(!isinhands && worn_overlays) + for(var/obj/item/I in contents) + . += I.get_worn_belt_overlay(icon_file) + /obj/item/storage/belt/Initialize() . = ..() update_icon() @@ -653,9 +660,10 @@ icon_state = "sheath" item_state = "sheath" w_class = WEIGHT_CLASS_BULKY + content_overlays = TRUE + worn_overlays = FALSE var/list/fitting_swords = list(/obj/item/melee/sabre, /obj/item/melee/baton/stunsword) var/starting_sword = /obj/item/melee/sabre - var/sword_overlay /obj/item/storage/belt/sabre/ComponentInitialize() . = ..() @@ -682,27 +690,13 @@ to_chat(user, "[src] is empty.") /obj/item/storage/belt/sabre/update_icon() - icon_state = initial(icon_state) - item_state = initial(item_state) - sword_overlay = null - if(contents.len) - var/obj/item/I = contents[1] - sword_overlay = initial(I.icon_state) - add_overlay("-[sword_overlay]") - item_state += "-[I.icon_state]" - if(loc && isliving(loc)) + . = ..() + if(isliving(loc)) var/mob/living/L = loc L.regenerate_icons() - ..() - -/obj/item/storage/belt/sabre/worn_overlays(isinhands, icon_file) - . = ..() - if(!isinhands) - . += mutable_appearance(icon_file, "-[sword_overlay]") /obj/item/storage/belt/sabre/PopulateContents() new starting_sword(src) - update_icon() /obj/item/storage/belt/sabre/rapier name = "rapier sheath" diff --git a/icons/obj/clothing/belt_overlays.dmi b/icons/obj/clothing/belt_overlays.dmi index d7bf32d7b1..717937c034 100644 Binary files a/icons/obj/clothing/belt_overlays.dmi and b/icons/obj/clothing/belt_overlays.dmi differ diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi index 506cdffe8e..5290c43073 100644 Binary files a/icons/obj/clothing/belts.dmi and b/icons/obj/clothing/belts.dmi differ diff --git a/modular_citadel/code/game/objects/items/stunsword.dm b/modular_citadel/code/game/objects/items/stunsword.dm index 1262b0018a..2a6b5c7829 100644 --- a/modular_citadel/code/game/objects/items/stunsword.dm +++ b/modular_citadel/code/game/objects/items/stunsword.dm @@ -7,6 +7,12 @@ lefthand_file = 'modular_citadel/icons/mob/inhands/stunsword_left.dmi' righthand_file = 'modular_citadel/icons/mob/inhands/stunsword_right.dmi' +/obj/item/melee/baton/stunsword/get_belt_overlay() + return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', "stunsword") + +/obj/item/melee/baton/stunsword/get_worn_belt_overlay(icon_file) + return mutable_appearance(icon_file, "-stunsword") + /obj/item/ssword_kit name = "stunsword kit" desc = "a modkit for making a stunbaton into a stunsword"