diff --git a/code/game/objects/devices/paicard.dm b/code/game/objects/devices/paicard.dm index c3c3f65f33..57584feda4 100644 --- a/code/game/objects/devices/paicard.dm +++ b/code/game/objects/devices/paicard.dm @@ -11,6 +11,10 @@ var/looking_for_personality = 0 var/mob/living/silicon/pai/pai + New() + ..() + overlays += "pai-off" + attack_self(mob/user) if (!in_range(src, user)) return @@ -71,7 +75,7 @@ M << "

Your mental faculties leave you.

" M << "
oblivion...
" M.death(0) - src.pai = null + removePersonality() if(href_list["wires"]) var/t1 = text2num(href_list["wires"]) if (radio.wires & t1) @@ -87,12 +91,33 @@ pai << "Supplemental Directives:
[pai.pai_laws]" attack_self(usr) - - // WIRE_SIGNAL = 1 // WIRE_RECEIVE = 2 // WIRE_TRANSMIT = 4 + proc/setPersonality(mob/living/silicon/pai/personality) + src.pai = personality + src.overlays += "pai-happy" + + proc/removePersonality() + src.pai = null + src.overlays = null + src.overlays += "pai-off" + + proc/setEmotion(var/emotion) + if(pai) + src.overlays = null + switch(emotion) + if(1) src.overlays += "pai-happy" + if(2) src.overlays += "pai-cat" + if(3) src.overlays += "pai-extremely-happy" + if(4) src.overlays += "pai-face" + if(5) src.overlays += "pai-laugh" + if(6) src.overlays += "pai-off" + if(7) src.overlays += "pai-sad" + if(8) src.overlays += "pai-angry" + if(9) src.overlays += "pai-what" + proc/alertUpdate() var/turf/T = get_turf_or_move(src.loc) for (var/mob/M in viewers(T)) diff --git a/code/game/verbs/suicide.dm b/code/game/verbs/suicide.dm index 6e97188ccf..4d7dede92f 100644 --- a/code/game/verbs/suicide.dm +++ b/code/game/verbs/suicide.dm @@ -125,7 +125,7 @@ var/answer = input("REALLY kill yourself? This action can't be undone.", "Suicide", "No") in list ("Yes", "No") if(answer == "Yes") var/obj/item/device/paicard/card = loc - card.pai = null + card.removePersonality() var/turf/T = get_turf_or_move(card.loc) for (var/mob/M in viewers(T)) M.show_message("\blue [src] flashes a message across its screen, \"Wiping core files. Please acquire a new personality to continue using pAI device functions.\"", 3, "\blue [src] bleeps electronically.", 2) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index cde750815e..3e756e5c28 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -193,7 +193,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that pai.name = input(choice, "Enter your pAI name:", "pAI Name", "Personal AI") as text pai.real_name = pai.name pai.key = choice.key - card.pai = pai + card.setPersonality(pai) for(var/datum/paiCandidate/candidate in paiController.pai_candidates) if(candidate.key == choice.key) paiController.pai_candidates.Remove(candidate) diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 7ae5a32305..94967a4f8d 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -214,6 +214,6 @@ var/obj/item/device/paicard/card = new(t) var/mob/living/silicon/pai/pai = new(card) pai.key = src.key - card.pai = pai + card.setPersonality(pai) */ \ No newline at end of file diff --git a/code/modules/mob/living/silicon/pai/recruit.dm b/code/modules/mob/living/silicon/pai/recruit.dm index 0867024f8b..e50f2d6280 100644 --- a/code/modules/mob/living/silicon/pai/recruit.dm +++ b/code/modules/mob/living/silicon/pai/recruit.dm @@ -28,7 +28,10 @@ var/datum/paiController/paiController // Global handler for pAI candidates return if(istype(card,/obj/item/device/paicard) && istype(candidate,/datum/paiCandidate)) var/mob/living/silicon/pai/pai = new(card) - pai.name = candidate.name + if(!candidate.name) + pai.name = pick(ninja_names) + else + pai.name = candidate.name pai.real_name = pai.name pai.key = candidate.key @@ -36,7 +39,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates pai.mind.current = pai pai.mind.assigned_role = "Assistant"//Default to an assistant. - card.pai = pai + card.setPersonality(pai) card.looking_for_personality = 0 ticker.mode.update_cult_icons_removed(card.pai.mind) diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index afcf2e471a..bb12bd39af 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -144,6 +144,31 @@ if("radio") src.card.radio.attack_self(src) + if("image") + var/newImage = input("Select your new display image.", "Display Image", "Happy") in list("Happy", "Cat", "Extremely Happy", "Face", "Laugh", "Off", "Sad", "Angry", "What") + var/pID = 1 + + switch(newImage) + if("Happy") + pID = 1 + if("Cat") + pID = 2 + if("Extremely Happy") + pID = 3 + if("Face") + pID = 4 + if("Laugh") + pID = 5 + if("Off") + pID = 6 + if("Sad") + pID = 7 + if("Angry") + pID = 8 + if("What") + pID = 9 + src.card.setEmotion(pID) + if("signaller") if(href_list["send"]) @@ -256,6 +281,7 @@ // Built-in dat += "Directives
" dat += "Radio Configuration
" + dat += "Screen Display
" //dat += "Text Messaging
" dat += "
" diff --git a/html/changelog.html b/html/changelog.html index b31f43e21e..bf0bd74968 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,10 @@ should be listed in the changelog upon commit tho. Thanks. -->
  • Humans can no longer suicide whilst restrained (this is purely to prevent meta whilst I finish up the new FUN suicides)
  • Fixed dem evidence bags. Fixed metroids getting at it like rabbits. Fixed stuff like welding masks not hiding your face. Bunch of other things
  • +

    Willox and Messycakes updated:

    + diff --git a/icons/obj/pda.dmi b/icons/obj/pda.dmi index 8418708ddb..723d7da372 100644 Binary files a/icons/obj/pda.dmi and b/icons/obj/pda.dmi differ