Merge pull request #2148 from Cameron653/NUMBING_BITE_V2

Numbing bite v2
This commit is contained in:
Spades
2017-09-21 19:47:17 -04:00
committed by GitHub
8 changed files with 107 additions and 2 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"
@@ -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))
@@ -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)
@@ -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()
@@ -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."