From 5bf71cdcc8a12eab9fd489011d55950b7f178ce8 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Wed, 8 Sep 2021 20:43:10 -0700 Subject: [PATCH 1/3] Update stunbaton.dm --- code/game/objects/items/stunbaton.dm | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index 62bde0e4e6..c24d95f7d3 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 @@ -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) @@ -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 From 52029c6067c1aada2603ccaaec0c9fa2f4b8c6b3 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Wed, 8 Sep 2021 20:53:52 -0700 Subject: [PATCH 2/3] Update stunbaton.dm --- code/game/objects/items/stunbaton.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index c24d95f7d3..bfb0b9c0ff 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -26,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) From aa7a376dd5c0e8ab45e3d754d831bf545644636c Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sun, 12 Sep 2021 20:10:01 -0700 Subject: [PATCH 3/3] removes DoT --- code/__DEFINES/status_effects.dm | 2 ++ code/datums/status_effects/debuffs.dm | 3 +++ code/game/objects/items/stunbaton.dm | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) 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 bfb0b9c0ff..6cc2385e62 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -214,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)