Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
99af80f
Removes Duplicate Flashlight Grip entries in M37 and M37A2 attachment…
MistChristmas Aug 20, 2025
9a48c3c
Automatic changelog for PR #10413 [ci skip]
cmss13-ci[bot] Aug 20, 2025
7304eac
Takes The Femboy Description Out Back (And Shoots It) (#10396)
thevandie Aug 20, 2025
c42fe20
Automatic changelog for PR #10396 [ci skip]
cmss13-ci[bot] Aug 20, 2025
1a7e4e4
framework
SpypigDev Aug 20, 2025
58ee652
Automatic changelog compile [ci skip]
cmss13-ci[bot] Aug 21, 2025
3b6a1d4
The Overthrall & Blooded Thralls (#9493)
MeH0y Aug 22, 2025
1c2e92d
Wearable Syringes (#10241)
Icarus-The-Sun Aug 22, 2025
0c25b9f
Automatic changelog for PR #9493 [ci skip]
cmss13-ci[bot] Aug 22, 2025
80f35fe
Automatic changelog for PR #10241 [ci skip]
cmss13-ci[bot] Aug 22, 2025
694c4ad
Changes hivelord minimum evolve time from 3 minutes to 4 minutes (#10…
Vicacrov Aug 22, 2025
e3c2c7e
Automatic changelog for PR #10242 [ci skip]
cmss13-ci[bot] Aug 22, 2025
a962d66
Berserker Rav Description Fix (#10410)
Blue-Fox5 Aug 22, 2025
599330b
fixes some vehicle vend code (#10429)
Red-byte3D Aug 22, 2025
b5883eb
Automatic changelog for PR #10410 [ci skip]
cmss13-ci[bot] Aug 22, 2025
e94496a
fixes light fixture deconstruction getting stuck on removing the ligh…
SirNightKnight Aug 22, 2025
c688a7d
Automatic changelog for PR #10421 [ci skip]
cmss13-ci[bot] Aug 22, 2025
7312234
Automatic changelog for PR #10429 [ci skip]
cmss13-ci[bot] Aug 22, 2025
7009ea4
boilers are vulnerable to crossing flames as intended (#10257)
jupyterkat Aug 22, 2025
aa22137
Automatic changelog for PR #10257 [ci skip]
cmss13-ci[bot] Aug 22, 2025
acea3df
CO surv bugfixes bugfixes (#10398)
BOBAMAx Aug 22, 2025
4308c27
Automatic changelog for PR #10398 [ci skip]
cmss13-ci[bot] Aug 22, 2025
83de31f
Makes /area/interior NO_TUNNEL (#10449)
Bibby0110 Aug 22, 2025
54bcb9e
Automatic changelog for PR #10449 [ci skip]
cmss13-ci[bot] Aug 22, 2025
02eb63b
Speech bubble update (#8959)
Blundir Aug 22, 2025
d7e638f
Automatic changelog for PR #8959 [ci skip]
cmss13-ci[bot] Aug 22, 2025
c8803b2
Fixes spec guns blowing up (#10268)
Red-byte3D Aug 22, 2025
8ad83b4
Automatic changelog for PR #10268 [ci skip]
cmss13-ci[bot] Aug 22, 2025
efc3470
Prevents climbing with C4 and subtypes in-hand (#10452)
Bibby0110 Aug 22, 2025
448c55e
Automatic changelog for PR #10452 [ci skip]
cmss13-ci[bot] Aug 22, 2025
1d5fca2
Fixes an infinite metal glitch involving walls (#10460)
Bibby0110 Aug 22, 2025
ce95643
Automatic changelog for PR #10460 [ci skip]
cmss13-ci[bot] Aug 22, 2025
5fcf156
Fixes CL briefcase typo (#10455)
Bibby0110 Aug 22, 2025
4b0dcf1
Automatic changelog for PR #10455 [ci skip]
cmss13-ci[bot] Aug 22, 2025
a758517
Automatic changelog compile [ci skip]
cmss13-ci[bot] Aug 23, 2025
5e81a4f
Logo floor decals (#9579)
realforest2001 Aug 23, 2025
b664c22
Automatic changelog for PR #9579 [ci skip]
cmss13-ci[bot] Aug 23, 2025
c920959
downstream update
SpypigDev Aug 23, 2025
a6f7590
updates
SpypigDev Aug 23, 2025
4715752
Merge branch 'stealth-mode' of https://github.com/SpypigDev/ComTweak …
SpypigDev Aug 23, 2025
9e1c1f1
Revert "Merge branch 'stealth-mode' of https://github.com/SpypigDev/C…
SpypigDev Aug 23, 2025
489571b
Merge branch 'cmss13-devs:master' into stealth-mode
SpypigDev Aug 23, 2025
dec33fe
Revert "Merge branch 'cmss13-devs:master' into stealth-mode"
SpypigDev Aug 23, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions code/__DEFINES/dcs/signals/atom/signals_obj.dm
Original file line number Diff line number Diff line change
Expand Up @@ -64,3 +64,6 @@
// from /obj/item/device/binoculars/range/designator/acquire_target()
#define COMSIG_DESIGNATOR_LASE "comsig_designator_lase"
#define COMSIG_DESIGNATOR_LASE_OFF "comsig_designator_lase_off"

/// from /obj/vehicle/multitile/blackfoot/add_seated_verbs()
#define COMSIG_BLACKFOOT_ACTIONS_UPDATE "comsig_blackfoot_actions_update"
15 changes: 15 additions & 0 deletions code/modules/vehicles/blackfoot/blackfoot.dm
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
bound_y = 0

interior_map = /datum/map_template/interior/blackfoot
var/area/interior_area

move_max_momentum = 2.2
move_momentum_build_factor = 1.5
Expand All @@ -45,6 +46,7 @@
/obj/item/hardpoint/primary/blackfoot_launchers,
/obj/item/hardpoint/support/sensor_array,
/obj/item/hardpoint/secondary/doorgun,
/obj/item/hardpoint/support/recon_system,
)

entrances = list(
Expand Down Expand Up @@ -79,6 +81,9 @@

var/state = STATE_STOWED

/// used by the recon_system module to allow the VTOL to 'run dark'
var/stealth_mode = FALSE

COOLDOWN_DECLARE(turn_cooldown)
COOLDOWN_DECLARE(flight_sound_cooldown)

Expand Down Expand Up @@ -357,6 +362,8 @@
give_action(M, /datum/action/human_action/blackfoot/toggle_engines)
give_action(M, /datum/action/human_action/blackfoot/toggle_targeting)

SEND_SIGNAL(src, COMSIG_BLACKFOOT_ACTIONS_UPDATE)

for(var/atom/movable/screen/blackfoot/screen_to_add as anything in custom_hud)
M.client.add_to_screen(screen_to_add)
screen_to_add.update(fuel, max_fuel, health, maxhealth, battery, max_battery)
Expand Down Expand Up @@ -444,6 +451,8 @@
if(launchers)
launchers.safety = TRUE

SEND_SIGNAL(src, COMSIG_BLACKFOOT_ACTIONS_UPDATE, TRUE)

for(var/atom/movable/screen/blackfoot/screen_to_remove as anything in custom_hud)
M.client.remove_from_screen(screen_to_remove)

Expand Down Expand Up @@ -895,6 +904,12 @@
vehicle.toggle_stowed()
return

/obj/vehicle/multitile/blackfoot/perform_honk()
if(stealth_mode)
to_chat(seats[VEHICLE_DRIVER], SPAN_WARNING("Perhaps sounding the horn isn't the best way to be stealthy?"))
return
if(honk_sound)
playsound(loc, honk_sound, 75, TRUE, 15) //heard within ~15 tiles

/datum/action/human_action/blackfoot/New(Target, obj/item/holder)
. = ..()
Expand Down
4 changes: 4 additions & 0 deletions code/modules/vehicles/blackfoot/interior.dm
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,10 @@
if(istype(interior.exterior, /obj/vehicle/multitile/blackfoot))
var/obj/vehicle/multitile/blackfoot/linked_blackfoot = interior.exterior
loader.linked_blackfoot = linked_blackfoot
var/area/interior_area = get_area(loader)
linked_blackfoot.interior_area = interior_area
interior_area.set_base_lighting(COLOR_WHITE, 255) // setting this in on_load allows it to be edited


qdel(src)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,19 @@
return icon

/obj/item/hardpoint/primary/blackfoot_launchers/try_fire(atom/target, mob/living/user, params)
var/obj/vehicle/multitile/blackfoot/blackfoot_owner = owner

if(!blackfoot_owner)
return

if(safety)
to_chat(user, SPAN_WARNING("Targeting mode is not enabled, unable to fire."))
return

if(blackfoot_owner.stealth_mode)
to_chat(user, SPAN_WARNING("Weapons system unavailable while recon mode is active."))
return

if(ammo && ammo.current_rounds <= 0)
reload(user)
return
Expand Down
4 changes: 4 additions & 0 deletions code/modules/vehicles/hardpoints/secondary/doorgun.dm
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@
if(!blackfoot_owner)
return

if(blackfoot_owner.stealth_mode)
to_chat(user, SPAN_WARNING("Weapons system unavailable while recon mode is active."))
return

if(!blackfoot_owner.back_door || !blackfoot_owner.back_door.open)
to_chat(user, SPAN_WARNING("You should probably open the rear door before firing."))
return
Expand Down
100 changes: 100 additions & 0 deletions code/modules/vehicles/hardpoints/support/recon_system.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
/obj/item/hardpoint/support/recon_system
name = "\improper AQ-133 Acquisition System"
desc = "A short-range Air-to-Ground LIDAR target acquisition system designed to actively track and profile non-IFF signatures in a localized range of detection."
icon = 'icons/obj/vehicles/hardpoints/blackfoot.dmi'
icon_state = "radar"
disp_icon = "blackfoot"
disp_icon_state = "radar"

health = 250

var/active = FALSE

/datum/action/human_action/blackfoot/recon_mode
name = "Toggle Recon Mode"
action_icon_state = "nightvision"

/obj/item/hardpoint/support/recon_system/on_install(obj/vehicle/multitile/blackfoot/vehicle)
if(!istype(vehicle))
return

RegisterSignal(src, COMSIG_BLACKFOOT_ACTIONS_UPDATE, PROC_REF(handle_action_update))

/obj/item/hardpoint/support/recon_system/proc/handle_action_update(should_remove_action = FALSE)
var/obj/vehicle/multitile/blackfoot/blackfoot_owner = owner

if(!blackfoot_owner)
return

var/mob/user = blackfoot_owner.seats[VEHICLE_DRIVER]

if(!user)
return

if(should_remove_action)
remove_action(user, /datum/action/human_action/blackfoot/recon_mode)
else
give_action(user, /datum/action/human_action/blackfoot/recon_mode)

/datum/action/human_action/blackfoot/recon_mode/action_activate()
var/obj/vehicle/multitile/blackfoot/vehicle = owner.interactee

if(!istype(vehicle))
return

. = ..()

for(var/obj/item/hardpoint/support/recon_system/recon_system in vehicle.hardpoints)
if(recon_system.active)
recon_system.deactivate()
else
recon_system.activate()

/obj/item/hardpoint/support/recon_system/get_icon_image(x_offset, y_offset, new_dir)
var/obj/vehicle/multitile/blackfoot/blackfoot_owner = owner

if(!blackfoot_owner)
return

var/image/icon = image(icon = disp_icon, icon_state = "[disp_icon_state]_[blackfoot_owner.get_sprite_state()]", pixel_x = x_offset, pixel_y = y_offset, dir = new_dir)

return icon

/obj/item/hardpoint/support/recon_system/deactivate()
var/obj/vehicle/multitile/blackfoot/blackfoot_owner = owner

if(!blackfoot_owner)
return

var/mob/user = blackfoot_owner.seats[VEHICLE_DRIVER]
var/area/interior_area = blackfoot_owner.interior_area


if(!user)
return

if(interior_area)
interior_area.set_base_lighting(COLOR_WHITE, 255)

active = FALSE

/obj/item/hardpoint/support/recon_system/proc/activate()
set name = "Toggle Recon Mode"
set desc = "Toggle between stowed and deployed mode."
set category = "Vehicle"

var/obj/vehicle/multitile/blackfoot/blackfoot_owner = owner

if(!blackfoot_owner)
return

var/mob/user = blackfoot_owner.seats[VEHICLE_DRIVER]
var/area/interior_area = blackfoot_owner.interior_area

if(!user)
return

if(interior_area)
interior_area.set_base_lighting("#BB3F3F", 200)

active = TRUE
1 change: 1 addition & 0 deletions code/modules/vehicles/interior/areas.dm
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,4 @@
/area/interior/vehicle/blackfoot
name = "blackfoot interior"
ambience_exterior = 'sound/vehicles/vtol/interior.ogg'
base_lighting_alpha = 0 // baselighting will be set by on_load in interior
1 change: 1 addition & 0 deletions colonialmarines.dme
Original file line number Diff line number Diff line change
Expand Up @@ -2630,6 +2630,7 @@
#include "code\modules\vehicles\hardpoints\support\flare.dm"
#include "code\modules\vehicles\hardpoints\support\iwsa.dm"
#include "code\modules\vehicles\hardpoints\support\overdrive.dm"
#include "code\modules\vehicles\hardpoints\support\recon_system.dm"
#include "code\modules\vehicles\hardpoints\support\sensor_array.dm"
#include "code\modules\vehicles\hardpoints\support\support.dm"
#include "code\modules\vehicles\hardpoints\wheels\apc_wheels.dm"
Expand Down
Loading