Face Sitting now works by forcing people down and aiming with head.

This commit is contained in:
AnonymousHybi
2018-03-22 17:26:31 +00:00
parent 3a26426ae3
commit 2c4f33bdca
3 changed files with 16 additions and 47 deletions
@@ -650,7 +650,7 @@
var/list/choices = list()
for(var/mob/living/carbon/human/M in oviewers(1))
choices += M
if(!choices.len)
to_chat(src,"<span class='warning'>There's nobody nearby to use this on.</span>")
@@ -698,7 +698,7 @@
if(can_shred(T) != T)
to_chat(src,"<span class='warning'>Looks like you lost your chance...</span>")
return
//Removing an internal organ
if(T_int && T_int.damage >= 25) //Internal organ and it's been severely damaged
T.apply_damage(15, BRUTE, T_ext) //Damage the external organ they're going through.
@@ -713,7 +713,7 @@
//Removing an external organ
else if(!T_int && (T_ext.damage >= 25 || T_ext.brute_dam >= 25))
T_ext.droplimb(1,DROPLIMB_EDGE) //Clean cut so it doesn't kill the prey completely.
//Is it groin/chest? You can't remove those.
if(T_ext.cannot_amputate)
T.apply_damage(25, BRUTE, T_ext)
@@ -726,12 +726,12 @@
visible_message("<span class='warning'>[src] tears off [T]'s [T_ext.name]!</span>","<span class='warning'>You tear off [T]'s [T_ext.name]!</span>")
//Not targeting an internal organ w/ > 25 damage , and the limb doesn't have < 25 damage.
else
else
if(T_int)
T_int.damage = 25 //Internal organs can only take damage, not brute damage.
T.apply_damage(25, BRUTE, T_ext)
visible_message("<span class='danger'>[src] severely damages [T]'s [T_ext.name]!</span>")
add_attack_logs(src,T,"Shredded (hardvore)")
/mob/living/proc/flying_toggle()
@@ -901,36 +901,4 @@ mob/living/carbon/proc/charmed() //TODO
if(prob(7))
M.show_message("<span class='warning'>You lose sensation of your body.</span>")
M.Weaken(20)
return
/mob/living/carbon/human/proc/face_sit()
set name = "Face Sit"
set desc = "Sit on your Prey's Face"
set category = "Abilities"
if(last_special > world.time)
return
if(!ishuman(src))
return //If you're not a human you don't have permission to do this.
var/mob/living/carbon/human/C = src
var/obj/item/weapon/grab/G = src.get_active_hand()
if(!istype(G))
to_chat(C, "<span class='warning'>You must be grabbing a creature in your active hand to sit on them.</span>")
return
var/mob/living/carbon/human/T = G.affecting
if(!istype(T) || T.isSynthetic())
to_chat(src, "<span class='warning'>\The [T] is not able to be sit on.</span>")
return
if(G.state != GRAB_AGGRESSIVE)
to_chat(C, "<span class='warning'>You must have the creature pinned on the ground to sit on them </span>")
return
src.visible_message("<font color='red'><b>[src] moves their ass to [T]'s head, sitting down on them, making them unable to see anything else than [src]'s butt </b></font>")
return
return
@@ -114,15 +114,6 @@
H.verbs |= /mob/living/proc/glow_toggle
H.verbs |= /mob/living/proc/glow_color
/datum/trait/face_sit
name = "Face_Sitting"
desc = "Makes you able to sit on your prey"
cost = 0
/datum/trait/face_sit/apply(var/datum/species/S,var/mob/living/carbon/human/H)
..(S,H)
H.verbs |= /mob/living/carbon/human/proc/face_sit
/datum/trait/succubus_bite
name = "Succubus Bite"
desc = "Makes you able to bite prey in your grasp and subject them to a variety of chemicals.."
+10
View File
@@ -144,6 +144,7 @@
else
affecting.Weaken(2)
if(state >= GRAB_NECK)
affecting.Stun(3)
if(isliving(affecting))
@@ -173,6 +174,15 @@
assailant.visible_message("<span class='warning'>[assailant] covers [affecting]'s eyes!</span>")
if(affecting.eye_blind < 3)
affecting.Blind(3)
if(BP_HEAD)
if(force_down)
if(announce)
assailant.visible_message("<span class='warning'>[assailant] moves their ass to [target]'s head, sitting down on them, making them unable to see anything else than [assailant]'s butt!</span>")
if(target.silent < 3)
target.silent = 3
if(target.eye_blind < 3)
target.Blind(3)
/obj/item/weapon/grab/attack_self()
return s_click(hud)