diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index 5c6c8b143c..b34e68e9ae 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -65,6 +65,8 @@ /// Blocks sprint #define STATUS_EFFECT_STAGGERED /datum/status_effect/staggered +#define STATUS_EFFECT_TASED_WEAK_NODMG /datum/status_effect/electrode/no_damage // no damage + #define STATUS_EFFECT_TASED_WEAK /datum/status_effect/electrode //not as crippling, just slows down #define STATUS_EFFECT_TASED /datum/status_effect/electrode/no_combat_mode //the affected has been tased, preventing fine muscle control diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index d6cde67198..b75676dbd2 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -194,6 +194,9 @@ C.adjustStaminaLoss(max(0, stamdmg_per_ds * diff)) //if you really want to try to stamcrit someone with a taser alone, you can, but it'll take time and good timing. last_tick = world.time +/datum/status_effect/electrode/no_damage + stamdmg_per_ds = 0 + /datum/status_effect/electrode/no_combat_mode id = "tased_strong" movespeed_mod = /datum/movespeed_modifier/status_effect/tased/no_combat_mode diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index 62bde0e4e6..6cc2385e62 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -16,8 +16,9 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 50, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 80) attack_speed = CLICK_CD_MELEE - var/stamina_loss_amount = 40 + var/stamina_loss_amount = 35 var/turned_on = FALSE + var/armor_pen = 100 var/knockdown = TRUE /// block percent needed to prevent knockdown/disarm var/block_percent_to_counter = 50 @@ -25,8 +26,8 @@ var/hitcost = 750 var/throw_hit_chance = 35 var/preload_cell_type //if not empty the baton starts with this type of cell - var/cooldown_duration = 3.5 SECONDS //How long our baton rightclick goes on cooldown for after applying a knockdown - var/status_duration = 5 SECONDS //how long our status effects last for otherwise + var/cooldown_duration = 2.5 SECONDS //How long our baton rightclick goes on cooldown for after applying a knockdown + var/status_duration = 3 SECONDS //how long our status effects last for otherwise COOLDOWN_DECLARE(shove_cooldown) /obj/item/melee/baton/examine(mob/user) @@ -80,16 +81,6 @@ //we're below minimum, turn off switch_status(FALSE) -///Check for our cell to determine how much penetration our weapon does. -/obj/item/melee/baton/proc/get_cell_zap_pen() - var/obj/item/stock_parts/cell/copper_top = get_cell() - if(copper_top) - var/chargepower = copper_top.maxcharge - var/zap_penetration = (chargepower/1000) //This is our effective penetration. Every 1000 max charge, we get 1 pen power. A high capacity cell is equal to 10 armor pen, as an example. - return zap_penetration - else - return 0 - /obj/item/melee/baton/proc/switch_status(new_status = FALSE, silent = FALSE) if(turned_on != new_status) turned_on = new_status @@ -198,7 +189,7 @@ return FALSE var/final_stamina_loss_amount = stamina_loss_amount //Our stunning power for the baton var/shoved = FALSE //Did we succeed on knocking our target over? - var/zap_penetration = get_cell_zap_pen() //Find out what kind of cell we have, and calculating the resultant armor pen we get from it + var/zap_penetration = armor_pen var/zap_block = L.run_armor_check(BODY_ZONE_CHEST, "melee", null, null, zap_penetration) //armor check, including calculation for armor penetration, for our attack final_stamina_loss_amount = block_calculate_resultant_damage(final_stamina_loss_amount, return_list) @@ -223,7 +214,7 @@ if(shoving && COOLDOWN_FINISHED(src, shove_cooldown) && !HAS_TRAIT(L, TRAIT_IWASBATONED)) //Rightclicking applies a knockdown, but only once every couple of seconds, based on the cooldown_duration var. If they were recently knocked down, they can't be knocked down again by a baton. L.DefaultCombatKnockdown(50, override_stamdmg = 0) - L.apply_status_effect(STATUS_EFFECT_TASED_WEAK, status_duration) //Even if they shove themselves up, they're still slowed. + L.apply_status_effect(STATUS_EFFECT_TASED_WEAK_NODMG, status_duration) //Even if they shove themselves up, they're still slowed. L.apply_status_effect(STATUS_EFFECT_OFF_BALANCE, status_duration) //They're very likely to drop items if shoved briefly after a knockdown. shoved = TRUE COOLDOWN_START(src, shove_cooldown, cooldown_duration) @@ -333,7 +324,8 @@ w_class = WEIGHT_CLASS_BULKY force = 3 throwforce = 5 - stamina_loss_amount = 25 + stamina_loss_amount = 30 + armor_pen = 35 hitcost = 1000 throw_hit_chance = 10 slot_flags = ITEM_SLOT_BACK