Paicontroller subsystem port (#19165)

* to subsystem

* wip subsystem pain

* some big recoding

* seperated

* oop

* fucking lua

* working on tgui foundation

* compile fixes

* nice and clean

* type

* inviting works

* unit testing

* agony

* test good

* typo

* that should be the basics

* Complete recode of pai saving

* restore fluff text

* migration

* pai notification automation

* swap

* length

* more fixes

* pai sprite datums

* type 13 uses all four directions

* eye handling

* use accessors

* working on icontests

* fix

* hologram eye test

* oop

* wait that doesn't work at all

* text

* eye colors and holo eyes

* lots of fixes

* fix those up

* organized

* belly cap

* that too

* death sprites

* resting eyes

* resting flag

* bad check here

* fixing icon files

* proper file

* garble

* fix some states

* pai death

* collapse pai files into single file

* allow some restricted pai interactions

* lamp

* block invites button

* collapse in remaining vr file

* this is actually needed

* documenting and organizing

* update to TGprefs

* remove gun toggle verb on pai

* forbid default name joins

* pai cable retraction

* various pai fixes

* icon forge pai

* pai eyes

* type 13 iconstate

* directionless

* small fix

* pai dir fix

* missing icon

* no fresh pais

* oops

* fixed pai join

* fixed change chassis

* pai UI

* .

* .

* reuse

* .

* .

* .

* push that

* Horro rmasks

* pai invite data change

* splitting

* use refs

* initial

* with PAI

* soem more

* .

* .

* .

* .

* ugh

* next

* pai invite

* only preview

* that

* use from char pref

* fixed pai invite not working

* small tgui fixes

* remove temp code

* .

* pai comments properly sent

* ooc

* horror

* need to use this for now

* .

* fix

* lol

* raw mob spawn fix

* pai software

* push

---------

Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
Will
2026-03-03 23:59:27 +01:00
committed by GitHub
co-authored by Kashargul
parent f5240f6c38
commit 7c84aaee4b
95 changed files with 4051 additions and 2442 deletions
+22 -18
View File
@@ -965,24 +965,28 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
to_chat(src,span_warning("You cannot alert pAI cards when you are banned from playing as a pAI."))
return
if(src.client.prefs?.be_special & BE_PAI)
var/choice = tgui_alert(src, "Would you like to submit yourself to the recruitment list too?", "Confirmation", list("No", "Yes"))
if(!choice)
return
if(choice == "Yes")
paiController.recruitWindow(src)
var/count = 0
for(var/obj/item/paicard/p in GLOB.all_pai_cards)
var/obj/item/paicard/PP = p
if(PP.pai == null)
count++
PP.add_overlay("pai-ghostalert")
PP.alertUpdate()
spawn(54)
PP.cut_overlays()
to_chat(src,span_notice("Flashing the displays of [count] unoccupied PAIs."))
else
to_chat(src,span_warning("You have 'Be pAI' disabled in your character prefs, so we can't help you."))
if(!(src.client.prefs?.be_special & BE_PAI))
to_chat(src,span_warning("You have 'Be pAI' disabled in your character prefs."))
return
var/choice = tgui_alert(src, "Would you like to submit yourself to the recruitment list too?", "Confirmation", list("No", "Yes"))
if(!choice || choice != "Yes")
return
to_chat(src,span_notice("Flashing the displays of [pai_card_ping()] unoccupied PAIs."))
/mob/observer/dead/proc/pai_card_ping()
var/count = 0
for(var/obj/item/paicard/p in GLOB.all_pai_cards)
var/obj/item/paicard/PP = p
if(PP.pai)
continue
count++
PP.cut_overlays()
PP.add_overlay("pai-ghostalert")
PP.alertUpdate()
addtimer(CALLBACK(PP, TYPE_PROC_REF(/obj/item/paicard, clear_invite_overlay)), 1 MINUTE, TIMER_DELETE_ME)
return count
/mob/observer/dead/speech_bubble_appearance()
return "ghost"