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)