mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-19 11:05:03 +01:00
AI fixes, borg fixes, map fixes
This commit is contained in:
@@ -29,9 +29,16 @@ var/global/wcCommon
|
||||
/area/security/range,
|
||||
/area/prison/cell_block/A,
|
||||
/area/prison/cell_block/B,
|
||||
/area/prison/cell_block/C,
|
||||
/area/security/prison/cell_block/A,
|
||||
/area/security/prison/cell_block/B,
|
||||
/area/security/prison/cell_block/C,
|
||||
/area/security/processing,
|
||||
/area/security/armoury
|
||||
|
||||
/area/security/armoury,
|
||||
/area/security/securearmoury,
|
||||
/area/security/podbay,
|
||||
/area/security/securehallway,
|
||||
/area/security/medbay
|
||||
)
|
||||
|
||||
for(var/A in wsBrigList)
|
||||
|
||||
+7
-2
@@ -31,8 +31,12 @@
|
||||
if(client.buildmode) // comes after object.Click to allow buildmode gui objects to be clicked
|
||||
build_click(src, client.buildmode, params, A)
|
||||
return
|
||||
|
||||
if(control_disabled || stat)
|
||||
return
|
||||
|
||||
if(alienAI) return
|
||||
if(alienAI)
|
||||
return
|
||||
|
||||
var/list/modifiers = params2list(params)
|
||||
if(modifiers["middle"])
|
||||
@@ -48,7 +52,8 @@
|
||||
CtrlClickOn(A)
|
||||
return
|
||||
|
||||
if(control_disabled || stat || world.time <= next_move) return
|
||||
if(world.time <= next_move)
|
||||
return
|
||||
next_move = world.time + 9
|
||||
|
||||
if(aiCamera.in_camera_mode)
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
//Crew Monitorting
|
||||
using = new /obj/screen()
|
||||
using.name = "Crew Monitorting"
|
||||
using.name = "Crew Monitoring"
|
||||
using.icon = 'icons/mob/screen_ai.dmi'
|
||||
using.icon_state = "crew_monitor"
|
||||
using.screen_loc = ui_ai_crew_monitor
|
||||
|
||||
@@ -543,39 +543,39 @@ var/list/ghostteleportlocs = list()
|
||||
icon_state = "yellow"
|
||||
|
||||
/area/syndicate_station/southwest
|
||||
name = "\improper south-west of SS13"
|
||||
name = "\improper South-West of SS13"
|
||||
icon_state = "southwest"
|
||||
|
||||
/area/syndicate_station/northwest
|
||||
name = "\improper north-west of SS13"
|
||||
name = "\improper North-West of SS13"
|
||||
icon_state = "northwest"
|
||||
|
||||
/area/syndicate_station/northeast
|
||||
name = "\improper north-east of SS13"
|
||||
name = "\improper North-East of SS13"
|
||||
icon_state = "northeast"
|
||||
|
||||
/area/syndicate_station/southeast
|
||||
name = "\improper south-east of SS13"
|
||||
name = "\improper South-East of SS13"
|
||||
icon_state = "southeast"
|
||||
|
||||
/area/syndicate_station/north
|
||||
name = "\improper north of SS13"
|
||||
name = "\improper North of SS13"
|
||||
icon_state = "north"
|
||||
|
||||
/area/syndicate_station/south
|
||||
name = "\improper south of SS13"
|
||||
name = "\improper South of SS13"
|
||||
icon_state = "south"
|
||||
|
||||
/area/syndicate_station/commssat
|
||||
name = "\improper south of the communication satellite"
|
||||
name = "\improper South of the Communication Satellite"
|
||||
icon_state = "south"
|
||||
|
||||
/area/syndicate_station/mining
|
||||
name = "\improper north east of the mining asteroid"
|
||||
name = "\improper North-East of the Mining Asteroid"
|
||||
icon_state = "north"
|
||||
|
||||
/area/syndicate_station/transit
|
||||
name = "\improper hyperspace"
|
||||
name = "\improper Hyperspace"
|
||||
icon_state = "shuttle"
|
||||
|
||||
/area/wizard_station
|
||||
@@ -596,66 +596,66 @@ var/list/ghostteleportlocs = list()
|
||||
|
||||
|
||||
/area/vox_station/transit
|
||||
name = "\improper hyperspace"
|
||||
name = "\improper Hyperspace"
|
||||
icon_state = "shuttle"
|
||||
requires_power = 0
|
||||
|
||||
/area/vox_station/southwest_solars
|
||||
name = "\improper aft port solars"
|
||||
name = "\improper Aft Port Solars"
|
||||
icon_state = "southwest"
|
||||
requires_power = 0
|
||||
|
||||
/area/vox_station/northwest_solars
|
||||
name = "\improper fore port solars"
|
||||
name = "\improper Fore Port Solars"
|
||||
icon_state = "northwest"
|
||||
requires_power = 0
|
||||
|
||||
/area/vox_station/northeast_solars
|
||||
name = "\improper fore starboard solars"
|
||||
name = "\improper Fore Starboard Solars"
|
||||
icon_state = "northeast"
|
||||
requires_power = 0
|
||||
|
||||
/area/vox_station/southeast_solars
|
||||
name = "\improper aft starboard solars"
|
||||
name = "\improper Aft Starboard Solars"
|
||||
icon_state = "southeast"
|
||||
requires_power = 0
|
||||
|
||||
/area/vox_station/mining
|
||||
name = "\improper nearby mining asteroid"
|
||||
name = "\improper Nearby Mining Asteroid"
|
||||
icon_state = "north"
|
||||
requires_power = 0
|
||||
|
||||
/area/xenos_station/start
|
||||
name = "\improper start area"
|
||||
name = "\improper Start Area"
|
||||
icon_state = "north"
|
||||
|
||||
/area/xenos_station/transit
|
||||
name = "\improper hyperspace"
|
||||
name = "\improper Hyperspace"
|
||||
icon_state = "shuttle"
|
||||
|
||||
/area/xenos_station/southwest
|
||||
name = "\improper aft port solars"
|
||||
name = "\improper Aft Port Solars"
|
||||
icon_state = "southwest"
|
||||
|
||||
/area/xenos_station/northwest
|
||||
name = "\improper fore port solars"
|
||||
name = "\improper Fore Port Solars"
|
||||
icon_state = "northwest"
|
||||
|
||||
/area/xenos_station/northeast
|
||||
name = "\improper fore starboard solars"
|
||||
name = "\improper Fore Starboard Solars"
|
||||
icon_state = "northeast"
|
||||
requires_power = 0
|
||||
|
||||
/area/xenos_station/southeast
|
||||
name = "\improper aft starboard solars"
|
||||
name = "\improper Aft Starboard Solars"
|
||||
icon_state = "southeast"
|
||||
|
||||
/area/xenos_station/north
|
||||
name = "\improper west landing area"
|
||||
name = "\improper West Landing Area"
|
||||
icon_state = "north"
|
||||
|
||||
/area/xenos_station/south
|
||||
name = "\improper east landing area"
|
||||
name = "\improper East Landing Area"
|
||||
icon_state = "south"
|
||||
|
||||
//PRISON
|
||||
@@ -1023,11 +1023,23 @@ var/list/ghostteleportlocs = list()
|
||||
/area/chapel/office
|
||||
name = "\improper Chapel Office"
|
||||
icon_state = "chapeloffice"
|
||||
|
||||
/area/escapepodbay
|
||||
name = "Escape Shuttle Hallway Podbay"
|
||||
icon_state = "escape"
|
||||
|
||||
/area/lawoffice
|
||||
name = "\improper Law Office"
|
||||
icon_state = "law"
|
||||
|
||||
|
||||
area/clownoffice
|
||||
name = "\improper Clown's Office"
|
||||
icon_state = "dk_yellow"
|
||||
|
||||
area/mimeoffice
|
||||
name = "\improper Mime's Office"
|
||||
icon_state = "dk_yellow"
|
||||
|
||||
/area/civilian/barber
|
||||
name = "\improper Barber Shop"
|
||||
icon_state = "barber"
|
||||
@@ -1188,19 +1200,19 @@ var/list/ghostteleportlocs = list()
|
||||
icon_state = "panelsP"
|
||||
|
||||
/area/maintenance/auxsolarport
|
||||
name = "Fore Port Solar Maintenance"
|
||||
name = "\improper Fore Port Solar Maintenance"
|
||||
icon_state = "SolarcontrolA"
|
||||
|
||||
/area/maintenance/starboardsolar
|
||||
name = "Aft Starboard Solar Maintenance"
|
||||
name = "\improper Aft Starboard Solar Maintenance"
|
||||
icon_state = "SolarcontrolS"
|
||||
|
||||
/area/maintenance/portsolar
|
||||
name = "Aft Port Solar Maintenance"
|
||||
name = "\improper Aft Port Solar Maintenance"
|
||||
icon_state = "SolarcontrolP"
|
||||
|
||||
/area/maintenance/auxsolarstarboard
|
||||
name = "Fore Starboard Solar Maintenance"
|
||||
name = "\improper Fore Starboard Solar Maintenance"
|
||||
icon_state = "SolarcontrolA"
|
||||
|
||||
|
||||
@@ -1334,6 +1346,10 @@ var/list/ghostteleportlocs = list()
|
||||
/area/medical/virology
|
||||
name = "\improper Virology"
|
||||
icon_state = "virology"
|
||||
|
||||
/area/medical/virology/lab
|
||||
name = "\improper Virology Laboratory"
|
||||
icon_state = "virology"
|
||||
|
||||
/area/medical/morgue
|
||||
name = "\improper Morgue"
|
||||
@@ -1378,7 +1394,7 @@ var/list/ghostteleportlocs = list()
|
||||
icon_state = "security"
|
||||
|
||||
/area/security/lobby
|
||||
name = "\improper Security lobby"
|
||||
name = "\improper Security Lobby"
|
||||
icon_state = "security"
|
||||
|
||||
/area/security/brig
|
||||
@@ -1388,11 +1404,31 @@ var/list/ghostteleportlocs = list()
|
||||
/area/security/prison
|
||||
name = "\improper Prison Wing"
|
||||
icon_state = "sec_prison"
|
||||
|
||||
/area/security/prison/cell_block/A
|
||||
name = "Prison Cell Block A"
|
||||
icon_state = "brig"
|
||||
|
||||
/area/security/prison/cell_block/B
|
||||
name = "Prison Cell Block B"
|
||||
icon_state = "brig"
|
||||
|
||||
/area/security/prison/cell_block/C
|
||||
name = "Prison Cell Block C"
|
||||
icon_state = "brig"
|
||||
|
||||
/area/security/medbay
|
||||
name = "\improper Security Medbay"
|
||||
icon_state = "brig"
|
||||
|
||||
/area/security/processing
|
||||
name = "\improper Prisoner Processing"
|
||||
icon_state = "sec_prison"
|
||||
|
||||
/area/security/warden
|
||||
name = "\improper Security Medbay"
|
||||
icon_state = "Warden"
|
||||
|
||||
/area/security/warden
|
||||
name = "\improper Warden"
|
||||
icon_state = "Warden"
|
||||
@@ -1400,13 +1436,27 @@ var/list/ghostteleportlocs = list()
|
||||
/area/security/armoury
|
||||
name = "\improper Armory"
|
||||
icon_state = "Warden"
|
||||
|
||||
/area/security/securearmoury
|
||||
name = "\improper Secure Armory"
|
||||
icon_state = "Warden"
|
||||
|
||||
/area/security/armoury/gamma
|
||||
name = "\improper Gamma Armory"
|
||||
icon_state = "Warden"
|
||||
requires_power = 0
|
||||
|
||||
/area/security/securehallway
|
||||
name = "\improper Security Secure Hallway"
|
||||
icon_state = "security"
|
||||
|
||||
/area/security/hos
|
||||
name = "\improper Head of Security's Office"
|
||||
icon_state = "sec_hos"
|
||||
|
||||
area/security/podbay
|
||||
name = "\improper Security Podbay"
|
||||
icon_state = "security"
|
||||
|
||||
/area/security/detectives_office
|
||||
name = "\improper Detective's Office"
|
||||
@@ -1510,7 +1560,7 @@ var/list/ghostteleportlocs = list()
|
||||
icon_state = "janitor"
|
||||
|
||||
/area/hydroponics
|
||||
name = "Hydroponics"
|
||||
name = "\improper Hydroponics"
|
||||
icon_state = "hydro"
|
||||
|
||||
//Toxins
|
||||
@@ -1534,6 +1584,10 @@ var/list/ghostteleportlocs = list()
|
||||
/area/toxins/xenobiology
|
||||
name = "\improper Xenobiology Lab"
|
||||
icon_state = "toxlab"
|
||||
|
||||
/area/toxins/xenobiology/flora
|
||||
name = "\improper Xenobiology Flora Lab"
|
||||
icon_state = "toxlab"
|
||||
|
||||
/area/toxins/storage
|
||||
name = "\improper Toxins Storage"
|
||||
|
||||
@@ -323,7 +323,7 @@ obj/machinery/nuclearbomb/proc/nukehack_win(mob/user as mob)
|
||||
if (text2num(lastentered) == null)
|
||||
var/turf/LOC = get_turf(usr)
|
||||
message_admins("[key_name_admin(usr)] tried to exploit a nuclear bomb by entering non-numerical codes: <a href='?_src_=vars;Vars=\ref[src]'>[lastentered]</a>! ([LOC ? "<a href='?_src_=holder;adminplayerobservecoodjump=1;X=[LOC.x];Y=[LOC.y];Z=[LOC.z]'>JMP</a>" : "null"])", 0)
|
||||
log_admin("EXPLOIT : [key_name(usr)] tried to exploit a nuclear bomb by entering non-numerical codes: [lastentered]!")
|
||||
log_admin("EXPLOIT: [key_name(usr)] tried to exploit a nuclear bomb by entering non-numerical codes: [lastentered]!")
|
||||
else
|
||||
src.code += lastentered
|
||||
if (length(src.code) > 5)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
/mob/living/silicon/ai/proc/get_camera_list()
|
||||
|
||||
if(src.stat == 2)
|
||||
return
|
||||
|
||||
@@ -15,13 +14,11 @@
|
||||
var/list/tempnetwork = C.network&src.network
|
||||
if (tempnetwork.len)
|
||||
T[text("[][]", C.c_tag, (C.can_use() ? null : " (Deactivated)"))] = C
|
||||
else return
|
||||
|
||||
track = new()
|
||||
track.cameras = T
|
||||
return T
|
||||
|
||||
|
||||
/mob/living/silicon/ai/proc/ai_camera_list(var/camera in get_camera_list())
|
||||
if(src.stat == 2)
|
||||
src << "You can't list the cameras because you are dead!"
|
||||
@@ -29,7 +26,7 @@
|
||||
|
||||
if (!camera || camera == "Cancel")
|
||||
return 0
|
||||
|
||||
|
||||
var/obj/machinery/camera/C = track.cameras[camera]
|
||||
track = null
|
||||
src.eyeobj.setLoc(C)
|
||||
|
||||
@@ -27,11 +27,15 @@
|
||||
networks["Anomaly Isolation"] = list(access_rd,access_hos,access_captain)
|
||||
networks["Toxins"] = list(access_rd,access_hos,access_captain)
|
||||
networks["Telepad"] = list(access_rd,access_hos,access_captain)
|
||||
networks["ERT"] = list(access_cent_teleporter,access_cent_captain)
|
||||
networks["CentCom"] = list(access_cent_captain)
|
||||
networks["Thunderdome"] = list(access_cent_captain)
|
||||
|
||||
attack_ai(var/mob/user as mob)
|
||||
return ui_interact(user)
|
||||
if(isAI(user))
|
||||
return ui_interact(user)
|
||||
else
|
||||
return attack_hand(user)
|
||||
|
||||
attack_paw(var/mob/user as mob)
|
||||
return attack_hand(user)
|
||||
|
||||
@@ -219,7 +219,50 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
return
|
||||
var/selected = plist[c]
|
||||
aiPDA.create_message(user, selected)
|
||||
|
||||
/mob/living/silicon/ai/proc/cmd_show_message_log(mob/user as mob)
|
||||
if(user.stat == 2)
|
||||
user << "You can't do that because you are dead!"
|
||||
return
|
||||
var/HTML = "<html><head><title>AI PDA Message Log</title></head><body>"
|
||||
for(var/index in aiPDA.tnote)
|
||||
if(index["sent"])
|
||||
HTML += addtext("<i><b>→ To <a href='byond://?src=\ref[src];choice=Message;target=",index["src"],"'>", index["owner"],"</a>:</b></i><br>", index["message"], "<br>")
|
||||
else
|
||||
HTML += addtext("<i><b>← From <a href='byond://?src=\ref[src];choice=Message;target=",index["target"],"'>", index["owner"],"</a>:</b></i><br>", index["message"], "<br>")
|
||||
HTML +="</body></html>"
|
||||
user << browse(HTML, "window=log;size=400x444;border=1;can_resize=1;can_close=1;can_minimize=0")
|
||||
|
||||
/obj/item/device/pda/ai/verb/cmd_send_pdamesg()
|
||||
set category = "AI IM"
|
||||
set name = "Send PDA Message"
|
||||
set src in usr
|
||||
if(usr.stat == 2)
|
||||
usr << "You can't send PDA messages because you are dead!"
|
||||
return
|
||||
var/list/plist = available_pdas()
|
||||
if (plist)
|
||||
var/c = input(usr, "Please select a PDA") as null|anything in sortList(plist)
|
||||
if (!c) // if the user hasn't selected a PDA file we can't send a message
|
||||
return
|
||||
var/selected = plist[c]
|
||||
create_message(usr, selected)
|
||||
|
||||
/obj/item/device/pda/ai/verb/cmd_show_message_log()
|
||||
set category = "AI IM"
|
||||
set name = "Show Message Log"
|
||||
set src in usr
|
||||
if(usr.stat == 2)
|
||||
usr << "You can't do that because you are dead!"
|
||||
return
|
||||
var/HTML = "<html><head><title>AI PDA Message Log</title></head><body>"
|
||||
for(var/index in tnote)
|
||||
if(index["sent"])
|
||||
HTML += addtext("<i><b>→ To <a href='byond://?src=\ref[src];choice=Message;target=",index["src"],"'>", index["owner"],"</a>:</b></i><br>", index["message"], "<br>")
|
||||
else
|
||||
HTML += addtext("<i><b>← From <a href='byond://?src=\ref[src];choice=Message;target=",index["target"],"'>", index["owner"],"</a>:</b></i><br>", index["message"], "<br>")
|
||||
HTML +="</body></html>"
|
||||
usr << browse(HTML, "window=log;size=400x444;border=1;can_resize=1;can_close=1;can_minimize=0")
|
||||
|
||||
/obj/item/device/pda/ai/verb/cmd_toggle_pda_receiver()
|
||||
set category = "AI IM"
|
||||
@@ -242,21 +285,6 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
silent=!silent
|
||||
usr << "<span class='notice'>PDA ringer toggled [(silent ? "Off" : "On")]!</span>"
|
||||
|
||||
|
||||
/mob/living/silicon/ai/proc/cmd_show_message_log(mob/user as mob)
|
||||
if(user.stat == 2)
|
||||
user << "You can't do that because you are dead!"
|
||||
return
|
||||
var/HTML = "<html><head><title>AI PDA Message Log</title></head><body>"
|
||||
for(var/index in aiPDA.tnote)
|
||||
if(index["sent"])
|
||||
HTML += addtext("<i><b>→ To <a href='byond://?src=\ref[src];choice=Message;target=",index["src"],"'>", index["owner"],"</a>:</b></i><br>", index["message"], "<br>")
|
||||
else
|
||||
HTML += addtext("<i><b>← From <a href='byond://?src=\ref[src];choice=Message;target=",index["target"],"'>", index["owner"],"</a>:</b></i><br>", index["message"], "<br>")
|
||||
HTML +="</body></html>"
|
||||
user << browse(HTML, "window=log;size=400x444;border=1;can_resize=1;can_close=1;can_minimize=0")
|
||||
|
||||
|
||||
/obj/item/device/pda/ai/can_use()
|
||||
return 1
|
||||
|
||||
|
||||
@@ -71,9 +71,9 @@
|
||||
dat += "<br>"
|
||||
dat += {"<a href='byond://?src=\ref[src];choice=Wireless'>[A.control_disabled ? "Enable" : "Disable"] Wireless Activity</a>"}
|
||||
dat += "<br>"
|
||||
dat += "Subspace Transceiver is: [A.radio.disabledAi ? "Disabled" : "Enabled"]"
|
||||
dat += "Subspace Transceiver is: [A.aiRadio.disabledAi ? "Disabled" : "Enabled"]"
|
||||
dat += "<br>"
|
||||
dat += {"<a href='byond://?src=\ref[src];choice=Radio'>[A.radio.disabledAi ? "Enable" : "Disable"] Subspace Transceiver</a>"}
|
||||
dat += {"<a href='byond://?src=\ref[src];choice=Radio'>[A.aiRadio.disabledAi ? "Enable" : "Disable"] Subspace Transceiver</a>"}
|
||||
dat += "<br>"
|
||||
dat += {"<a href='byond://?src=\ref[src];choice=Close'> Close</a>"}
|
||||
user << browse(dat, "window=aicard")
|
||||
@@ -116,9 +116,9 @@
|
||||
|
||||
if ("Radio")
|
||||
for(var/mob/living/silicon/ai/A in src)
|
||||
A.radio.disabledAi = !A.radio.disabledAi
|
||||
A << "Your Subspace Transceiver has been: [A.radio.disabledAi ? "disabled" : "enabled"]"
|
||||
U << "You [A.radio.disabledAi ? "Disable" : "Enable"] the AI's Subspace Transceiver"
|
||||
A.aiRadio.disabledAi = !A.aiRadio.disabledAi
|
||||
A << "Your Subspace Transceiver has been: [A.aiRadio.disabledAi ? "disabled" : "enabled"]"
|
||||
U << "You [A.aiRadio.disabledAi ? "Disable" : "Enable"] the AI's Subspace Transceiver"
|
||||
|
||||
if ("Wireless")
|
||||
for(var/mob/living/silicon/ai/A in src)
|
||||
|
||||
@@ -171,7 +171,8 @@
|
||||
/obj/item/device/radio/headset/heads/ai_integrated //No need to care about icons, it should be hidden inside the AI anyway.
|
||||
name = "AI Subspace Transceiver"
|
||||
desc = "Integrated AI radio transceiver."
|
||||
icon_state = "ai_radio"
|
||||
icon = 'icons/obj/robot_component.dmi'
|
||||
icon_state = "radio"
|
||||
item_state = "headset"
|
||||
keyslot2 = new /obj/item/device/encryptionkey/heads/ai_integrated
|
||||
var/myAi = null // Atlantis: Reference back to the AI which has this radio.
|
||||
|
||||
@@ -196,7 +196,7 @@
|
||||
desc = "Covers the eyes, preventing sight."
|
||||
icon_state = "blindfold"
|
||||
item_state = "blindfold"
|
||||
vision_flags = BLIND
|
||||
//vision_flags = BLIND
|
||||
species_fit = list("Vox")
|
||||
sprite_sheets = list(
|
||||
"Vox" = 'icons/mob/species/vox/eyes.dmi'
|
||||
|
||||
@@ -30,25 +30,25 @@ var/list/department_radio_keys = list(
|
||||
":A" = "alientalk", "#A" = "alientalk", ".A" = "alientalk",
|
||||
":T" = "Syndicate", "#T" = "Syndicate", ".T" = "Syndicate",
|
||||
":U" = "Supply", "#U" = "Supply", ".U" = "Supply",
|
||||
":G" = "changeling", "#G" = "changeling", ".G" = "changeling",
|
||||
|
||||
//kinda localization -- rastaf0
|
||||
//same keys as above, but on russian keyboard layout. This file uses cp1251 as encoding.
|
||||
":ê" = "right hand", "#ê" = "right hand", ".ê" = "right hand",
|
||||
":ä" = "left hand", "#ä" = "left hand", ".ä" = "left hand",
|
||||
":ø" = "intercom", "#ø" = "intercom", ".ø" = "intercom",
|
||||
":ð" = "department", "#ð" = "department", ".ð" = "department",
|
||||
":ñ" = "Command", "#ñ" = "Command", ".ñ" = "Command",
|
||||
":ò" = "Science", "#ò" = "Science", ".ò" = "Science",
|
||||
":ü" = "Medical", "#ü" = "Medical", ".ü" = "Medical",
|
||||
":ó" = "Engineering", "#ó" = "Engineering", ".ó" = "Engineering",
|
||||
":û" = "Security", "#û" = "Security", ".û" = "Security",
|
||||
":ö" = "whisper", "#ö" = "whisper", ".ö" = "whisper",
|
||||
":è" = "binary", "#è" = "binary", ".è" = "binary",
|
||||
":ô" = "alientalk", "#ô" = "alientalk", ".ô" = "alientalk",
|
||||
":å" = "Syndicate", "#å" = "Syndicate", ".å" = "Syndicate",
|
||||
":é" = "Supply", "#é" = "Supply", ".é" = "Supply",
|
||||
":ï" = "changeling", "#ï" = "changeling", ".ï" = "changeling"
|
||||
":G" = "changeling", "#G" = "changeling", ".G" = "changeling"
|
||||
|
||||
/* //kinda localization -- rastaf0
|
||||
//same keys as above, but on russian keyboard layout. This file uses cp1251 as encoding.
|
||||
":ê" = "right hand", "#ê" = "right hand", ".ê" = "right hand",
|
||||
":ä" = "left hand", "#ä" = "left hand", ".ä" = "left hand",
|
||||
":ø" = "intercom", "#ø" = "intercom", ".ø" = "intercom",
|
||||
":ð" = "department", "#ð" = "department", ".ð" = "department",
|
||||
":ñ" = "Command", "#ñ" = "Command", ".ñ" = "Command",
|
||||
":ò" = "Science", "#ò" = "Science", ".ò" = "Science",
|
||||
":ü" = "Medical", "#ü" = "Medical", ".ü" = "Medical",
|
||||
":ó" = "Engineering", "#ó" = "Engineering", ".ó" = "Engineering",
|
||||
":û" = "Security", "#û" = "Security", ".û" = "Security",
|
||||
":ö" = "whisper", "#ö" = "whisper", ".ö" = "whisper",
|
||||
":è" = "binary", "#è" = "binary", ".è" = "binary",
|
||||
":ô" = "alientalk", "#ô" = "alientalk", ".ô" = "alientalk",
|
||||
":å" = "Syndicate", "#å" = "Syndicate", ".å" = "Syndicate",
|
||||
":é" = "Supply", "#é" = "Supply", ".é" = "Supply",
|
||||
":ï" = "changeling", "#ï" = "changeling", ".ï" = "changeling" */
|
||||
)
|
||||
|
||||
/mob/living/proc/binarycheck()
|
||||
@@ -178,7 +178,7 @@ var/list/department_radio_keys = list(
|
||||
message_mode = department_radio_keys[channel_prefix]
|
||||
if (message_mode || speaking || copytext(message,1,2) == ":")
|
||||
message = trim(copytext(message, 3))
|
||||
if (!(istype(src,/mob/living/carbon/human) || istype(src,/mob/living/carbon/monkey) || istype(src, /mob/living/simple_animal/parrot) || isrobot(src) && (message_mode=="department" || isAI(src) && (message_mode=="department") || (message_mode in radiochannels))))
|
||||
if (!(istype(src,/mob/living/carbon/human) && !isAI(src) && !isrobot(src) || istype(src,/mob/living/carbon/monkey) || istype(src, /mob/living/simple_animal/parrot) || isrobot(src) && (message_mode=="department") || isAI(src) && (message_mode=="department") || (message_mode in radiochannels)))
|
||||
message_mode = null //only humans can use headsets
|
||||
|
||||
if(src.stunned > 2 || (traumatic_shock > 61 && prob(50)))
|
||||
@@ -302,9 +302,9 @@ var/list/department_radio_keys = list(
|
||||
if(issilicon(src))
|
||||
if(isAI(src))//for the AI's radio. This can't be with the borg thing above due to typecasting.
|
||||
var/mob/living/silicon/ai/A = src
|
||||
if(A.radio)
|
||||
A.radio.talk_into(src, message, message_mode)
|
||||
used_radios += A.radio
|
||||
if(A.aiRadio)
|
||||
A.aiRadio.talk_into(src, message, message_mode)
|
||||
used_radios += A.aiRadio
|
||||
else
|
||||
var/mob/living/silicon/Ro=src
|
||||
if(!isAI(Ro))
|
||||
|
||||
@@ -19,7 +19,7 @@ var/list/ai_list = list()
|
||||
anchored = 1 // -- TLE
|
||||
density = 1
|
||||
status_flags = CANSTUN|CANPARALYSE|CANPUSH
|
||||
var/list/network = list("SS13")
|
||||
var/list/network = list("SS13","Telecomms")
|
||||
var/obj/machinery/camera/current = null
|
||||
var/list/connected_robots = list()
|
||||
var/aiRestorePowerRoutine = 0
|
||||
@@ -34,7 +34,7 @@ var/list/ai_list = list()
|
||||
var/custom_sprite = 0 //For our custom sprites
|
||||
var/alienAI = 0
|
||||
|
||||
var/obj/item/device/radio/headset/heads/ai_integrated/radio = null
|
||||
var/obj/item/device/radio/headset/heads/ai_integrated/aiRadio = null
|
||||
|
||||
//MALFUNCTION
|
||||
var/datum/module_picker/malf_picker
|
||||
@@ -91,15 +91,15 @@ var/list/ai_list = list()
|
||||
aiPDA.name = name + " (" + aiPDA.ownjob + ")"
|
||||
|
||||
aiMulti = new(src)
|
||||
radio = new(src)
|
||||
radio.myAi = src
|
||||
aiRadio = new(src)
|
||||
aiRadio.myAi = src
|
||||
|
||||
aiCamera = new/obj/item/device/camera/siliconcam/ai_camera(src)
|
||||
|
||||
if (istype(loc, /turf))
|
||||
verbs.Add(/mob/living/silicon/ai/proc/ai_network_change, \
|
||||
/mob/living/silicon/ai/proc/ai_statuschange, /mob/living/silicon/ai/proc/ai_hologram_change, \
|
||||
/mob/living/silicon/ai/proc/toggle_camera_light, /mob/living/silicon/ai/proc/control_integrateed_radio)
|
||||
/mob/living/silicon/ai/proc/toggle_camera_light, /mob/living/silicon/ai/proc/control_integrated_radio)
|
||||
|
||||
if(!safety)//Only used by AIize() to successfully spawn an AI.
|
||||
if (!B)//If there is no player/brain inside.
|
||||
@@ -786,11 +786,11 @@ var/list/ai_list = list()
|
||||
return ..()
|
||||
|
||||
|
||||
/mob/living/silicon/ai/proc/control_integrateed_radio()
|
||||
/mob/living/silicon/ai/proc/control_integrated_radio()
|
||||
set name = "Radio Settings"
|
||||
set desc = "Allows you to change settings of your radio."
|
||||
set category = "AI Commands"
|
||||
|
||||
src << "Accessing Subspace Transceiver control..."
|
||||
if (src.radio)
|
||||
src.radio.interact(src)
|
||||
if (src.aiRadio)
|
||||
src.aiRadio.interact(src)
|
||||
|
||||
@@ -23,9 +23,4 @@
|
||||
return tally+config.robot_delay
|
||||
|
||||
/mob/living/silicon/robot/Move()
|
||||
if (!is_component_functioning("actuator") || !is_component_functioning("power cell") || !cell)
|
||||
return
|
||||
|
||||
else
|
||||
if (src.cell.charge > 0)
|
||||
..()
|
||||
..()
|
||||
@@ -50,18 +50,28 @@
|
||||
|
||||
alien_talk(message)
|
||||
else if (department_radio_keys[prefix] == "department")
|
||||
if(isAI(src)&&client)//For patching directly into AI holopads.
|
||||
if(isAI(src)&&client) //For patching directly into AI holopads.
|
||||
var/mob/living/silicon/ai/U = src
|
||||
message = copytext(message, 3)
|
||||
message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
|
||||
U.holopad_talk(message)
|
||||
else//Will not allow anyone by an active AI to use this function.
|
||||
else //Will not allow anyone by an active AI to use this function.
|
||||
src << "This function is not available to you."
|
||||
return
|
||||
else
|
||||
return ..(message)
|
||||
var/mob/living/silicon/ai/AI = src
|
||||
if (isAI(src) && AI.aiRadio.disabledAi)
|
||||
src << "\red System Error - Transceiver Disabled"
|
||||
return
|
||||
else
|
||||
return ..(message)
|
||||
else
|
||||
return ..(message)
|
||||
var/mob/living/silicon/ai/AI = src
|
||||
if (isAI(src) && AI.aiRadio.disabledAi)
|
||||
src << "\red System Error - Transceiver Disabled"
|
||||
return
|
||||
else
|
||||
return ..(message)
|
||||
|
||||
//For holopads only. Usable by AI.
|
||||
/mob/living/silicon/ai/proc/holopad_talk(var/message)
|
||||
|
||||
@@ -785,6 +785,7 @@ var/list/cheartstopper = list("potassium_chloride") //this stops the heart when
|
||||
|
||||
var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accessed by preexisting terminals. AIs and new terminals can't use them.
|
||||
"CentCom",
|
||||
"ERT",
|
||||
"Thunderdome",
|
||||
"Xeno"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user