From 75244c75561b526d8c9c3f69745d10c5307111aa Mon Sep 17 00:00:00 2001 From: Alphas00 <154434082+Alphas00@users.noreply.github.com> Date: Wed, 5 Jun 2024 12:29:39 +0200 Subject: [PATCH] Metal Cruncher quirk Adds the Metal Cruncher quirk, allowing those who have it to eat certain items and gain some nutrition from them --- .../code/mechanics/metal_cruncher.dm | 87 +++++++++++++++++++ code/__DEFINES/traits.dm | 1 + tgstation.dme | 3 +- 3 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 GainStation13/code/mechanics/metal_cruncher.dm diff --git a/GainStation13/code/mechanics/metal_cruncher.dm b/GainStation13/code/mechanics/metal_cruncher.dm new file mode 100644 index 00000000..2dcd57f9 --- /dev/null +++ b/GainStation13/code/mechanics/metal_cruncher.dm @@ -0,0 +1,87 @@ +/datum/quirk/metal_cruncher + name = "Metal Cruncher" + desc = "You can eat most minerals. Brush your teeth." + value = 0 //ERP quirk + gain_text = "You feel like you could eat steel." + lose_text = "Your teeth hurt too much..." + category = CATEGORY_FOOD + mob_trait = TRAIT_METAL_CRUNCHER + +/obj/item/stack + var/crunch_value = 0 + +/obj/item/stack/attack(mob/living/M, mob/living/user) + if(HAS_TRAIT(M, TRAIT_METAL_CRUNCHER)) + if(crunch_value > 0) + if(M == user) + user.visible_message("[user] crunches on some of [src].", "You crunch on some of [src].") + else + M.visible_message("[user] attempts to feed some of [src] to [M].", "[user] attempts to feed some of [src] to [M].") + playsound(M,'sound/items/eatfood.ogg', rand(10,50), 1) + use(1) + M.nutrition += crunch_value + if(HAS_TRAIT(M, TRAIT_VORACIOUS)) + M.changeNext_move(CLICK_CD_MELEE * 0.5) + return + . = ..() + +/obj/item/stack/cable_coil + crunch_value = 2 +/obj/item/stack/sheet/metal + crunch_value = 4 +/obj/item/stack/rods + crunch_value = 2 +/obj/item/stack/sheet/glass + crunch_value = 2 +/obj/item/stack/sheet/rglass + crunch_value = 4 +/obj/item/stack/sheet/plasmaglass + crunch_value = 12 +/obj/item/stack/sheet/plasmarglass + crunch_value = 14 +/obj/item/stack/sheet/titaniumglass + crunch_value = 27 +/obj/item/stack/sheet/plastitaniumglass + crunch_value = 37 +/obj/item/stack/sheet/plasteel + crunch_value = 14 +/obj/item/stack/sheet/durathread + crunch_value = 10 +/obj/item/stack/sheet/plastic + crunch_value = 2 +/obj/item/stack/sheet/micro_bricks + crunch_value = 1 +/obj/item/stack/sheet/cardboard + crunch_value = 1 +/obj/item/stack/sheet/mineral/calorite + crunch_value = 100 +/obj/item/stack/sheet/mineral/sandstone + crunch_value = 1 +/obj/item/stack/sheet/mineral/uranium + crunch_value = 50 +/obj/item/stack/sheet/mineral/plasma + crunch_value = 10 +/obj/item/stack/sheet/mineral/gold + crunch_value = 20 +/obj/item/stack/sheet/mineral/silver + crunch_value = 15 +/obj/item/stack/sheet/mineral/titanium + crunch_value = 25 +/obj/item/stack/sheet/mineral/plastitanium + crunch_value = 35 +/obj/item/stack/sheet/mineral/adamantine + crunch_value = 75 +/obj/item/stack/sheet/mineral/mythril + crunch_value = 75 +/obj/item/stack/sheet/mineral/coal + crunch_value = 50 +/obj/item/stack/sheet/mineral/wood + crunch_value = 4 +/obj/item/stack/sheet/mineral/bamboo + crunch_value = 10 +/obj/item/stack/sheet/mineral/shadoww + crunch_value = 15 +/obj/item/stack/sheet/mineral/gmushroom + crunch_value = 15 +/obj/item/stack/sheet/mineral/plaswood + crunch_value = 15 diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 1778d470..f513280b 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -204,6 +204,7 @@ #define TRAIT_WEAKLEGS "weak_legs" #define TRAIT_STRONGLEGS "strong_legs" #define TRAIT_WEB_WEAVER "web_weaving" +#define TRAIT_METAL_CRUNCHER "metal_cruncher" //Hyper #define TRAIT_MACROPHILE "macrophile" //likes the big diff --git a/tgstation.dme b/tgstation.dme index 65903ef3..a21ddae9 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2784,7 +2784,6 @@ #include "code\modules\research\nanites\nanite_program_hub.dm" #include "code\modules\research\nanites\nanite_programmer.dm" #include "code\modules\research\nanites\nanite_programs.dm" -#include "code\modules\research\nanites\nanite_programs\protocols.dm" #include "code\modules\research\nanites\nanite_remote.dm" #include "code\modules\research\nanites\program_disks.dm" #include "code\modules\research\nanites\public_chamber.dm" @@ -2796,6 +2795,7 @@ #include "code\modules\research\nanites\extra_settings\type.dm" #include "code\modules\research\nanites\nanite_programs\buffing.dm" #include "code\modules\research\nanites\nanite_programs\healing.dm" +#include "code\modules\research\nanites\nanite_programs\protocols.dm" #include "code\modules\research\nanites\nanite_programs\rogue.dm" #include "code\modules\research\nanites\nanite_programs\sensor.dm" #include "code\modules\research\nanites\nanite_programs\suppression.dm" @@ -3094,6 +3094,7 @@ #include "GainStation13\code\mechanics\fatness.dm" #include "GainStation13\code\mechanics\fattening_trap.dm" #include "GainStation13\code\mechanics\infestation.dm" +#include "GainStation13\code\mechanics\metal_cruncher.dm" #include "GainStation13\code\mechanics\spells.dm" #include "GainStation13\code\mechanics\wand.dm" #include "GainStation13\code\mechanics\web_weaving.dm"