From dbfd5d58c3ba6a9ab7062b5473e1dd00bfd23807 Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Mon, 31 Oct 2022 00:03:48 +1100 Subject: [PATCH 1/6] You can now mash stuff up in buckets. --- .../reagents/reagent_containers/glass.dm | 106 +++++++++++++----- 1 file changed, 76 insertions(+), 30 deletions(-) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 97eddba71d..ad6877fd37 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -277,42 +277,103 @@ unacidable = 0 drop_sound = 'sound/items/drop/helm.ogg' pickup_sound = 'sound/items/pickup/helm.ogg' + var/obj/item/holding + var/helmet_type = /obj/item/clothing/head/helmet/bucket + var/static/list/accept_items_for_mashing = list( + /obj/item/reagent_containers/food/snacks, + /obj/item/material/snow/snowball, + /obj/item/stack/material/snow + ) -/obj/item/reagent_containers/glass/bucket/attackby(var/obj/item/D, mob/user as mob) +/obj/item/reagent_containers/glass/bucket/attackby(var/obj/item/D, mob/user) + + // Turn bucket into a janibot. if(isprox(D)) to_chat(user, "You add [D] to [src].") qdel(D) user.put_in_hands(new /obj/item/bucket_sensor) user.drop_from_inventory(src) qdel(src) - return - else if(D.is_wirecutter()) - to_chat(user, "You cut a big hole in \the [src] with \the [D]. It's kinda useless as a bucket now.") - user.put_in_hands(new /obj/item/clothing/head/helmet/bucket) + return TRUE + + // Turn bucket into a helmet. + if(D.is_wirecutter() && helmet_type) + to_chat(user, SPAN_NOTICE("You cut a big hole in \the [src] with \the [D]. It's kinda useless as a bucket now.")) + user.put_in_hands(new helmet_type) user.drop_from_inventory(src) qdel(src) - return - else if(istype(D, /obj/item/stack/material) && D.get_material_name() == MAT_STEEL) + return TRUE + + // Turn bucket into a robot assembly. + if(istype(D, /obj/item/stack/material) && D.get_material_name() == MAT_STEEL) var/obj/item/stack/material/M = D if (M.use(1)) var/obj/item/secbot_assembly/edCLN_assembly/B = new /obj/item/secbot_assembly/edCLN_assembly B.loc = get_turf(src) - to_chat(user, "You armed the robot frame.") + to_chat(user, SPAN_NOTICE("You armed the robot frame.")) if (user.get_inactive_hand()==src) user.remove_from_mob(src) user.put_in_inactive_hand(B) qdel(src) else - to_chat(user, "You need one sheet of metal to arm the robot frame.") - else if(istype(D, /obj/item/mop)) + to_chat(user, SPAN_WARNING("You need one sheet of metal to arm the robot frame.")) + return TRUE + + // Wet mop with reagents in bucket. + if(istype(D, /obj/item/mop)) if(reagents.total_volume < 1) - to_chat(user, "\The [src] is empty!") + to_chat(user, SPAN_WARNING("\The [src] is empty!")) else reagents.trans_to_obj(D, 5) - to_chat(user, "You wet \the [D] in \the [src].") + to_chat(user, SPAN_NOTICE("You wet \the [D] in \the [src].")) playsound(src, 'sound/effects/slosh.ogg', 25, 1) - else - return ..() + return TRUE + + // Put a fruit or snack into the bucket for mashing. + if(!holding) + var/is_mashable = FALSE + for(var/mashable_type in accept_items_for_mashing) + if(istype(D, mashable_type)) + is_mashable = TRUE + break + if(!is_mashable) + return ..() + if(reagents.total_volume >= reagents.maximum_volume) + to_chat(user, SPAN_WARNING("\The [src] is almost overflowing; pour some liquid out first.")) + return TRUE + if(user.unEquip(D, target = src)) + holding = D + visible_message(SPAN_NOTICE("\The [user] drops \the [D] into \the [src].")) + return TRUE + + // Mash the fruit in the bucket. This `else` is not accidental! + else if(!(D.item_flags & NOBLUDGEON)) + visible_message("\The [user] begins mashing \the [holding] with \the [D]...") + if(do_after(user, 3 SECONDS, src) && !QDELETED(src) && reagents.total_volume < reagents.maximum_volume) + visible_message("\The [user] finishes mashing \the [holding] with \the [D].") + if(holding.reagents) + holding.reagents.trans_to_obj(src, holding.reagents.total_volume) + QDEL_NULL(holding) + return TRUE + + return ..() + +/obj/item/reagent_containers/glass/bucket/Destroy() + QDEL_NULL(holding) + return ..() + +/obj/item/reagent_containers/glass/bucket/examine(mob/user) + . = ..() + if(loc == user && holding) + . += "There is \a [holding] in \the [src]." + +/obj/item/reagent_containers/glass/bucket/attack_self(mob/user) + if(holding) + holding.dropInto(get_turf(user)) + visible_message(SPAN_NOTICE("\The [user] tips \the [holding] out of \the [src].")) + holding = null + return TRUE + . = ..() /obj/item/reagent_containers/glass/bucket/update_icon() cut_overlays() @@ -340,22 +401,7 @@ if(isprox(D)) to_chat(user, "This wooden bucket doesn't play well with electronics.") return - else if(istype(D, /obj/item/material/knife/machete/hatchet)) - to_chat(user, "You cut a big hole in \the [src] with \the [D]. It's kinda useless as a bucket now.") - user.put_in_hands(new /obj/item/clothing/head/helmet/bucket/wood) - user.drop_from_inventory(src) - qdel(src) - return - else if(istype(D, /obj/item/mop)) - if(reagents.total_volume < 1) - to_chat(user, "\The [src] is empty!") - else - reagents.trans_to_obj(D, 5) - to_chat(user, "You wet \the [D] in \the [src].") - playsound(src, 'sound/effects/slosh.ogg', 25, 1) - return - else - return ..() + return ..() /obj/item/reagent_containers/glass/cooler_bottle desc = "A bottle for a water-cooler." From 6c00aedbd7faead74acb0538d31ba2229a162981 Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Mon, 31 Oct 2022 00:17:53 +1100 Subject: [PATCH 2/6] Repathed ponchos to accessory/storage. --- code/datums/outfits/costumes/halloween.dm | 2 +- code/game/objects/items/paintkit.dm | 12 ++-- code/game/objects/random/misc.dm | 10 +-- code/game/objects/structures/loot_piles.dm | 4 +- code/modules/antagonist/outsider/raider.dm | 2 +- .../preference_setup/loadout/loadout_suit.dm | 14 ++-- .../clothing/under/accessories/clothing.dm | 67 ++++++++++--------- .../under/accessories/temperature/poncho.dm | 20 +++--- .../materials/materials/organic/cloth.dm | 1 + .../materials/materials/organic/leather.dm | 1 + .../surface_submaps/plains/Boathouse.dmm | 2 +- 11 files changed, 69 insertions(+), 66 deletions(-) diff --git a/code/datums/outfits/costumes/halloween.dm b/code/datums/outfits/costumes/halloween.dm index e0ea39d8e6..cf121da372 100644 --- a/code/datums/outfits/costumes/halloween.dm +++ b/code/datums/outfits/costumes/halloween.dm @@ -53,7 +53,7 @@ shoes = /obj/item/clothing/shoes/boots/cowboy head = /obj/item/clothing/head/cowboy_hat gloves = /obj/item/clothing/gloves/fingerless - suit = /obj/item/clothing/accessory/poncho + suit = /obj/item/clothing/accessory/storage/poncho r_hand = /obj/item/gun/projectile/revolver/capgun /decl/hierarchy/outfit/costume/cowboy/post_equip(var/mob/living/carbon/human/H) diff --git a/code/game/objects/items/paintkit.dm b/code/game/objects/items/paintkit.dm index a21b6e2646..2692e33ec9 100644 --- a/code/game/objects/items/paintkit.dm +++ b/code/game/objects/items/paintkit.dm @@ -60,18 +60,18 @@ ..() /// Ponchos specifically, but other accessories may eventually need this. -/// Consequence of snowflake-y teshari code. -/obj/item/kit/accessory +/// Consequence of snowflake-y teshari code. +/obj/item/kit/accessory name = "accessory modification kit" desc = "A kit for modifying accessories." /obj/item/kit/accessory/can_customize(var/obj/item/I) - return istype(I, /obj/item/clothing/accessory/poncho) + return istype(I, /obj/item/clothing/accessory/storage/poncho) /obj/item/kit/accessory/customize(var/obj/item/I, var/mob/user) if(can_customize(I)) - if(istype(I, /obj/item/clothing/accessory/poncho)) - var/obj/item/clothing/accessory/poncho/P = I + if(istype(I, /obj/item/clothing/accessory/storage/poncho)) + var/obj/item/clothing/accessory/storage/poncho/P = I P.icon_override_state = new_icon_override_file P.sprite_sheets[SPECIES_TESHARI] = new_icon_override_file /// Will look the same on teshari and other species. P.item_state = new_icon @@ -339,4 +339,4 @@ name = "\"Gaoler\" Gygax customisation kit" new_name = "Durand \"Gaoler\"" new_desc = "A bulky silver Gygax exosuit. The extra armour appears to be painted on, but it's very shiny." - new_icon = "recitence" \ No newline at end of file + new_icon = "recitence" diff --git a/code/game/objects/random/misc.dm b/code/game/objects/random/misc.dm index 06493ed331..2b9ebf12ee 100644 --- a/code/game/objects/random/misc.dm +++ b/code/game/objects/random/misc.dm @@ -960,11 +960,11 @@ icon_state = "classicponcho" /obj/random/thermalponcho/item_to_spawn() - return pick(prob(5);/obj/item/clothing/accessory/poncho/thermal, - prob(3);/obj/item/clothing/accessory/poncho/thermal/red, - prob(3);/obj/item/clothing/accessory/poncho/thermal/green, - prob(3);/obj/item/clothing/accessory/poncho/thermal/purple, - prob(3);/obj/item/clothing/accessory/poncho/thermal/blue) + return pick(prob(5);/obj/item/clothing/accessory/storage/poncho/thermal, + prob(3);/obj/item/clothing/accessory/storage/poncho/thermal/red, + prob(3);/obj/item/clothing/accessory/storage/poncho/thermal/green, + prob(3);/obj/item/clothing/accessory/storage/poncho/thermal/purple, + prob(3);/obj/item/clothing/accessory/storage/poncho/thermal/blue) /obj/random/mug name = "Random Mug" diff --git a/code/game/objects/structures/loot_piles.dm b/code/game/objects/structures/loot_piles.dm index 2f666727d3..2470bdeef3 100644 --- a/code/game/objects/structures/loot_piles.dm +++ b/code/game/objects/structures/loot_piles.dm @@ -560,7 +560,7 @@ Loot piles can be depleted, if loot_depleted is turned on. Note that players wh /obj/item/clothing/accessory/bracelet/material/gold, /obj/item/clothing/accessory/bracelet/material/silver, /obj/item/clothing/accessory/locket, - /obj/item/clothing/accessory/poncho/blue, + /obj/item/clothing/accessory/storage/poncho/blue, /obj/item/clothing/shoes/boots/cowboy, /obj/item/clothing/suit/storage/toggle/bomber, /obj/item/clothing/under/frontier, @@ -944,4 +944,4 @@ Loot piles can be depleted, if loot_depleted is turned on. Note that players wh common_loot = list( /obj/random/unidentified_medicine/fresh_medicine - ) \ No newline at end of file + ) diff --git a/code/modules/antagonist/outsider/raider.dm b/code/modules/antagonist/outsider/raider.dm index 49e0409ac4..c2f53b5113 100644 --- a/code/modules/antagonist/outsider/raider.dm +++ b/code/modules/antagonist/outsider/raider.dm @@ -60,7 +60,7 @@ var/global/datum/antagonist/raider/raiders /obj/item/clothing/suit/storage/toggle/hoodie, /obj/item/clothing/suit/storage/toggle/hoodie/black, /obj/item/clothing/suit/unathi/mantle, - /obj/item/clothing/accessory/poncho, + /obj/item/clothing/accessory/storage/poncho, ) var/list/raider_guns = list( diff --git a/code/modules/client/preference_setup/loadout/loadout_suit.dm b/code/modules/client/preference_setup/loadout/loadout_suit.dm index 75c0ad23f6..87b7a717b8 100644 --- a/code/modules/client/preference_setup/loadout/loadout_suit.dm +++ b/code/modules/client/preference_setup/loadout/loadout_suit.dm @@ -185,32 +185,32 @@ /datum/gear/suit/poncho display_name = "poncho selection" description = "A selection of ponchos in basic and departmental colours." - path = /obj/item/clothing/accessory/poncho + path = /obj/item/clothing/accessory/storage/poncho /datum/gear/suit/poncho/New() ..() var/list/ponchos = list() - for(var/poncho_style in (typesof(/obj/item/clothing/accessory/poncho) - typesof(/obj/item/clothing/accessory/poncho/roles/cloak))) - var/obj/item/clothing/accessory/poncho/poncho = poncho_style + for(var/poncho_style in (typesof(/obj/item/clothing/accessory/storage/poncho) - typesof(/obj/item/clothing/accessory/storage/poncho/roles/cloak))) + var/obj/item/clothing/accessory/storage/poncho/poncho = poncho_style ponchos[initial(poncho.name)] = poncho gear_tweaks += new/datum/gear_tweak/path(sortAssoc(ponchos)) /datum/gear/suit/cloak_department display_name = "cloak, departmental selection" description = "A selection of cloaks in departmental colours." - path = /obj/item/clothing/accessory/poncho/roles/cloak/cargo + path = /obj/item/clothing/accessory/storage/poncho/roles/cloak/cargo /datum/gear/suit/cloak_department/New() ..() var/list/cloaks = list() - for(var/cloak_style in (typesof(/obj/item/clothing/accessory/poncho/roles/cloak))) - var/obj/item/clothing/accessory/poncho/roles/cloak/cloak = cloak_style + for(var/cloak_style in (typesof(/obj/item/clothing/accessory/storage/poncho/roles/cloak))) + var/obj/item/clothing/accessory/storage/poncho/roles/cloak/cloak = cloak_style cloaks[initial(cloak.name)] = cloak gear_tweaks += new/datum/gear_tweak/path(sortAssoc(cloaks)) /datum/gear/suit/cloak_custom //A colorable cloak display_name = "cloak (colorable)" - path = /obj/item/clothing/accessory/poncho/roles/cloak/custom + path = /obj/item/clothing/accessory/storage/poncho/roles/cloak/custom /datum/gear/suit/cloak_custom/New() ..() diff --git a/code/modules/clothing/under/accessories/clothing.dm b/code/modules/clothing/under/accessories/clothing.dm index 9dcc4cb709..e20356d52f 100644 --- a/code/modules/clothing/under/accessories/clothing.dm +++ b/code/modules/clothing/under/accessories/clothing.dm @@ -43,14 +43,13 @@ /* * Poncho */ -/obj/item/clothing/accessory/poncho +/obj/item/clothing/accessory/storage/poncho name = "poncho" desc = "A simple, comfortable poncho." icon_state = "classicponcho" item_state = "classicponcho" icon_override = 'icons/mob/ties.dmi' - var/icon_override_state /// Change this for mid-round and paintkit. - var/fire_resist = T0C+100 + slots = 2 allowed = list(/obj/item/tank/emergency/oxygen) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) slot_flags = SLOT_OCLOTHING | SLOT_TIE @@ -61,8 +60,10 @@ sprite_sheets = list( SPECIES_TESHARI = 'icons/mob/species/teshari/suit.dmi' ) + var/icon_override_state /// Change this for mid-round and paintkit. + var/fire_resist = T0C+100 -/obj/item/clothing/accessory/poncho/equipped() /// Sets override, allows for mid-round changes && custom items. If you improve this code, please update paintkit.dm to accept it. +/obj/item/clothing/accessory/storage/poncho/equipped() /// Sets override, allows for mid-round changes && custom items. If you improve this code, please update paintkit.dm to accept it. ..() var/mob/living/carbon/human/H = loc if(istype(H) && H.wear_suit == src) @@ -74,13 +75,13 @@ icon_override = 'icons/mob/ties.dmi' H.update_inv_wear_suit() -/obj/item/clothing/accessory/poncho/dropped() // Reset override +/obj/item/clothing/accessory/storage/poncho/dropped() // Reset override if(icon_override_state) icon_override = icon_override_state else icon_override = 'icons/mob/ties.dmi' -/obj/item/clothing/accessory/poncho/on_attached(obj/item/clothing/S, mob/user) /// Otherwise gives teshari normal icon. +/obj/item/clothing/accessory/storage/poncho/on_attached(obj/item/clothing/S, mob/user) /// Otherwise gives teshari normal icon. . = ..() if(icon_override_state) icon_override = icon_override_state @@ -91,55 +92,55 @@ else icon_override = 'icons/mob/ties.dmi' -/obj/item/clothing/accessory/poncho/green +/obj/item/clothing/accessory/storage/poncho/green name = "green poncho" desc = "A simple, comfortable cloak without sleeves. This one is green." icon_state = "greenponcho" item_state = "greenponcho" -/obj/item/clothing/accessory/poncho/red +/obj/item/clothing/accessory/storage/poncho/red name = "red poncho" desc = "A simple, comfortable cloak without sleeves. This one is red." icon_state = "redponcho" item_state = "redponcho" -/obj/item/clothing/accessory/poncho/purple +/obj/item/clothing/accessory/storage/poncho/purple name = "purple poncho" desc = "A simple, comfortable cloak without sleeves. This one is purple." icon_state = "purpleponcho" item_state = "purpleponcho" -/obj/item/clothing/accessory/poncho/blue +/obj/item/clothing/accessory/storage/poncho/blue name = "blue poncho" desc = "A simple, comfortable cloak without sleeves. This one is blue." icon_state = "blueponcho" item_state = "blueponcho" -/obj/item/clothing/accessory/poncho/roles/security +/obj/item/clothing/accessory/storage/poncho/roles/security name = "security poncho" desc = "A simple, comfortable cloak without sleeves. This one is black and red, standard NanoTrasen Security colors." icon_state = "secponcho" item_state = "secponcho" -/obj/item/clothing/accessory/poncho/roles/medical +/obj/item/clothing/accessory/storage/poncho/roles/medical name = "medical poncho" desc = "A simple, comfortable cloak without sleeves. This one is white with green and blue tint, standard Medical colors." icon_state = "medponcho" item_state = "medponcho" -/obj/item/clothing/accessory/poncho/roles/engineering +/obj/item/clothing/accessory/storage/poncho/roles/engineering name = "engineering poncho" desc = "A simple, comfortable cloak without sleeves. This one is yellow and orange, standard Engineering colors." icon_state = "engiponcho" item_state = "engiponcho" -/obj/item/clothing/accessory/poncho/roles/science +/obj/item/clothing/accessory/storage/poncho/roles/science name = "science poncho" desc = "A simple, comfortable cloak without sleeves. This one is white with purple trim, standard NanoTrasen Science colors." icon_state = "sciponcho" item_state = "sciponcho" -/obj/item/clothing/accessory/poncho/roles/cargo +/obj/item/clothing/accessory/storage/poncho/roles/cargo name = "cargo poncho" desc = "A simple, comfortable cloak without sleeves. This one is tan and grey, the colors of Cargo." icon_state = "cargoponcho" @@ -148,105 +149,105 @@ /* * Cloak */ -/obj/item/clothing/accessory/poncho/roles/cloak +/obj/item/clothing/accessory/storage/poncho/roles/cloak name = "quartermaster's cloak" desc = "An elaborate brown and gold cloak." icon_state = "qmcloak" item_state = "qmcloak" body_parts_covered = null -/obj/item/clothing/accessory/poncho/roles/cloak/ce +/obj/item/clothing/accessory/storage/poncho/roles/cloak/ce name = "chief engineer's cloak" desc = "An elaborate cloak worn by the chief engineer." icon_state = "cecloak" item_state = "cecloak" -/obj/item/clothing/accessory/poncho/roles/cloak/cmo +/obj/item/clothing/accessory/storage/poncho/roles/cloak/cmo name = "chief medical officer's cloak" desc = "An elaborate cloak meant to be worn by the chief medical officer." icon_state = "cmocloak" item_state = "cmocloak" -/obj/item/clothing/accessory/poncho/roles/cloak/hop +/obj/item/clothing/accessory/storage/poncho/roles/cloak/hop name = "head of personnel's cloak" desc = "An elaborate cloak meant to be worn by the head of personnel." icon_state = "hopcloak" item_state = "hopcloak" -/obj/item/clothing/accessory/poncho/roles/cloak/rd +/obj/item/clothing/accessory/storage/poncho/roles/cloak/rd name = "research director's cloak" desc = "An elaborate cloak meant to be worn by the research director." icon_state = "rdcloak" item_state = "rdcloak" -/obj/item/clothing/accessory/poncho/roles/cloak/qm +/obj/item/clothing/accessory/storage/poncho/roles/cloak/qm name = "quartermaster's cloak" desc = "An elaborate cloak meant to be worn by the quartermaster." icon_state = "qmcloak" item_state = "qmcloak" -/obj/item/clothing/accessory/poncho/roles/cloak/hos +/obj/item/clothing/accessory/storage/poncho/roles/cloak/hos name = "head of security's cloak" desc = "An elaborate cloak meant to be worn by the head of security." icon_state = "hoscloak" item_state = "hoscloak" -/obj/item/clothing/accessory/poncho/roles/cloak/captain +/obj/item/clothing/accessory/storage/poncho/roles/cloak/captain name = "site manager's cloak" desc = "An elaborate cloak meant to be worn by the site manager." icon_state = "capcloak" item_state = "capcloak" -/obj/item/clothing/accessory/poncho/roles/cloak/cargo +/obj/item/clothing/accessory/storage/poncho/roles/cloak/cargo name = "brown cloak" desc = "A simple brown and black cloak." icon_state = "cargocloak" item_state = "cargocloak" -/obj/item/clothing/accessory/poncho/roles/cloak/mining +/obj/item/clothing/accessory/storage/poncho/roles/cloak/mining name = "trimmed purple cloak" desc = "A trimmed purple and brown cloak." icon_state = "miningcloak" item_state = "miningcloak" -/obj/item/clothing/accessory/poncho/roles/cloak/security +/obj/item/clothing/accessory/storage/poncho/roles/cloak/security name = "red cloak" desc = "A simple red and black cloak." icon_state = "seccloak" item_state = "seccloak" -/obj/item/clothing/accessory/poncho/roles/cloak/service +/obj/item/clothing/accessory/storage/poncho/roles/cloak/service name = "green cloak" desc = "A simple green and blue cloak." icon_state = "servicecloak" item_state = "servicecloak" -/obj/item/clothing/accessory/poncho/roles/cloak/engineer +/obj/item/clothing/accessory/storage/poncho/roles/cloak/engineer name = "gold cloak" desc = "A simple gold and brown cloak." icon_state = "engicloak" item_state = "engicloak" -/obj/item/clothing/accessory/poncho/roles/cloak/atmos +/obj/item/clothing/accessory/storage/poncho/roles/cloak/atmos name = "yellow cloak" desc = "A trimmed yellow and blue cloak." icon_state = "atmoscloak" item_state = "atmoscloak" -/obj/item/clothing/accessory/poncho/roles/cloak/research +/obj/item/clothing/accessory/storage/poncho/roles/cloak/research name = "purple cloak" desc = "A simple purple and white cloak." icon_state = "scicloak" item_state = "scicloak" -/obj/item/clothing/accessory/poncho/roles/cloak/medical +/obj/item/clothing/accessory/storage/poncho/roles/cloak/medical name = "blue cloak" desc = "A simple blue and white cloak." icon_state = "medcloak" item_state = "medcloak" -/obj/item/clothing/accessory/poncho/roles/cloak/custom //A colorable cloak +/obj/item/clothing/accessory/storage/poncho/roles/cloak/custom //A colorable cloak name = "cloak" desc = "A simple, bland cloak." icon_state = "colorcloak" @@ -428,4 +429,4 @@ /obj/item/clothing/accessory/asymovercoat name = "orange asymmetrical overcoat" desc = "An asymmetrical orange overcoat in a 2560's fashion." - icon_state = "asymovercoat" \ No newline at end of file + icon_state = "asymovercoat" diff --git a/code/modules/clothing/under/accessories/temperature/poncho.dm b/code/modules/clothing/under/accessories/temperature/poncho.dm index 0dbb48cefc..af94517631 100644 --- a/code/modules/clothing/under/accessories/temperature/poncho.dm +++ b/code/modules/clothing/under/accessories/temperature/poncho.dm @@ -1,5 +1,5 @@ -/obj/item/clothing/accessory/poncho/thermal +/obj/item/clothing/accessory/storage/poncho/thermal name = "thermal poncho" desc = "A simple, comfortable poncho with a thermal foil layer." slot_flags = SLOT_OCLOTHING | SLOT_TIE @@ -11,55 +11,55 @@ min_cold_protection_temperature = T0C - 40 max_heat_protection_temperature = ARMOR_MAX_HEAT_PROTECTION_TEMPERATURE -/obj/item/clothing/accessory/poncho/thermal/green +/obj/item/clothing/accessory/storage/poncho/thermal/green name = "green thermal poncho" desc = "A simple, comfortable poncho with a thermal foil layer. This one is green." icon_state = "greenponcho" item_state = "greenponcho" -/obj/item/clothing/accessory/poncho/thermal/red +/obj/item/clothing/accessory/storage/poncho/thermal/red name = "red thermal poncho" desc = "A simple, comfortable poncho with a thermal foil layer. This one is red." icon_state = "redponcho" item_state = "redponcho" -/obj/item/clothing/accessory/poncho/thermal/purple +/obj/item/clothing/accessory/storage/poncho/thermal/purple name = "purple thermal poncho" desc = "A simple, comfortable poncho with a thermal foil layer. This one is purple." icon_state = "purpleponcho" item_state = "purpleponcho" -/obj/item/clothing/accessory/poncho/thermal/blue +/obj/item/clothing/accessory/storage/poncho/thermal/blue name = "blue thermal poncho" desc = "A simple, comfortable poncho with a thermal foil layer. This one is blue." icon_state = "blueponcho" item_state = "blueponcho" -/obj/item/clothing/accessory/poncho/thermal/security +/obj/item/clothing/accessory/storage/poncho/thermal/security name = "security thermal poncho" desc = "A simple, comfortable poncho with a thermal foil layer. This one is black and red, standard NanoTrasen Security colors." icon_state = "secponcho" item_state = "secponcho" -/obj/item/clothing/accessory/poncho/thermal/medical +/obj/item/clothing/accessory/storage/poncho/thermal/medical name = "medical thermal poncho" desc = "A simple, comfortable poncho with a thermal foil layer. This one is white with green and blue tint, standard Medical colors." icon_state = "medponcho" item_state = "medponcho" -/obj/item/clothing/accessory/poncho/thermal/engineering +/obj/item/clothing/accessory/storage/poncho/thermal/engineering name = "engineering thermal poncho" desc = "A simple, comfortable poncho with a thermal foil layer. This one is yellow and orange, standard Engineering colors." icon_state = "engiponcho" item_state = "engiponcho" -/obj/item/clothing/accessory/poncho/thermal/science +/obj/item/clothing/accessory/storage/poncho/thermal/science name = "science thermal poncho" desc = "A simple, comfortable poncho with a thermal foil layer. This one is white with purple trim, standard NanoTrasen Science colors." icon_state = "sciponcho" item_state = "sciponcho" -/obj/item/clothing/accessory/poncho/thermal/cargo +/obj/item/clothing/accessory/storage/poncho/thermal/cargo name = "cargo thermal poncho" desc = "A simple, comfortable poncho with a thermal foil layer. This one is tan and grey, the colors of Cargo." icon_state = "cargoponcho" diff --git a/code/modules/materials/materials/organic/cloth.dm b/code/modules/materials/materials/organic/cloth.dm index f55e808c59..b958655dbd 100644 --- a/code/modules/materials/materials/organic/cloth.dm +++ b/code/modules/materials/materials/organic/cloth.dm @@ -13,6 +13,7 @@ /datum/material/cloth/generate_recipes() recipes = list( + new /datum/stack_recipe("poncho", /obj/item/clothing/accessory/storage/poncho/crafted, 8, time = 5 SECONDS, pass_stack_color = TRUE, supplied_material = "[name]"), new /datum/stack_recipe("woven net", /obj/item/material/fishing_net, 10, time = 30 SECONDS, pass_stack_color = TRUE, supplied_material = "[name]"), new /datum/stack_recipe("bedsheet", /obj/item/bedsheet, 10, time = 30 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"), new /datum/stack_recipe("uniform", /obj/item/clothing/under/color/white, 8, time = 15 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"), diff --git a/code/modules/materials/materials/organic/leather.dm b/code/modules/materials/materials/organic/leather.dm index 5cd65971d4..636b487926 100644 --- a/code/modules/materials/materials/organic/leather.dm +++ b/code/modules/materials/materials/organic/leather.dm @@ -14,6 +14,7 @@ /datum/material/leather/generate_recipes() recipes = list( + new /datum/stack_recipe("poncho", /obj/item/clothing/accessory/storage/poncho/crafted, 8, time = 5 SECONDS, pass_stack_color = TRUE, supplied_material = "[name]"), new /datum/stack_recipe("bedsheet", /obj/item/bedsheet, 10, time = 30 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"), new /datum/stack_recipe("uniform", /obj/item/clothing/under/color/white, 8, time = 15 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"), new /datum/stack_recipe("foot wraps", /obj/item/clothing/shoes/footwraps, 2, time = 5 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"), diff --git a/maps/submaps/surface_submaps/plains/Boathouse.dmm b/maps/submaps/surface_submaps/plains/Boathouse.dmm index 8f2d55fd1a..386e7fd714 100644 --- a/maps/submaps/surface_submaps/plains/Boathouse.dmm +++ b/maps/submaps/surface_submaps/plains/Boathouse.dmm @@ -44,7 +44,7 @@ "aR" = (/obj/structure/table/woodentable,/obj/item/storage/bag/trash,/turf/simulated/floor/wood,/area/submap/Boathouse) "aS" = (/obj/structure/table/woodentable,/obj/item/flame/lighter,/obj/item/storage/fancy/candle_box,/turf/simulated/floor/wood,/area/submap/Boathouse) "aT" = (/obj/structure/bed/chair/wood,/turf/simulated/floor/carpet/bcarpet,/area/submap/Boathouse) -"aU" = (/obj/structure/table/rack,/obj/item/clothing/accessory/poncho/blue,/obj/item/clothing/accessory/poncho/blue,/obj/random/thermalponcho,/turf/simulated/floor/wood,/area/submap/Boathouse) +"aU" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/poncho/blue,/obj/item/clothing/accessory/storage/poncho/blue,/obj/random/thermalponcho,/turf/simulated/floor/wood,/area/submap/Boathouse) "aV" = (/obj/structure/coatrack,/turf/simulated/floor/wood,/area/submap/Boathouse) "aW" = (/obj/structure/table/rack,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/suit/storage/hooded/wintercoat,/obj/item/clothing/head/hood/winter,/obj/item/clothing/shoes/boots/winter,/turf/simulated/floor/wood,/area/submap/Boathouse) "aX" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage,/obj/item/clothing/accessory/storage,/turf/simulated/floor/wood,/area/submap/Boathouse) From 7d01113f15d7ca827b27e6ba27b4871939f841de Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Mon, 31 Oct 2022 00:18:07 +1100 Subject: [PATCH 3/6] Added a craftable poncho and cloak. --- .../under/accessories/crafted/poncho.dm | 168 ++++++++++++++++++ .../materials/materials/organic/cloth.dm | 1 + .../materials/materials/organic/leather.dm | 1 + icons/mob/crafted_cloak.dmi | Bin 0 -> 764 bytes icons/mob/crafted_poncho.dmi | Bin 0 -> 763 bytes icons/mob/species/teshari/crafted_cloak.dmi | Bin 0 -> 762 bytes icons/mob/species/teshari/crafted_poncho.dmi | Bin 0 -> 752 bytes icons/obj/clothing/crafted_cloak.dmi | Bin 0 -> 460 bytes icons/obj/clothing/crafted_poncho.dmi | Bin 0 -> 523 bytes polaris.dme | 1 + 10 files changed, 171 insertions(+) create mode 100644 code/modules/clothing/under/accessories/crafted/poncho.dm create mode 100644 icons/mob/crafted_cloak.dmi create mode 100644 icons/mob/crafted_poncho.dmi create mode 100644 icons/mob/species/teshari/crafted_cloak.dmi create mode 100644 icons/mob/species/teshari/crafted_poncho.dmi create mode 100644 icons/obj/clothing/crafted_cloak.dmi create mode 100644 icons/obj/clothing/crafted_poncho.dmi diff --git a/code/modules/clothing/under/accessories/crafted/poncho.dm b/code/modules/clothing/under/accessories/crafted/poncho.dm new file mode 100644 index 0000000000..fb69e4403c --- /dev/null +++ b/code/modules/clothing/under/accessories/crafted/poncho.dm @@ -0,0 +1,168 @@ +/obj/item/clothing/accessory/storage/poncho/crafted + name = "poncho" + desc = "A handmade poncho, little more than a rough sheet with a neckhole in it." + icon_state = "poncho_base" + item_state = "poncho_base" + default_material = MAT_CLOTH + icon = 'icons/obj/clothing/crafted_poncho.dmi' + icon_override = 'icons/mob/crafted_poncho.dmi' + sprite_sheets = list( + SPECIES_TESHARI = 'icons/mob/species/teshari/crafted_poncho.dmi' + ) + + var/dyed = FALSE + var/list/initial_armor + var/list/plates + var/max_plates = 3 + var/static/list/accepts_dyes = list( + "sifsap", + "crayon_dust", + "crayon_dust_red", + "crayon_dust_orange", + "crayon_dust_yellow", + "crayon_dust_green", + "crayon_dust_blue", + "crayon_dust_purple", + "crayon_dust_grey", + "crayon_dust_brown", + "marker_ink", + "marker_ink_black", + "marker_ink_red", + "marker_ink_orange", + "marker_ink_yellow", + "marker_ink_green", + "marker_ink_blue", + "marker_ink_purple", + "marker_ink_grey", + "marker_ink_brown", + "paint" + ) + +/obj/item/clothing/accessory/storage/poncho/crafted/cloak + name = "cloak" + desc = "A handmade cloak, little more than a rough shroud with a collar and clasp attacked." + icon_state = "cloak_base" + item_state = "cloak_base" + icon = 'icons/obj/clothing/crafted_cloak.dmi' + icon_override = 'icons/mob/crafted_cloak.dmi' + sprite_sheets = list( + SPECIES_TESHARI = 'icons/mob/species/teshari/crafted_cloak.dmi' + ) + +/obj/item/clothing/accessory/storage/poncho/crafted/Initialize() + . = ..() + update_icon() + +/obj/item/clothing/accessory/storage/poncho/crafted/Destroy() + QDEL_NULL_LIST(plates) + return ..() + +/obj/item/clothing/accessory/storage/poncho/crafted/proc/recalculate_armor() + LAZYINITLIST(armor) + if(!initial_armor) + initial_armor = armor.Copy() + else + armor = initial_armor.Copy() + if(length(plates)) + var/list/averaged_plate_armour = list() + for(var/obj/item/clothing/accessory/plate in plates) + for(var/armor_key in plate.armor) + averaged_plate_armour[armor_key] = averaged_plate_armour[armor_key] + plate.armor[armor_key] + for(var/armor_key in averaged_plate_armour) + armor[armor_key] = max(armor[armor_key], round(averaged_plate_armour[armor_key] / max_plates)) + + update_icon() + update_clothing_icon() + +/obj/item/clothing/accessory/storage/poncho/crafted/make_worn_icon(var/body_type, var/slot_name, var/inhands, var/default_icon, var/default_layer, var/icon/clip_mask = null) + var/image/standing = ..() + if(standing && slot_name == slot_wear_suit_str) + var/use_icon = LAZYACCESS(sprite_sheets, body_type) || icon_override + if(use_icon) + var/list/plate_overlays = list() + for(var/i = 1 to length(plates)) + var/atom/plate = plates[i] + var/image/I = image(use_icon, "[icon_state]_plate[i]") + I.appearance_flags |= RESET_COLOR + I.color = plate.color + plate_overlays += I + standing.overlays = plate_overlays + return standing + +/obj/item/clothing/accessory/storage/poncho/crafted/update_icon() + cut_overlays() + for(var/i = 1 to length(plates)) + var/atom/plate = plates[i] + var/image/I = image(icon, "[icon_state]_plate[i]") + I.appearance_flags |= RESET_COLOR + I.color = plate.color + add_overlay(I) + +/obj/item/clothing/accessory/storage/poncho/crafted/attackby(var/obj/item/O, var/mob/user) + + if(istype(O, /obj/item/clothing/accessory/armor) || istype(O, /obj/item/clothing/accessory/material/makeshift)) + if(length(plates) >= max_plates) + to_chat(user, SPAN_WARNING("\The [src] is already plated with [length(plates)] plate\s, and cannot support more.")) + else if(user.unEquip(O, src)) + O.forceMove(src) + LAZYADD(plates, O) + user.visible_message(SPAN_NOTICE("\The [user] secures \the [O] to \the [src].")) + recalculate_armor() + return TRUE + + if(O.is_wirecutter()) + if(!length(plates)) + to_chat(user, SPAN_WARNING("\The [src] has no plating to remove.")) + else + var/obj/item/plate = plates[1] + user.visible_message(SPAN_NOTICE("\The [src] removes \the [plate] from \the [src].")) + recalculate_armor() + plate.dropInto(user.loc) + LAZYREMOVE(plates, plate) + return TRUE + + if(istype(O, /obj/item/reagent_containers/glass)) + var/obj/item/reagent_containers/glass/vessel = O + + // If it's closed, handle it as a normal attackby. + if(!vessel.is_open_container()) + return ..() + + // Check some general preconditions... + if(dyed) + to_chat(user, SPAN_WARNING("\The [src] has already been dyed; the material won't take another pigment.")) + return TRUE + if(!isturf(loc)) + to_chat(user, SPAN_WARNING("\The [src] must be on the ground before you can get to work.")) + return TRUE + if(!vessel.reagents?.total_volume) + to_chat(user, SPAN_WARNING("\The [vessel] is empty.")) + return TRUE + + // Look for a valid pigment and sufficient reagents. + var/has_pigment = FALSE + for(var/datum/reagent/R in vessel.reagents.reagent_list) + if(R.id in accepts_dyes) + has_pigment = TRUE + break + if(!has_pigment) + to_chat(user, SPAN_WARNING("There is nothing in \the [vessel] that will bind to \the [src].")) + return TRUE + if(vessel.reagents.total_volume < 10) + to_chat(user, SPAN_WARNING("You will need at least 10u of pigment to dye \the [src].")) + return TRUE + + // Do the actual dye operation. + var/apply_colour = vessel.reagents.get_color() // Keep this so when we remove on the next step it doesn't change. + vessel.reagents.remove_any(10) + visible_message(SPAN_NOTICE("\The [user] lays out \the [src] and begins soaking it with the contents of \the [vessel].")) + user.setClickCooldown(5 SECONDS) // Prevents spamming the dye interaction. + if(!do_after(user, 5 SECONDS, src) || QDELETED(src) || QDELETED(vessel)) + to_chat(user, SPAN_WARNING("You fail to dye \the [src], wasting the pigment.")) + return TRUE + visible_message(SPAN_NOTICE("\The [user] dyes \the [src] with the contents of \the [vessel].")) + color = apply_colour + applies_material_color = FALSE + return TRUE + + return ..() diff --git a/code/modules/materials/materials/organic/cloth.dm b/code/modules/materials/materials/organic/cloth.dm index b958655dbd..869b05b575 100644 --- a/code/modules/materials/materials/organic/cloth.dm +++ b/code/modules/materials/materials/organic/cloth.dm @@ -14,6 +14,7 @@ /datum/material/cloth/generate_recipes() recipes = list( new /datum/stack_recipe("poncho", /obj/item/clothing/accessory/storage/poncho/crafted, 8, time = 5 SECONDS, pass_stack_color = TRUE, supplied_material = "[name]"), + new /datum/stack_recipe("cloak", /obj/item/clothing/accessory/storage/poncho/crafted/cloak, 8, time = 5 SECONDS, pass_stack_color = TRUE, supplied_material = "[name]"), new /datum/stack_recipe("woven net", /obj/item/material/fishing_net, 10, time = 30 SECONDS, pass_stack_color = TRUE, supplied_material = "[name]"), new /datum/stack_recipe("bedsheet", /obj/item/bedsheet, 10, time = 30 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"), new /datum/stack_recipe("uniform", /obj/item/clothing/under/color/white, 8, time = 15 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"), diff --git a/code/modules/materials/materials/organic/leather.dm b/code/modules/materials/materials/organic/leather.dm index 636b487926..f7f53ad2da 100644 --- a/code/modules/materials/materials/organic/leather.dm +++ b/code/modules/materials/materials/organic/leather.dm @@ -15,6 +15,7 @@ /datum/material/leather/generate_recipes() recipes = list( new /datum/stack_recipe("poncho", /obj/item/clothing/accessory/storage/poncho/crafted, 8, time = 5 SECONDS, pass_stack_color = TRUE, supplied_material = "[name]"), + new /datum/stack_recipe("cloak", /obj/item/clothing/accessory/storage/poncho/crafted/cloak, 8, time = 5 SECONDS, pass_stack_color = TRUE, supplied_material = "[name]"), new /datum/stack_recipe("bedsheet", /obj/item/bedsheet, 10, time = 30 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"), new /datum/stack_recipe("uniform", /obj/item/clothing/under/color/white, 8, time = 15 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"), new /datum/stack_recipe("foot wraps", /obj/item/clothing/shoes/footwraps, 2, time = 5 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"), diff --git a/icons/mob/crafted_cloak.dmi b/icons/mob/crafted_cloak.dmi new file mode 100644 index 0000000000000000000000000000000000000000..928a44b55fd1746b92875182f9389cbd2543b717 GIT binary patch literal 764 zcmVfFDZ*Bkp zc$`yKaB_9`^iy#0_2eo`Eh^5;&r`5fFwryM;w;ZhDainGjE%TBGg33tGfE(w;*!LY zR3K9+IVV3cJ3c9~I8}*@GbOXA7^IVnGp#5wHxgNLXF#yRbN%rijZ-4**0u4z-K~!jg?U_+>;~)%%(PaEyDc%Dhv+s@5JwTWoVB1da zf0ec4X%LcYns&O=2mO;51bqB}4aztKm+MXN5CX~oB0k&$pcsHf4`k*j2|I&>M_IuA zFkrC&aRx-u;vfsln0pBr;_)z)Hjt4corD3VdP;zig$3dx?#D8Ro|%YK>9R|aD-Xn! z1psLnk6gx>mLOJ(FmkR|6%Z2-!eAt3ERh4wWh_G=C6OoZbMt@ml6% zX)%qUrV!~-0P;kq^9{g@Dvzk16JiON7aRm2&;7FiOfygpI7`5Fdi_wE=lLfAXRf!A z&keviD}Z{EXcNF`8lc*zlrd zpv8fFzxD9|)pKD0%Y!5x*wmqOGivf&>7NE`#J^|<@;AE=XSsh70bHd*N*xm(~%jI(YAi>HpeOEF~ ze@v)Ljk8}?!(g+6ZdCW5;&rmRw+2FZRTiE%9MW2P(y4zbovMF1y1_98SUyQlJbKqnlKE#TQiUTy%B u@t7%vwVa?t%+0-$L)|CO1zaxI|Ij~{+dnV^_<{=n0000*Zt;{X5v0d!JMQvg8b*k%9#0DyW_Sad{Xb7OL8aCB*J zZU6vyoKseCa&`CgQ*iP1gNLXH2_p}OX}LnEXn`?0tiV&K~!jg?U%7`<1h?{DIIRNmGovgi9Oe`rM(U6 zxpvOp+w}dPp-zEBq^OIFD^PUchb%uW{iNK&qyPlr=b(!7@85b6vj_c{VO8@WT47DHrNhxD9AFOT+`oKq+5sdY@pi# z8bm(e}wI_Oho$(QX8u%w_;Ez)sDb=v70!($L+S2 zQN3uOUk0k*hIj=vi0pZ!Vk_`F0sgVj3p(0k*yCl0rTq^BK@fz`p%dS*2s&V}r<=u@ zYJ)bZ4Kv8|I24m(1GZYV^^(CF8$2+B)60^<3LCI=Up62oOmq9MAP9mWTuF5mweaD@ zA6XUOZ_aF^<`MhtP+;|%$WXO(OWZtB0@Wo70DYn*uq#POK<`tbgxl>>pF)MH0_GLz z@DRZU0vn@b%+KIR?$a7 t9=V)>O+3jFD8Y3V>-;hb2!ik(yaScSKmgA7*9ias002ovPDHLkV1g>PV~79% literal 0 HcmV?d00001 diff --git a/icons/mob/species/teshari/crafted_cloak.dmi b/icons/mob/species/teshari/crafted_cloak.dmi new file mode 100644 index 0000000000000000000000000000000000000000..b330184226b688d13affdfda83a53fda482c6245 GIT binary patch literal 762 zcmV5hN?x5|E3gAUAV6sS{7E~3MJGxLg7Bqi{bzbmYQtjZH^0*^VzmB2 znXC^boiZcnbzc8g`M@QxLUAY7iqLGtgU>VfMTugQq9zX<|x9Ga!UW z3t$M;A57ZrQ%Qh`Da9i*Kza^cjNBmN*u~N_;Cu?SKWZ>s435QM?tmCTPRN?u8MqwMi)?VG)S+BO<6;QtOO1zs38_I$F;IV>+k16a zPq02@oW0fn_mr=iD+WGa(^L7Pbk5Bk_-l#II_JFi_L?yt2%dH@hqlC%oek_X-eT*W zy~RpRxu@M!&UrfI{z$B*>GCQ9Yj;dwcOwZ^cVPJ~-Bik79L8GkX}%x`g7DSQ`Ji3> z_*l#D-^%;PbG-^$uT5oi%xc9Dan*oKEJJIsJ{JO=q5i$WJ)`aCpMoF=g77!+8*_V4 z2L5|Ov)&)sx{so-TrutZObwhdGQ zK@bE%_`kU0DT~ho^}H~gn}qtwkL{&^JfV(f-m18F#B!(xj$vW@?&|~ZWgY;m29AXR sWWkaAJy1_P_ign=wEAO$AP6*Zt;{X5v0d!JMQvg8b*k%9#0DyW_Sad{Xb7OL8aCB*J zZU6vyoKseCa&`CgQ*iP1gNLXH2_p}OX}LnEXn`?0sTotK~!jg?U=!G+aM5z7oNair)RJd-6IR#J&Jly z5Wc&r^8SwywKKJL7uAZJ9GaQ^PWplUwO|h{0uTh@e?oZxyZO6b#a00K9&2x~{$)q} zlp?+0Yo|MlbsDe+_23l_*w`0rsE69y_SMb0j}hr9fkUDRr32RXaH{Udxygo8=tn%H z*w=K8+I@u$LQ_8taW+Uz-H#D33fPDe(!m4H;K7^@F_;&mLz`wj%^8Xg8}t?6HPI%7 z7>%2C3NaZJv4L&C2Jw*?fIqeMV2S>T_3s!m1xGr;H(gH*n(pZ~gA_u*1|f`r8Ynsi z_BWjZQp5%+jENc0448rb7UJ0vJz%|>0hBTRAUaV!vBd_DtP{%TJ8JMe-e#cBcaG}L zu^|OEsDM+jrh+E`3LE5mg?8694N_UJAPBgsa7F+C00DGTPE!Ct=GbNc004h_R9JLGWpiV4X>fFDZ*Bkp zc$`yKaB_9`^iy#0_2eo`Eh^5;&r`5fFwryM;w;ZhDainGjE%TBGg33tGfE(w;*!LY zR3K9+IVV3cJ3c9~I8}*@GbOXA7$|7S#hF%=n41b=V^JDkkOLGmBw2?M$vTX2=}=a1 z^>YFH7y!hEN$OwI* z=iUzEuL}^eWowohF9ld;JoB%U@n66wb>3UN>ql=}2PLjsYIuC;$Ke0d!JMQvg8b*k%9#0DyW_Sad{Xb7OL8aCB*J zZU6vyoKseCa&`CgQ*iP1YFH8URneOWw@1jVk~E0T@X{K~zYI?Ucc8gdh+=!7mV7?~1keO7L#We1LU^ z`?lTx|Ao$)wPFHndfuIQAk52~VI&A~KOt2qgi>ihb(4@EZJ88Qc4}G}k_tHzR?p<$ zQb0WtOaR`dYSiY8=;%8D%JtiUksNsw0IgEZ-oi4B2+j{?{@c@92Y}HQxP_tHyX+n8 zfKZyd1Q>!rbhre7tVVR`!#Nxcf&pY8==*3`0ha|XO~L`N=4hbHDFUF-S{#6N4#~gC zCCC9~0QpKtzD?#?@q_LwEnvkN;FQVpv~kV}Sb=jk&x*W&6*uyC5k(W*4X#Wd1@_$n zqI0g_x7EuM1)gwI^zny5+GeYe0 Date: Mon, 31 Oct 2022 00:57:23 +1100 Subject: [PATCH 4/6] Chitin and wood armour plates can be made with a sharp object. --- .../items/weapons/material/material_armor.dm | 25 +++++++++++------- .../weapons/material/material_weapons.dm | 2 +- .../under/accessories/crafted/poncho.dm | 10 +++++-- icons/mob/species/teshari/crafted_cloak.dmi | Bin 762 -> 761 bytes icons/mob/species/teshari/crafted_poncho.dmi | Bin 752 -> 755 bytes 5 files changed, 25 insertions(+), 12 deletions(-) diff --git a/code/game/objects/items/weapons/material/material_armor.dm b/code/game/objects/items/weapons/material/material_armor.dm index a68908932f..3e42dec29c 100644 --- a/code/game/objects/items/weapons/material/material_armor.dm +++ b/code/game/objects/items/weapons/material/material_armor.dm @@ -353,21 +353,28 @@ Protectiveness | Armor % else ..() +/obj/item/material/armor_plating/insert/proc/trim(var/mob/user) + to_chat(user, SPAN_NOTICE("You trim down the edges to size.")) + user.drop_from_inventory(src) + user.put_in_hands(new /obj/item/clothing/accessory/material/makeshift/light(user, material.name)) + qdel(src) + //Make plating inserts for modular armour. /obj/item/material/armor_plating/insert/attackby(var/obj/O, mob/user) . = ..() if(istype(O, /obj/item/weldingtool)) - var /obj/item/weldingtool/S = O + var/obj/item/weldingtool/S = O + if(!S.isOn()) + return TRUE if(S.remove_fuel(0,user)) - if(!src || !S.isOn()) return - to_chat(user, "You trim down the edges to size.") - user.drop_from_inventory(src) - var/obj/item/clothing/accessory/material/makeshift/light/new_armor = new(null, src.material.name) - user.put_in_hands(new_armor) - qdel(src) - return + trim(user) + return TRUE + + if(O.sharp && material?.integrity <= 75) // wood and chitin + trim(user) + return TRUE if(istype(O, /obj/item/material/armor_plating/insert)) var/obj/item/material/armor_plating/insert/second_plate = O @@ -441,4 +448,4 @@ Protectiveness | Armor % icon_state = "material_armor_makeshift" /obj/item/clothing/head/helmet/material/makeshift/durasteel - default_material = "durasteel" \ No newline at end of file + default_material = "durasteel" diff --git a/code/game/objects/items/weapons/material/material_weapons.dm b/code/game/objects/items/weapons/material/material_weapons.dm index d8c1ee8875..de99c6f6da 100644 --- a/code/game/objects/items/weapons/material/material_weapons.dm +++ b/code/game/objects/items/weapons/material/material_weapons.dm @@ -76,7 +76,7 @@ /obj/item/material/Destroy() STOP_PROCESSING(SSobj, src) - . = ..() + return ..() /obj/item/material/apply_hit_effect() ..() diff --git a/code/modules/clothing/under/accessories/crafted/poncho.dm b/code/modules/clothing/under/accessories/crafted/poncho.dm index fb69e4403c..65df9d9b91 100644 --- a/code/modules/clothing/under/accessories/crafted/poncho.dm +++ b/code/modules/clothing/under/accessories/crafted/poncho.dm @@ -57,6 +57,12 @@ QDEL_NULL_LIST(plates) return ..() +/obj/item/clothing/accessory/storage/poncho/crafted/update_clothing_icon() + if(ismob(loc)) + var/mob/M = src.loc + M.update_inv_wear_suit() + . = ..() + /obj/item/clothing/accessory/storage/poncho/crafted/proc/recalculate_armor() LAZYINITLIST(armor) if(!initial_armor) @@ -115,10 +121,10 @@ to_chat(user, SPAN_WARNING("\The [src] has no plating to remove.")) else var/obj/item/plate = plates[1] - user.visible_message(SPAN_NOTICE("\The [src] removes \the [plate] from \the [src].")) - recalculate_armor() + user.visible_message(SPAN_NOTICE("\The [user] removes \the [plate] from \the [src].")) plate.dropInto(user.loc) LAZYREMOVE(plates, plate) + recalculate_armor() return TRUE if(istype(O, /obj/item/reagent_containers/glass)) diff --git a/icons/mob/species/teshari/crafted_cloak.dmi b/icons/mob/species/teshari/crafted_cloak.dmi index b330184226b688d13affdfda83a53fda482c6245..839ff53cddb971d1660b8c8b873a458653a4e039 100644 GIT binary patch delta 551 zcmV+?0@(ff1^ES#-G2v3L_t(&f$f;Vj@mE~hHWXz8Lvt2wW0U5>z)If7l4uPbXVH< ze}p=v;2Aq4AhDNfJ_(7jXa4ye5E&u_!!TcpQjg_JAyy=|Zgnen60OuLj@L@li zA}Z)0#&944fX~o`Km=rfz6sg0gz*Tt9v0}% z0*5RxIzR$46{MW&32X}SMb@wpVxO;~w!wRFxyOr#2v{J*;IY0-_TKD8QyS+J)?9i> zyG>WkW&xM3>3=bQQ5tJU2kz3MG1gk=oViqt3*KP|V`y?bm{GtC{WUhunrke?kUVXM zeCA=F{GnJ3!}*mHjMek48t(bW8ydYp(ha1oyw&) z%-<;JuKrOawDv$3=)IsNyYg5W5aPYC(2|fEl)olCwzfC}ZSrxrz4wp#iQ)Zqc6*t2 zvMIwb48uGPbu+jRaxax|Dz@+VqlfR7T{UoYbYW`vXt(I$d^vCwmSm~_myaw^8=wWZrd;nhDE^eIjZ8`C#Abjs(N-(zd%Cho_0Xr z{}Co5NJL6ronb4m13w@@X#M<2JAp+fN(qASrD*+UdQfV^V&^x%(=KAP{z2od)_Y!| z>PT;@WsLL?xDa>?21gopk=0WWwMJ?XBO)`TZ^fEYkd$eP<3xE#`pY;dR4pdv#Y&us&p* zz19Htl&_jA27f+Z(^L7Pbk5Bk_-l#II_JFi_L?yt2%dH@hqlC%oek_X-eT*Wy~RpR zxu@M!&UrfI{z$B*>GCQ9Yj;dwcOwZ^cVPJ~-Bik79L8GkX}%x`g7DSQ`Ji3>_*l#D z-^%;PbG-^$uT5oi%xc9Dan*oKEJJIsJ{JO=q5i$WJ%6L^=bwTg2!il8@Edb`PX_*b zLbKi<*}6a1f}c$A*c#9$V`aWKf_Elp{CNd9wSwLqn`68J*{R@VMX*Fqi?$6^0znW2 zLHNJ8<0*^J1NFQxoSTID$&c-&fIOj&XWpu~cf@k2299B2`|j%l?`0kUtOkyS0c63E q{5?=lJR$dO^+dG#V}c+EHNOBGhEezltFbr$0000 zBVfuleg=+6XzVVHjjVFC2!&w3GE0~{>YR$={WNBo2!QLxU) zPGcPhtU=sZffF|R5gW?ES>66Lv+hGcdTQVlX+!aZwLYEe!+$srX@B#o~e)QBp&{s(QO{aty zutD@=ObloTiGP8-_TkA8Jz%}q0USg4L3E^gVv7xKlOP-)uBgGoxXwU6T^Xu7lT4|w zK@BNYGE}7vfWQX%S|QD4O_M|xWf+F}zragc9^LPk@+Celm@KMPHkKgN{H(H7S-5uT zR44A{=Ur|vG>ZmkH`;!_0VtIXrCk0iFbu;mf5FOiHGiLeAS-)uO~->ei&ki(0@0W} zUpiDHkCX5=yWhOd814$AC_Ed8?}Y}Yo1441+oAJ-$nRijjRlGgkQxlbFbwm#tof~= zg!q=|(j--Ud}EhvpZR%#?4_bLNx^g=k#8J-Url%Efunc=$y<2dyw}SP93R`Lt9OGB j)ho5It{NW0d?{W4BF03WQsPBP00000NkvXXu0mjfKm-Rf delta 542 zcmV+(0^$Ah1@Hxs-G2f7NkluflyI#ds0QVkiZ?OJlNBoo`z2Ix7 zJBxK1um<(u6%N?g7i_49+S~Tk&AN{f=_!Fjq6wt~*7k6!?tjO*$%a$tM?9q1*L02A zeT5A|Q$G!HHb_m~j}b2l*oYF+!2{0V!JG~;m=~l&n`S-D8Hx@Y^cCPW(I$i#jhl4} zF&PxGfo;GB@sSvSKehE>iT;W8?-()#M>@ebT~7>}?&&sz6hgoTA&h|0hBTRAUaV!vBd_DtP{%TJ8JMe-e#cBcaG}Lu^|OE zsDM+jrh+E`3LE5mg?8694N_UJAPBxGLWPA&5jw=c$;rrZcrSl z)>rzs+5Kjstgp|qoKGtCeIWtR!*QV%_0K^nzk{(?tg)29(!EO%1VIo!i4Whhb}nnm zua2mN*9)r64Lona$2A|nTR47sy)Yf;mlSrq;8-jmGRi;ofNJ^p_Z`%iZ@r5Z&wIFp g?f)%a5Es5OZ#c9>o?Fo!zW@LL07*qoM6N<$g2V#^HUIzs From 7d6fb48d393bce34893a7836d4580b3c977f73ec Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Mon, 31 Oct 2022 01:45:26 +1100 Subject: [PATCH 5/6] Made poncho icon override use initial(). --- code/modules/clothing/under/accessories/clothing.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/clothing/under/accessories/clothing.dm b/code/modules/clothing/under/accessories/clothing.dm index e20356d52f..2f7358eeef 100644 --- a/code/modules/clothing/under/accessories/clothing.dm +++ b/code/modules/clothing/under/accessories/clothing.dm @@ -72,14 +72,14 @@ else if(icon_override_state) icon_override = icon_override_state else - icon_override = 'icons/mob/ties.dmi' + icon_override = initial(icon_override) H.update_inv_wear_suit() /obj/item/clothing/accessory/storage/poncho/dropped() // Reset override if(icon_override_state) icon_override = icon_override_state else - icon_override = 'icons/mob/ties.dmi' + icon_override = initial(icon_override) /obj/item/clothing/accessory/storage/poncho/on_attached(obj/item/clothing/S, mob/user) /// Otherwise gives teshari normal icon. . = ..() @@ -90,7 +90,7 @@ if(H.species.name == SPECIES_TESHARI) icon_override = sprite_sheets[SPECIES_TESHARI] else - icon_override = 'icons/mob/ties.dmi' + icon_override = initial(icon_override) /obj/item/clothing/accessory/storage/poncho/green name = "green poncho" From 1792734fd99ac94b881d18c02890c95a442bf1e0 Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Mon, 31 Oct 2022 20:41:43 +1100 Subject: [PATCH 6/6] Update code/modules/clothing/under/accessories/crafted/poncho.dm Co-authored-by: Spookerton --- code/modules/clothing/under/accessories/crafted/poncho.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/clothing/under/accessories/crafted/poncho.dm b/code/modules/clothing/under/accessories/crafted/poncho.dm index 65df9d9b91..e164c2f937 100644 --- a/code/modules/clothing/under/accessories/crafted/poncho.dm +++ b/code/modules/clothing/under/accessories/crafted/poncho.dm @@ -4,6 +4,7 @@ icon_state = "poncho_base" item_state = "poncho_base" default_material = MAT_CLOTH + material_slowdown_multiplier = 0 icon = 'icons/obj/clothing/crafted_poncho.dmi' icon_override = 'icons/mob/crafted_poncho.dmi' sprite_sheets = list(