From 38724d4d4c140fb4bfc92444ba3e5dd182ca7df9 Mon Sep 17 00:00:00 2001 From: VerySoft Date: Thu, 2 Jun 2022 20:13:52 -0400 Subject: [PATCH] [WIP] pAI tweaks and upgrades Changes some things around! Removes the 'wipe' button from pAI's interface, since I think there being an instant 'kill player' button is pretty lame, especially since most pAIs activate on their own without a master. They're easy enough to kill or contain without this, so I don't see it as necessary. If you want to kill your pAI friend just eat them. :U Removes the 'pAI Suicide' verb, and renames the 'Wipe Personality' to 'Enter Storage' and moved it from the OOC tab to the pAI Commands tab. Killing a pAI deletes the card and all that, where the 'Enter Storage' verb deletes the card and spawns a new one that can be used, which! I think it more appropriate. Makes it so that, when damaged, pAIs will slowly regenerate while folded up, at a rate of 0.5 brute and burn per life tick, where previously it had been impossible to recover health outside of admin intervention. Updated the Universal Translator with many of the newer languages that aren't obviously for events or hivemind type things. Added the same emotes that humans can use to pAIs Added an alternative pAI card style, and rearranged the expressions for the cards a little bit, and added one more. Plan to add more pAI chassis to play with --- code/game/objects/items/devices/paicard.dm | 59 +++++++++++------- code/modules/client/verbs/suicide.dm | 4 +- code/modules/emotes/definitions/synthetics.dm | 16 +++++ code/modules/mob/living/carbon/human/emote.dm | 2 + code/modules/mob/living/silicon/emote.dm | 9 +++ code/modules/mob/living/silicon/pai/life.dm | 4 +- code/modules/mob/living/silicon/pai/pai.dm | 8 ++- code/modules/mob/living/silicon/pai/pai_vr.dm | 26 ++++---- .../mob/living/silicon/pai/software.dm | 31 ++++----- .../living/silicon/pai/software_modules.dm | 58 +++++++++++++++++ .../modules/mob/living/silicon/robot/emote.dm | 2 + icons/obj/paicard.dmi | Bin 0 -> 2752 bytes icons/obj/pda.dmi | Bin 30024 -> 30051 bytes sound/voice/roboboop.ogg | Bin 0 -> 8038 bytes sound/voice/robochirp.ogg | Bin 0 -> 8168 bytes 15 files changed, 162 insertions(+), 57 deletions(-) create mode 100644 icons/obj/paicard.dmi create mode 100644 sound/voice/roboboop.ogg create mode 100644 sound/voice/robochirp.ogg diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index f743ab87f2b..7323debadca 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -48,12 +48,19 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard) return ..() var/turf/location = get_turf(src) - var/obj/item/device/paicard/card = new(location) - var/mob/living/silicon/pai/new_pai = new(card) + if(istype(src , /obj/item/device/paicard/typeb)) + var/obj/item/device/paicard/typeb/card = new(location) + var/mob/living/silicon/pai/new_pai = new(card) + new_pai.key = user.key + card.setPersonality(new_pai) + new_pai.SetName(actual_pai_name) + else + var/obj/item/device/paicard/card = new(location) + var/mob/living/silicon/pai/new_pai = new(card) + new_pai.key = user.key + card.setPersonality(new_pai) + new_pai.SetName(actual_pai_name) qdel(src) - new_pai.key = user.key - card.setPersonality(new_pai) - new_pai.SetName(actual_pai_name) return ..() // VOREStation Edit End @@ -214,6 +221,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard) else // dat += "Radio Uplink
" dat += "Radio firmware not loaded. Please install a pAI personality to load firmware.
" + /* - //A button for instantly deleting people from the game is lame, especially considering that pAIs on our server tend to activate without a master. dat += {"
Wipe current pAI personality @@ -221,6 +229,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard)
"} + */ else if(looking_for_personality) dat += {" @@ -304,7 +313,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard) /obj/item/device/paicard/proc/setPersonality(mob/living/silicon/pai/personality) src.pai = personality - add_overlay("pai-happy") + add_overlay("pai-neutral") /obj/item/device/paicard/proc/removePersonality() src.pai = null @@ -317,21 +326,23 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard) if(pai) cut_overlays() switch(emotion) - if(1) add_overlay("pai-happy") - if(2) add_overlay("pai-cat") - if(3) add_overlay("pai-extremely-happy") - if(4) add_overlay("pai-face") - if(5) add_overlay("pai-laugh") - if(6) add_overlay("pai-off") - if(7) add_overlay("pai-sad") - if(8) add_overlay("pai-angry") - if(9) add_overlay("pai-what") - if(10) add_overlay("pai-neutral") - if(11) add_overlay("pai-silly") - if(12) add_overlay("pai-nose") - if(13) add_overlay("pai-smirk") - if(14) add_overlay("pai-exclamation") - if(15) add_overlay("pai-question") + if(1) add_overlay("pai-neutral") + if(2) add_overlay("pai-what") + if(3) add_overlay("pai-happy") + if(4) add_overlay("pai-cat") + if(5) add_overlay("pai-extremely-happy") + if(6) add_overlay("pai-face") + if(7) add_overlay("pai-laugh") + if(8) add_overlay("pai-sad") + if(9) add_overlay("pai-angry") + if(10) add_overlay("pai-silly") + if(11) add_overlay("pai-nose") + if(12) add_overlay("pai-smirk") + if(13) add_overlay("pai-exclamation") + if(14) add_overlay("pai-question") + if(15) add_overlay("pai-blank") + if(16) add_overlay("pai-off") + current_emotion = emotion /obj/item/device/paicard/proc/alertUpdate() @@ -396,4 +407,8 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard) name = initial(src.name) to_chat(AI, span_notice("You feel a tad claustrophobic as your mind closes back into your card, ejecting from \the [initial(src.name)].")) if(user) - to_chat(user, span_notice("You eject the card from \the [initial(src.name)].")) \ No newline at end of file + to_chat(user, span_notice("You eject the card from \the [initial(src.name)].")) + +/obj/item/device/paicard/typeb + name = "personal AI device" + icon = 'icons/obj/paicard.dmi' diff --git a/code/modules/client/verbs/suicide.dm b/code/modules/client/verbs/suicide.dm index 52841c84648..9d2a3f064b9 100644 --- a/code/modules/client/verbs/suicide.dm +++ b/code/modules/client/verbs/suicide.dm @@ -78,6 +78,7 @@ adjustOxyLoss(max(getMaxHealth() * 2 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) updatehealth() +/* /mob/living/silicon/pai/verb/suicide() set category = "pAI Commands" set desc = "Kill yourself and become a ghost (You will receive a confirmation prompt)" @@ -91,4 +92,5 @@ M.show_message("[src] flashes a message across its screen, \"Wiping core files. Please acquire a new personality to continue using pAI device functions.\"", 3, "[src] bleeps electronically.", 2) death(0) else - to_chat(src, "Aborting suicide attempt.") \ No newline at end of file + to_chat(src, "Aborting suicide attempt.") +*/ \ No newline at end of file diff --git a/code/modules/emotes/definitions/synthetics.dm b/code/modules/emotes/definitions/synthetics.dm index 70e05481cee..f5f94b6697f 100644 --- a/code/modules/emotes/definitions/synthetics.dm +++ b/code/modules/emotes/definitions/synthetics.dm @@ -54,3 +54,19 @@ emote_message_3p_target = "chirps happily at TARGET!" emote_message_3p = "chirps happily." emote_sound = 'sound/machines/dwoop.ogg' + +/decl/emote/audible/synth/boop + key = "boop" + emote_message_1p_target = "You boop at TARGET!" + emote_message_1p = "You boop." + emote_message_3p_target = "boops at TARGET!" + emote_message_3p = "boops." + emote_sound = 'sound/voice/roboboop.ogg' + +/decl/emote/audible/synth/robochirp + key = "robochirp" + emote_message_1p_target = "You chirp at TARGET!" + emote_message_1p = "You chirp." + emote_message_3p_target = "chirps at TARGET!" + emote_message_3p = "chirps." + emote_sound = 'sound/voice/robochirp.ogg' diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 1881e2856a4..1f8f33b2085 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -7,6 +7,8 @@ var/list/_human_default_emotes = list( /decl/emote/audible/synth/deny, /decl/emote/audible/synth/scary, /decl/emote/audible/synth/dwoop, + /decl/emote/audible/synth/boop, + /decl/emote/audible/synth/robochirp, /decl/emote/visible/nod, /decl/emote/visible/shake, /decl/emote/visible/shiver, diff --git a/code/modules/mob/living/silicon/emote.dm b/code/modules/mob/living/silicon/emote.dm index 153e05a7b6f..de001c9e952 100644 --- a/code/modules/mob/living/silicon/emote.dm +++ b/code/modules/mob/living/silicon/emote.dm @@ -6,9 +6,18 @@ var/list/_silicon_default_emotes = list( /decl/emote/audible/synth/deny, /decl/emote/audible/synth/scary, /decl/emote/audible/synth/dwoop, + /decl/emote/audible/synth/boop, + /decl/emote/audible/synth/robochirp, /decl/emote/audible/synth/security, /decl/emote/audible/synth/security/halt ) /mob/living/silicon/get_available_emotes() return global._silicon_default_emotes + +/mob/living/silicon/pai/get_available_emotes() + + var/list/fulllist = _silicon_default_emotes + fulllist |= _robot_default_emotes + fulllist |= _human_default_emotes + return fulllist \ No newline at end of file diff --git a/code/modules/mob/living/silicon/pai/life.dm b/code/modules/mob/living/silicon/pai/life.dm index e4f461179d4..9caaf03d66b 100644 --- a/code/modules/mob/living/silicon/pai/life.dm +++ b/code/modules/mob/living/silicon/pai/life.dm @@ -25,7 +25,9 @@ if(health <= 0) death(null,"gives one shrill beep before falling lifeless.") - + else if(health < maxHealth && istype(src.loc , /obj/item/device/paicard)) + adjustBruteLoss(0.5) + adjustFireLoss(0.5) /mob/living/silicon/pai/updatehealth() if(status_flags & GODMODE) diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index a1764fbcd26..9ba6d398839 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -433,10 +433,12 @@ if("Add Access") idcard.access |= ID.access to_chat(user, "You add the access from the [W] to [src].") + to_chat(src, "\The [user] swipes the [W] over you. You copy the access codes.") return if("Remove Access") idcard.access = list() to_chat(user, "You remove the access from [src].") + to_chat(src, "\The [user] swipes the [W] over you, removing access codes from you.") return if("Cancel") return @@ -458,9 +460,9 @@ to_chat(src, "You block access modfications.") /mob/living/silicon/pai/verb/wipe_software() - set name = "Wipe Software" - set category = "OOC" - set desc = "Wipe your software. This is functionally equivalent to cryo or robotic storage, freeing up your job slot." + set name = "Enter Storage" + set category = "pAI Commands" + set desc = "Upload your personality to the cloud and wipe your software from the card. This is functionally equivalent to cryo or robotic storage, freeing up your job slot." // Make sure people don't kill themselves accidentally if(tgui_alert(usr, "WARNING: This will immediately wipe your software 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 Software", list("No", "Yes")) != "Yes") diff --git a/code/modules/mob/living/silicon/pai/pai_vr.dm b/code/modules/mob/living/silicon/pai/pai_vr.dm index d5f989b67e0..df2a1f18b04 100644 --- a/code/modules/mob/living/silicon/pai/pai_vr.dm +++ b/code/modules/mob/living/silicon/pai/pai_vr.dm @@ -43,15 +43,6 @@ else icon_state = "[chassis]_rest" - if(chassis in wide_chassis) - icon = 'icons/mob/pai_vr64x64.dmi' - pixel_x = -16 - vis_height = 64 - else - icon = 'icons/mob/pai_vr.dmi' - pixel_x = 0 - vis_height = 32 - /mob/living/silicon/pai/update_icons() //And other functions cause this to occur, such as digesting someone. ..() update_fullness_pai() @@ -64,12 +55,6 @@ else if(people_eaten && resting) icon_state = "[chassis]_rest_full" - if(chassis in wide_chassis) - icon = 'icons/mob/pai_vr64x64.dmi' - pixel_x = -16 - else - icon = 'icons/mob/pai_vr.dmi' - pixel_x = 0 //proc override to avoid pAI players being invisible while the chassis selection window is open /mob/living/silicon/pai/proc/choose_chassis() set category = "pAI Commands" @@ -80,6 +65,17 @@ if(!choice) return chassis = possible_chassis[choice] verbs |= /mob/living/proc/hide + if(icon != 'icons/mob/pai_vr64x64.dmi' || icon != 'icons/mob/pai_vr.dmi') + //It's been modified to something else, so just leave it alone + else if(chassis in wide_chassis) + icon = 'icons/mob/pai_vr64x64.dmi' + pixel_x = -16 + vis_height = 64 + else + icon = 'icons/mob/pai_vr.dmi' + pixel_x = 0 + vis_height = 32 + update_icon() // Release belly contents before being gc'd! /mob/living/silicon/pai/Destroy() diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index 3a98a5bea3d..3475700c4bc 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -1,19 +1,20 @@ var/list/pai_emotions = list( - "Happy" = 1, - "Cat" = 2, - "Extremely Happy" = 3, - "Face" = 4, - "Laugh" = 5, - "Off" = 6, - "Sad" = 7, - "Angry" = 8, - "What" = 9, - "Neutral" = 10, - "Silly" = 11, - "Nose" = 12, - "Smirk" = 13, - "Exclamation Points" = 14, - "Question Mark" = 15 + "Neutral" = 1, + "What" = 2, + "Happy" = 3, + "Cat" = 4, + "Extremely Happy" = 5, + "Face" = 6, + "Laugh" = 7, + "Sad" = 8, + "Angry" = 9, + "Silly" = 10, + "Nose" = 11, + "Smirk" = 12, + "Exclamation Points" = 13, + "Question Mark" = 14, + "Blank" = 15, + "Off" = 16 ) diff --git a/code/modules/mob/living/silicon/pai/software_modules.dm b/code/modules/mob/living/silicon/pai/software_modules.dm index 1fb28a58fd2..7e4bff120a3 100644 --- a/code/modules/mob/living/silicon/pai/software_modules.dm +++ b/code/modules/mob/living/silicon/pai/software_modules.dm @@ -411,6 +411,35 @@ user.add_language(LANGUAGE_SKRELLIAN) user.add_language(LANGUAGE_ZADDAT) user.add_language(LANGUAGE_SCHECHI) + user.add_language(LANGUAGE_DRUDAKAR) + user.add_language(LANGUAGE_SLAVIC) + user.add_language(LANGUAGE_BIRDSONG) + user.add_language(LANGUAGE_SAGARU) + user.add_language(LANGUAGE_CANILUNZT) + user.add_language(LANGUAGE_ECUREUILIAN) + user.add_language(LANGUAGE_DAEMON) + user.add_language(LANGUAGE_ENOCHIAN) + user.add_language(LANGUAGE_VESPINAE) + user.add_language(LANGUAGE_SPACER) + user.add_language(LANGUAGE_CLOWNISH) + user.add_language(LANGUAGE_TAVAN) + user.add_language(LANGUAGE_ECHOSONG) + user.add_language(LANGUAGE_CHIMPANZEE) + user.add_language(LANGUAGE_NEAERA) + user.add_language(LANGUAGE_STOK) + user.add_language(LANGUAGE_FARWA) + user.add_language(LANGUAGE_ROOTLOCAL) + user.add_language(LANGUAGE_VOX) + user.add_language(LANGUAGE_SKRELLIANFAR) + user.add_language(LANGUAGE_MINBUS) + user.add_language(LANGUAGE_ALAI) + user.add_language(LANGUAGE_PROMETHEAN) + user.add_language(LANGUAGE_GIBBERISH) + user.add_language("Mouse") + user.add_language("Cat") + user.add_language("Bird") + user.add_language("Dog") + user.add_language("Teppi") else user.remove_language(LANGUAGE_UNATHI) user.remove_language(LANGUAGE_SIIK) @@ -418,6 +447,35 @@ user.remove_language(LANGUAGE_SKRELLIAN) user.remove_language(LANGUAGE_ZADDAT) user.remove_language(LANGUAGE_SCHECHI) + user.remove_language(LANGUAGE_DRUDAKAR) + user.remove_language(LANGUAGE_SLAVIC) + user.remove_language(LANGUAGE_BIRDSONG) + user.remove_language(LANGUAGE_SAGARU) + user.remove_language(LANGUAGE_CANILUNZT) + user.remove_language(LANGUAGE_ECUREUILIAN) + user.remove_language(LANGUAGE_DAEMON) + user.remove_language(LANGUAGE_ENOCHIAN) + user.remove_language(LANGUAGE_VESPINAE) + user.remove_language(LANGUAGE_SPACER) + user.remove_language(LANGUAGE_CLOWNISH) + user.remove_language(LANGUAGE_TAVAN) + user.remove_language(LANGUAGE_ECHOSONG) + user.remove_language(LANGUAGE_CHIMPANZEE) + user.remove_language(LANGUAGE_NEAERA) + user.remove_language(LANGUAGE_STOK) + user.remove_language(LANGUAGE_FARWA) + user.remove_language(LANGUAGE_ROOTLOCAL) + user.remove_language(LANGUAGE_VOX) + user.remove_language(LANGUAGE_SKRELLIANFAR) + user.remove_language(LANGUAGE_MINBUS) + user.remove_language(LANGUAGE_ALAI) + user.remove_language(LANGUAGE_PROMETHEAN) + user.remove_language(LANGUAGE_GIBBERISH) + user.remove_language("Mouse") + user.remove_language("Cat") + user.remove_language("Bird") + user.remove_language("Dog") + user.remove_language("Teppi") /datum/pai_software/translator/is_active(mob/living/silicon/pai/user) return user.translator_on diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm index f2a4d9775bc..f05ee135acb 100644 --- a/code/modules/mob/living/silicon/robot/emote.dm +++ b/code/modules/mob/living/silicon/robot/emote.dm @@ -22,6 +22,8 @@ var/list/_robot_default_emotes = list( /decl/emote/audible/synth/deny, /decl/emote/audible/synth/scary, /decl/emote/audible/synth/dwoop, + /decl/emote/audible/synth/boop, + /decl/emote/audible/synth/robochirp, /decl/emote/audible/synth/security, /decl/emote/audible/synth/security/halt, //VOREStation Add diff --git a/icons/obj/paicard.dmi b/icons/obj/paicard.dmi new file mode 100644 index 0000000000000000000000000000000000000000..990757c465c2ad1fd844859376daad720b78fa63 GIT binary patch literal 2752 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 literal 0 HcmV?d00001 diff --git a/icons/obj/pda.dmi b/icons/obj/pda.dmi index 9aa94d1fe9470a29249932ec19aaafc949ae3a68..7a94c033c1dd36e3eab4bb7de4677e8a76b3011d 100644 GIT binary patch delta 9430 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 diff --git a/sound/voice/roboboop.ogg b/sound/voice/roboboop.ogg new file mode 100644 index 0000000000000000000000000000000000000000..cb42d0a22d577c0b77068b4dccdaa37facd7d080 GIT binary patch literal 8038 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 literal 0 HcmV?d00001