diff --git a/code/game/machinery/kitchen/gibber.dm b/code/game/machinery/kitchen/gibber.dm index 4b68b397116e..b71fb51a49de 100644 --- a/code/game/machinery/kitchen/gibber.dm +++ b/code/game/machinery/kitchen/gibber.dm @@ -262,13 +262,12 @@ occupant.death(create_cause_data("gibber", user), TRUE) occupant.ghostize() + addtimer(CALLBACK(src, PROC_REF(create_gibs), totalslabs, allmeat), gibtime) if(synthetic) to_chat(occupant, SPAN_HIGHDANGER("You can detect your limbs being ripped off your body, but it begins to malfunction as it reaches your torso!")) - addtimer(CALLBACK(src, PROC_REF(create_gibs), totalslabs, allmeat), gibtime) addtimer(CALLBACK(src, PROC_REF(go_out), TRUE), gibtime) - return - - QDEL_NULL(occupant) + else + QDEL_NULL(occupant) /obj/structure/machinery/gibber/proc/create_gibs(totalslabs, list/obj/item/reagent_container/food/snacks/allmeat) playsound(loc, 'sound/effects/splat.ogg', 25, 1) diff --git a/code/game/machinery/sentry_holder.dm b/code/game/machinery/sentry_holder.dm index fe676e9103d2..255e718f40b8 100644 --- a/code/game/machinery/sentry_holder.dm +++ b/code/game/machinery/sentry_holder.dm @@ -16,6 +16,7 @@ var/ox = 0 var/oy = 0 var/require_red_alert = FALSE + var/base_icon_state = "sentry_system" /obj/structure/machinery/sentry_holder/Initialize() . = ..() @@ -76,13 +77,14 @@ deployment_cooldown = world.time + 50 deployed_turret.turned_on = TRUE deployed_turret.forceMove(loc) - icon_state = "sentry_system_deployed" + icon_state = "[base_icon_state]_deployed" - for(var/mob/M in deployed_turret.loc) - if(deployed_turret.loc == src.loc) - step(M, deployed_turret.dir) - else - step(M, get_dir(src,deployed_turret)) + if(deployed_turret.density) + for(var/mob/blocking_mob in deployed_turret.loc) + if(deployed_turret.loc == loc) + step(blocking_mob, deployed_turret.dir) + else + step(blocking_mob, get_dir(src, deployed_turret)) deployed_turret.setDir(dir) deployed_turret.pixel_x = 0 @@ -103,7 +105,7 @@ deployed_turret.unset_range() pixel_x = ox pixel_y = oy - icon_state = "sentry_system_installed" + icon_state = "[base_icon_state]_installed" /obj/structure/machinery/sentry_holder/Destroy() QDEL_NULL(deployed_turret) @@ -115,5 +117,29 @@ turret_path = /obj/structure/machinery/defenses/sentry/premade/deployable/colony /obj/structure/machinery/sentry_holder/almayer + icon_state = "floor_sentry_installed" turret_path = /obj/structure/machinery/defenses/sentry/premade/deployable/almayer + base_icon_state = "floor_sentry" require_red_alert = TRUE + +/obj/structure/machinery/sentry_holder/almayer/mini + turret_path = /obj/structure/machinery/defenses/sentry/premade/deployable/almayer/mini + +/obj/structure/machinery/sentry_holder/almayer/mini/aicore + +/obj/structure/machinery/sentry_holder/almayer/mini/aicore/Initialize() + . = ..() + RegisterSignal(SSdcs, COMSIG_GLOB_AICORE_LOCKDOWN, PROC_REF(auto_deploy)) + RegisterSignal(SSdcs, COMSIG_GLOB_AICORE_LIFT, PROC_REF(undeploy_sentry)) + +/obj/structure/machinery/sentry_holder/almayer/mini/aicore/proc/auto_deploy() + if(deployed_turret.loc == src) //not deployed + if(stat & NOPOWER) + return FALSE + + deploy_sentry() + return TRUE + +/obj/structure/machinery/sentry_holder/almayer/mini/aicore/attack_hand(mob/user) + to_chat(user, SPAN_WARNING("[src] can only be deployed remotely.")) + return diff --git a/code/game/machinery/vending/vendor_types/supplies.dm b/code/game/machinery/vending/vendor_types/supplies.dm index 376edf7ffc5d..a363e2e03f64 100644 --- a/code/game/machinery/vending/vendor_types/supplies.dm +++ b/code/game/machinery/vending/vendor_types/supplies.dm @@ -28,6 +28,7 @@ list("M94 Marking Flare Pack", 5, /obj/item/storage/box/m94, VENDOR_ITEM_REGULAR), list("M5 Bayonet", 8, /obj/item/attachable/bayonet, VENDOR_ITEM_REGULAR), list("Handheld Radio", 5, /obj/item/device/radio, VENDOR_ITEM_REGULAR), + list("deck of UNO cards", 5, /obj/item/toy/deck/uno, VENDOR_ITEM_REGULAR), list("CLOTHING", -1, null, null), list("Gas Mask", 15, /obj/item/clothing/mask/gas, VENDOR_ITEM_REGULAR), diff --git a/code/modules/defenses/sentry.dm b/code/modules/defenses/sentry.dm index 954e6adca7ec..543dfcefe5bc 100644 --- a/code/modules/defenses/sentry.dm +++ b/code/modules/defenses/sentry.dm @@ -527,9 +527,26 @@ selected_categories[SENTRY_CATEGORY_IFF] = FACTION_COLONY /obj/structure/machinery/defenses/sentry/premade/deployable/almayer - fire_delay = 4 + name = "UA-635C Static Gauss Turret" + desc = "A fully-automated defence turret with mid-range targeting capabilities. Armed with a modified M32-S Autocannon and an internal belt feed and modified for UA warship use." + fire_delay = 0.4 SECONDS omni_directional = TRUE +/obj/structure/machinery/defenses/sentry/premade/deployable/almayer/mini + name = "UA 512-S mini sentry" + desc = "A fully-automated defence turret with mid-range targeting capabilities. Armed with a modified M30 Autocannon and an internal belt feed and modified for UA warship use." + defense_type = "Mini" + fire_delay = 0.25 SECONDS + health = 150 + health_max = 150 + damage_mult = 0.6 + density = FALSE + layer = BELOW_MOB_LAYER + disassemble_time = 0.75 SECONDS + handheld_type = /obj/item/defenses/handheld/sentry/mini + composite_icon = FALSE + + //the turret inside the shuttle sentry deployment system /obj/structure/machinery/defenses/sentry/premade/dropship density = TRUE diff --git a/html/changelogs/archive/2024-05.yml b/html/changelogs/archive/2024-05.yml index ac777fecd5cc..b3de5e9ecdd0 100644 --- a/html/changelogs/archive/2024-05.yml +++ b/html/changelogs/archive/2024-05.yml @@ -296,3 +296,12 @@ - bugfix: Fixed ARES remote interface UI crash relating to flight logs. - rscadd: Added access check for use of escape pod consoles, and access requirement on the CLs pod. +2024-05-26: + realforest2001: + - imageadd: added sprites for floor-mounted sentry deployment systems. + - rscadd: Added mini-sentry deployment systems, and an AI Core subtype. +2024-05-27: + neeshacark: + - rscadd: lifeboats now come stocked with uno cards, for all your fun-filled needs + vero5123: + - bugfix: Fixes non-synthetic mobs getting stuck in the gibber diff --git a/icons/obj/structures/props/almayer_props.dmi b/icons/obj/structures/props/almayer_props.dmi index e928213f8f30..013a542941a1 100644 Binary files a/icons/obj/structures/props/almayer_props.dmi and b/icons/obj/structures/props/almayer_props.dmi differ diff --git a/maps/map_files/USS_Almayer/USS_Almayer.dmm b/maps/map_files/USS_Almayer/USS_Almayer.dmm index d6b44c96bc97..111e07db5a75 100644 --- a/maps/map_files/USS_Almayer/USS_Almayer.dmm +++ b/maps/map_files/USS_Almayer/USS_Almayer.dmm @@ -23011,6 +23011,12 @@ icon_state = "plate" }, /area/almayer/maint/hull/upper/p_bow) +"dJC" = ( +/obj/structure/machinery/sentry_holder/almayer/mini/aicore, +/turf/open/floor/almayer/no_build{ + icon_state = "plating" + }, +/area/almayer/command/airoom) "dJG" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -141210,7 +141216,7 @@ daz daz eKJ yaZ -ffE +dJC hZj clw daz @@ -142022,7 +142028,7 @@ daz daz eKJ yaZ -ffE +dJC hZj fQD daz