From 5107519f07d896319dd2a76594d6bdc57c27558d Mon Sep 17 00:00:00 2001 From: AmShegars <88627712+AmShegars@users.noreply.github.com> Date: Sat, 3 Feb 2024 14:48:51 +0500 Subject: [PATCH] Feat: combine all exosuit customization sets into a single tool (#714) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Предложка: https://discord.com/channels/617003227182792704/618952559607939072/1199323787905212416 --- code/datums/supplypacks/nonessent.dm | 16 +-- code/datums/trading/goods.dm | 2 +- code/game/objects/items/paintkit.dm | 133 +++++------------- code/modules/item_worth/worths_list.dm | 2 +- code/modules/mechs/mech_interaction.dm | 9 +- icons/mecha/mech_decals.dmi | Bin 15501 -> 15482 bytes infinity/customs/elloncake.dm | 1 - infinity/customs/taushai.dm | 1 - .../playablecolony_inf/colony.dmm | 1 + maps/sierra/sierra-3.dmm | 2 + 10 files changed, 48 insertions(+), 119 deletions(-) diff --git a/code/datums/supplypacks/nonessent.dm b/code/datums/supplypacks/nonessent.dm index 733f6fe1a19..4e490efacd4 100644 --- a/code/datums/supplypacks/nonessent.dm +++ b/code/datums/supplypacks/nonessent.dm @@ -250,23 +250,11 @@ /decl/hierarchy/supply_pack/nonessent/exosuit_mod num_contained = 1 - name = "Mod - \"Firestarter\" exosuit modkit" - contains = list(/obj/item/device/kit/paint/flames_red) + name = "Customization exosuit modkit" + contains = list(/obj/item/device/kit/mech) cost = 50 containername = "heavy exosuit modkit crate" -/decl/hierarchy/supply_pack/nonessent/exosuit_mod/chrome - name = "Mod - \"Burning Chrome\" exosuit modkit" - contains = list(/obj/item/device/kit/paint/flames_blue) - -/decl/hierarchy/supply_pack/nonessent/exosuit_mod/military - name = "Mod - \"Guerilla\" exosuit modkit" - contains = list(/obj/item/device/kit/paint/camouflage) - -/decl/hierarchy/supply_pack/nonessent/exosuit_mod/alpine - name = "Mod - \"Alpine\" exosuit modkit" - contains = list(/obj/item/device/kit/paint/camouflage/forest) - /decl/hierarchy/supply_pack/nonessent/aromatherapy name = "Rec - Aromatherapy" contains = list( diff --git a/code/datums/trading/goods.dm b/code/datums/trading/goods.dm index 8ef2d787f6f..955ef90a361 100644 --- a/code/datums/trading/goods.dm +++ b/code/datums/trading/goods.dm @@ -191,7 +191,7 @@ Sells devices, odds and ends, and medical stuff origin = "Drugstore" possible_origins = list("Buy 'n Save", "Drug Carnival", "C&B", "Fentles", "Dr. Goods", "Beevees", "McGillicuddy's") possible_trading_items = list(/obj/item/device/flashlight = TRADER_ALL, - /obj/item/device/kit/paint = TRADER_SUBTYPES_ONLY, + /obj/item/device/kit/mech = TRADER_SUBTYPES_ONLY, /obj/item/aicard = TRADER_THIS_TYPE, /obj/item/device/binoculars = TRADER_THIS_TYPE, /obj/item/device/cable_painter = TRADER_THIS_TYPE, diff --git a/code/game/objects/items/paintkit.dm b/code/game/objects/items/paintkit.dm index c60291c558f..7016fcac0a7 100644 --- a/code/game/objects/items/paintkit.dm +++ b/code/game/objects/items/paintkit.dm @@ -5,11 +5,6 @@ var/new_desc = "An exosuit." //How is the new exosuit described? var/new_icon = "ripley" //What base icon will the new exosuit use? var/new_icon_file - var/uses = 1 // Uses before the kit deletes itself. - -/obj/item/device/kit/examine(mob/user) - . = ..() - to_chat(user, "It has [uses] use\s left.") /obj/item/device/kit/inherit_custom_item_data(var/datum/custom_item/citem) new_name = citem.item_name @@ -18,18 +13,14 @@ new_icon_file = CUSTOM_ITEM_OBJ . = src -/obj/item/device/kit/proc/use(var/amt, var/mob/user) - uses -= amt +/obj/item/device/kit/proc/use(var/mob/user) playsound(get_turf(user), 'sound/items/Screwdriver.ogg', 50, 1) - if(uses<1) - qdel(src) // Root hardsuit kit defines. // Icons for modified hardsuits need to be in the proper .dmis because suit cyclers may cock them up. /obj/item/device/kit/suit name = "voidsuit modification kit" desc = "A kit for modifying a voidsuit." - uses = 2 var/new_light_overlay var/new_mob_icon_file @@ -80,93 +71,45 @@ return ..() // Mechs are handled in their attackby (mech_interaction.dm). -/obj/item/device/kit/paint - name = "exosuit customisation kit" +/obj/item/device/kit/mech + name = "exosuit customization kit" desc = "A kit containing all the needed tools and parts to repaint a exosuit." var/removable = null - -/obj/item/device/kit/paint/examine(mob/user) + new_icon_file = 'icons/mecha/mech_decals.dmi' + var/current_decal = "cammo2" //По умолчанию + var/list/mech_decales = list( + "flames_red", + "flames_blue", + "cammo2", + "cammo1", + "red_stripes", + "white_stripes", + "black_stripes", + "green_stripes", + ) + +/obj/item/device/kit/mech/attack_self(mob/user)//Тыкаем по самому киту дабы вызвать список того, какую декаль хотим на меха + choose_decal(user) + +/obj/item/device/kit/mech/examine(mob/user) . = ..() to_chat(user, "This kit will add a '[new_name]' decal to a exosuit'.") -// exosuit kits. -/obj/item/device/kit/paint/use(amt, mob/user) - playsound(get_turf(user), 'sound/items/Screwdriver.ogg', 50, 1) - -/obj/item/device/kit/paint/flames_red - name = "\"Firestarter\" exosuit customisation kit" - new_icon = "flames_red" - -/obj/item/device/kit/paint/flames_blue - name = "\"Burning Chrome\" exosuit customisation kit" - new_icon = "flames_blue" - - -/* -//[inf] - //Ripley -/obj/item/device/kit/paint/ripley - name = "\"Classic\" APLU customisation kit" - new_name = "APLU \"Classic\"" - new_desc = "A very retro APLU unit; didn't they retire these back in 2287?" - new_icon = "ripley-old" - allowed_types = list("ripley") - -/obj/item/device/kit/paint/ripley/death - name = "\"Reaper\" APLU customisation kit" - new_name = "APLU \"Reaper\"" - new_desc = "A terrifying, grim power loader. Why do those clamps have spikes?" - new_icon = "deathripley" - allowed_types = list("ripley","firefighter") - - // Durand kits. -/obj/item/device/kit/paint/durand - name = "\"Classic\" Durand customisation kit" - new_name = "Durand \"Classic\"" - new_desc = "An older model of Durand combat exosuit. This model was retired for rotating a pilot's torso 180 degrees." - new_icon = "old_durand" - allowed_types = list("durand") - -/obj/item/device/kit/paint/durand/seraph - name = "\"Cherubim\" Durand customisation kit" - new_name = "Durand \"Cherubim\"" - new_desc = "A Durand combat exosuit modelled after ancient Earth entertainment. Your heart goes doki-doki just looking at it." - new_icon = "old_durand" - -/obj/item/device/kit/paint/durand/phazon - name = "\"Sypher\" Durand customisation kit" - new_name = "Durand \"Sypher\"" - new_desc = "A Durand combat exosuit with some very stylish neons and decals. Seems to blur slightly at the edges; probably an optical illusion." - new_icon = "phazon" - -// Gygax kits. -/obj/item/device/kit/paint/gygax - name = "\"Jester\" Gygax customisation kit" - new_name = "Gygax \"Jester\"" - new_desc = "A Gygax exosuit modelled after the infamous combat-troubadors of Earth's distant past. Terrifying to behold." - new_icon = "honker" - allowed_types = list("gygax") - -/obj/item/device/kit/paint/gygax/darkgygax - name = "\"Silhouette\" Gygax customisation kit" - new_name = "Gygax \"Silhouette\"" - new_desc = "An ominous Gygax exosuit modelled after the fictional corporate 'death squads' that were popular in pulp action-thrillers back in 2280s." - new_icon = "darkgygax" - -/obj/item/device/kit/paint/gygax/recitence - 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" - -//[/inf] -*/ -/obj/item/device/kit/paint/camouflage - name = "\"Guerilla\" exosuit customisation kit" - desc = "The exact same pattern the 76th Armored Gauntlet used in the Gaia war, now available for general use." - new_icon = "cammo1" - -/obj/item/device/kit/paint/camouflage/forest - name = "\"Alpine\" exosuit customisation kit" - new_icon = "cammo2" - desc = "A muted pattern for alpine environments. Don't miss the forest for the trees!" +/obj/item/device/kit/mech/proc/choose_decal(mob/user) + set name = "Choose decal" + set desc = "Choose mech decal." + set category = "Object" + set src in usr + + if(usr.incapacitated()) + return + var/new_decal = input(usr, "Choose a decal.", name, current_decal) as null|anything in mech_decales + if (usr.incapacitated()) + return + change_decal(new_decal, usr) + +/obj/item/device/kit/mech/proc/change_decal(var/new_decal, mob/user) + current_decal = new_decal + new_name = new_decal + to_chat(user, SPAN_NOTICE("You set \the [src] to customize with [new_decal].")) + playsound(src, 'sound/weapons/flipblade.ogg', 30, 1) diff --git a/code/modules/item_worth/worths_list.dm b/code/modules/item_worth/worths_list.dm index 74e99df8725..70118d6f0ab 100644 --- a/code/modules/item_worth/worths_list.dm +++ b/code/modules/item_worth/worths_list.dm @@ -478,7 +478,7 @@ var/list/worths = list( /obj/item/device/dociler = 490, /obj/item/device/bot_controller = 50, /obj/item/device/mmi = 1200, - /obj/item/device/kit/paint = 500, + /obj/item/device/kit/mech = 500, /obj/item/device/kit = 100, /obj/item/aicard = 6000, /obj/item/device/chameleon = 4000, diff --git a/code/modules/mechs/mech_interaction.dm b/code/modules/mechs/mech_interaction.dm index d4a5d33aee7..1d1f50bac40 100644 --- a/code/modules/mechs/mech_interaction.dm +++ b/code/modules/mechs/mech_interaction.dm @@ -375,17 +375,14 @@ to_chat(user, SPAN_WARNING("\The [thing] could not be installed in that hardpoint.")) return - else if(istype(thing, /obj/item/device/kit/paint)) + else if(istype(thing, /obj/item/device/kit/mech)) user.visible_message(SPAN_NOTICE("\The [user] opens \the [thing] and spends some quality time customising \the [src].")) - var/obj/item/device/kit/paint/P = thing - SetName(P.new_name) - desc = P.new_desc + var/obj/item/device/kit/mech/P = thing for(var/obj/item/mech_component/comp in list(arms, legs, head, body)) - comp.decal = P.new_icon + comp.decal = P.current_decal if(P.new_icon_file) icon = P.new_icon_file queue_icon_update() - P.use(1, user) return 1 else diff --git a/icons/mecha/mech_decals.dmi b/icons/mecha/mech_decals.dmi index b0de8d7e8eb29656dd7d72f89829bb23f561f969..4f8cb70e950de29e05fffe00b30dbb07f0161218 100644 GIT binary patch literal 15482 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 tLVX%#Ef6KD&*-PBFLRlrOz{ULKc4U0e9yteFP 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 literal 15501 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 S1O8tO`Y59;{aw;H%@ diff --git a/infinity/customs/elloncake.dm b/infinity/customs/elloncake.dm index f07d5772720..5ac4308d10e 100644 --- a/infinity/customs/elloncake.dm +++ b/infinity/customs/elloncake.dm @@ -3,7 +3,6 @@ /obj/item/device/kit/suit/elloncake name = "Xri'luz's voidsuit modification kit" desc = "A kit for modifying a voidsuit." - uses = 2 new_icon_file = CUSTOM_ITEM_OBJ new_mob_icon_file = CUSTOM_ITEM_MOB new_name = "skrellian exosuit operator" diff --git a/infinity/customs/taushai.dm b/infinity/customs/taushai.dm index ba33f6cc5f1..27e1504a7ad 100644 --- a/infinity/customs/taushai.dm +++ b/infinity/customs/taushai.dm @@ -61,7 +61,6 @@ /obj/item/device/kit/suit/taushai name = "taj scavenger's voidsuit modification kit" desc = "A kit for modifying a voidsuit." - uses = 2 new_icon_file = CUSTOM_ITEM_OBJ new_mob_icon_file = CUSTOM_ITEM_MOB new_name = "scavenger" diff --git a/maps/random_ruins/exoplanet_ruins/playablecolony_inf/colony.dmm b/maps/random_ruins/exoplanet_ruins/playablecolony_inf/colony.dmm index f2976d03935..6f25660f147 100644 --- a/maps/random_ruins/exoplanet_ruins/playablecolony_inf/colony.dmm +++ b/maps/random_ruins/exoplanet_ruins/playablecolony_inf/colony.dmm @@ -2652,6 +2652,7 @@ /obj/item/storage/toolbox/mechanical, /obj/item/storage/toolbox/mechanical, /obj/item/device/integrated_circuit_printer/upgraded, +/obj/item/device/kit/mech, /turf/simulated/floor/tiled/techfloor/grid, /area/map_template/colony/engineering) "fe" = ( diff --git a/maps/sierra/sierra-3.dmm b/maps/sierra/sierra-3.dmm index 566a666ea10..ea7de259082 100644 --- a/maps/sierra/sierra-3.dmm +++ b/maps/sierra/sierra-3.dmm @@ -27887,6 +27887,8 @@ pixel_x = -3; pixel_y = 5 }, +/obj/item/device/paint_sprayer, +/obj/item/device/kit/mech, /turf/simulated/floor/tiled/white, /area/assembly/robotics) "aRN" = (