From bb756cbdc9795a07b09311af19fa34782deed868 Mon Sep 17 00:00:00 2001 From: KasparoVy <12377767+KasparoVy@users.noreply.github.com> Date: Wed, 1 Apr 2020 21:48:03 -0400 Subject: [PATCH 1/3] Adds a Rocky Diet Taking the ore eater trait, you only gain nutrition from ore. The amount varies, mainly based on the rarity/quality of what you're eating. 5 raw diamonds or verdantium will feed you well, while it'll take a handful of hematite or carbon to do the job. Better stick to the good stuff - it's in your best interest! --- code/modules/mining/ore.dm | 10 +++- .../carbon/human/species/station/blank_vr.dm | 1 + .../species/station/traits_vr/neutral.dm | 10 ++++ code/modules/vore/eating/living_vr.dm | 56 ++++++++++++++++++- 4 files changed, 75 insertions(+), 2 deletions(-) diff --git a/code/modules/mining/ore.dm b/code/modules/mining/ore.dm index 81076ca8e3..6865fae85c 100644 --- a/code/modules/mining/ore.dm +++ b/code/modules/mining/ore.dm @@ -121,4 +121,12 @@ var/obj/item/device/core_sampler/C = W C.sample_item(src, user) else - return ..() \ No newline at end of file + return ..() + +/obj/item/weapon/ore/attack(mob/living/M as mob, mob/living/user as mob) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.species.eat_ore == 1) + H.eat_ore(src) + return + ..() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/station/blank_vr.dm b/code/modules/mob/living/carbon/human/species/station/blank_vr.dm index 5374d21b33..cb13f4772c 100644 --- a/code/modules/mob/living/carbon/human/species/station/blank_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/blank_vr.dm @@ -5,6 +5,7 @@ var/metabolism = 0.0015 var/lightweight = FALSE //Oof! Nonhelpful bump stumbles. var/trashcan = FALSE //It's always sunny in the wrestling ring. + var/eat_ore = FALSE //HEAVY METAL DIET var/base_species = null // Unused outside of a few species var/selects_bodytype = FALSE // Allows the species to choose from body types intead of being forced to be just one. diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm index 9bf2c932ec..fe1edb30a1 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm @@ -99,6 +99,16 @@ ..(S,H) H.verbs |= /mob/living/proc/eat_trash +/datum/trait/gem_eater + name = "Expensive Taste" + desc = "There's nothing that sates the appetite better than precious gems, exotic or rare minerals and you have damn fine taste. Anything else is beneath you." + cost = 0 + var_changes = list("gets_food_nutrition" = 0, "eat_ore" = 1) //The verb is given in human.dm + +/datum/trait/gem_eater/apply(var/datum/species/S,var/mob/living/carbon/human/H) + ..(S,H) + H.verbs |= /mob/living/proc/eat_ore + /datum/trait/glowing_eyes name = "Glowing Eyes" desc = "Your eyes show up above darkness. SPOOKY! And kinda edgey too." diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index e890b00883..a5585955ef 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -147,7 +147,7 @@ if(!isliving(user)) return FALSE // return FALSE to continue upper procs - + var/mob/living/attacker = user // Typecast to living if(is_vore_predator(src)) for(var/mob/living/M in H.contents) @@ -689,6 +689,60 @@ to_chat(src, "This item is not appropriate for ethical consumption.") return +/mob/living/proc/eat_ore(var/obj/item/snack) + set name = "Eat Ore" + set category = "Abilities" + set desc = "Consume held ore and gems. Snack time!" + + if(!vore_selected) + to_chat(src,"You either don't have a belly selected, or don't have a belly!") + return + + var/obj/item/I = (snack ? snack : get_active_hand()) + if(!I) + to_chat(src, "You are not holding anything.") + return + + var/obj/item/weapon/ore/O = I + if(istype(O)) + //Eat the ore using the vorebelly for the sound then get rid of the ore to prevent infinite nutrition. + drop_item() + O.forceMove(vore_selected) + qdel(O) + + log_admin("VORE: [src] used Eat Ore to swallow [O].") + + //List in list, define by material property of ore in code/mining/modules/ore.dm. + //50 nutrition = 5 ore to get 250 nutrition. 250 is the beginning of the 'well fed' range. + var/list/rock_munch = list( + "uranium" = list("nutrition" = 30, "remark" = "Crunching [O] in your jaws almost makes you wince, a horridly tangy and sour flavour radiating through your mouth. It goes down all the same."), + "hematite" = list("nutrition" = 15, "remark" = "The familiar texture and taste of [O] does the job but leaves little to the imagination and hardly sates your appetite."), + "carbon" = list("nutrition" = 15, "remark" = "Utterly bitter, crunching down on [O] only makes you long for better things. But a snack's a snack..."), + "marble" = list("nutrition" = 40, "remark" = "A fitting dessert, the sweet and savoury [O] lingers on the palate and satisfies your hunger."), + "sand" = list("nutrition" = 0, "remark" = "You crunch on [O] but its texture is almost gag-inducing. Stifling a cough, you somehow manage to swallow both [O] and your regrets."), + "phoron" = list("nutrition" = 30, "remark" = "Crunching [O] to dust between your jaws, a warmth fills your mouth that briefly spreads down the throat to your chest as you swallow."), + "silver" = list("nutrition" = 40, "remark" = "[O] tastes quite nice indeed as you munch on it. A little tarnished, but that's just fine aging."), + "gold" = list("nutrition" = 40, "remark" = "You taste supreme richness that exceeds expectations and satisfies your hunger."), + "diamond" = list("nutrition" = 50, "remark" = "The heavenly taste of [O] almost brings a tear to your eye. Its glimmering gloriousness is even better on the tongue than you imagined, so you savour it fondly."), + "platinum" = list("nutrition" = 40, "remark" = "A bit tangy but elegantly balanced with a long faintly sour finish. Delectible."), + "mhydrogen" = list("nutrition" = 30, "remark" = "Quite sweet on the tongue, you savour the light easy to chew [O] and finish it quickly."), + MAT_VERDANTIUM = list("nutrition" = 50, "remark" = "You taste the scientific mystery and a rare delicacy. Your tastebuds tingle pleasantly as you eat [O] and the feeling warmly blossoms in your chest for a moment."), + MAT_LEAD = list("nutrition" = 40, "remark" = "It takes some work to break down [O] but you manage it, unlocking lasting tangy goodness in the process. Yum."), + ) + if(O.material in rock_munch) + var/S = rock_munch[O.material] + to_chat(src, "[S["remark"]]") + nutrition += S["nutrition"] + else //Handle everything else. + if(istype(O, /obj/item/weapon/ore/slag/)) + to_chat(src, "You taste dusty, crunchy mistakes. This is a travesty... but at least it is an edible one.") + nutrition += 15 + else //Random rock. + to_chat(src, "You taste stony, gravelly goodness - but you crave something with actual nutritional value.") + return + to_chat(src, "You pause for a moment to examine [I] and realize it's not even worth the energy to chew.") + return + /mob/living/proc/switch_scaling() set name = "Switch scaling mode" set category = "Preferences" From af2b83379a47d729127f85dd60a9cb0919cf9fad Mon Sep 17 00:00:00 2001 From: KasparoVv <12377767+KasparoVy@users.noreply.github.com> Date: Thu, 2 Apr 2020 03:31:43 +0000 Subject: [PATCH 2/3] Add VS Edit Arokha's recommendation Co-Authored-By: Aronai Sieyes --- code/modules/mining/ore.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/mining/ore.dm b/code/modules/mining/ore.dm index 6865fae85c..ada80def82 100644 --- a/code/modules/mining/ore.dm +++ b/code/modules/mining/ore.dm @@ -123,10 +123,12 @@ else return ..() +//VOREStation Add /obj/item/weapon/ore/attack(mob/living/M as mob, mob/living/user as mob) if(ishuman(M)) var/mob/living/carbon/human/H = M if(H.species.eat_ore == 1) H.eat_ore(src) return - ..() \ No newline at end of file + ..() +//VOREStation Add End From 5ba1fda95268548c74853c3b529e2e701a7200f9 Mon Sep 17 00:00:00 2001 From: KasparoVy <12377767+KasparoVy@users.noreply.github.com> Date: Thu, 2 Apr 2020 09:53:25 -0400 Subject: [PATCH 3/3] Slight Grammar Adjustment --- code/modules/vore/eating/living_vr.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index a5585955ef..dc22534786 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -695,7 +695,7 @@ set desc = "Consume held ore and gems. Snack time!" if(!vore_selected) - to_chat(src,"You either don't have a belly selected, or don't have a belly!") + to_chat(src, "You either don't have a belly selected, or don't have a belly!") return var/obj/item/I = (snack ? snack : get_active_hand()) @@ -725,8 +725,8 @@ "gold" = list("nutrition" = 40, "remark" = "You taste supreme richness that exceeds expectations and satisfies your hunger."), "diamond" = list("nutrition" = 50, "remark" = "The heavenly taste of [O] almost brings a tear to your eye. Its glimmering gloriousness is even better on the tongue than you imagined, so you savour it fondly."), "platinum" = list("nutrition" = 40, "remark" = "A bit tangy but elegantly balanced with a long faintly sour finish. Delectible."), - "mhydrogen" = list("nutrition" = 30, "remark" = "Quite sweet on the tongue, you savour the light easy to chew [O] and finish it quickly."), - MAT_VERDANTIUM = list("nutrition" = 50, "remark" = "You taste the scientific mystery and a rare delicacy. Your tastebuds tingle pleasantly as you eat [O] and the feeling warmly blossoms in your chest for a moment."), + "mhydrogen" = list("nutrition" = 30, "remark" = "Quite sweet on the tongue, you savour the light and easy to chew [O], finishing it quickly."), + MAT_VERDANTIUM = list("nutrition" = 50, "remark" = "You taste scientific mystery and a rare delicacy. Your tastebuds tingle pleasantly as you eat [O] and the feeling warmly blossoms in your chest for a moment."), MAT_LEAD = list("nutrition" = 40, "remark" = "It takes some work to break down [O] but you manage it, unlocking lasting tangy goodness in the process. Yum."), ) if(O.material in rock_munch)