more handling

This commit is contained in:
kevinz000
2020-05-30 01:59:58 -07:00
parent 1214c99a34
commit 519552cb78
3 changed files with 33 additions and 16 deletions
+25 -10
View File
@@ -301,22 +301,37 @@
var/total_mass_on = 3.4
/datum/block_parry_data/dual_esword
block_damage_absorption = 5
block_damage_multiplier = 0.3
block_start_delay = 0 // instantaneous block
block_stamina_cost_per_second = 6
block_stamina_efficiency = 2
// slowdown
block_slowdown = 1
// more efficient vs projectiles
block_stamina_efficiency_override = list(
"[ATTACK_TYPE_PROJECTILE]" = 4
)
// no attacking while blocking
block_lock_attacking = TRUE
parry_time_windup = 0
parry_time_active = 40
parry_time_active = 8
parry_time_spindown = 0
// we want to signal to players the most dangerous phase, the time when automatic counterattack is a thing.
parry_time_windup_visual_override = 1
parry_time_active_visual_override = 7
parry_time_spindown_visual_override = 12
parry_time_active_visual_override = 3
parry_time_spindown_visual_override = 4
parry_flags = PARRY_DEFAULT_HANDLE_FEEDBACK // esword users can attack while parrying.
parry_time_perfect = 3 // first ds isn't perfect
parry_time_perfect_leeway = 2
parry_imperfect_falloff_percent = 3.5
parry_time_perfect = 2 // first ds isn't perfect
parry_time_perfect_leeway = 1
parry_imperfect_falloff_percent = 20
parry_efficiency_to_counterattack = 100
parry_efficiency_considered_successful = 65 // VERY generous
parry_efficiency_perfect = 100
parry_failed_stagger_duration = 4 SECONDS
parry_cooldown = 1 SECONDS
parry_efficiency_considered_successful = 25 // VERY generous
parry_efficiency_perfect = 90
parry_failed_stagger_duration = 3 SECONDS
parry_failed_clickcd_duration = CLICK_CD_MELEE
parry_cooldown = 3 SECONDS
/obj/item/twohanded/dualsaber/suicide_act(mob/living/carbon/user)
if(wielded)
@@ -1,9 +1,4 @@
// Active directional block system. Shared code is in [living_blocking_parrying.dm]
/mob/living/on_item_dropped(obj/item/I)
if(I == active_block_item)
stop_active_blocking()
return ..()
/mob/living/proc/stop_active_blocking(was_forced = FALSE)
if(!(combat_flags & (COMBAT_FLAG_ACTIVE_BLOCK_STARTING | COMBAT_FLAG_ACTIVE_BLOCKING)))
return FALSE
@@ -43,7 +43,7 @@ GLOBAL_LIST_EMPTY(block_parry_data)
/// Override absorption, list("[ATTACK_TYPE_DEFINE]" = absorption), see [block_damage_absorption]
var/list/block_damage_absorption_override
/// Ratio of damage block above absorption amount, coefficient, lower is better, this is multiplied by damage to determine how much is blocked.
/// Ratio of damage to allow through above absorption and below limit. Multiplied by damage to determine how much to let through. Lower is better.
var/block_damage_multiplier = 0.5
/// Override damage overrun efficiency, list("[ATTACK_TYPE_DEFINE]" = absorption), see [block_damage_efficiency]
var/list/block_damage_multiplier_override
@@ -170,3 +170,10 @@ GLOBAL_LIST_EMPTY(block_parry_data)
if(!CHECK_MOBILITY(src, MOBILITY_USE))
to_chat(src, "<span class='warning'>Your parry is interrupted!</span>")
end_parry_sequence()
/mob/living/on_item_dropped(obj/item/I)
if(I == active_block_item)
stop_active_blocking()
if(I == active_parry_item))
end_parry_sequence()
return ..()