|
|
|
@@ -92,6 +92,7 @@
|
|
|
|
|
var/list/multicam_screens = list()
|
|
|
|
|
var/list/all_eyes = list()
|
|
|
|
|
var/max_multicams = 6
|
|
|
|
|
var/display_icon_override
|
|
|
|
|
|
|
|
|
|
/mob/living/silicon/ai/Initialize(mapload, datum/ai_laws/L, mob/target_ai)
|
|
|
|
|
. = ..()
|
|
|
|
@@ -127,6 +128,8 @@
|
|
|
|
|
create_eye()
|
|
|
|
|
apply_pref_name("ai")
|
|
|
|
|
|
|
|
|
|
set_core_display_icon()
|
|
|
|
|
|
|
|
|
|
holo_icon = getHologramIcon(icon('icons/mob/ai.dmi',"default"))
|
|
|
|
|
|
|
|
|
|
spark_system = new /datum/effect_system/spark_spread()
|
|
|
|
@@ -172,81 +175,34 @@
|
|
|
|
|
fire_stacks = 0
|
|
|
|
|
. = ..()
|
|
|
|
|
|
|
|
|
|
/mob/living/silicon/ai/proc/set_core_display_icon(input, client/C)
|
|
|
|
|
if(client && !C)
|
|
|
|
|
C = client
|
|
|
|
|
if(!input && !C?.prefs?.preferred_ai_core_display)
|
|
|
|
|
icon_state = initial(icon_state)
|
|
|
|
|
else
|
|
|
|
|
var/preferred_icon = input ? input : C.prefs.preferred_ai_core_display
|
|
|
|
|
icon_state = resolve_ai_icon(preferred_icon)
|
|
|
|
|
|
|
|
|
|
/mob/living/silicon/ai/verb/pick_icon()
|
|
|
|
|
set category = "AI Commands"
|
|
|
|
|
set name = "Set AI Core Display"
|
|
|
|
|
if(incapacitated())
|
|
|
|
|
return
|
|
|
|
|
var/list/iconstates = GLOB.ai_core_display_screens
|
|
|
|
|
for(var/option in iconstates)
|
|
|
|
|
if(option == "Random")
|
|
|
|
|
iconstates[option] = image(icon = src.icon, icon_state = "ai-random")
|
|
|
|
|
continue
|
|
|
|
|
iconstates[option] = image(icon = src.icon, icon_state = resolve_ai_icon(option))
|
|
|
|
|
|
|
|
|
|
var/icontype = input("Please, select a display!", "AI", null/*, null*/) in list("Clown", ":thinking:", "Monochrome", "Blue", "Inverted", "Firewall", "Green", "Red", "Static", "Red October", "House", "Heartline", "Hades", "Helios", "President", "Syndicat Meow", "Alien", "Too Deep", "Triumvirate", "Triumvirate-M", "Text", "Matrix", "Dorf", "Bliss", "Not Malf", "Fuzzy", "Goon", "Database", "Glitchman", "Murica", "Nanotrasen", "Gentoo", "Angel", "TechDemon") //CIT CHANGE - adds 'TechDemon
|
|
|
|
|
if(icontype == "Clown")
|
|
|
|
|
icon_state = "ai-clown2"
|
|
|
|
|
else if (icontype == ":thinking:")
|
|
|
|
|
icon_state = "ai-:thinking:"
|
|
|
|
|
else if(icontype == "Monochrome")
|
|
|
|
|
icon_state = "ai-mono"
|
|
|
|
|
else if(icontype == "Blue")
|
|
|
|
|
icon_state = "ai"
|
|
|
|
|
else if(icontype == "Inverted")
|
|
|
|
|
icon_state = "ai-u"
|
|
|
|
|
else if(icontype == "Firewall")
|
|
|
|
|
icon_state = "ai-magma"
|
|
|
|
|
else if(icontype == "Green")
|
|
|
|
|
icon_state = "ai-wierd"
|
|
|
|
|
else if(icontype == "Red")
|
|
|
|
|
icon_state = "ai-malf"
|
|
|
|
|
else if(icontype == "Static")
|
|
|
|
|
icon_state = "ai-static"
|
|
|
|
|
else if(icontype == "Red October")
|
|
|
|
|
icon_state = "ai-redoctober"
|
|
|
|
|
else if(icontype == "House")
|
|
|
|
|
icon_state = "ai-house"
|
|
|
|
|
else if(icontype == "Heartline")
|
|
|
|
|
icon_state = "ai-heartline"
|
|
|
|
|
else if(icontype == "Hades")
|
|
|
|
|
icon_state = "ai-hades"
|
|
|
|
|
else if(icontype == "Helios")
|
|
|
|
|
icon_state = "ai-helios"
|
|
|
|
|
else if(icontype == "President")
|
|
|
|
|
icon_state = "ai-pres"
|
|
|
|
|
else if(icontype == "Syndicat Meow")
|
|
|
|
|
icon_state = "ai-syndicatmeow"
|
|
|
|
|
else if(icontype == "Alien")
|
|
|
|
|
icon_state = "ai-alien"
|
|
|
|
|
else if(icontype == "Too Deep")
|
|
|
|
|
icon_state = "ai-toodeep"
|
|
|
|
|
else if(icontype == "Triumvirate")
|
|
|
|
|
icon_state = "ai-triumvirate"
|
|
|
|
|
else if(icontype == "Triumvirate-M")
|
|
|
|
|
icon_state = "ai-triumvirate-malf"
|
|
|
|
|
else if(icontype == "Text")
|
|
|
|
|
icon_state = "ai-text"
|
|
|
|
|
else if(icontype == "Matrix")
|
|
|
|
|
icon_state = "ai-matrix"
|
|
|
|
|
else if(icontype == "Dorf")
|
|
|
|
|
icon_state = "ai-dorf"
|
|
|
|
|
else if(icontype == "Bliss")
|
|
|
|
|
icon_state = "ai-bliss"
|
|
|
|
|
else if(icontype == "Not Malf")
|
|
|
|
|
icon_state = "ai-notmalf"
|
|
|
|
|
else if(icontype == "Fuzzy")
|
|
|
|
|
icon_state = "ai-fuzz"
|
|
|
|
|
else if(icontype == "Goon")
|
|
|
|
|
icon_state = "ai-goon"
|
|
|
|
|
else if(icontype == "Database")
|
|
|
|
|
icon_state = "ai-database"
|
|
|
|
|
else if(icontype == "Glitchman")
|
|
|
|
|
icon_state = "ai-glitchman"
|
|
|
|
|
else if(icontype == "Murica")
|
|
|
|
|
icon_state = "ai-murica"
|
|
|
|
|
else if(icontype == "Nanotrasen")
|
|
|
|
|
icon_state = "ai-nanotrasen"
|
|
|
|
|
else if(icontype == "Gentoo")
|
|
|
|
|
icon_state = "ai-gentoo"
|
|
|
|
|
else if(icontype == "Angel")
|
|
|
|
|
icon_state = "ai-angel"
|
|
|
|
|
else if(icontype == "TechDemon") //CIT CHANGE - adds 'TechDemon
|
|
|
|
|
icon_state = "ai-techdemon"
|
|
|
|
|
view_core()
|
|
|
|
|
var/ai_core_icon = show_radial_menu(src, src , iconstates, radius = 42)
|
|
|
|
|
|
|
|
|
|
if(!ai_core_icon || incapacitated())
|
|
|
|
|
return
|
|
|
|
|
display_icon_override = ai_core_icon
|
|
|
|
|
set_core_display_icon(ai_core_icon)
|
|
|
|
|
|
|
|
|
|
/mob/living/silicon/ai/Stat()
|
|
|
|
|
..()
|
|
|
|
@@ -332,8 +288,17 @@
|
|
|
|
|
|
|
|
|
|
/mob/living/silicon/ai/can_interact_with(atom/A)
|
|
|
|
|
. = ..()
|
|
|
|
|
var/turf/ai = get_turf(src)
|
|
|
|
|
var/turf/target = get_turf(A)
|
|
|
|
|
if (.)
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
if(!target)
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
if ((ai.z != target.z) && !is_station_level(ai.z))
|
|
|
|
|
return FALSE
|
|
|
|
|
|
|
|
|
|
if (istype(loc, /obj/item/aicard))
|
|
|
|
|
var/turf/T0 = get_turf(src)
|
|
|
|
|
var/turf/T1 = get_turf(A)
|
|
|
|
@@ -823,7 +788,7 @@
|
|
|
|
|
return TRUE
|
|
|
|
|
return ..()
|
|
|
|
|
|
|
|
|
|
/mob/living/silicon/ai/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE)
|
|
|
|
|
/mob/living/silicon/ai/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE, no_tk=FALSE)
|
|
|
|
|
if(control_disabled || incapacitated())
|
|
|
|
|
to_chat(src, "<span class='warning'>You can't do that right now!</span>")
|
|
|
|
|
return FALSE
|
|
|
|
@@ -915,9 +880,9 @@
|
|
|
|
|
clear_fullscreen("remote_view", 0)
|
|
|
|
|
|
|
|
|
|
/mob/living/silicon/ai/revive(full_heal = 0, admin_revive = 0)
|
|
|
|
|
if(..()) //successfully ressuscitated from death
|
|
|
|
|
icon_state = "ai"
|
|
|
|
|
. = 1
|
|
|
|
|
. = ..()
|
|
|
|
|
if(.) //successfully ressuscitated from death
|
|
|
|
|
set_core_display_icon(display_icon_override)
|
|
|
|
|
|
|
|
|
|
/mob/living/silicon/ai/proc/malfhacked(obj/machinery/power/apc/apc)
|
|
|
|
|
malfhack = null
|
|
|
|
|