Skip to content

FCT - Field Camera Tripod#12504

Draft
DangerRevolution wants to merge 16 commits into
cmss13-devs:masterfrom
DangerRevolution:tripod-camera
Draft

FCT - Field Camera Tripod#12504
DangerRevolution wants to merge 16 commits into
cmss13-devs:masterfrom
DangerRevolution:tripod-camera

Conversation

@DangerRevolution

@DangerRevolution DangerRevolution commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

About the pull request

This PR adds the "FTC" Motoca-430-T Field Tripod Camera. This is a mobile camera for use by Combat Technicians that provides a video feed to their squads' overwatch console.

I would really appreciate code review from anyone and everyone, as I bit off a lot more than I could chew with lists and the Overwatch terminal, I've iteratively tested + removed slop as possible to my knowledge (and seeing what didn't break when removed) but any fresh eyes would be really appreciated. I would also appreciate some thought on whether to use radials, the current TGUI system or move to some variety of intent system.

This PR is also obviously waiting on Sprites.

To-DO List:

  • Engineering Lock
  • Camera Network?
  • Fix naming Logic
  • MT Vendor?
  • Req Vendor?

Explain why it's good for the game

This gives Combat Technicians something to play around with, gives SOs (and CIC) something new to watch and could be a useful tool to provide static video feeds for teamwork + co-ordination.

Testing Photographs and Procedure

https://youtu.be/z-1IPnmZVm8

OB also works, I have another video of it dying to OB but I don't feel like uploading it to Youtube due to my slow upload speed. Can do on request, or send on Discord while I have Nitro :)

Bug List:

  • Camera can be renamed while deployed and does not append squad label if done so.

  • Being destroyed by explosion produces two to_chats

  • I need to test if Yautja can use these.

Changelog

🆑 DangerRevolution
add: Added the FCT - Field Camera Tripod for use by Combat Technicians in the Field, allowing Overwatch to see static positions.
balance: Added the FCT to Maintenance Technician, Requisition and Combat Technician vendors.
/:cl:

@github-project-automation github-project-automation Bot moved this to Awaiting Review in Review Backlog Jun 23, 2026
@cmss13-ci cmss13-ci Bot added Sprites Remove the soul from the game. Feature Feature coder badge labels Jun 23, 2026
@cmss13-ci cmss13-ci Bot added the size/L Denotes a PR that changes 200-799 lines, ignoring generated files. label Jun 23, 2026
@DangerRevolution DangerRevolution changed the title F5CT - Field Camera Tripod FCT - Field Camera Tripod Jun 23, 2026
@cmss13-ci cmss13-ci Bot added the Balance You need to be a professional veteran game maintainer to comprehend what is being done here. label Jun 24, 2026
@DangerRevolution DangerRevolution marked this pull request as draft June 25, 2026 05:28
icon_state = "undeployed"
desc_lore = "Following modernisation efforts in the Marine'70 program, USCM Platoons were shrunk and squads re-organised to emphasise individual firepower and mobility. The Motoca-430-T, the precursor to the Motoca-500 Helmet Camera, was commissioned by the Department of Defense to be utilised by Colonial Marine squads in establishing secure perimeters and watching rear areas remotely through the Overwatch system."
var/label = null
var/datum/squad/squad = null

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clear the squad reference in Destroy
also you don't need to use = null

/obj/item/device/overwatch_camera/tripod/attack_self(mob/user)
..()
var/choice = tgui_alert(user, "What would you like to do with [src]?", "Tripod Camera", list("Rename", "Deploy", "Cancel"))
switch(choice)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Check for deletion after tgui_alert - the item can have been deleted in the meantime the user selecting. This is important if you're gonna deploy it.

Ideally should check the user is still holding it and conscious and such aswell, but that's bonus, at least check for deletion


if(!do_after(user, 3 SECONDS, INTERRUPT_ALL, BUSY_ICON_BUILD))
to_chat(user, SPAN_WARNING("You must stand still while deploying the tripod."))
return

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above, check conditions are still valid after do_after, at least that the item still exists and the user is valid

Comment thread code/modules/cm_marines/equipment/gear.dm Outdated
Comment thread code/modules/cm_marines/equipment/gear.dm Outdated
/obj/structure/overwatch_camera_tripod/attack_hand(mob/user)
if(user.a_intent != INTENT_HELP) // I've left this in just in case maints want me to change the tgui menu to intent handling or smth.
return ..()
var/choice = tgui_alert(user, "What would you like to do with [src]?", "Tripod Camera", list("Rename", "Pick Up", "Cancel"))

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same goes here regarding checking after tgui_alert. This is even more important cause in this situation, if there's no error, it's possible for several people to click on it and all undeploy it, duplicating the item

Comment thread code/_globalvars/misc.dm Outdated
Comment thread code/modules/cm_marines/equipment/gear.dm Outdated
qdel(src)

/obj/structure/overwatch_camera_tripod/ex_act(severity)
if(severity >= EXPLOSION_THRESHOLD_LOW) // no idea if i need to add this or it's inherited from parent somewhere

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's ok here since undeploy is your behavior
it probably should get a bit more than undeployed when slashed/exploded though...

leader_count++
marine_count--

for(var/obj/structure/overwatch_camera_tripod/tripod_camera in GLOB.deployed_tripod_cameras) // add cameras to list o' marines

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
for(var/obj/structure/overwatch_camera_tripod/tripod_camera in GLOB.deployed_tripod_cameras) // add cameras to list o' marines
for(var/obj/structure/overwatch_camera_tripod/tripod_camera as anything in GLOB.deployed_tripod_cameras) // add cameras to list o' marines

@github-project-automation github-project-automation Bot moved this from Awaiting Review to Changes Requested in Review Backlog Jun 25, 2026
DangerRevolution and others added 4 commits June 26, 2026 12:17
Co-authored-by: fira <loyauflorian@gmail.com>
Co-authored-by: fira <loyauflorian@gmail.com>
@cm13-github

Copy link
Copy Markdown
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@cm13-github cm13-github added the Merge Conflict PR can't be merged because it touched too much code label Jun 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Balance You need to be a professional veteran game maintainer to comprehend what is being done here. Feature Feature coder badge Merge Conflict PR can't be merged because it touched too much code size/L Denotes a PR that changes 200-799 lines, ignoring generated files. Sprites Remove the soul from the game.

Projects

Status: Changes Requested

Development

Successfully merging this pull request may close these issues.

3 participants