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/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..e96ae8df5ba3 100644 --- a/html/changelogs/archive/2024-05.yml +++ b/html/changelogs/archive/2024-05.yml @@ -296,3 +296,7 @@ - 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. 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 4d84eb26487f..efe69b1b9cfb 100644 --- a/maps/map_files/USS_Almayer/USS_Almayer.dmm +++ b/maps/map_files/USS_Almayer/USS_Almayer.dmm @@ -23036,6 +23036,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 @@ -140719,7 +140725,7 @@ daz daz eKJ yaZ -ffE +dJC hZj clw daz @@ -141531,7 +141537,7 @@ daz daz eKJ yaZ -ffE +dJC hZj fQD daz