From 43b417d031ee97a21127afc644829868d38a9f47 Mon Sep 17 00:00:00 2001 From: Comxy Date: Thu, 23 May 2024 17:31:39 +0200 Subject: [PATCH 1/9] wy-sentries --- code/datums/ammo/misc.dm | 5 +++ code/modules/defenses/handheld.dm | 28 ++++++++++++ code/modules/defenses/planted_flag.dm | 19 ++++++++ code/modules/defenses/sentry.dm | 42 +++++++++++++++--- code/modules/defenses/sentry_flamer.dm | 38 +++++++++++++++- code/modules/gear_presets/pmc.dm | 10 ++--- .../modules/projectiles/magazines/sentries.dm | 25 +++++++++++ .../items/weapons/guns/ammo_by_faction/wy.dmi | Bin 1286 -> 1713 bytes .../machinery/defenses/wy_defenses.dmi | Bin 0 -> 5322 bytes 9 files changed, 155 insertions(+), 12 deletions(-) create mode 100644 icons/obj/structures/machinery/defenses/wy_defenses.dmi diff --git a/code/datums/ammo/misc.dm b/code/datums/ammo/misc.dm index bcb9673548db..4caa059d3c0b 100644 --- a/code/datums/ammo/misc.dm +++ b/code/datums/ammo/misc.dm @@ -95,6 +95,11 @@ R.durationfire = BURN_TIME_INSTANT new /obj/flamer_fire(T, cause_data, R, 0) +/datum/ammo/flamethrower/sentry_flamer/wy + name = "sticky fire" + flamer_reagent_id = "stickynapalm" + shell_speed = AMMO_SPEED_TIER_4 + /datum/ammo/flare name = "flare" ping = null //no bounce off. diff --git a/code/modules/defenses/handheld.dm b/code/modules/defenses/handheld.dm index 233dad313d25..24c57771bb23 100644 --- a/code/modules/defenses/handheld.dm +++ b/code/modules/defenses/handheld.dm @@ -143,6 +143,19 @@ defense_type = /obj/structure/machinery/defenses/sentry/mini deployment_time = 0.75 SECONDS +/obj/item/defenses/handheld/sentry/wy + name = "handheld WY 202-GMA1 smart sentry" + desc = "A compact version of the Weyland-Yutani defenses. Designed for area control for deployment of the associated type in the field." + icon = 'icons/obj/structures/machinery/defenses/wy_defenses.dmi' + icon_state = "Normal wy_sentry_handheld" + defense_type = /obj/structure/machinery/defenses/sentry/wy + deployment_time = 5 SECONDS + +/obj/item/defenses/handheld/sentry/wy/mini + name = "handheld WY 14-GRA2 mini sentry" + icon_state = "Mini wy_sentry_handheld" + defense_type = /obj/structure/machinery/defenses/sentry/mini/wy + deployment_time = 2 SECONDS // FLAMER BASE AND UPGRADES /obj/item/defenses/handheld/sentry/flamer @@ -202,6 +215,15 @@ defense_type = /obj/structure/machinery/defenses/sentry/flamer/plasma ammo_convert = /obj/item/ammo_magazine/sentry_flamer/glob +/obj/item/defenses/handheld/sentry/flamer/wy + name = "handheld WY 406-FE2 smart sentry" + desc = "A compact version of the Weyland-Yutani defenses. Designed for quick deployment of the associated type in the field." + icon = 'icons/obj/structures/machinery/defenses/wy_defenses.dmi' + icon_state = "Normal wy_flamer_handheld" + defense_type = /obj/structure/machinery/defenses/sentry/flamer/wy + deployment_time = 5 SECONDS + ammo_convert = /obj/item/ammo_magazine/sentry_flamer/wy + // TESLA BASE AND UPGRADES /obj/item/defenses/handheld/tesla_coil @@ -300,4 +322,10 @@ deployment_time = 2 SECONDS defense_type = /obj/structure/machinery/defenses/planted_flag/range +/obj/item/defenses/handheld/planted_flag/wy + name = "handheld WY planted flag" + icon = 'icons/obj/structures/machinery/defenses/wy_defenses.dmi' + icon_state = "WY planted_flag_handheld" + deployment_time = 3 SECONDS + defense_type = /obj/structure/machinery/defenses/planted_flag/wy diff --git a/code/modules/defenses/planted_flag.dm b/code/modules/defenses/planted_flag.dm index 12bcab9b0475..657d031a2130 100644 --- a/code/modules/defenses/planted_flag.dm +++ b/code/modules/defenses/planted_flag.dm @@ -115,6 +115,25 @@ H.activate_order_buff(COMMAND_ORDER_FOCUS, buff_intensity, 5 SECONDS) H.activate_order_buff(COMMAND_ORDER_MOVE, buff_intensity, 5 SECONDS) +/obj/structure/machinery/defenses/planted_flag/wy + name = "WY planted flag" + desc = "A planted flag with the iconic WY flag plastered all over it, you feel a burst of energy by its mere sight." + icon = 'icons/obj/structures/machinery/defenses/wy_defenses.dmi' + disassemble_time = 6 SECONDS + health = 300 + health_max = 300 + area_range = 11 + handheld_type = /obj/item/defenses/handheld/planted_flag/wy + defense_type = "WY" + selected_categories = list( + SENTRY_CATEGORY_IFF = FACTION_WEYLAND, + ) + +/obj/structure/machinery/defenses/planted_flag/wy/apply_buff_to_player(mob/living/carbon/human/H) + H.activate_order_buff(COMMAND_ORDER_HOLD, buff_intensity, 2 SECONDS) + H.activate_order_buff(COMMAND_ORDER_FOCUS, buff_intensity, 2 SECONDS) + H.activate_order_buff(COMMAND_ORDER_MOVE, buff_intensity, 2 SECONDS) + /obj/item/storage/backpack/jima name = "JIMA frame mount" icon = 'icons/obj/items/clothing/backpacks.dmi' diff --git a/code/modules/defenses/sentry.dm b/code/modules/defenses/sentry.dm index 954e6adca7ec..ddd0d453d640 100644 --- a/code/modules/defenses/sentry.dm +++ b/code/modules/defenses/sentry.dm @@ -18,7 +18,7 @@ var/fire_delay = 4 var/immobile = FALSE //Used for prebuilt ones. var/obj/item/ammo_magazine/ammo = new /obj/item/ammo_magazine/sentry - var/sentry_type = "sentry" //Used for the icon + var/sentry_type = "uac_sentry" //Used for the icon display_additional_stats = TRUE /// Light strength when turned on var/luminosity_strength = 5 @@ -115,16 +115,16 @@ overlays.Cut() if(stat == DEFENSE_DAMAGED) - overlays += "[defense_type] uac_[sentry_type]_destroyed" + overlays += "[defense_type] [sentry_type]_destroyed" return if(!ammo || ammo && !ammo.current_rounds) - overlays += "[defense_type] uac_[sentry_type]_noammo" + overlays += "[defense_type] [sentry_type]_noammo" return if(turned_on) - overlays += "[defense_type] uac_[sentry_type]_on" + overlays += "[defense_type] [sentry_type]_on" else - overlays += "[defense_type] uac_[sentry_type]" + overlays += "[defense_type] [sentry_type]" /obj/structure/machinery/defenses/sentry/attack_hand_checks(mob/user) @@ -723,5 +723,37 @@ new /obj/item/stack/sheet/plasteel/medium_stack(loc) return ..() +/obj/structure/machinery/defenses/sentry/wy + name = "WY 202-GMA1 Smart Sentry" + icon = 'icons/obj/structures/machinery/defenses/wy_defenses.dmi' + sentry_type = "wy_sentry" + fire_delay = 2 SECONDS + health = 350 + health_max = 350 + damage_mult = 3.5 + disassemble_time = 5 SECONDS + sentry_range = 6 + omni_directional = TRUE + handheld_type = /obj/item/defenses/handheld/sentry/wy + ammo = new /obj/item/ammo_magazine/sentry/wy + selected_categories = list( + SENTRY_CATEGORY_IFF = FACTION_WEYLAND, + ) + +/obj/structure/machinery/defenses/sentry/mini/wy + name = "WY 14-GRA2 Mini Sentry" + icon = 'icons/obj/structures/machinery/defenses/wy_defenses.dmi' + sentry_type = "wy_sentry" + fire_delay = 0.08 SECONDS + health = 200 + health_max = 200 + damage_mult = 0.3 + disassemble_time = 2 SECONDS + handheld_type = /obj/item/defenses/handheld/sentry/wy/mini + ammo = new /obj/item/ammo_magazine/sentry/wy/mini + selected_categories = list( + SENTRY_CATEGORY_IFF = FACTION_WEYLAND, + ) + #undef SENTRY_FIREANGLE #undef SENTRY_RANGE diff --git a/code/modules/defenses/sentry_flamer.dm b/code/modules/defenses/sentry_flamer.dm index f884b4ec5d14..52e288b530f0 100644 --- a/code/modules/defenses/sentry_flamer.dm +++ b/code/modules/defenses/sentry_flamer.dm @@ -1,10 +1,10 @@ /obj/structure/machinery/defenses/sentry/flamer - name = "\improper UA 42-F sentry flamer" + name = "\improper UA 42-F Sentry Flamer" icon = 'icons/obj/structures/machinery/defenses/flamer.dmi' desc = "A deployable, semi-automated turret with AI targeting capabilities. Armed with a special flamer and a 100 liters fuel tank." fire_delay = 30 ammo = new /obj/item/ammo_magazine/sentry_flamer - sentry_type = "flamer" + sentry_type = "uac_flamer" handheld_type = /obj/item/defenses/handheld/sentry/flamer health = 200 health_max = 200 @@ -99,3 +99,37 @@ range_bounds = RECT(x, y - (FLAMER_SENTRY_SNIPER_RANGE/2), FLAMER_SENTRY_SNIPER_RANGE, FLAMER_SENTRY_SNIPER_RANGE) #undef FLAMER_SENTRY_SNIPER_RANGE + + +/obj/structure/machinery/defenses/sentry/flamer/wy + name = "WY 406-FE2 Smart Sentry" + icon = 'icons/obj/structures/machinery/defenses/wy_defenses.dmi' + desc = "A deployable, semi-automated turret with AI targeting capabilities used by the PMC. Armed with a special flamer and a 200 liters fuel tank." + health = 300 + health_max = 300 + fire_delay = 2 SECONDS + disassemble_time = 5 SECONDS + hack_time = 25 SECONDS + ammo = new /obj/item/ammo_magazine/sentry_flamer/wy + sentry_type = "wy_flamer" + sentry_range = 6 + omni_directional = TRUE + handheld_type = /obj/item/defenses/handheld/sentry/flamer/wy + selected_categories = list( + SENTRY_CATEGORY_ROF = ROF_SINGLE, + SENTRY_CATEGORY_IFF = FACTION_WEYLAND, + ) + +/obj/structure/machinery/defenses/sentry/flamer/wy/destroyed_action() + visible_message("[icon2html(src, viewers(src))] [SPAN_WARNING("The [name] starts spitting out sparks and smoke!")]") + playsound(loc, 'sound/mecha/critdestrsyndi.ogg', 25, 1) + for(var/i = 1 to 6) + setDir(pick(NORTH, EAST, SOUTH, WEST)) + sleep(2) + + if(ammo.current_rounds != 0) + var/datum/reagent/napalm/sticky/sticky_napalm = new() + new /obj/flamer_fire(loc, create_cause_data("sentry explosion", owner_mob), sticky_napalm, 2) + cell_explosion(loc, 10, 10, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, create_cause_data("sentry explosion", owner_mob)) + if(!QDELETED(src)) + qdel(src) diff --git a/code/modules/gear_presets/pmc.dm b/code/modules/gear_presets/pmc.dm index 16c65dde01aa..8dde038f3891 100644 --- a/code/modules/gear_presets/pmc.dm +++ b/code/modules/gear_presets/pmc.dm @@ -1688,8 +1688,8 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/tool/shovel/etool/folded, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/defenses/handheld/sentry/mini, WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/defenses/handheld/sentry/mini, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/defenses/handheld/sentry/wy/mini, WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/defenses/handheld/sentry/wy/mini, WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction/full, WEAR_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction/full, WEAR_R_STORE) @@ -1755,9 +1755,9 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), list("Essential Engineer Set", 0, /obj/effect/essentials_set/engi, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), list("HANDHELD DEFENSE (CHOOSE 1)", 0, null, null, null), - list("JIMA Planted Flag", 0, /obj/item/defenses/handheld/planted_flag, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), - list("UA 42-F Sentry Flamer", 0, /obj/item/defenses/handheld/sentry/flamer, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), - list("UA 571-C Sentry Gun", 0, /obj/item/defenses/handheld/sentry, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), + list("WY Planted Flag", 0, /obj/item/defenses/handheld/planted_flag/wy, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), + list("WY 406-FE2 Smart Sentry", 0, /obj/item/defenses/handheld/sentry/flamer/wy, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), + list("WY 202-GMA1 Smart Sentry", 0, /obj/item/defenses/handheld/sentry/wy, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), list("ENGINEERING SUPPLIES", 0, null, null, null), list("Airlock Circuit Board", 2, /obj/item/circuitboard/airlock, null, VENDOR_ITEM_REGULAR), diff --git a/code/modules/projectiles/magazines/sentries.dm b/code/modules/projectiles/magazines/sentries.dm index 4e885278050b..4cbc963520ae 100644 --- a/code/modules/projectiles/magazines/sentries.dm +++ b/code/modules/projectiles/magazines/sentries.dm @@ -29,6 +29,22 @@ max_rounds = 50 default_ammo = /datum/ammo/bullet/shotgun/buckshot +/obj/item/ammo_magazine/sentry/wy + name = "H20 ammo drum (10x42mm Caseless)" + desc = "An ammo drum of 200 10x42mm caseless rounds for the WY 202-GMA1 Smart Sentry. Just feed it into the sentry gun's ammo port when its ammo is depleted." + icon = 'icons/obj/items/weapons/guns/ammo_by_faction/wy.dmi' + icon_state = "wy22e5" + caliber = "10x42mm" + max_rounds = 200 + +/obj/item/ammo_magazine/sentry/wy/mini + name = "H16 ammo drum (10x12mm Caseless)" + desc = "An ammo drum of 1000 10x12mm caseless rounds for the WY 14-GRA2 Mini Sentry. Just feed it into the sentry gun's ammo port when its ammo is depleted." + icon = 'icons/obj/items/weapons/guns/ammo_by_faction/wy.dmi' + icon_state = "wy22e5" + caliber = "10x12mm" + max_rounds = 1000 + // FLAMER Sentry /obj/item/ammo_magazine/sentry_flamer name = "sentry incinerator tank" @@ -51,3 +67,12 @@ name = "mini sentry incinerator tank" desc = "A fuel tank of Ultra Thick Napthal Fuel, used in the UA 45-FM." default_ammo = /datum/ammo/flamethrower/sentry_flamer/mini + +/obj/item/ammo_magazine/sentry_flamer/wy + name = "wy sentry incinerator tank" + desc = "A fuel tank of Ultra Thick Sticky Napthal Fuel, used in the WY 406-FE2." + icon = 'icons/obj/items/weapons/guns/ammo_by_faction/wy.dmi' + icon_state = "wy22e5" + caliber = "Sticky Napalm" + max_rounds = 200 + default_ammo = /datum/ammo/flamethrower/sentry_flamer/wy diff --git a/icons/obj/items/weapons/guns/ammo_by_faction/wy.dmi b/icons/obj/items/weapons/guns/ammo_by_faction/wy.dmi index 11eab502b0cf20d8c056d3416f6447ccb69a7d37..6a8bbca97e4fe9db647e3086784353a0197376dd 100644 GIT binary patch delta 1578 zcmV+_2G#k73b7547Y?8Z0{{R3yb+fl0001rktKF5z`(#bIzFbYw9L}i!G|McYI1ge zh*DNuFAw_300001bW%=J06^y0W&i*I50S7Gf0WN_gD@0;&&gjA+T&oXwma_N+E)!E zQKECZ6^m~wObZ&?^}nAqFxa8Q?DhiR_ws&(EZHkWT(OHNgll^UrqD90AHye>tO9{{zlChlI6OxK1`PlU**+lJXqye z_LUDiyB7R5^GTnqvpbaGHs%W0KQ@{vp8CJIy$B`bu}M;x9a$%|;B!j=#G3db=L+ zO^@m$OswtZ?tZgn<3YYk{MF63asHq*brGh358oet@Bjf{AwEeU8xUH?#{ssR$NM{O z0s&tkKA1oyK#c?{#D^28&;=wxe|L}k1OmQ%d^mv$gLq5Y=bj>2Bao}&B_ z2>R0T83~l1NVlYYZUSLnHa?xBCvzYafN5=OaR6aoHva18Eto)W)?#24Rtuo3&vG?0 zxRma9DD6>~zvQp6x);3w+L8rq|3JWtZ#x^TMc2in0G!xX0HrKoJ9j$De}mEo7tj;2 z&*Gq~muQfh`sRQF%hWfPXreUrZ2)o&Q{Pxu0LZsI7=va20r2Vo$J;(r-&mrJv#H++ zB?u)+62}aX))xYfOAn@grv#T|7c?@n|+7LGcJNibu0aw|Jzg{fp)gb&E&pf6^q>-MG)D0B9&89@?Z?Q z1qguN0os0SMdWJ$e=g4~*S<2K?MJ6XzB-`ghtEX5EFiRuFX!+-4dCz_FS{7{y{9LM z_tVVfCh7#e#z0}opQVmb!1M?ZE@1itsD6|$fQ;k(x#agB(D!X8-@5!50~T>sHeFa|aWMrXd?%j}x&#EbeK?OZ+A>v{XK_9v zz+~k0KKX2sP-^3hi;Of|)gsMj1tp1#-aq1@kB=75XQ|QyCONCBvKB$eW1JuIc-Ik9 zsG*OkZ-);Ue}l_u@djs@G@sWZ2;|?gB7D0Z@Z2XIU0LEgQ9zdoJzz!Jr%h9lcls{{ zEO`F>fMu%|ARBZsYfHF&k#7JfdC8A)lOgsMHQ#p*c)2}^_uEb#Yesor c`Uo=8e@XkeLO*|TYXATM07*qoM6N<$f|f1rNdN!< delta 1164 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 Q8xVrgGuC~lb1(XT0DW&)-T(jq literal 0 HcmV?d00001 From 82298cb59562f343c9d5b8000faedcc11f9ed002 Mon Sep 17 00:00:00 2001 From: Comxy Date: Fri, 24 May 2024 03:43:10 +0200 Subject: [PATCH 2/9] old_turret --- code/game/machinery/sentry_holder.dm | 5 +++++ code/modules/defenses/handheld.dm | 5 +++-- code/modules/defenses/sentry.dm | 19 ++++++++++++++++++ code/modules/defenses/sentry_flamer.dm | 2 +- .../machinery/defenses/wy_static.dmi | Bin 0 -> 2187 bytes 5 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 icons/obj/structures/machinery/defenses/wy_static.dmi diff --git a/code/game/machinery/sentry_holder.dm b/code/game/machinery/sentry_holder.dm index fe676e9103d2..39295f33b779 100644 --- a/code/game/machinery/sentry_holder.dm +++ b/code/game/machinery/sentry_holder.dm @@ -114,6 +114,11 @@ desc = "A box that deploys a sentry turret for protection of the residents in the area." turret_path = /obj/structure/machinery/defenses/sentry/premade/deployable/colony +/obj/structure/machinery/sentry_holder/wy + health = 200 + desc = "A box that deploys a sentry turret for protecting Weyland-Yutani personnel" + turret_path = /obj/structure/machinery/defenses/sentry/premade/deployable/wy + /obj/structure/machinery/sentry_holder/almayer turret_path = /obj/structure/machinery/defenses/sentry/premade/deployable/almayer require_red_alert = TRUE diff --git a/code/modules/defenses/handheld.dm b/code/modules/defenses/handheld.dm index 24c57771bb23..3df16409c2d8 100644 --- a/code/modules/defenses/handheld.dm +++ b/code/modules/defenses/handheld.dm @@ -145,7 +145,7 @@ /obj/item/defenses/handheld/sentry/wy name = "handheld WY 202-GMA1 smart sentry" - desc = "A compact version of the Weyland-Yutani defenses. Designed for area control for deployment of the associated type in the field." + desc = "A compact version of the Weyland-Yutani defenses. Designed for deployment in the field." icon = 'icons/obj/structures/machinery/defenses/wy_defenses.dmi' icon_state = "Normal wy_sentry_handheld" defense_type = /obj/structure/machinery/defenses/sentry/wy @@ -217,7 +217,7 @@ /obj/item/defenses/handheld/sentry/flamer/wy name = "handheld WY 406-FE2 smart sentry" - desc = "A compact version of the Weyland-Yutani defenses. Designed for quick deployment of the associated type in the field." + desc = "A compact version of the Weyland-Yutani defenses. Designed for deployment in the field." icon = 'icons/obj/structures/machinery/defenses/wy_defenses.dmi' icon_state = "Normal wy_flamer_handheld" defense_type = /obj/structure/machinery/defenses/sentry/flamer/wy @@ -324,6 +324,7 @@ /obj/item/defenses/handheld/planted_flag/wy name = "handheld WY planted flag" + desc = "A compact version of the Weyland-Yutani defenses. Designed for deployment in the field." icon = 'icons/obj/structures/machinery/defenses/wy_defenses.dmi' icon_state = "WY planted_flag_handheld" deployment_time = 3 SECONDS diff --git a/code/modules/defenses/sentry.dm b/code/modules/defenses/sentry.dm index ddd0d453d640..da5383a2a1bb 100644 --- a/code/modules/defenses/sentry.dm +++ b/code/modules/defenses/sentry.dm @@ -526,6 +526,23 @@ choice_categories[SENTRY_CATEGORY_IFF] = list(FACTION_COLONY, FACTION_WEYLAND) selected_categories[SENTRY_CATEGORY_IFF] = FACTION_COLONY +/obj/structure/machinery/defenses/sentry/premade/deployable/wy + name = "WY 5-GSE3 Static Turret" + desc = "An old static, semi-automated turret with AI targeting capabilities from Weyland-Yutani." + icon = 'icons/obj/structures/machinery/defenses/wy_static.dmi' + defense_type = "Static" + sentry_type = "wy_sentry" + health = 350 + health_max = 350 + faction_group = list(FACTION_MARINE, FACTION_COLONIST, FACTION_SURVIVOR) + fire_delay = 0.6 SECONDS + damage_mult = 2 + +/obj/structure/machinery/defenses/sentry/premade/deployable/wy/Initialize() + . = ..() + choice_categories[SENTRY_CATEGORY_IFF] = list(FACTION_COLONY, FACTION_WEYLAND) + selected_categories[SENTRY_CATEGORY_IFF] = FACTION_WEYLAND + /obj/structure/machinery/defenses/sentry/premade/deployable/almayer fire_delay = 4 omni_directional = TRUE @@ -725,6 +742,7 @@ /obj/structure/machinery/defenses/sentry/wy name = "WY 202-GMA1 Smart Sentry" + desc = "A deployable, fully-automated turret with AI targeting capabilities used by the PMC." icon = 'icons/obj/structures/machinery/defenses/wy_defenses.dmi' sentry_type = "wy_sentry" fire_delay = 2 SECONDS @@ -742,6 +760,7 @@ /obj/structure/machinery/defenses/sentry/mini/wy name = "WY 14-GRA2 Mini Sentry" + desc = "A deployable, semi-automated turret with AI targeting capabilities used by the PMC." icon = 'icons/obj/structures/machinery/defenses/wy_defenses.dmi' sentry_type = "wy_sentry" fire_delay = 0.08 SECONDS diff --git a/code/modules/defenses/sentry_flamer.dm b/code/modules/defenses/sentry_flamer.dm index 52e288b530f0..1d1f25c4a685 100644 --- a/code/modules/defenses/sentry_flamer.dm +++ b/code/modules/defenses/sentry_flamer.dm @@ -104,7 +104,7 @@ /obj/structure/machinery/defenses/sentry/flamer/wy name = "WY 406-FE2 Smart Sentry" icon = 'icons/obj/structures/machinery/defenses/wy_defenses.dmi' - desc = "A deployable, semi-automated turret with AI targeting capabilities used by the PMC. Armed with a special flamer and a 200 liters fuel tank." + desc = "A deployable, fully-automated turret with AI targeting capabilities used by the PMC." health = 300 health_max = 300 fire_delay = 2 SECONDS diff --git a/icons/obj/structures/machinery/defenses/wy_static.dmi b/icons/obj/structures/machinery/defenses/wy_static.dmi new file mode 100644 index 0000000000000000000000000000000000000000..db2159d7c55a632fa1997eb80fadbc58404872d1 GIT binary patch literal 2187 zcmV;62z2*}P)004jp0{{R3ySV=-0C=30(oYM5Fc=2#v-=c7FLjCjcGsRR{-b_DspNDc6%j&BcNC1(ss%bakw40aqzvxk@}WTxI`~KdPO`ZB zHBY6*taZ$>Qw0D32Lwq(K~#90?OTho;x-Ir1&&R2gJEcUOYi>wcUH0k4Y4FY5+2h* zcP=p4mQG|@mJi8h^O42!Ly@QJ2VfK^x>o^M(FEIVitxvVbrpTN62MaZ0I=IZ;zSY0 zdH@R>z#uw&X;#oCrTP(DXPvVN!gq;51m>*kELdxs6tqe)K({vpus7(&76q+R?!n$% zJ!o1Kv`R5Ri`a~_#yF#TaFP=q0#MRVD;Rxe@lBuNN!EH0KtVsjbLc&r0XWg{m?@U@ zlLx!bCaEw*antai7!>paW;mp(OB7&i;p{m~ z^_b}K1EO)$j#_&SKsy}rF~~Jh1!T~;=`hCV17etV)Y_}gBz|a~;tj0PW#KJBt-q@{pEhxb`Z5gJ=7dA3Ke*j|lCHkF`}X;vCaW zZ(m%oS5Xr!9<0&7SoCTu-~Rs>ZkfN8eQuePgzcf!N>%4F`!_i-nVcevN&zKB-%IGs zM`O-Iy#2}e!801{b_ck*(viR5Ok(Ni<6yUCdcyIjBINB)q(@0dx$Tb16f9Y=Na?hl zq>Fv1_ipRvw(vlCI;H$y&iE9qXNde?&i22sBq0R~Tpcum!_{9o4otpnv^!><##E)Xj# z7@H$Nrjx|~71$3#p)vAvtaSs!Azw;B^fa%6=l_cAQw+I2ULl{S&?&wEA;eY8HVOP+ znf;BiA&8CWL6kf~IE=Z6YZLgtBKtAM?KRJ)$}wJ=V!%&)F-Tqan3Dri&MJZ%9@xtyb|5su^^Z?pMEqjen z>VzT>H$|2rKy{*Sx=Z`$6(KY}}+>iNIZ zk>mfk`~N1=#y`HA|I6EdG5@F952IG*|7roM_Ctqt`9Fo8YTzHE=2iJW;oKd%H1dz@ z@_*Wyr;&eLo&OW?E#Mzl=KqB8i}=S?`9Bfh68>>b{!bWdm++6P@_(XS zQN&fq|Bqew~lzwjuAGXr?BqJoYJ?fG?a{NMRJ<^Reg z!~fYXkau{XQ0|`d1klezql|wnKzId62d_E*XFCi71pddLe~AiI{_krp4G3@aTztQ8 z>j|GVf5T=kjwkmS_5cK5m&;}PkFN~~qpriityRim=wtXt8EKsFI?qP_*VpAM{Kq%? zYscp~-i3%$mDt!&%EBOVNetctyj&Im4EVUiYrvMd%^8!Rb9@^5{{HUEq zLqCpUqTzmygUs{EwbmM3NFj(*=-G-3)aR2M05-TVZZ{JDr#_$Dgs`Q$$6Ad40VRB! zdp^0&)T%^Z{5to1@-sxPW=V3-C%=K@p00hlKk@(o literal 0 HcmV?d00001 From 16fa672e17932d13ca07567288c29098c716e105 Mon Sep 17 00:00:00 2001 From: Comxy Date: Fri, 24 May 2024 03:56:53 +0200 Subject: [PATCH 3/9] small_fix --- .../machinery/defenses/wy_static.dmi | Bin 2187 -> 2145 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/structures/machinery/defenses/wy_static.dmi b/icons/obj/structures/machinery/defenses/wy_static.dmi index db2159d7c55a632fa1997eb80fadbc58404872d1..92a8908802218f73524112cd1405f23d1d0f4197 100644 GIT binary patch delta 1897 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 Date: Fri, 24 May 2024 15:06:48 +0200 Subject: [PATCH 4/9] faction_fix --- code/modules/defenses/sentry.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/defenses/sentry.dm b/code/modules/defenses/sentry.dm index da5383a2a1bb..3d2850b89853 100644 --- a/code/modules/defenses/sentry.dm +++ b/code/modules/defenses/sentry.dm @@ -534,7 +534,7 @@ sentry_type = "wy_sentry" health = 350 health_max = 350 - faction_group = list(FACTION_MARINE, FACTION_COLONIST, FACTION_SURVIVOR) + faction_group = list(FACTION_MARINE, FACTION_COLONIST, FACTION_SURVIVOR, FACTION_WY) fire_delay = 0.6 SECONDS damage_mult = 2 From 951573e5c78e26390f0b2c09c136d8cff7f61964 Mon Sep 17 00:00:00 2001 From: Comxy Date: Mon, 27 May 2024 16:06:29 +0200 Subject: [PATCH 5/9] more_contrast --- .../machinery/defenses/wy_defenses.dmi | Bin 5322 -> 5306 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/structures/machinery/defenses/wy_defenses.dmi b/icons/obj/structures/machinery/defenses/wy_defenses.dmi index 46bd6d535a0aaec9869c15a36674b1f74dc0b608..09ea4a1e717ae3dea4e153a9934f888f933802f1 100644 GIT binary patch delta 4894 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 C!I{DU delta 4910 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 RTLyN#j10{6U+Ue8`5!>zp+x`y From f8d4c857865c340bebbe02ff2b6b4f4fb7c65593 Mon Sep 17 00:00:00 2001 From: Comxy Date: Mon, 3 Jun 2024 22:37:24 +0200 Subject: [PATCH 6/9] iconfixes_and_uppsentries --- code/datums/ammo/misc.dm | 4 ++ code/modules/defenses/defenses.dm | 2 + code/modules/defenses/handheld.dm | 39 ++++++++++++++ code/modules/defenses/planted_flag.dm | 15 ++++++ code/modules/defenses/sentry.dm | 49 +++++++++++++++++- code/modules/defenses/sentry_flamer.dm | 31 +++++++++++ code/modules/gear_presets/upp.dm | 12 ++--- .../modules/projectiles/magazines/sentries.dm | 17 ++++++ .../weapons/guns/ammo_by_faction/upp.dmi | Bin 9306 -> 10624 bytes .../machinery/defenses/upp_defenses.dmi | Bin 0 -> 4724 bytes .../machinery/defenses/wy_defenses.dmi | Bin 5306 -> 5315 bytes .../machinery/defenses/wy_heavy.dmi | Bin 0 -> 2232 bytes 12 files changed, 162 insertions(+), 7 deletions(-) create mode 100644 icons/obj/structures/machinery/defenses/upp_defenses.dmi create mode 100644 icons/obj/structures/machinery/defenses/wy_heavy.dmi diff --git a/code/datums/ammo/misc.dm b/code/datums/ammo/misc.dm index 4caa059d3c0b..46d893c31e2e 100644 --- a/code/datums/ammo/misc.dm +++ b/code/datums/ammo/misc.dm @@ -100,6 +100,10 @@ flamer_reagent_id = "stickynapalm" shell_speed = AMMO_SPEED_TIER_4 +/datum/ammo/flamethrower/sentry_flamer/upp + name = "gel fire" + flamer_reagent_id = "napalmgel" + /datum/ammo/flare name = "flare" ping = null //no bounce off. diff --git a/code/modules/defenses/defenses.dm b/code/modules/defenses/defenses.dm index b5e5cdf55766..d07b1e4979e2 100644 --- a/code/modules/defenses/defenses.dm +++ b/code/modules/defenses/defenses.dm @@ -144,6 +144,8 @@ faction_group = FACTION_LIST_HUMANOID if(FACTION_COLONY) faction_group = list(FACTION_MARINE, FACTION_COLONIST) + if(FACTION_UPP) + faction_group = FACTION_LIST_UPP /obj/structure/machinery/defenses/start_processing() diff --git a/code/modules/defenses/handheld.dm b/code/modules/defenses/handheld.dm index 3df16409c2d8..5b5831c9bb15 100644 --- a/code/modules/defenses/handheld.dm +++ b/code/modules/defenses/handheld.dm @@ -157,6 +157,28 @@ defense_type = /obj/structure/machinery/defenses/sentry/mini/wy deployment_time = 2 SECONDS +/obj/item/defenses/handheld/sentry/wy/heavy + name = "handheld WY 2-ADT-A3 heavy sentry" + icon = 'icons/obj/structures/machinery/defenses/wy_heavy.dmi' + icon_state = "Heavy wy_sentry_handheld" + defense_type = /obj/structure/machinery/defenses/sentry/dmr/wy + deployment_time = 10 SECONDS + +/obj/item/defenses/handheld/sentry/upp + name = "handheld UPP SDS-R3 sentry gun" + desc = "A compact version of the UPP defense sentry SDS-R1. Designed for deployment in the field." + icon = 'icons/obj/structures/machinery/defenses/upp_defenses.dmi' + icon_state = "Normal upp_sentry_handheld" + defense_type = /obj/structure/machinery/defenses/sentry/upp + deployment_time = 5 SECONDS + +/obj/item/defenses/handheld/sentry/upp/light + name = "handheld UPP SDS-R8 light sentry" + desc = "A compact version of the UPP defense sentry SDS-R7. Designed for deployment in the field." + icon_state = "Light upp_sentry_handheld" + defense_type = /obj/structure/machinery/defenses/sentry/upp/light + deployment_time = 2 SECONDS + // FLAMER BASE AND UPGRADES /obj/item/defenses/handheld/sentry/flamer name = "handheld UA 42-F sentry flamer" @@ -224,6 +246,15 @@ deployment_time = 5 SECONDS ammo_convert = /obj/item/ammo_magazine/sentry_flamer/wy +/obj/item/defenses/handheld/sentry/flamer/upp + name = "handheld UPP SDS-R5 sentry flamer" + desc = "A compact version of the UPP defenses. Designed for deployment in the field." + icon = 'icons/obj/structures/machinery/defenses/upp_defenses.dmi' + icon_state = "Normal upp_flamer_handheld" + defense_type = /obj/structure/machinery/defenses/sentry/flamer/upp + deployment_time = 5 SECONDS + ammo_convert = /obj/item/ammo_magazine/sentry_flamer/upp + // TESLA BASE AND UPGRADES /obj/item/defenses/handheld/tesla_coil @@ -330,3 +361,11 @@ deployment_time = 3 SECONDS defense_type = /obj/structure/machinery/defenses/planted_flag/wy +/obj/item/defenses/handheld/planted_flag/upp + name = "handheld UPP planted flag" + desc = "A compact version of the UPP defenses. Designed for deployment in the field." + icon = 'icons/obj/structures/machinery/defenses/upp_defenses.dmi' + icon_state = "UPP planted_flag_handheld" + deployment_time = 5 SECONDS + defense_type = /obj/structure/machinery/defenses/planted_flag/upp + diff --git a/code/modules/defenses/planted_flag.dm b/code/modules/defenses/planted_flag.dm index 657d031a2130..045161d97a2e 100644 --- a/code/modules/defenses/planted_flag.dm +++ b/code/modules/defenses/planted_flag.dm @@ -120,6 +120,7 @@ desc = "A planted flag with the iconic WY flag plastered all over it, you feel a burst of energy by its mere sight." icon = 'icons/obj/structures/machinery/defenses/wy_defenses.dmi' disassemble_time = 6 SECONDS + hack_time = 25 SECONDS health = 300 health_max = 300 area_range = 11 @@ -134,6 +135,20 @@ H.activate_order_buff(COMMAND_ORDER_FOCUS, buff_intensity, 2 SECONDS) H.activate_order_buff(COMMAND_ORDER_MOVE, buff_intensity, 2 SECONDS) +/obj/structure/machinery/defenses/planted_flag/upp + name = "UPP planted flag" + desc = "A planted flag with the iconic UPP flag plastered all over it, you feel a burst of energy by its mere sight." + icon = 'icons/obj/structures/machinery/defenses/upp_defenses.dmi' + disassemble_time = 5 SECONDS + health = 300 + health_max = 300 + area_range = 11 + handheld_type = /obj/item/defenses/handheld/planted_flag/upp + defense_type = "UPP" + selected_categories = list( + SENTRY_CATEGORY_IFF = FACTION_UPP, + ) + /obj/item/storage/backpack/jima name = "JIMA frame mount" icon = 'icons/obj/items/clothing/backpacks.dmi' diff --git a/code/modules/defenses/sentry.dm b/code/modules/defenses/sentry.dm index 3d2850b89853..d336c65eabba 100644 --- a/code/modules/defenses/sentry.dm +++ b/code/modules/defenses/sentry.dm @@ -45,7 +45,7 @@ /// action list is configurable for all subtypes, this is just an example choice_categories = list( // SENTRY_CATEGORY_ROF = list(ROF_SINGLE, ROF_BURST, ROF_FULL_AUTO), - SENTRY_CATEGORY_IFF = list(FACTION_MARINE, FACTION_WEYLAND, FACTION_HUMAN), + SENTRY_CATEGORY_IFF = list(FACTION_MARINE, FACTION_WEYLAND, FACTION_HUMAN, FACTION_UPP), ) selected_categories = list( @@ -750,6 +750,7 @@ health_max = 350 damage_mult = 3.5 disassemble_time = 5 SECONDS + hack_time = 25 SECONDS sentry_range = 6 omni_directional = TRUE handheld_type = /obj/item/defenses/handheld/sentry/wy @@ -768,11 +769,57 @@ health_max = 200 damage_mult = 0.3 disassemble_time = 2 SECONDS + hack_time = 25 SECONDS handheld_type = /obj/item/defenses/handheld/sentry/wy/mini ammo = new /obj/item/ammo_magazine/sentry/wy/mini selected_categories = list( SENTRY_CATEGORY_IFF = FACTION_WEYLAND, ) +/obj/structure/machinery/defenses/sentry/dmr/wy + name = "WY 2-ADT-A3 Heavy Sentry" + desc = "A deployable, semi-automated turret with AI targeting capabilities used by the PMC." + defense_type = "Heavy" + icon = 'icons/obj/structures/machinery/defenses/wy_heavy.dmi' + sentry_type = "wy_sentry" + fire_delay = 4 SECONDS + health = 600 + health_max = 600 + damage_mult = 5 + disassemble_time = 10 SECONDS + hack_time = 25 SECONDS + sentry_range = 8 + handheld_type = /obj/item/defenses/handheld/sentry/wy + ammo = new /obj/item/ammo_magazine/sentry/wy + selected_categories = list( + SENTRY_CATEGORY_IFF = FACTION_WEYLAND, + ) + +/obj/structure/machinery/defenses/sentry/upp + name = "UPP SDS-R3 Sentry Gun" + desc = "A deployable, fully-automated turret with AI targeting capabilities used by the UPP." + icon = 'icons/obj/structures/machinery/defenses/upp_defenses.dmi' + sentry_type = "upp_sentry" + health = 300 + health_max = 300 + damage_mult = 1.2 + disassemble_time = 5 SECONDS + handheld_type = /obj/item/defenses/handheld/sentry/upp + ammo = new /obj/item/ammo_magazine/sentry/upp + selected_categories = list( + SENTRY_CATEGORY_IFF = FACTION_UPP, + ) + +/obj/structure/machinery/defenses/sentry/upp/light + name = "UPP SDS-R8 Light Sentry" + defense_type = "Light" + fire_delay = 0.3 SECONDS + health = 200 + health_max = 200 + disassemble_time = 2 SECONDS + sentry_range = 3 + omni_directional = TRUE + handheld_type = /obj/item/defenses/handheld/sentry/upp/light + #undef SENTRY_FIREANGLE #undef SENTRY_RANGE diff --git a/code/modules/defenses/sentry_flamer.dm b/code/modules/defenses/sentry_flamer.dm index 1d1f25c4a685..42177a849c1a 100644 --- a/code/modules/defenses/sentry_flamer.dm +++ b/code/modules/defenses/sentry_flamer.dm @@ -133,3 +133,34 @@ cell_explosion(loc, 10, 10, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, create_cause_data("sentry explosion", owner_mob)) if(!QDELETED(src)) qdel(src) + + +/obj/structure/machinery/defenses/sentry/flamer/upp + name = "UPP SDS-R5 Sentry Flamer" + icon = 'icons/obj/structures/machinery/defenses/upp_defenses.dmi' + desc = "A deployable, fully-automated turret with AI targeting capabilities used by the UPP." + health = 300 + health_max = 300 + fire_delay = 1 SECONDS + disassemble_time = 5 SECONDS + ammo = new /obj/item/ammo_magazine/sentry_flamer/upp + sentry_type = "upp_flamer" + handheld_type = /obj/item/defenses/handheld/sentry/flamer/upp + selected_categories = list( + SENTRY_CATEGORY_ROF = ROF_SINGLE, + SENTRY_CATEGORY_IFF = FACTION_UPP, + ) + +/obj/structure/machinery/defenses/sentry/flamer/upp/destroyed_action() + visible_message("[icon2html(src, viewers(src))] [SPAN_WARNING("The [name] starts spitting out sparks and smoke!")]") + playsound(loc, 'sound/mecha/critdestrsyndi.ogg', 25, 1) + for(var/i = 1 to 6) + setDir(pick(NORTH, EAST, SOUTH, WEST)) + sleep(2) + + if(ammo.current_rounds != 0) + var/datum/reagent/napalm/gel/gel_napalm = new() + new /obj/flamer_fire(loc, create_cause_data("sentry explosion", owner_mob), gel_napalm, 2) + cell_explosion(loc, 10, 10, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, create_cause_data("sentry explosion", owner_mob)) + if(!QDELETED(src)) + qdel(src) diff --git a/code/modules/gear_presets/upp.dm b/code/modules/gear_presets/upp.dm index 450662ba25c3..417a893ffdee 100644 --- a/code/modules/gear_presets/upp.dm +++ b/code/modules/gear_presets/upp.dm @@ -418,7 +418,7 @@ new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK) //.33 new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK) //.66 new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector/hacked, WEAR_IN_BACK) //1.66 - new_human.equip_to_slot_or_del(new /obj/item/defenses/handheld/sentry/mini, WEAR_IN_BACK) //2.66 + new_human.equip_to_slot_or_del(new /obj/item/defenses/handheld/sentry/upp/light, WEAR_IN_BACK) //2.66 //face new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/cct, WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding(new_human), WEAR_EYES) @@ -491,9 +491,9 @@ list("Essential Sapper Set", 0, /obj/effect/essentials_set/engi, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), list("HANDHELD DEFENSE (CHOOSE 1)", 0, null, null, null), - list("JIMA Planted Flag", 0, /obj/item/defenses/handheld/planted_flag, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), - list("UA 42-F Sentry Flamer", 0, /obj/item/defenses/handheld/sentry/flamer, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), - list("UA 571-C Sentry Gun", 0, /obj/item/defenses/handheld/sentry, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), + list("UPP Planted Flag", 0, /obj/item/defenses/handheld/planted_flag/upp, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), + list("UPP SDS-R5 Sentry Flamer", 0, /obj/item/defenses/handheld/sentry/flamer/upp, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), + list("UPP SDS-R3 Sentry Gun", 0, /obj/item/defenses/handheld/sentry/upp, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_MANDATORY), list("ENGINEERING SUPPLIES", 0, null, null, null), list("Airlock Circuit Board", 2, /obj/item/circuitboard/airlock, null, VENDOR_ITEM_REGULAR), @@ -2566,8 +2566,8 @@ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/np92, WEAR_IN_BACK) //1.3 new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/np92, WEAR_IN_BACK) //1.6 new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/np92, WEAR_IN_BACK) //2 - new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector/hacked, WEAR_IN_BACK) //3 - new_human.equip_to_slot_or_del(new /obj/item/defenses/handheld/sentry/mini, WEAR_IN_BACK) //4 + new_human.equip_to_slot_or_del(new /obj/item/defenses/handheld/sentry/upp/light, WEAR_IN_BACK) //3 + new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector/hacked, WEAR_IN_BACK) //4 //face new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/cct, WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/welding(new_human), WEAR_EYES) diff --git a/code/modules/projectiles/magazines/sentries.dm b/code/modules/projectiles/magazines/sentries.dm index 4cbc963520ae..c76688d97a4e 100644 --- a/code/modules/projectiles/magazines/sentries.dm +++ b/code/modules/projectiles/magazines/sentries.dm @@ -45,6 +45,14 @@ caliber = "10x12mm" max_rounds = 1000 +/obj/item/ammo_magazine/sentry/upp + name = "SR32 ammo drum (10x32mm Caseless)" + desc = "An ammo drum of 200 10x32mm caseless rounds for the UPP SDS-R3 Sentry Gun. Just feed it into the sentry gun's ammo port when its ammo is depleted." + icon = 'icons/obj/items/weapons/guns/ammo_by_faction/upp.dmi' + icon_state = "uppsds4" + caliber = "10x42mm" + max_rounds = 200 + // FLAMER Sentry /obj/item/ammo_magazine/sentry_flamer name = "sentry incinerator tank" @@ -76,3 +84,12 @@ caliber = "Sticky Napalm" max_rounds = 200 default_ammo = /datum/ammo/flamethrower/sentry_flamer/wy + +/obj/item/ammo_magazine/sentry_flamer/upp + name = "upp sentry incinerator tank" + desc = "A fuel tank of Ultra Thick Gel Napthal Fuel, used in the UPP SDS-R5 Sentry Flamer." + icon = 'icons/obj/items/weapons/guns/ammo_by_faction/upp.dmi' + icon_state = "uppsds4" + caliber = "Sticky Napalm" + max_rounds = 200 + default_ammo = /datum/ammo/flamethrower/sentry_flamer/upp diff --git a/icons/obj/items/weapons/guns/ammo_by_faction/upp.dmi b/icons/obj/items/weapons/guns/ammo_by_faction/upp.dmi index 5632ca31481e3b9d955271dca2e0c5a4b41fd84d..7327bf6a611bf631756d684ab02b305a05dd021a 100644 GIT binary patch literal 10624 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 A!vFvP diff --git a/icons/obj/structures/machinery/defenses/wy_heavy.dmi b/icons/obj/structures/machinery/defenses/wy_heavy.dmi new file mode 100644 index 0000000000000000000000000000000000000000..a6a7fbf49c8e835ab9474a22f03edf2b543a3b96 GIT binary patch literal 2232 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 Date: Tue, 4 Jun 2024 19:36:27 +0200 Subject: [PATCH 7/9] ah --- code/modules/defenses/sentry.dm | 6 +++--- code/modules/defenses/sentry_flamer.dm | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/defenses/sentry.dm b/code/modules/defenses/sentry.dm index bf729fbde99c..4e01fd311e12 100644 --- a/code/modules/defenses/sentry.dm +++ b/code/modules/defenses/sentry.dm @@ -773,7 +773,7 @@ handheld_type = /obj/item/defenses/handheld/sentry/wy ammo = new /obj/item/ammo_magazine/sentry/wy selected_categories = list( - SENTRY_CATEGORY_IFF = FACTION_WEYLAND, + SENTRY_CATEGORY_IFF = SENRTY_FACTION_WEYLAND, ) /obj/structure/machinery/defenses/sentry/mini/wy @@ -790,7 +790,7 @@ handheld_type = /obj/item/defenses/handheld/sentry/wy/mini ammo = new /obj/item/ammo_magazine/sentry/wy/mini selected_categories = list( - SENTRY_CATEGORY_IFF = FACTION_WEYLAND, + SENTRY_CATEGORY_IFF = SENRTY_FACTION_WEYLAND, ) /obj/structure/machinery/defenses/sentry/dmr/wy @@ -809,7 +809,7 @@ handheld_type = /obj/item/defenses/handheld/sentry/wy ammo = new /obj/item/ammo_magazine/sentry/wy selected_categories = list( - SENTRY_CATEGORY_IFF = FACTION_WEYLAND, + SENTRY_CATEGORY_IFF = SENRTY_FACTION_WEYLAND, ) /obj/structure/machinery/defenses/sentry/upp diff --git a/code/modules/defenses/sentry_flamer.dm b/code/modules/defenses/sentry_flamer.dm index d64142b2f540..0d1b90181021 100644 --- a/code/modules/defenses/sentry_flamer.dm +++ b/code/modules/defenses/sentry_flamer.dm @@ -117,7 +117,7 @@ handheld_type = /obj/item/defenses/handheld/sentry/flamer/wy selected_categories = list( SENTRY_CATEGORY_ROF = ROF_SINGLE, - SENTRY_CATEGORY_IFF = FACTION_WEYLAND, + SENTRY_CATEGORY_IFF = SENRTY_FACTION_WEYLAND, ) /obj/structure/machinery/defenses/sentry/flamer/wy/destroyed_action() From 7b36828abeee422d75913fcdf1bc2e862d913328 Mon Sep 17 00:00:00 2001 From: Comxy Date: Tue, 4 Jun 2024 21:32:06 +0200 Subject: [PATCH 8/9] abcdefgo --- code/modules/defenses/planted_flag.dm | 2 +- code/modules/defenses/sentry.dm | 6 +++--- code/modules/defenses/sentry_flamer.dm | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/defenses/planted_flag.dm b/code/modules/defenses/planted_flag.dm index 014e3fe6b419..d2b9b23e8f3b 100644 --- a/code/modules/defenses/planted_flag.dm +++ b/code/modules/defenses/planted_flag.dm @@ -127,7 +127,7 @@ handheld_type = /obj/item/defenses/handheld/planted_flag/wy defense_type = "WY" selected_categories = list( - SENTRY_CATEGORY_IFF = FACTION_WEYLAND, + SENTRY_CATEGORY_IFF = SENTRY_FACTION_WEYLAND, ) /obj/structure/machinery/defenses/planted_flag/wy/apply_buff_to_player(mob/living/carbon/human/H) diff --git a/code/modules/defenses/sentry.dm b/code/modules/defenses/sentry.dm index 4e01fd311e12..11b53fd4a317 100644 --- a/code/modules/defenses/sentry.dm +++ b/code/modules/defenses/sentry.dm @@ -773,7 +773,7 @@ handheld_type = /obj/item/defenses/handheld/sentry/wy ammo = new /obj/item/ammo_magazine/sentry/wy selected_categories = list( - SENTRY_CATEGORY_IFF = SENRTY_FACTION_WEYLAND, + SENTRY_CATEGORY_IFF = SENTRY_FACTION_WEYLAND, ) /obj/structure/machinery/defenses/sentry/mini/wy @@ -790,7 +790,7 @@ handheld_type = /obj/item/defenses/handheld/sentry/wy/mini ammo = new /obj/item/ammo_magazine/sentry/wy/mini selected_categories = list( - SENTRY_CATEGORY_IFF = SENRTY_FACTION_WEYLAND, + SENTRY_CATEGORY_IFF = SENTRY_FACTION_WEYLAND, ) /obj/structure/machinery/defenses/sentry/dmr/wy @@ -809,7 +809,7 @@ handheld_type = /obj/item/defenses/handheld/sentry/wy ammo = new /obj/item/ammo_magazine/sentry/wy selected_categories = list( - SENTRY_CATEGORY_IFF = SENRTY_FACTION_WEYLAND, + SENTRY_CATEGORY_IFF = SENTRY_FACTION_WEYLAND, ) /obj/structure/machinery/defenses/sentry/upp diff --git a/code/modules/defenses/sentry_flamer.dm b/code/modules/defenses/sentry_flamer.dm index 0d1b90181021..979d18eb41d1 100644 --- a/code/modules/defenses/sentry_flamer.dm +++ b/code/modules/defenses/sentry_flamer.dm @@ -117,7 +117,7 @@ handheld_type = /obj/item/defenses/handheld/sentry/flamer/wy selected_categories = list( SENTRY_CATEGORY_ROF = ROF_SINGLE, - SENTRY_CATEGORY_IFF = SENRTY_FACTION_WEYLAND, + SENTRY_CATEGORY_IFF = SENTRY_FACTION_WEYLAND, ) /obj/structure/machinery/defenses/sentry/flamer/wy/destroyed_action() From 716f66f5df51060b5d7e96dc276405afab9408cc Mon Sep 17 00:00:00 2001 From: Comxy Date: Wed, 5 Jun 2024 21:57:11 +0200 Subject: [PATCH 9/9] add_wy_only --- code/modules/defenses/defenses.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/modules/defenses/defenses.dm b/code/modules/defenses/defenses.dm index 1bb730969276..61c5a80a2473 100644 --- a/code/modules/defenses/defenses.dm +++ b/code/modules/defenses/defenses.dm @@ -138,12 +138,14 @@ switch(selection) if(FACTION_MARINE) faction_group = FACTION_LIST_MARINE - if(SENTRY_FACTION_WEYLAND) - faction_group = FACTION_LIST_MARINE_WY if(SENTRY_FACTION_HUMAN) faction_group = FACTION_LIST_HUMANOID if(SENTRY_FACTION_COLONY) faction_group = list(FACTION_MARINE, FACTION_COLONIST) + if(SENTRY_FACTION_WEYLAND) + faction_group = FACTION_LIST_MARINE_WY + if(FACTION_WY) + faction_group = FACTION_LIST_WY if(FACTION_UPP) faction_group = FACTION_LIST_UPP