mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 03:02:54 +00:00
Replaces intelliCards with intelliCores.
Sprites replaced with a black box that could conceivably contain a brain, while obscuring the details. Complete with screen and convenient handle. Usage text modified to make sense for MMIs/posibrains, instead of just drone brains (e.g. downloaded → transferred). Description added to the new intelliCores. Made into normal-sized item, similar to MMIs/posibrains. This is an alternative to either changing lore to allow for brain uploading, or changing code to allow for choosing multiple AI brain types.
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)
|
||||
|
||||
@@ -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
|
||||
|
||||
4
html/changelogs/PrismaticGynoid-intelliCores.yml
Normal file
4
html/changelogs/PrismaticGynoid-intelliCores.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: PrismaticGynoid
|
||||
delete-after: True
|
||||
changes:
|
||||
- tweak: "Replaces intelliCards with intelliCores."
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Title: inteliCard interface
|
||||
Title: inteliCore interface
|
||||
Used In File(s): \code\game\objects\items\devices\aicard.dm
|
||||
-->
|
||||
|
||||
@@ -89,11 +89,11 @@ Used In File(s): \code\game\objects\items\devices\aicard.dm
|
||||
<td>{{:helper.link("Disabled", null, {'wireless' : 1}, data.wireless ? null : 'redButton' )}}</td>
|
||||
</tr>
|
||||
{{if data.flushing}}
|
||||
<tr><td><span class='notice'>AI wipe in progress...</span></td></tr>
|
||||
<tr><td><span class='notice'>AI shutdown in progress...</span></td></tr>
|
||||
{{else}}
|
||||
<tr>
|
||||
<td><span class='itemLabelWidest'>Wipe AI</span></td>
|
||||
<td>{{:helper.link("Wipe", 'radiation', {'wipe' : 1}, null, 'redButton')}}</td>
|
||||
<td><span class='itemLabelWidest'>AI Power</span></td>
|
||||
<td>{{:helper.link("Shutdown", 'radiation', {'wipe' : 1}, null, 'redButton')}}</td>
|
||||
</tr>
|
||||
{{/if}}
|
||||
</table>
|
||||
|
||||
Reference in New Issue
Block a user