mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-27 23:27:34 +01:00
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:
@@ -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"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user