Merge pull request #3597 from PrismaticGynoid/intellicores

Replaces intelliCards with intelliCores.
This commit is contained in:
Anewbe
2017-07-15 14:48:36 -05:00
committed by GitHub
14 changed files with 41 additions and 36 deletions

View File

@@ -1045,7 +1045,7 @@ datum
return 20 return 20
AI AI
steal_target = /obj/structure/AIcore 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 weight = 50
get_points(var/job) get_points(var/job)

View File

@@ -202,8 +202,8 @@
transfer.loc = get_turf(src) transfer.loc = get_turf(src)
transfer.create_eyeobj() transfer.create_eyeobj()
transfer.cancel_camera() transfer.cancel_camera()
user << "<span class='notice'>Transfer successful:</span> [transfer.name] ([rand(1000,9999)].exe) downloaded to host terminal. Local copy wiped." user << "<span class='notice'>Transfer successful:</span> [transfer.name] placed within stationary core."
transfer << "You have been uploaded to a stationary terminal. Remote device connection restored." transfer << "You have been transferred into a stationary core. Remote device connection restored."
if(card) if(card)
card.clear() card.clear()

View File

@@ -18,8 +18,8 @@
return return
// Transfer over the AI. // Transfer over the AI.
transfer << "You have been uploaded to a stationary terminal. Sadly, there is no remote access from here." 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] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed." user << "<span class='notice'>Transfer successful:</span> [transfer.name] placed within stationary terminal."
transfer.loc = src transfer.loc = src
transfer.cancel_camera() transfer.cancel_camera()

View File

@@ -41,7 +41,7 @@
*/ */
/obj/item/part/computer/ai_holder /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." desc = "Contains a specialized nacelle for dealing with highly sensitive equipment without interference."
attackby_types = list(/obj/item/device/aicard) attackby_types = list(/obj/item/device/aicard)
@@ -81,8 +81,8 @@
return return
// Transfer over the AI. // Transfer over the AI.
transfer << "You have been uploaded to a stationary terminal. Sadly, there is no remote access from here." 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] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed." user << "<span class='notice'>Transfer successful:</span> [transfer.name] placed within mobile terminal."
transfer.loc = src transfer.loc = src
transfer.cancel_camera() transfer.cancel_camera()

View File

@@ -1,9 +1,10 @@
/obj/item/device/aicard /obj/item/device/aicard
name = "inteliCard" name = "intelliCore"
desc = "Used to preserve and transport an AI."
icon = 'icons/obj/pda.dmi' icon = 'icons/obj/pda.dmi'
icon_state = "aicard" // aicard-full icon_state = "aicard" // aicard-full
item_state = "aicard" item_state = "aicard"
w_class = ITEMSIZE_SMALL w_class = ITEMSIZE_NORMAL
slot_flags = SLOT_BELT slot_flags = SLOT_BELT
show_messages = 0 show_messages = 0
@@ -57,12 +58,12 @@
var/user = usr var/user = usr
if (href_list["wipe"]) 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)) 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 flush = 1
carded_ai.suiciding = 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) while (carded_ai && carded_ai.stat != 2)
carded_ai.adjustOxyLoss(2) carded_ai.adjustOxyLoss(2)
carded_ai.updatehealth() carded_ai.updatehealth()
@@ -93,22 +94,22 @@
/obj/item/device/aicard/proc/grab_ai(var/mob/living/silicon/ai/ai, var/mob/living/user) /obj/item/device/aicard/proc/grab_ai(var/mob/living/silicon/ai/ai, var/mob/living/user)
if(!ai.client) 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 return 0
if(carded_ai) 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 return 0
user.visible_message("\The [user] starts downloading \the [ai] into \the [src]...", "You start downloading \the [ai] into \the [src]...") 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 downloading you into \the [src]!</span>" ai << "<span class='danger'>\The [user] is transferring you into \the [src]!</span>"
if(do_after(user, 100)) if(do_after(user, 100))
if(istype(ai.loc, /turf/)) if(istype(ai.loc, /turf/))
new /obj/structure/AIcore/deactivated(get_turf(ai)) new /obj/structure/AIcore/deactivated(get_turf(ai))
ai.carded = 1 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]" src.name = "[initial(name)] - [ai.name]"
ai.loc = src ai.loc = src
@@ -119,9 +120,9 @@
carded_ai = ai carded_ai = ai
if(ai.client) 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) 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 ai.canmove = 1
update_icon() update_icon()

View File

@@ -36,8 +36,8 @@
activates_on_touch = 1 activates_on_touch = 1
engage_string = "Eject AI" engage_string = "Eject AI"
activate_string = "Enable Dataspike" activate_string = "Enable Core Transfer"
deactivate_string = "Disable Dataspike" deactivate_string = "Disable Core Transfer"
interface_name = "integrated intelligence system" interface_name = "integrated intelligence system"
interface_desc = "A socket that supports a range of artificial intelligence systems." interface_desc = "A socket that supports a range of artificial intelligence systems."
@@ -168,7 +168,7 @@
if(user) if(user)
user << "<span class='danger'>You cannot eject your currently stored AI. Purge it manually.</span>" user << "<span class='danger'>You cannot eject your currently stored AI. Purge it manually.</span>"
return 0 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) if(integrated_ai)
integrated_ai.ghostize() integrated_ai.ghostize()
qdel(integrated_ai) qdel(integrated_ai)

View File

@@ -10,18 +10,18 @@ var/global/list/empty_playable_ai_cores = list()
return 1 return 1
/mob/living/silicon/ai/verb/wipe_core() /mob/living/silicon/ai/verb/store_core()
set name = "Wipe Core" set name = "Store Core"
set category = "OOC" 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") 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>" usr << "<span class='danger'>You cannot use this verb in malfunction. If you need to leave, please adminhelp.</span>"
return return
// Guard against misclicks, this isn't the sort of thing we want happening accidentally // 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?", 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?",
"Wipe Core", "No", "No", "Yes") != "Yes") "Store Core", "No", "No", "Yes") != "Yes")
return return
// We warned you. // We warned you.

View File

@@ -347,7 +347,7 @@
character.loc = C.loc 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) ticker.mode.latespawn(character)
qdel(C) qdel(C)

View File

@@ -659,9 +659,9 @@ other types of metals and chemistry for reagents).
sort_string = "VABAI" sort_string = "VABAI"
/datum/design/item/intellicard /datum/design/item/intellicard
name = "'intelliCard', AI preservation and transportation system" name = "'intelliCore', AI preservation and transportation system"
desc = "Allows for the construction of an intelliCard." desc = "Allows for the construction of an intelliCore."
id = "intellicard" id = "intellicore"
req_tech = list(TECH_DATA = 4, TECH_MATERIAL = 4) req_tech = list(TECH_DATA = 4, TECH_MATERIAL = 4)
materials = list("glass" = 1000, "gold" = 200) materials = list("glass" = 1000, "gold" = 200)
build_path = /obj/item/device/aicard build_path = /obj/item/device/aicard

View 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

View File

@@ -1,5 +1,5 @@
<!-- <!--
Title: inteliCard interface Title: inteliCore interface
Used In File(s): \code\game\objects\items\devices\aicard.dm 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> <td>{{:helper.link("Disabled", null, {'wireless' : 1}, data.wireless ? null : 'redButton' )}}</td>
</tr> </tr>
{{if data.flushing}} {{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}} {{else}}
<tr> <tr>
<td><span class='itemLabelWidest'>Wipe AI</span></td> <td><span class='itemLabelWidest'>AI Power</span></td>
<td>{{:helper.link("Wipe", 'radiation', {'wipe' : 1}, null, 'redButton')}}</td> <td>{{:helper.link("Shutdown", 'radiation', {'wipe' : 1}, null, 'redButton')}}</td>
</tr> </tr>
{{/if}} {{/if}}
</table> </table>