gives the agateram an incredibly subpar dodgeroll (#15431)

* a series of failed attempts and compromises

* dumb gimmick code

* goodbye das1

* trimming the fat, dodgeroll lock for full iframes

Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
This commit is contained in:
Hatterhat
2022-08-08 01:12:47 +01:00
committed by GitHub
co-authored by Hatterhat
parent bea35bea30
commit 2eb2a575df
@@ -41,6 +41,10 @@
// aughhghghgh this really should be elementized but this works for now
var/faction_bonus_force = 100
var/static/list/nemesis_factions = list("mining", "boss")
/// how much stamina does it cost to roll
var/roll_stamcost = 15
/// how far do we roll?
var/roll_range = 3
/obj/item/claymore/agateram/attack(mob/living/target, mob/living/carbon/human/user)
var/is_nemesis_faction = FALSE
@@ -53,6 +57,38 @@
if(is_nemesis_faction)
force -= faction_bonus_force
/obj/item/claymore/agateram/afterattack_secondary(atom/target, mob/living/user, params) // dark souls
if(user.IsImmobilized()) // no free dodgerolls
return
var/turf/where_to = get_turf(target)
user.apply_damage(damage = roll_stamcost, damagetype = STAMINA)
user.Immobilize(0.8 SECONDS) // you dont get to adjust your roll
user.throw_at(where_to, range = roll_range, speed = 1, force = MOVE_FORCE_NORMAL)
user.apply_status_effect(/datum/status_effect/dodgeroll_iframes)
playsound(user, SFX_BODYFALL, 50, TRUE)
playsound(user, SFX_RUSTLE, 50, TRUE)
return ..()
/datum/status_effect/dodgeroll_iframes
id = "dodgeroll_dodging"
alert_type = null
status_type = STATUS_EFFECT_REFRESH
duration = 0.8 SECONDS // worth tweaking?
/datum/status_effect/dodgeroll_iframes/on_apply()
RegisterSignal(owner, COMSIG_HUMAN_CHECK_SHIELDS, .proc/whiff)
return TRUE
/datum/status_effect/dodgeroll_iframes/on_remove()
UnregisterSignal(owner, COMSIG_HUMAN_CHECK_SHIELDS)
return ..()
/datum/status_effect/dodgeroll_iframes/proc/whiff()
SIGNAL_HANDLER
owner.balloon_alert_to_viewers("MISS!")
playsound(src, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1)
return SHIELD_BLOCK
/obj/structure/closet/crate/necropolis/gladiator
name = "gladiator chest"