From 962f62612e8141c298e3de19aeff196f0aa8c1e3 Mon Sep 17 00:00:00 2001 From: Matt Atlas Date: Fri, 17 Jul 2026 13:06:52 +0200 Subject: [PATCH] Adds a tactical rescue axe for security and antags. (#22839) Adds a cool-looking subtype of the rescue axe for security and antags. Spawns by default in security officer and head of security lockers. It has also been added to some antag preps (mercs, burglars, raiders) and to the uplink (tools section, 1 BC). Sprite by TheStryker. image --------- Co-authored-by: Matt Atlas --- code/datums/uplink/devices_and_tools.dm | 6 ++ code/game/objects/items/tools/crowbar.dm | 8 +++ .../crates_lockers/closets/secure/security.dm | 3 +- html/changelogs/mattatlas-mortaledge.yml | 58 ++++++++++++++++++ icons/obj/item/tactical_axe.dmi | Bin 0 -> 607 bytes maps/sccv_horizon/sccv_horizon.dmm | 10 +++ 6 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 html/changelogs/mattatlas-mortaledge.yml create mode 100644 icons/obj/item/tactical_axe.dmi diff --git a/code/datums/uplink/devices_and_tools.dm b/code/datums/uplink/devices_and_tools.dm index 384f6237e49..e167f8df429 100644 --- a/code/datums/uplink/devices_and_tools.dm +++ b/code/datums/uplink/devices_and_tools.dm @@ -264,3 +264,9 @@ desc = "A mask which allows the wearer to view local camera feeds they have access to." telecrystal_cost = 6 path = /obj/item/clothing/mask/ai + +/datum/uplink_item/item/tools/tactical_axe + name = "Tactical Axe" + desc = "An emergency tool meant to pry and chop, while also being sharp enough to kill." + bluecrystal_cost = 1 + path = /obj/item/crowbar/rescue_axe/tactical diff --git a/code/game/objects/items/tools/crowbar.dm b/code/game/objects/items/tools/crowbar.dm index 52e803c9ac3..c25cdfaaf6a 100644 --- a/code/game/objects/items/tools/crowbar.dm +++ b/code/game/objects/items/tools/crowbar.dm @@ -62,6 +62,14 @@ icon_state = "rescue_axe_red" item_state = "rescue_axe_red" +/obj/item/crowbar/rescue_axe/tactical + name = "tactical axe" + desc = "A short axe with a carbon fibre handle, meant to be both an emergency tool and a weapon." + icon = 'icons/obj/item/tactical_axe.dmi' + icon_state = "combataxe" + item_state = "combataxe" + contained_sprite = TRUE + /obj/item/crowbar/hydraulic_rescue_tool name = "hydraulic rescue tool" desc = "A hydraulic rescue tool that functions like a crowbar by applying strong amounts of hydraulic pressure to force open different things. Also known as jaws of life." diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 34d2c5052a8..0841580d356 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -134,7 +134,6 @@ new /obj/item/gun/energy/repeater/pistol(src) new /obj/item/taperoll/police(src) new /obj/item/breath_analyzer(src) - new /obj/item/crowbar/red(src) new /obj/item/ipc_tag_scanner(src) new /obj/item/taperecorder(src) new /obj/item/binoculars(src) @@ -145,6 +144,7 @@ new /obj/item/storage/belt/security/full(src) new /obj/item/storage/belt/security/vestbelt(src) new /obj/item/storage/box/fancy/keypouch/sec(src) + new /obj/item/crowbar/rescue_axe/tactical(src) /obj/structure/closet/secure_closet/hos2 name = "head of security's attire" @@ -288,6 +288,7 @@ new /obj/item/storage/belt/security/full(src) new /obj/item/storage/belt/security/vestbelt(src) new /obj/item/clothing/suit/storage/hazardvest/security/officer(src) + new /obj/item/crowbar/rescue_axe/tactical(src) /obj/structure/closet/secure_closet/investigator name = "investigator's locker" diff --git a/html/changelogs/mattatlas-mortaledge.yml b/html/changelogs/mattatlas-mortaledge.yml new file mode 100644 index 00000000000..a7a4088101c --- /dev/null +++ b/html/changelogs/mattatlas-mortaledge.yml @@ -0,0 +1,58 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# - (fixes bugs) +# wip +# - (work in progress) +# qol +# - (quality of life) +# soundadd +# - (adds a sound) +# sounddel +# - (removes a sound) +# rscadd +# - (adds a feature) +# rscdel +# - (removes a feature) +# imageadd +# - (adds an image or sprite) +# imagedel +# - (removes an image or sprite) +# spellcheck +# - (fixes spelling or grammar) +# experiment +# - (experimental change) +# balance +# - (balance changes) +# code_imp +# - (misc internal code change) +# refactor +# - (refactors code) +# config +# - (makes a change to the config files) +# admin +# - (makes changes to administrator tools) +# server +# - (miscellaneous changes to server) +################################# + +# Your name. +author: MattAtlas + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added a tactical rescue axe to security officer and head of security lockers, to the uplink, and to most antag preps (heist, merc, burglar)." diff --git a/icons/obj/item/tactical_axe.dmi b/icons/obj/item/tactical_axe.dmi new file mode 100644 index 0000000000000000000000000000000000000000..2e43843af537ab8790096256364ae353c419d673 GIT binary patch literal 607 zcmV-l0-*hgP)fFDZ*Bkpc$`yKaB_9`^iy#0_2eo`Eh^5;&r`5fFwryM;w;ZhDainGjE%TB zGg33tGfE(w;*!LYR3K9+IX^cku_Un~Rf&r;C9|j)C}zmTnO2mTn+joLs*EqnKqxjL zq&NqsVr2zaKNqm00o0K;)z^=2^8f$=X-PyuR9J=WmpxCzFc5|>#XT4)DLb%rqg59+ zR{_M>0U|~tH6$Zb(jNenweW`liP$FRk60{7^)sC>_v+4aZu*2Tf zGEBhAmoNb~>#!Di)7*yCv*WVPcz|Fr%~xzL<^Bfgn5EgNTwnVeaL8ucc8MF|uE%r? zkWJ)a}U4)c}U8ne$J<`}%7em#QX*$vLUgj;YvmzKOvW2tsS{)cu$^Cn~7G z2-+s9EQ0mVP}mie7QucixD&l5k|XsN$WD)e0%$@7kx1mPaD8F&hi;Au6(a`%$yK$A z%U3EOx$0S7r^yW!&|Izz>u6pO0m%);;G>N%PLNnO$ss7iO5Qauu;)g`(3Z2^@HVjP zSw;?o67;g5)*rsZuz@0x$WFlZh5tq2cMO8hF{r@p7!;Rdm|k#B#}EdA&oK;G9Rr~c t+P14+mwo$s0Q-C4H<~;28!7Uy_ykZ=IQFM=HShoc002ovPDHLkV1njH3XcE) literal 0 HcmV?d00001 diff --git a/maps/sccv_horizon/sccv_horizon.dmm b/maps/sccv_horizon/sccv_horizon.dmm index 19636571166..b180ee429f9 100644 --- a/maps/sccv_horizon/sccv_horizon.dmm +++ b/maps/sccv_horizon/sccv_horizon.dmm @@ -14957,6 +14957,8 @@ /obj/structure/table/rack, /obj/random/melee, /obj/item/stack/material/steel/full, +/obj/item/crowbar/rescue_axe/tactical, +/obj/item/crowbar/rescue_axe/tactical, /turf/simulated/floor/plating, /area/shuttle/skipjack) "bVq" = ( @@ -51420,6 +51422,8 @@ "gHP" = ( /obj/structure/table/reinforced/steel, /obj/effect/decal/cleanable/dirt, +/obj/item/crowbar/rescue_axe/tactical, +/obj/item/crowbar/rescue_axe/tactical, /turf/unsimulated/floor/monotile, /area/antag/burglar) "gHX" = ( @@ -91634,6 +91638,8 @@ /obj/item/airbubble/syndie, /obj/item/airbubble/syndie, /obj/item/airbubble/syndie, +/obj/item/crowbar/rescue_axe/tactical, +/obj/item/crowbar/rescue_axe/tactical, /turf/simulated/floor/plating, /area/shuttle/skipjack) "lNt" = ( @@ -175245,6 +175251,10 @@ pixel_x = -8; pixel_y = 7 }, +/obj/item/crowbar/rescue_axe/tactical, +/obj/item/crowbar/rescue_axe/tactical, +/obj/item/crowbar/rescue_axe/tactical, +/obj/item/crowbar/rescue_axe/tactical, /turf/unsimulated/floor, /area/antag/mercenary) "wEr" = (