Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
905ef03
Update decentralized_os.dm
Bibby0110 Dec 17, 2021
e71cc12
Update decentralized_os.dm
Bibby0110 Dec 17, 2021
e196af4
Update decentralized_os.dm
Bibby0110 Dec 17, 2021
8fa6692
Update robot_upgrades.dm
Bibby0110 Dec 18, 2021
d4ca609
Firmware Boards
Bibby0110 Dec 18, 2021
ef9e718
Update ai_controlpanel.dm
Bibby0110 Dec 18, 2021
165553b
Merge branch 'ai-revamp-hotfixes' of https://github.com/yogstation13/…
Bibby0110 Dec 18, 2021
8424fb5
Update ai_controlpanel.dm
Bibby0110 Dec 18, 2021
13b54c9
Power balance
Bibby0110 Dec 18, 2021
0818273
Merge branch 'master' into ai-revamp-hotfixes
Bibby0110 Dec 19, 2021
d3d5fbf
Fixes some verb and HUD issues
Bibby0110 Dec 20, 2021
9703d40
MMIs can hvae predetermined laws now. Start of RD password code.
Bibby0110 Dec 20, 2021
b9a55bc
Finished RD code
Bibby0110 Dec 20, 2021
96ec641
Don't let oldstation use infinite boards
Bibby0110 Dec 20, 2021
ab44889
Happy linter happy life
Bibby0110 Dec 20, 2021
6f90544
Update robot_upgrades.dm
Bibby0110 Dec 20, 2021
fbc336e
Update ai_data_core.dm
Bibby0110 Dec 20, 2021
914a743
Update ai_data_core.dm
Bibby0110 Dec 20, 2021
7093419
Update ai.dm
Bibby0110 Dec 20, 2021
fa3e1d3
Moves defines to their own folder. Increased power usage and temp pro…
Bibby0110 Dec 22, 2021
bd0e566
Smoothing for expansion busses
Bibby0110 Dec 22, 2021
d297724
Malf upgrader
Bibby0110 Dec 22, 2021
d59df51
UI tweaks
Bibby0110 Dec 22, 2021
8ad88fa
makes it compile whoops
Bibby0110 Dec 22, 2021
0eafa60
makes it compile for real
Bibby0110 Dec 22, 2021
cf0e2c6
Lower temp limit
Bibby0110 Dec 23, 2021
872fe00
Update ai_controlpanel.dm
Bibby0110 Dec 24, 2021
ebb1d5e
HUD fixes maybe?
Bibby0110 Dec 24, 2021
d72c2c4
Plaque
Bibby0110 Dec 24, 2021
4632532
Update ai_controlpanel.dm
Bibby0110 Dec 24, 2021
a8b6a8c
MAPS
Bibby0110 Dec 24, 2021
aa452ba
Merge remote-tracking branch 'origin/master' into ai-revamp-hotfixes
Bibby0110 Dec 24, 2021
2177c52
Merge branch 'ai-revamp-hotfixes' of https://github.com/yogstation13/…
Bibby0110 Dec 24, 2021
6c2298d
kilo
Bibby0110 Dec 24, 2021
493635e
Update signs_plaques.dm
Bibby0110 Dec 25, 2021
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
11 changes: 7 additions & 4 deletions _maps/RandomRuins/SpaceRuins/oldstation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -7944,6 +7944,12 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/ancientstation/sec)
"uk" = (
/obj/structure/rack,
/obj/item/borg/upgrade/panel_access_remover,
/obj/item/borg/upgrade/panel_access_remover,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/ancientstation/deltaai)
"up" = (
/obj/machinery/light/small{
dir = 8
Expand Down Expand Up @@ -8118,9 +8124,6 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/ancientstation/atmo)
"AC" = (
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/ancientstation/deltaai)
"AF" = (
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
Expand Down Expand Up @@ -12881,7 +12884,7 @@ gK
ac
ac
ac
AC
uk
ac
ac
ac
Expand Down
57 changes: 30 additions & 27 deletions _maps/map_files/KiloStation/KiloStation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -92514,6 +92514,35 @@
/obj/machinery/atmospherics/pipe/layer_manifold,
/turf/open/floor/plasteel/dark,
/area/maintenance/fore)
"lyU" = (
/obj/structure/table,
/obj/item/clipboard,
/obj/item/wrench,
/obj/item/crowbar/red,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/firealarm{
dir = 1;
pixel_y = -26
},
/obj/machinery/light_switch{
pixel_x = -24
},
/obj/machinery/camera{
c_tag = "Server Room";
dir = 1;
name = "science camera";
network = list("ss13","rd")
},
/obj/effect/turf_decal/stripes/corner,
/obj/effect/turf_decal/stripes/corner{
dir = 1
},
/obj/effect/mapping_helpers/teleport_anchor,
/obj/structure/sign/plaques/ai_password{
pixel_x = -32
},
/turf/open/floor/plasteel/showroomfloor,
/area/science/server)
"lzb" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/spawner/lootdrop/glowstick,
Expand Down Expand Up @@ -95589,32 +95618,6 @@
icon_state = "platingdmg1"
},
/area/maintenance/port/aft)
"oDc" = (
/obj/structure/table,
/obj/item/clipboard,
/obj/item/wrench,
/obj/item/crowbar/red,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/firealarm{
dir = 1;
pixel_y = -26
},
/obj/machinery/light_switch{
pixel_x = -24
},
/obj/machinery/camera{
c_tag = "Server Room";
dir = 1;
name = "science camera";
network = list("ss13","rd")
},
/obj/effect/turf_decal/stripes/corner,
/obj/effect/turf_decal/stripes/corner{
dir = 1
},
/obj/effect/mapping_helpers/teleport_anchor,
/turf/open/floor/plasteel/showroomfloor,
/area/science/server)
"oDF" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
Expand Down Expand Up @@ -142958,7 +142961,7 @@ ajz
aZF
adX
avT
oDc
lyU
bdi
pxJ
rxn
Expand Down
17 changes: 10 additions & 7 deletions _maps/map_files/YogStation/YogStation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -34692,12 +34692,6 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/atmos)
"esR" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
},
/turf/open/floor/plasteel/white,
/area/crew_quarters/heads/hor)
"esT" = (
/obj/structure/disposalpipe/segment{
dir = 9
Expand Down Expand Up @@ -44219,6 +44213,15 @@
"kzu" = (
/turf/closed/wall/r_wall,
/area/ai_monitored/turret_protected/ai_upload_foyer)
"kzW" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
},
/obj/structure/sign/plaques/ai_password{
pixel_x = 32
},
/turf/open/floor/plasteel/white,
/area/crew_quarters/heads/hor)
"kAv" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
dir = 1
Expand Down Expand Up @@ -115935,7 +115938,7 @@ bmY
bvK
bxm
byu
esR
kzW
bCf
aGs
bvK
Expand Down
17 changes: 10 additions & 7 deletions _maps/map_files/Yogsmeta/Yogsmeta.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -58985,12 +58985,6 @@
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel/white,
/area/crew_quarters/heads/hor)
"ctV" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
},
/turf/open/floor/plasteel/white,
/area/crew_quarters/heads/hor)
"ctW" = (
/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
/obj/machinery/airalarm{
Expand Down Expand Up @@ -73449,6 +73443,15 @@
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/plating,
/area/maintenance/fore)
"jlP" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
},
/obj/structure/sign/plaques/ai_password{
pixel_x = 32
},
/turf/open/floor/plasteel/white,
/area/crew_quarters/heads/hor)
"jlR" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
Expand Down Expand Up @@ -116876,7 +116879,7 @@ bTV
bET
crQ
cte
ctV
jlP
nTE
dZO
cwU
Expand Down
56 changes: 28 additions & 28 deletions _maps/shuttles/whiteship_miner.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -323,33 +323,6 @@
},
/turf/open/floor/mineral/titanium,
/area/shuttle/abandoned)
"aP" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp,
/obj/item/mecha_parts/mecha_equipment/mining_scanner,
/obj/item/mecha_parts/mecha_equipment/drill,
/obj/structure/closet/crate{
moving_diagonally = 0;
name = "mech equipment crate"
},
/obj/item/stack/sheet/metal{
alternate_worn_layer = null;
amount = 5
},
/obj/item/stack/cable_coil,
/obj/machinery/light{
dir = 8
},
/obj/item/stock_parts/cell/hyper/empty,
/obj/item/stock_parts/capacitor/adv,
/obj/item/stock_parts/scanning_module/adv,
/obj/item/stack/rods{
amount = 10
},
/obj/item/mecha_parts/mecha_equipment/ripleyupgrade,
/obj/item/borg/upgrade/freeminer,
/turf/open/floor/mineral/titanium/white,
/area/shuttle/abandoned)
"bd" = (
/obj/machinery/door/airlock/shuttle{
name = "bathroom"
Expand Down Expand Up @@ -756,6 +729,33 @@
/obj/machinery/computer/mech_bay_power_console,
/turf/open/floor/mineral/titanium/white,
/area/shuttle/abandoned)
"jc" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp,
/obj/item/mecha_parts/mecha_equipment/mining_scanner,
/obj/item/mecha_parts/mecha_equipment/drill,
/obj/structure/closet/crate{
moving_diagonally = 0;
name = "mech equipment crate"
},
/obj/item/stack/sheet/metal{
alternate_worn_layer = null;
amount = 5
},
/obj/item/stack/cable_coil,
/obj/machinery/light{
dir = 8
},
/obj/item/stock_parts/cell/hyper/empty,
/obj/item/stock_parts/capacitor/adv,
/obj/item/stock_parts/scanning_module/adv,
/obj/item/stack/rods{
amount = 10
},
/obj/item/mecha_parts/mecha_equipment/ripleyupgrade,
/obj/item/borg/upgrade/panel_access_remover/freeminer,
/turf/open/floor/mineral/titanium/white,
/area/shuttle/abandoned)
"kL" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/suit_storage_unit/mining/eva,
Expand Down Expand Up @@ -1466,7 +1466,7 @@ bx
aE
bk
hs
aP
jc
lo
bk
"}
Expand Down
33 changes: 33 additions & 0 deletions code/__DEFINES/ai.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@

///All AI machinery heat production is multiplied by this value
#define AI_TEMPERATURE_MULTIPLIER 4 //Thermodynamics? No... No I don't think that's a thing. Balance so we don't use an insane amount of power to produce noticeable heat
///Temperature limit of all AI machinery
#define AI_TEMP_LIMIT 283.15 //10C, much hotter than a normal server room for leniency :)


///How many ticks can an AI data core store? When this amount of ticks have passed while it's in an INVALID state it can no longer be used by an AI
#define MAX_AI_DATA_CORE_TICKS 15
///How much power does the AI date core use while being in a valid state. This is also the base heat output. (Divide by heat capacity to get actual temperature increase)
#define AI_DATA_CORE_POWER_USAGE 7500

///How many ticks can an expanion bus store. If it reaches 0 the resources will no longer be available.
#define MAX_AI_EXPANSION_TICKS 15
///How much power does a CPU card consume per tick?
#define AI_BASE_POWER_PER_CPU 1500
///Multiplied by number of cards to see power consumption per tick. Added to by powerconsumption of CPUs
#define AI_POWER_PER_CARD 750


//AI Project Categories.
#define AI_PROJECT_HUDS "Sensor HUDs"
#define AI_PROJECT_CAMERAS "Visiblity Upgrades"
#define AI_PROJECT_MISC "Misc."
//Update this list if you add any new ones, else the category won't show up in the UIs
GLOBAL_LIST_INIT(ai_project_categories, list(
AI_PROJECT_HUDS,
AI_PROJECT_CAMERAS,
AI_PROJECT_MISC
))

///How much is the AI download progress increased by per tick? Multiplied by a modifer on the AI if they have upgraded. Need to reach 100 to be downloaded
#define AI_DOWNLOAD_PER_PROCESS 0.5
6 changes: 3 additions & 3 deletions code/__HELPERS/unsorted.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1231,10 +1231,10 @@ GLOBAL_REAL_VAR(list/stack_trace_storage)

#define RANDOM_COLOUR (rgb(rand(0,255),rand(0,255),rand(0,255)))

/proc/random_nukecode()
var/val = rand(0, 99999)
/proc/random_nukecode(max_length = 5)
var/val = rand(0, (10 ** max_length - 1))
var/str = "[val]"
while(length(str) < 5)
while(length(str) < max_length)
str = "0" + str
. = str

Expand Down
14 changes: 12 additions & 2 deletions code/game/machinery/computer/communications.dm
Original file line number Diff line number Diff line change
Expand Up @@ -344,6 +344,16 @@
new /obj/item/card/id/captains_spare/temporary(loc)
COOLDOWN_START(src, important_action_cooldown, IMPORTANT_ACTION_COOLDOWN)
priority_announce("The emergency spare ID has been printed by [authorize_name].", "Emergency Spare ID Warning System", SSstation.announcer.get_rand_report_sound())
if("printAIControlCode")
if(authenticated_as_non_silicon_head(usr))
if(!COOLDOWN_FINISHED(src, important_action_cooldown))
return
playsound(loc, 'sound/items/poster_being_created.ogg', 100, 1)
GLOB.ai_control_code = random_nukecode(6)
new /obj/item/paper/ai_control_code(loc)
COOLDOWN_START(src, important_action_cooldown, IMPORTANT_ACTION_COOLDOWN)
priority_announce("The AI Control Code been printed by [authorize_name]. All previous codes have been invalidated.", "Central Tech Support", SSstation.announcer.get_rand_report_sound())


/obj/machinery/computer/communications/ui_data(mob/user)
var/list/data = list(
Expand Down Expand Up @@ -375,7 +385,7 @@
data["importantActionReady"] = COOLDOWN_FINISHED(src, important_action_cooldown)
data["shuttleCalled"] = FALSE
data["shuttleLastCalled"] = FALSE
data["canPrintId"] = FALSE
data["canPrintIdAndCode"] = FALSE

data["alertLevel"] = get_security_level()
data["authorizeName"] = authorize_name
Expand All @@ -387,7 +397,7 @@
data["canRequestNuke"] = TRUE

if (!issilicon(user))
data["canPrintId"] = TRUE
data["canPrintIdAndCode"] = TRUE

if (can_send_messages_to_other_sectors(user))
data["canSendToSectors"] = TRUE
Expand Down
10 changes: 5 additions & 5 deletions code/game/objects/items/AI_modules.dm
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ AI MODULES
if(mylaw != "")
tot_laws++
if(tot_laws > CONFIG_GET(number/silicon_max_law_amount) && !bypass_law_amt_check)//allows certain boards to avoid this check, eg: reset
to_chat(user, span_caution("Not enough memory allocated to [law_datum.owner ? law_datum.owner : "the AI core"]'s law processor to handle this amount of laws."))
message_admins("[ADMIN_LOOKUPFLW(user)] tried to upload laws to [law_datum.owner ? ADMIN_LOOKUPFLW(law_datum.owner) : "an AI core"] that would exceed the law cap.")
to_chat(user, span_caution("Not enough memory allocated to [law_datum.owner ? law_datum.owner : "the onboard APU"]'s law processor to handle this amount of laws."))
message_admins("[ADMIN_LOOKUPFLW(user)] tried to upload laws to [law_datum.owner ? ADMIN_LOOKUPFLW(law_datum.owner) : "an MMI or similar"] that would exceed the law cap.")
overflow = TRUE

var/law2log = transmitInstructions(law_datum, user, overflow) //Freeforms return something extra we need to log
Expand All @@ -66,12 +66,12 @@ AI MODULES
to_chat(user, span_notice("Upload complete."))

var/time = time2text(world.realtime,"hh:mm:ss")
var/ainame = law_datum.owner ? law_datum.owner.name : "empty AI core"
var/ainame = law_datum.owner ? law_datum.owner.name : "an MMI object"
var/aikey = law_datum.owner ? law_datum.owner.ckey : "null"
GLOB.lawchanges.Add("[time] <B>:</B> [user.name]([user.key]) used [src.name] on [ainame]([aikey]).[law2log ? " The law specified [law2log]" : ""]")
log_law("[user.key]/[user.name] used [src.name] on [aikey]/([ainame]) from [AREACOORD(user)].[law2log ? " The law specified [law2log]" : ""]")
message_admins("[ADMIN_LOOKUPFLW(user)] used [src.name] on [ADMIN_LOOKUPFLW(law_datum.owner)] from [AREACOORD(user)].[law2log ? " The law specified [law2log]" : ""]")
if(law_datum.owner) //yogs
message_admins("[ADMIN_LOOKUPFLW(user)] used [src.name] on [law_datum.owner ? ADMIN_LOOKUPFLW(law_datum.owner) : "an MMI or similar"] from [AREACOORD(user)].[law2log ? " The law specified [law2log]" : ""]")
if(law_datum.owner) //yogs, doesn't work for MMIs. (Doesn't matter much since MMIs don't follow laws before they're made into something that is silicon)
law_datum.owner.update_law_history(user)

//The proc that actually changes the silicon's laws.
Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/items/robot/ai_upgrades.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
//Malf Picker
/obj/item/malf_upgrade
name = "combat software upgrade"
desc = "A highly illegal, highly dangerous upgrade for artificial intelligence units, granting them a variety of powers as well as the ability to hack APCs.<br>This upgrade does not override any active laws, and must be applied directly to an active AI core."
desc = "A highly illegal, highly dangerous upgrade for artificial intelligence units, granting them a variety of powers as well as the ability to hack APCs.<br>This upgrade does not override any active laws, and must be applied to an unlocked AI control console."
icon = 'icons/obj/module.dmi'
icon_state = "datadisk3"

Expand All @@ -29,7 +29,7 @@
//Lipreading
/obj/item/surveillance_upgrade
name = "surveillance software upgrade"
desc = "An illegal software package that will allow an artificial intelligence to 'hear' from its cameras via lip reading and hidden microphones."
desc = "An illegal software package that will allow an artificial intelligence to 'hear' from its cameras via lip reading and hidden microphones. Must be installed using an unlocked AI control console."
icon = 'icons/obj/module.dmi'
icon_state = "datadisk3"

Expand Down
Loading