Adds numbing bite

This commit is contained in:
killer653
2017-09-10 19:21:21 -04:00
parent fe06956325
commit db3a941652
6 changed files with 85 additions and 9 deletions
@@ -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"
@@ -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("<span class='danger'>[user] [pick(attack_verb)] \himself in the [affecting.name]!</span>")
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("<span class='danger'>[user]'s fangs scrape across [target]'s cheek!</span>")
to_chat(target, "<font color='red'><b>Your face feels tingly!</b></font>")
target.bloodstr.add_reagent("numbenzyme",attack_damage) //Have to add this here, otherwise the swtich fails.
if(3 to 4)
user.visible_message("<span class='danger'>[user]'s fangs pierce into [target]'s neck at an odd, awkward angle!</span>")
to_chat(target, "<font color='red'><b>Your neck feels like it's on fire before going numb!</b></font>")
target.bloodstr.add_reagent("numbenzyme",attack_damage)
if(5)
user.visible_message("<span class='danger'>[user] sinks \his [pick(attack_noun)] <b><i>deep</i></b> into [target]'s neck, causing the vein to bulge outwards at some type of chemical is pumped into it!</span>")
to_chat(target, "<font color='red'><b>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!</b></font>")
target.bloodstr.add_reagent("numbenzyme",attack_damage)
else
// ----- BODY ----- //
switch(attack_damage)
if(1 to 2)
user.visible_message("<span class='danger'>[user]'s fangs scrape across [target]'s [affecting.name]!</span>")
to_chat(target, "<font color='red'><b>Your [affecting.name] feels tingly!</b></font>")
target.bloodstr.add_reagent("numbenzyme",attack_damage)
if(3 to 4)
user.visible_message("<span class='danger'>[user]'s fangs pierce [pick("", "", "the side of")] [target]'s [affecting.name]!</span>")
to_chat(target, "<font color='red'><b>Your [affecting.name] feels like it's on fire before going numb!</b></font>")
target.bloodstr.add_reagent("numbenzyme",attack_damage)
if(5)
user.visible_message("<span class='danger'>[user]'s fangs sink deep into [target]'s [affecting.name], one of their veins bulging outwards from the sudden fluid pumped into it!</span>")
to_chat(target, "<font color='red'><b>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!</b></font>")
target.bloodstr.add_reagent("numbenzyme",attack_damage)
@@ -15,4 +15,15 @@
var/wing_hair
var/wing
var/wing_animation
var/icobase_wing
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()
@@ -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)
@@ -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 << "<span class='warning'>Something compels you to <i>not</i> use this injector.</span>"
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,"<span class='warning'> You are unable to inject other people.</span>")
to_chat(user,"<span class='warning'>You are unable to inject other people.</span>")
/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,"<span class='warning'>You are unable to inject other people.</span>")
+1
View File
@@ -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"