From db3a941652bd3803249ad76a9e6b103e2eeca4bf Mon Sep 17 00:00:00 2001 From: killer653 Date: Sun, 10 Sep 2017 19:21:21 -0400 Subject: [PATCH] Adds numbing bite --- .../carbon/human/human_attackhand_vr.dm | 1 + .../carbon/human/species/species_attack_vr.dm | 46 +++++++++++++++++++ .../living/carbon/human/species/species_vr.dm | 13 +++++- .../Chemistry-Reagents-Medicine_vr.dm | 2 + .../vore/fluffstuff/custom_items_vr.dm | 31 +++++++++---- vorestation.dme | 1 + 6 files changed, 85 insertions(+), 9 deletions(-) create mode 100644 code/modules/mob/living/carbon/human/species/species_attack_vr.dm 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/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 7e330ad2af..228d2d9c31 100644 --- a/code/modules/mob/living/carbon/human/species/species_vr.dm +++ b/code/modules/mob/living/carbon/human/species/species_vr.dm @@ -15,4 +15,15 @@ var/wing_hair var/wing var/wing_animation - var/icobase_wing \ No newline at end of file + var/icobase_wing + +/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/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine_vr.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine_vr.dm index bebbb91325..2788c85aa6 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine_vr.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine_vr.dm @@ -26,6 +26,8 @@ color = "#800080" metabolism = 0.02 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) diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm index 306bad2094..a4b1007a4d 100644 --- a/code/modules/vore/fluffstuff/custom_items_vr.dm +++ b/code/modules/vore/fluffstuff/custom_items_vr.dm @@ -1377,17 +1377,18 @@ obj/item/weapon/material/hatchet/tacknife/combatknife/fluff/katarina/handle_shie age = 39 blood_type = "O-" sex = "Female" -/obj/item/weapon/fluff/kitchi_injector - name = "Kitchi Monkey Injector" - desc = "Allows the user (Kitchi) to transform into a monkey. Single use." + +/obj/item/weapon/fluff/injector //Injectors. Custom item used to explain wild changes in a mob's body or chemistry. + name = "Injector" + desc = "Some type of injector." icon = 'icons/obj/items.dmi' icon_state = "dnainjector" -/obj/item/weapon/fluff/kitchi_injector/attack(mob/living/M, mob/living/user) +/obj/item/weapon/fluff/injector/monkey + name = "Lesser Form Injector" + desc = "Turn the user into their lesser, more primal form." - if(M.ckey != "Ketrai") - user << "Something compels you to not use this injector." - return +/obj/item/weapon/fluff/injector/monkey/attack(mob/living/M, mob/living/user) if(usr == M) //Is the person using it on theirself? if(ishuman(M)) //If so, monkify them. @@ -1395,4 +1396,18 @@ obj/item/weapon/material/hatchet/tacknife/combatknife/fluff/katarina/handle_shie H.monkeyize() qdel(src) //One time use. else //If not, do nothing. - to_chat(user," You are unable to inject other people.") + 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.") \ No newline at end of file diff --git a/vorestation.dme b/vorestation.dme index f5838a9928..bd08428ed2 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1818,6 +1818,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"