diff --git a/code/modules/mob/living/carbon/human/human_attackhand_vr.dm b/code/modules/mob/living/carbon/human/human_attackhand_vr.dm
index 9ca5b2991b..fa8c84c22c 100644
--- a/code/modules/mob/living/carbon/human/human_attackhand_vr.dm
+++ b/code/modules/mob/living/carbon/human/human_attackhand_vr.dm
@@ -60,3 +60,4 @@
claws/attack_name = "claws"
claws/strong/attack_name = "strong claws"
slime_glomp/attack_name = "glomp"
+ bite/sharp/numbing/attack_name = "numbing bite"
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm
index ca82ecd345..eee61c819b 100644
--- a/code/modules/mob/living/carbon/human/human_movement.dm
+++ b/code/modules/mob/living/carbon/human/human_movement.dm
@@ -34,6 +34,8 @@
if (feral >= 10) //crazy feral animals give less and less of a shit about pain and hunger as they get crazier
tally = max(species.slowdown, species.slowdown+((tally-species.slowdown)/(feral/10))) // As feral scales to damage, this amounts to an effective +1 slowdown cap
if(shock_stage >= 10) tally -= 1.5 //this gets a +3 later, feral critters take reduced penalty
+ if(reagents.has_reagent("numbenzyme"))
+ tally += 1.5 //A tad bit of slowdown.
//VOREstation end
if(istype(buckled, /obj/structure/bed/chair/wheelchair))
diff --git a/code/modules/mob/living/carbon/human/species/species_attack_vr.dm b/code/modules/mob/living/carbon/human/species/species_attack_vr.dm
new file mode 100644
index 0000000000..f7e1e43e31
--- /dev/null
+++ b/code/modules/mob/living/carbon/human/species/species_attack_vr.dm
@@ -0,0 +1,46 @@
+/datum/unarmed_attack/bite/sharp/numbing //Is using this against someone you are truly trying to fight a bad idea? Yes. Yes it is.
+ attack_verb = list("bit")
+ attack_noun = list("fangs")
+ attack_sound = 'sound/weapons/bite.ogg'
+ shredding = 0
+ sharp = 1
+ edge = 1
+
+/datum/unarmed_attack/bite/sharp/numbing/show_attack(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/zone, var/attack_damage)
+ var/obj/item/organ/external/affecting = target.get_organ(zone)
+
+ attack_damage = Clamp(attack_damage, 1, 5)
+ if(target == user)
+ user.visible_message("[user] [pick(attack_verb)] \himself in the [affecting.name]!")
+ return 0 //No venom for you.
+ switch(zone)
+ if(BP_HEAD, O_MOUTH, O_EYES)
+ // ----- HEAD ----- //
+ switch(attack_damage)
+ if(1 to 2)
+ user.visible_message("[user]'s fangs scrape across [target]'s cheek!")
+ to_chat(target, "Your face feels tingly!")
+ target.bloodstr.add_reagent("numbenzyme",attack_damage) //Have to add this here, otherwise the swtich fails.
+ if(3 to 4)
+ user.visible_message("[user]'s fangs pierce into [target]'s neck at an odd, awkward angle!")
+ to_chat(target, "Your neck feels like it's on fire before going numb!")
+ target.bloodstr.add_reagent("numbenzyme",attack_damage)
+ if(5)
+ user.visible_message("[user] sinks \his [pick(attack_noun)] deep into [target]'s neck, causing the vein to bulge outwards at some type of chemical is pumped into it!")
+ to_chat(target, "Your neck feels like it's going to burst! Moments later, you simply can't feel your neck any longer, the numbness beginning to spread throughout your body!")
+ target.bloodstr.add_reagent("numbenzyme",attack_damage)
+ else
+ // ----- BODY ----- //
+ switch(attack_damage)
+ if(1 to 2)
+ user.visible_message("[user]'s fangs scrape across [target]'s [affecting.name]!")
+ to_chat(target, "Your [affecting.name] feels tingly!")
+ target.bloodstr.add_reagent("numbenzyme",attack_damage)
+ if(3 to 4)
+ user.visible_message("[user]'s fangs pierce [pick("", "", "the side of")] [target]'s [affecting.name]!")
+ to_chat(target, "Your [affecting.name] feels like it's on fire before going numb!")
+ target.bloodstr.add_reagent("numbenzyme",attack_damage)
+ if(5)
+ user.visible_message("[user]'s fangs sink deep into [target]'s [affecting.name], one of their veins bulging outwards from the sudden fluid pumped into it!")
+ to_chat(target, "Your [affecting.name] feels like it's going to burst! Moments later, you simply can't feel your [affecting.name] any longer, the numbness slowly spreading throughout your body!")
+ target.bloodstr.add_reagent("numbenzyme",attack_damage)
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/species/species_vr.dm b/code/modules/mob/living/carbon/human/species/species_vr.dm
index 9cae8d873c..228d2d9c31 100644
--- a/code/modules/mob/living/carbon/human/species/species_vr.dm
+++ b/code/modules/mob/living/carbon/human/species/species_vr.dm
@@ -19,5 +19,11 @@
/datum/species/proc/update_attack_types()
unarmed_attacks = list()
+ for(var/u_type in unarmed_types)
+ unarmed_attacks += new u_type()
+
+/datum/species/proc/give_numbing_bite() //Holy SHIT this is hacky, but it works. Updating a mob's attacks mid game is insane.
+ unarmed_attacks = list()
+ unarmed_types += /datum/unarmed_attack/bite/sharp/numbing
for(var/u_type in unarmed_types)
unarmed_attacks += new u_type()
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm
index 984f886acb..cdcc3fd321 100644
--- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm
+++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm
@@ -62,6 +62,12 @@
cost = 1
var_changes = list("unarmed_types" = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws, /datum/unarmed_attack/bite/sharp))
+/datum/trait/melee_attack_fangs
+ name = "Sharp Melee & Numbing Fangs"
+ desc = "Provides sharp melee attacks that do slightly more damage, along with fangs that makes the person bit unable to feel their body or pain."
+ cost = 2
+ var_changes = list("unarmed_types" = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws, /datum/unarmed_attack/bite/sharp, /datum/unarmed_attack/bite/sharp/numbing))
+
/datum/trait/brute_resist
name = "Brute Resist"
desc = "Adds some resistance to brute damage sources."
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine_vr.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine_vr.dm
index 771fce0f67..c7db86d821 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine_vr.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine_vr.dm
@@ -5,7 +5,6 @@
taste_description = "milk"
reagent_state = SOLID
color = "#d5e2e5"
- overdose = REAGENTS_OVERDOSE
/datum/reagent/adranol/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(alien == IS_DIONA)
@@ -24,11 +23,41 @@
taste_description = "sourness"
reagent_state = LIQUID
color = "#800080"
- metabolism = 0.02
+ metabolism = 0.1 //Lasts up to 200 seconds if you give 20u which is OD.
mrate_static = TRUE
+ overdose = 20 //High OD. This is to make numbing bites have somewhat of a downside if you get bit too much. Have to go to medical for dialysis.
+ scannable = 0 //Let's not have medical mechs able to make an extremely strong organic painkiller
/datum/reagent/numbing_enzyme/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
M.add_chemical_effect(CE_PAINKILLER, 200)
+ if(prob(0.01)) //1 in 10000 chance per tick. Extremely rare.
+ to_chat(M,"Your body feels numb as a light, tingly sensation spreads throughout it, like some odd warmth.")
+ //Not noted here, but a movement debuff of 1.5 is handed out in human_movement.dm when numbing_enzyme is in a person's bloodstream!
+
+/datum/reagent/numbing_enzyme/overdose(var/mob/living/carbon/M, var/alien)
+ //..() //Add this if you want it to do toxin damage. Personally, let's allow them to have the horrid effects below without toxin damage.
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ if(prob(1))
+ to_chat(H,"Your entire body feels numb and the sensation of pins and needles continually assaults you. You blink and the next thing you know, your legs give out momentarily!")
+ H.AdjustWeakened(5) //Fall onto the floor for a few moments.
+ H.Confuse(15) //Be unable to walk correctly for a bit longer.
+ if(prob(1))
+ if(H.losebreath <= 1 && H.oxyloss <= 20) //Let's not suffocate them to the point that they pass out.
+ to_chat(H,"You feel a sharp stabbing pain in your chest and quickly realize that your lungs have stopped functioning!") //Let's scare them a bit.
+ H.losebreath = 10
+ H.adjustOxyLoss(5)
+ if(prob(2))
+ to_chat(H,"You feel a dull pain behind your eyes and at thee back of your head...")
+ H.hallucination += 20 //It messes with your mind for some reason.
+ H.eye_blurry += 20 //Groggy vision for a small bit.
+ if(prob(3))
+ to_chat(H,"You shiver, your body continually being assaulted by the sensation of pins and needles.")
+ H.emote("shiver")
+ H.make_jittery(10)
+ if(prob(3))
+ to_chat(H,"Your tongue feels numb and unresponsive.")
+ H.stuttering += 20
/datum/reagent/vermicetol
name = "Vermicetol"
diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm
index b2bd7b64fc..defd2c382c 100644
--- a/code/modules/vore/fluffstuff/custom_items_vr.dm
+++ b/code/modules/vore/fluffstuff/custom_items_vr.dm
@@ -1425,3 +1425,17 @@ obj/item/weapon/material/hatchet/tacknife/combatknife/fluff/katarina/handle_shie
qdel(src) //One time use.
else //If not, do nothing.
to_chat(user,"You are unable to inject other people.")
+
+/obj/item/weapon/fluff/injector/numb_bite
+ name = "Numbing Venom Injector"
+ desc = "Injects the user with a high dose of some type of chemical, causing any chemical glands they have to kick into overdrive and create the production of a numbing enzyme that is injected via bites.."
+
+/obj/item/weapon/fluff/injector/numb_bite/attack(mob/living/M, mob/living/user)
+
+ if(usr == M) //Is the person using it on theirself?
+ if(ishuman(M)) //Give them numbing bites.
+ var/mob/living/carbon/human/H = user
+ H.species.give_numbing_bite() //This was annoying, but this is the easiest way of performing it.
+ qdel(src) //One time use.
+ else //If not, do nothing.
+ to_chat(user,"You are unable to inject other people.")
diff --git a/vorestation.dme b/vorestation.dme
index ca36f26c22..a02069d186 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -1833,6 +1833,7 @@
#include "code\modules\mob\living\carbon\human\update_icons_vr.dm"
#include "code\modules\mob\living\carbon\human\species\species.dm"
#include "code\modules\mob\living\carbon\human\species\species_attack.dm"
+#include "code\modules\mob\living\carbon\human\species\species_attack_vr.dm"
#include "code\modules\mob\living\carbon\human\species\species_getters.dm"
#include "code\modules\mob\living\carbon\human\species\species_getters_vr.dm"
#include "code\modules\mob\living\carbon\human\species\species_helpers.dm"