Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AI Programs: More than a Door #27988

Draft
wants to merge 45 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
c08d4bc
AI Powers initial commit - Base datums for picker and program
PollardTheDragon Jan 5, 2025
b8fcaa4
Small fixes in base datums
PollardTheDragon Jan 5, 2025
c6d6ba0
RGB Lighting Power
PollardTheDragon Jan 7, 2025
4685f48
Nearest camera detection, beam effect for RGB_Lighting
PollardTheDragon Jan 7, 2025
f7b404b
Fixed learning AI Porgrams, Power Shunt Program
PollardTheDragon Jan 8, 2025
00e5ab0
Program install fixes, WebUI Program Install Menu Fixes
PollardTheDragon Jan 9, 2025
47e9802
Repair nanites
PollardTheDragon Jan 9, 2025
a92c73e
Universal Adapter
PollardTheDragon Jan 9, 2025
8473668
Door Override
PollardTheDragon Jan 10, 2025
5537d52
Nanofrost, Program Icons, Door Override Bug Fixes
PollardTheDragon Jan 11, 2025
3be17de
Sprites for AI machines
PollardTheDragon Jan 12, 2025
9edc57b
Bluespace Miner, Multimarket Analyzer, Light Replacer
PollardTheDragon Jan 12, 2025
4cffe1b
Fixes economy thing with bluespace miner
PollardTheDragon Jan 12, 2025
729fa86
Enhanced Door Controls, Nanosurgeons
PollardTheDragon Jan 14, 2025
1e0965e
Experimental Research Subsystem
PollardTheDragon Jan 16, 2025
fefa974
Removed excess from RND subsystem
PollardTheDragon Jan 16, 2025
e958a77
Adds Processing Node
XFirebirdX Jan 16, 2025
4ad2a76
Processing node changes and fixes
PollardTheDragon Jan 16, 2025
ae57da3
Processing nodes power states
PollardTheDragon Jan 16, 2025
61b6db9
Minor cleanup
PollardTheDragon Jan 16, 2025
acdd0ef
I've got a network node! And it makes heat!
PollardTheDragon Jan 17, 2025
64f7dab
Adds proc to nodes to change the assigned AI
PollardTheDragon Jan 17, 2025
c7c5359
Removed extra vars
PollardTheDragon Jan 17, 2025
cbde356
Icon fixes
PollardTheDragon Jan 17, 2025
baf6bcf
Adds overheat counter to delay overheat to prevent random atmos hotsp…
PollardTheDragon Jan 17, 2025
a307fb9
Merge branch 'master' into ai-more-than-a-door
PollardTheDragon Jan 17, 2025
deb0dfa
They changed my isAI check. Woe.
PollardTheDragon Jan 17, 2025
83d7348
Sealant, Holosigns, HONK, bugfixes, and stock part multipliers
PollardTheDragon Jan 18, 2025
3fde6dc
Enhanced Tracking Software
PollardTheDragon Jan 18, 2025
48de55e
Refunds for active programs
PollardTheDragon Jan 20, 2025
6e2320a
Remaining uninstall functionality
PollardTheDragon Jan 22, 2025
e76b818
AI RMC
PollardTheDragon Jan 22, 2025
d330c6a
Forgot a circuitboard
PollardTheDragon Jan 22, 2025
9e2aa5b
Fixes a small path issue
PollardTheDragon Jan 22, 2025
f1505cb
Global nodes list + node data for AI RMC TGUI
PollardTheDragon Jan 22, 2025
529b05f
TGUI Foundations
PollardTheDragon Jan 26, 2025
6722c57
Better check
PollardTheDragon Jan 29, 2025
fa05ffd
Better null check
PollardTheDragon Jan 29, 2025
7f1d5e1
Spacing
PollardTheDragon Jan 29, 2025
9a9ebe9
Better chat notification
PollardTheDragon Jan 29, 2025
2e420d8
A shitload of fixes
PollardTheDragon Jan 30, 2025
28c64fc
Camera beam helper proc
PollardTheDragon Jan 30, 2025
9fc596d
AI remote sound helper
PollardTheDragon Jan 30, 2025
d003b4a
Timer on nanofrost
PollardTheDragon Jan 30, 2025
6f266f3
ui.user
PollardTheDragon Jan 30, 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
2 changes: 1 addition & 1 deletion _maps/map_files/generic/centcomm.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -5180,7 +5180,6 @@
/turf/simulated/floor/transparent/glass,
/area/tdome/tdomeobserve)
"rt" = (
/obj/machinery/photocopier,
/obj/machinery/door_control/no_emag{
id = "sec";
name = "CentCom Security Shutters";
Expand All @@ -5203,6 +5202,7 @@
pixel_y = 30;
req_access = list(109)
},
/obj/machinery/computer/ai_resource,
/turf/simulated/floor/wood,
/area/centcom/control)
"ru" = (
Expand Down
49 changes: 30 additions & 19 deletions _maps/map_files/stations/boxstation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -32411,7 +32411,7 @@
dir = 8
},
/turf/simulated/floor/plasteel{
dir = 10;
dir = 8;
icon_state = "darkpurple"
},
/area/station/command/office/rd)
Expand Down Expand Up @@ -46008,6 +46008,8 @@
/area/station/maintenance/asmaint)
"dlD" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table/wood,
/obj/machinery/bottler,
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint2)
"dlK" = (
Expand Down Expand Up @@ -56997,11 +56999,6 @@
},
/turf/simulated/floor/plasteel,
/area/station/maintenance/assembly_line)
"ifT" = (
/obj/structure/table/wood,
/obj/machinery/bottler,
/turf/simulated/floor/wood,
/area/station/maintenance/asmaint2)
"ifY" = (
/obj/machinery/door/airlock/external{
id_tag = "eng_door_ext";
Expand Down Expand Up @@ -59905,6 +59902,14 @@
},
/turf/simulated/floor/carpet/grimey,
/area/station/security/detective)
"jIA" = (
/obj/structure/cable{
icon_state = "4-8"
},
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
/area/station/command/office/rd)
"jIX" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
Expand Down Expand Up @@ -74958,6 +74963,17 @@
/obj/effect/spawner/window/reinforced/grilled,
/turf/simulated/floor/plating,
/area/station/engineering/atmos)
"rpn" = (
/obj/structure/closet/secure_closet/rd,
/obj/machinery/light_switch{
pixel_x = -24;
dir = 4
},
/turf/simulated/floor/plasteel{
dir = 10;
icon_state = "darkpurple"
},
/area/station/command/office/rd)
"rqq" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 5
Expand Down Expand Up @@ -78153,8 +78169,7 @@
/area/station/engineering/transmission_laser)
"ten" = (
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "darkpurplecorners"
icon_state = "dark"
},
/area/station/command/office/rd)
"ter" = (
Expand Down Expand Up @@ -82351,17 +82366,13 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/entry/south)
"vwC" = (
/obj/structure/closet/secure_closet/rd,
/obj/machinery/light_switch{
dir = 4;
name = "west bump";
pixel_x = -24
},
/obj/machinery/keycard_auth{
pixel_y = -26
},
/obj/machinery/computer/ai_resource{
dir = 1
},
/turf/simulated/floor/plasteel{
dir = 10;
icon_state = "darkpurple"
},
/area/station/command/office/rd)
Expand Down Expand Up @@ -133000,7 +133011,7 @@ bYj
bYj
bYj
bYj
ifT
bYj
cbd
cbd
cbd
Expand Down Expand Up @@ -133256,8 +133267,8 @@ bIa
tGg
cjN
clq
bYj
bYj
mMB
rpn
cbd
cmV
yjv
Expand Down Expand Up @@ -133513,7 +133524,7 @@ wwZ
iDL
fPy
ten
mMB
jIA
vwC
cbd
vIO
Expand Down
17 changes: 10 additions & 7 deletions _maps/map_files/stations/cerestation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -31920,16 +31920,13 @@
},
/area/station/service/theatre)
"faF" = (
/obj/structure/rack,
/obj/item/aicard,
/obj/item/circuitboard/aicore{
pixel_x = -2;
pixel_y = 4
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/machinery/alarm/directional/south,
/obj/machinery/computer/ai_resource{
dir = 1
},
/turf/simulated/floor/plasteel/white,
/area/station/command/office/rd)
"faM" = (
Expand Down Expand Up @@ -80536,6 +80533,12 @@
pixel_x = 28;
name = "custom placement"
},
/obj/structure/rack,
/obj/item/circuitboard/aicore{
pixel_x = -2;
pixel_y = 4
},
/obj/item/aicard,
/turf/simulated/floor/plasteel/white,
/area/station/command/office/rd)
"rEx" = (
Expand Down Expand Up @@ -96483,14 +96486,14 @@
},
/area/station/science/toxins/mixing)
"vwB" = (
/obj/structure/rack,
/obj/item/paicard{
pixel_x = 4
},
/obj/item/taperecorder{
pixel_x = -3
},
/obj/machinery/firealarm/directional/south,
/obj/structure/rack,
/turf/simulated/floor/plasteel/white,
/area/station/command/office/rd)
"vxm" = (
Expand Down
8 changes: 5 additions & 3 deletions _maps/map_files/stations/deltastation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -49451,11 +49451,11 @@
/turf/simulated/floor/plasteel/white,
/area/station/maintenance/port2)
"doJ" = (
/obj/structure/table/reinforced,
/obj/item/clipboard,
/obj/item/toy/figure/crew/rd,
/obj/machinery/requests_console/directional/west,
/obj/effect/turf_decal/delivery/hollow,
/obj/machinery/computer/ai_resource{
dir = 4
},
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "whitepurplecorner"
Expand Down Expand Up @@ -51430,6 +51430,8 @@
dir = 8
},
/obj/effect/turf_decal/delivery/hollow,
/obj/item/toy/figure/crew/rd,
/obj/item/clipboard,
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "whitepurplecorner"
Expand Down
18 changes: 10 additions & 8 deletions _maps/map_files/stations/emeraldstation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -13443,14 +13443,10 @@
},
/area/station/maintenance/apmaint)
"cHe" = (
/obj/structure/table/glass,
/obj/item/paper_bin/nanotrasen,
/obj/item/pen/rd,
/obj/item/stamp/rd{
pixel_x = 5;
pixel_y = -2
},
/obj/machinery/newscaster/directional/south,
/obj/machinery/computer/ai_resource{
dir = 1
},
/turf/simulated/floor/plasteel{
dir = 6;
icon_state = "darkpurple"
Expand Down Expand Up @@ -111441,7 +111437,6 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central/sw)
"waz" = (
/obj/structure/rack,
/obj/item/aicard,
/obj/item/paicard{
pixel_x = 4
Expand All @@ -111451,6 +111446,7 @@
pixel_y = 4
},
/obj/machinery/requests_console/directional/south,
/obj/structure/rack,
/turf/simulated/floor/plasteel{
dir = 10;
icon_state = "darkpurple"
Expand Down Expand Up @@ -121706,6 +121702,12 @@
pixel_x = 4
},
/obj/item/paper/monitorkey,
/obj/item/stamp/rd{
pixel_x = 5;
pixel_y = -2
},
/obj/item/pen/rd,
/obj/item/paper_bin/nanotrasen,
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "darkpurple"
Expand Down
18 changes: 13 additions & 5 deletions _maps/map_files/stations/metastation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -34655,14 +34655,13 @@
},
/area/station/service/chapel)
"cGF" = (
/obj/structure/table,
/obj/item/aicard,
/obj/item/paicard,
/obj/item/circuitboard/aicore,
/obj/machinery/keycard_auth{
pixel_x = -5;
pixel_y = 26
},
/obj/machinery/computer/ai_resource{
dir = 4
},
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "whitepurple"
Expand Down Expand Up @@ -61388,6 +61387,15 @@
icon_state = "dark"
},
/area/station/engineering/atmos)
"mEA" = (
/obj/structure/table,
/obj/item/circuitboard/aicore,
/obj/item/paicard,
/obj/item/aicard,
/turf/simulated/floor/plasteel{
icon_state = "darkgreycheck"
},
/area/station/command/office/rd)
"mEW" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
Expand Down Expand Up @@ -120291,7 +120299,7 @@ cte
dcX
cte
cmB
cNk
mEA
nFh
aZr
nlS
Expand Down
4 changes: 2 additions & 2 deletions code/_onclick/ai_onclick.dm
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@
/obj/machinery/door/airlock/AICtrlClick(mob/living/silicon/user) // Bolts doors
if(!ai_control_check(user))
return
if(ispulsedemon(user) || user.can_instant_lockdown() || do_after_once(user, 3 SECONDS, needhand = FALSE, target = src, allow_moving = TRUE, attempt_cancel_message = "Bolting [src] cancelled.", special_identifier = "Bolt"))
if(ispulsedemon(user) || user.can_instant_lockdown() || do_after_once(user, user.door_bolt_delay, needhand = FALSE, target = src, allow_moving = TRUE, attempt_cancel_message = "Bolting [src] cancelled.", special_identifier = "Bolt"))
toggle_bolt(user)


Expand All @@ -236,7 +236,7 @@
if(isElectrified())
electrify(0, user, TRUE) // un-shock
else
if(ispulsedemon(user) || user.can_instant_lockdown() || do_after_once(user, 3 SECONDS, target = src, allow_moving = TRUE, attempt_cancel_message = "Shocking [src] cancelled.", special_identifier = "Shock"))
if(ispulsedemon(user) || user.can_instant_lockdown() || do_after_once(user, user.door_bolt_delay, target = src, allow_moving = TRUE, attempt_cancel_message = "Shocking [src] cancelled.", special_identifier = "Shock"))
electrify(-1, user, TRUE) // permanent shock + audio cue
playsound(loc, "sparks", 100, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)

Expand Down
3 changes: 2 additions & 1 deletion code/datums/alarm_manager.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ GLOBAL_DATUM_INIT(alarm_manager, /datum/alarm_manager, new())
"Fire" = list(),
"Atmosphere" = list(),
"Power" = list(),
"Burglar" = list()
"Burglar" = list(),
"Tracking" = list()
)

/datum/alarm_manager/proc/trigger_alarm(class, area/A, list/O, obj/alarmsource)
Expand Down
20 changes: 20 additions & 0 deletions code/game/gamemodes/malfunction/Malf_Modules.dm
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,26 @@
if(auto_use_uses)
adjust_uses(-1, user)

/datum/spell/ai_spell/proc/find_nearest_camera(atom/target)
var/area/A = get_area(target)
if(!istype(A))
return
var/closest_camera = null
for(var/obj/machinery/camera/C in A)
if(isnull(closest_camera))
closest_camera = C
continue
if(get_dist(closest_camera, target) > get_dist(C, target))
closest_camera = C
continue
return closest_camera

/datum/spell/ai_spell/proc/camera_beam(target, icon_state, icon, time)
var/obj/machinery/camera/C = find_nearest_camera(target)
if(!istype(C))
return
C.Beam(target, icon_state = icon_state, icon = icon, time = time)

/datum/spell/ai_spell/proc/adjust_uses(amt, mob/living/silicon/ai/owner, silent)
uses += amt
if(!silent && uses)
Expand Down
Loading
Loading