mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
Merge pull request #3597 from PrismaticGynoid/intellicores
Replaces intelliCards with intelliCores.
This commit is contained in:
@@ -1045,7 +1045,7 @@ datum
|
||||
return 20
|
||||
AI
|
||||
steal_target = /obj/structure/AIcore
|
||||
explanation_text = "Steal a finished AI, either by intellicard or stealing the whole construct."
|
||||
explanation_text = "Steal a finished AI, either by intelliCore or stealing the whole construct."
|
||||
weight = 50
|
||||
|
||||
get_points(var/job)
|
||||
|
||||
@@ -202,8 +202,8 @@
|
||||
transfer.loc = get_turf(src)
|
||||
transfer.create_eyeobj()
|
||||
transfer.cancel_camera()
|
||||
user << "<span class='notice'>Transfer successful:</span> [transfer.name] ([rand(1000,9999)].exe) downloaded to host terminal. Local copy wiped."
|
||||
transfer << "You have been uploaded to a stationary terminal. Remote device connection restored."
|
||||
user << "<span class='notice'>Transfer successful:</span> [transfer.name] placed within stationary core."
|
||||
transfer << "You have been transferred into a stationary core. Remote device connection restored."
|
||||
|
||||
if(card)
|
||||
card.clear()
|
||||
|
||||
@@ -18,8 +18,8 @@
|
||||
return
|
||||
|
||||
// Transfer over the AI.
|
||||
transfer << "You have been uploaded to a stationary terminal. Sadly, there is no remote access from here."
|
||||
user << "<span class='notice'>Transfer successful:</span> [transfer.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed."
|
||||
transfer << "You have been transferred into a stationary terminal. Sadly, there is no remote access from here."
|
||||
user << "<span class='notice'>Transfer successful:</span> [transfer.name] placed within stationary terminal."
|
||||
|
||||
transfer.loc = src
|
||||
transfer.cancel_camera()
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
*/
|
||||
|
||||
/obj/item/part/computer/ai_holder
|
||||
name = "intelliCard computer module"
|
||||
name = "intelliCore computer module"
|
||||
desc = "Contains a specialized nacelle for dealing with highly sensitive equipment without interference."
|
||||
|
||||
attackby_types = list(/obj/item/device/aicard)
|
||||
@@ -81,8 +81,8 @@
|
||||
return
|
||||
|
||||
// Transfer over the AI.
|
||||
transfer << "You have been uploaded to a stationary terminal. Sadly, there is no remote access from here."
|
||||
user << "<span class='notice'>Transfer successful:</span> [transfer.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed."
|
||||
transfer << "You have been transferred into a mobile terminal. Sadly, there is no remote access from here."
|
||||
user << "<span class='notice'>Transfer successful:</span> [transfer.name] placed within mobile terminal."
|
||||
|
||||
transfer.loc = src
|
||||
transfer.cancel_camera()
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
/obj/item/device/aicard
|
||||
name = "inteliCard"
|
||||
name = "intelliCore"
|
||||
desc = "Used to preserve and transport an AI."
|
||||
icon = 'icons/obj/pda.dmi'
|
||||
icon_state = "aicard" // aicard-full
|
||||
item_state = "aicard"
|
||||
w_class = ITEMSIZE_SMALL
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
slot_flags = SLOT_BELT
|
||||
show_messages = 0
|
||||
|
||||
@@ -57,12 +58,12 @@
|
||||
|
||||
var/user = usr
|
||||
if (href_list["wipe"])
|
||||
var/confirm = alert("Are you sure you want to wipe this card's memory? This cannot be undone once started.", "Confirm Wipe", "Yes", "No")
|
||||
var/confirm = alert("Are you sure you want to disable this core's power? This cannot be undone once started.", "Confirm Shutdown", "Yes", "No")
|
||||
if(confirm == "Yes" && (CanUseTopic(user, state) == STATUS_INTERACTIVE))
|
||||
admin_attack_log(user, carded_ai, "Wiped using \the [src.name]", "Was wiped with \the [src.name]", "used \the [src.name] to wipe")
|
||||
admin_attack_log(user, carded_ai, "Purged using \the [src.name]", "Was purged with \the [src.name]", "used \the [src.name] to purge")
|
||||
flush = 1
|
||||
carded_ai.suiciding = 1
|
||||
carded_ai << "Your core files are being wiped!"
|
||||
carded_ai << "Your power has been disabled!"
|
||||
while (carded_ai && carded_ai.stat != 2)
|
||||
carded_ai.adjustOxyLoss(2)
|
||||
carded_ai.updatehealth()
|
||||
@@ -93,22 +94,22 @@
|
||||
|
||||
/obj/item/device/aicard/proc/grab_ai(var/mob/living/silicon/ai/ai, var/mob/living/user)
|
||||
if(!ai.client)
|
||||
user << "<span class='danger'>ERROR:</span> AI [ai.name] is offline. Unable to download."
|
||||
user << "<span class='danger'>ERROR:</span> AI [ai.name] is offline. Unable to transfer."
|
||||
return 0
|
||||
|
||||
if(carded_ai)
|
||||
user << "<span class='danger'>Transfer failed:</span> Existing AI found on remote terminal. Remove existing AI to install a new one."
|
||||
user << "<span class='danger'>Transfer failed:</span> Existing AI found on remote device. Remove existing AI to install a new one."
|
||||
return 0
|
||||
|
||||
user.visible_message("\The [user] starts downloading \the [ai] into \the [src]...", "You start downloading \the [ai] into \the [src]...")
|
||||
ai << "<span class='danger'>\The [user] is downloading you into \the [src]!</span>"
|
||||
user.visible_message("\The [user] starts transferring \the [ai] into \the [src]...", "You start transferring \the [ai] into \the [src]...")
|
||||
ai << "<span class='danger'>\The [user] is transferring you into \the [src]!</span>"
|
||||
|
||||
if(do_after(user, 100))
|
||||
if(istype(ai.loc, /turf/))
|
||||
new /obj/structure/AIcore/deactivated(get_turf(ai))
|
||||
|
||||
ai.carded = 1
|
||||
admin_attack_log(user, ai, "Carded with [src.name]", "Was carded with [src.name]", "used the [src.name] to card")
|
||||
admin_attack_log(user, ai, "Extracted with [src.name]", "Was extracted with [src.name]", "used the [src.name] to extract")
|
||||
src.name = "[initial(name)] - [ai.name]"
|
||||
|
||||
ai.loc = src
|
||||
@@ -119,9 +120,9 @@
|
||||
carded_ai = ai
|
||||
|
||||
if(ai.client)
|
||||
ai << "You have been downloaded to a mobile storage device. Remote access lost."
|
||||
ai << "You have been transferred into a mobile core. Remote access lost."
|
||||
if(user.client)
|
||||
user << "<span class='notice'><b>Transfer successful:</b></span> [ai.name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory."
|
||||
user << "<span class='notice'><b>Transfer successful:</b></span> [ai.name] extracted from current device and placed within mobile core."
|
||||
|
||||
ai.canmove = 1
|
||||
update_icon()
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
activates_on_touch = 1
|
||||
|
||||
engage_string = "Eject AI"
|
||||
activate_string = "Enable Dataspike"
|
||||
deactivate_string = "Disable Dataspike"
|
||||
activate_string = "Enable Core Transfer"
|
||||
deactivate_string = "Disable Core Transfer"
|
||||
|
||||
interface_name = "integrated intelligence system"
|
||||
interface_desc = "A socket that supports a range of artificial intelligence systems."
|
||||
@@ -168,7 +168,7 @@
|
||||
if(user)
|
||||
user << "<span class='danger'>You cannot eject your currently stored AI. Purge it manually.</span>"
|
||||
return 0
|
||||
user << "<span class='danger'>You purge the remaining scraps of data from your previous AI, freeing it for use.</span>"
|
||||
user << "<span class='danger'>You purge the previous AI from your Integrated Intelligence System, freeing it for use.</span>"
|
||||
if(integrated_ai)
|
||||
integrated_ai.ghostize()
|
||||
qdel(integrated_ai)
|
||||
|
||||
@@ -10,18 +10,18 @@ var/global/list/empty_playable_ai_cores = list()
|
||||
|
||||
return 1
|
||||
|
||||
/mob/living/silicon/ai/verb/wipe_core()
|
||||
set name = "Wipe Core"
|
||||
/mob/living/silicon/ai/verb/store_core()
|
||||
set name = "Store Core"
|
||||
set category = "OOC"
|
||||
set desc = "Wipe your core. This is functionally equivalent to cryo or robotic storage, freeing up your job slot."
|
||||
set desc = "Enter intelligence storage. This is functionally equivalent to cryo or robotic storage, freeing up your job slot."
|
||||
|
||||
if(ticker && ticker.mode && ticker.mode.name == "AI malfunction")
|
||||
usr << "<span class='danger'>You cannot use this verb in malfunction. If you need to leave, please adminhelp.</span>"
|
||||
return
|
||||
|
||||
// Guard against misclicks, this isn't the sort of thing we want happening accidentally
|
||||
if(alert("WARNING: This will immediately wipe your core and ghost you, removing your character from the round permanently (similar to cryo and robotic storage). Are you entirely sure you want to do this?",
|
||||
"Wipe Core", "No", "No", "Yes") != "Yes")
|
||||
if(alert("WARNING: This will immediately empty your core and ghost you, removing your character from the round permanently (similar to cryo and robotic storage). Are you entirely sure you want to do this?",
|
||||
"Store Core", "No", "No", "Yes") != "Yes")
|
||||
return
|
||||
|
||||
// We warned you.
|
||||
|
||||
@@ -347,7 +347,7 @@
|
||||
|
||||
character.loc = C.loc
|
||||
|
||||
AnnounceCyborg(character, rank, "has been downloaded to the empty core in \the [character.loc.loc]")
|
||||
AnnounceCyborg(character, rank, "has been transferred to the empty core in \the [character.loc.loc]")
|
||||
ticker.mode.latespawn(character)
|
||||
|
||||
qdel(C)
|
||||
|
||||
@@ -659,9 +659,9 @@ other types of metals and chemistry for reagents).
|
||||
sort_string = "VABAI"
|
||||
|
||||
/datum/design/item/intellicard
|
||||
name = "'intelliCard', AI preservation and transportation system"
|
||||
desc = "Allows for the construction of an intelliCard."
|
||||
id = "intellicard"
|
||||
name = "'intelliCore', AI preservation and transportation system"
|
||||
desc = "Allows for the construction of an intelliCore."
|
||||
id = "intellicore"
|
||||
req_tech = list(TECH_DATA = 4, TECH_MATERIAL = 4)
|
||||
materials = list("glass" = 1000, "gold" = 200)
|
||||
build_path = /obj/item/device/aicard
|
||||
|
||||
Reference in New Issue
Block a user