Makin stuff nice and dandy

This commit is contained in:
Artur
2020-04-10 20:53:28 +03:00
parent fe755a1424
commit f481be1496
5 changed files with 41 additions and 34 deletions

View File

@@ -2,27 +2,37 @@
/datum/action/bloodsucker/lunge
name = "Predatory Lunge"
desc = "Spring at your target and aggressively grapple them without warning. Attacks from concealment or the rear may even knock them down."
desc = "Prepare the strenght to grapple your prey."
button_icon_state = "power_lunge"
bloodcost = 10
cooldown = 30
bloodsucker_can_buy = TRUE
warn_constant_cost = TRUE
amToggle = TRUE
var/leap_skill_mod = 5
/datum/action/bloodsucker/lunge/New()
. = ..()
RegisterSignal(owner, COMSIG_CARBON_TACKLED, .proc/Delayed_DeactivatePower)
/datum/action/bloodsucker/lunge/ActivatePower()
var/mob/living/user = owner
var/datum/antagonist/bloodsucker/B = user.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)
user.LoadComponent(/datum/component/tackler, stamina_cost = 50, base_knockdown = 3 SECONDS, range = 4, speed = 0.8, skill_mod = 5, min_distance = 2)
var/datum/component/tackler/T = user.LoadComponent(/datum/component/tackler)
T.stamina_cost = 50
T.base_knockdown = 3 SECONDS
T.range = 4
T.speed = 0.8
T.skill_mod = 5
T.min_distance = 2
active = TRUE
while(B && ContinueActive(user) && CHECK_MOBILITY(user, MOBILITY_STAND))
while(B && ContinueActive(user))
B.AddBloodVolume(-0.1)
sleep(5)
/datum/action/bloodsucker/lunge/ContinueActive(mob/living/user)
return ..()
/datum/action/bloodsucker/lunge/proc/Delayed_DeactivatePower()
addtimer(CALLBACK(src, .proc/DeactivatePower), 1 SECONDS, TIMER_UNIQUE)
/datum/action/bloodsucker/lunge/DeactivatePower(mob/living/user = owner)
..() // activate = FALSE
var/datum/component/tackler
tackler.RemoveComponent()
. = ..()
qdel(user.GetComponent(/datum/component/tackler))

View File

@@ -98,6 +98,8 @@
/mob/living/carbon/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
. = ..()
var/hurt = TRUE
if(src.GetComponent(/datum/component/tackler))
return
if(throwingdatum?.thrower && iscyborg(throwingdatum.thrower))
var/mob/living/silicon/robot/R = throwingdatum.thrower
if(!R.emagged)
@@ -110,7 +112,7 @@
var/mob/living/carbon/victim = hit_atom
if(victim.movement_type & FLYING)
return
if(hurt && !GetComponent(/datum/component/tackler))
if(hurt)
victim.take_bodypart_damage(10)
take_bodypart_damage(10)
victim.DefaultCombatKnockdown(20)

View File

@@ -63,3 +63,4 @@
var/damageoverlaytemp = 0
var/drunkenness = 0 //Overall drunkenness - check handle_alcohol() in life.dm for effects
var/tackling = FALSE //Whether or not we are tackling, this will prevent the knock into effects for carbons