diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index d0eb0b7e26..c1c5493318 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -418,3 +418,11 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard) /obj/item/device/paicard/typeb name = "personal AI device" icon = 'icons/obj/paicard.dmi' + +/obj/random/paicard + name = "personal AI device spawner" + icon = 'icons/obj/paicard.dmi' + icon_state = "pai" + +/obj/random/paicard/item_to_spawn() + return pick(/obj/item/device/paicard ,/obj/item/device/paicard/typeb) diff --git a/code/modules/client/preference_setup/loadout/loadout_utility.dm b/code/modules/client/preference_setup/loadout/loadout_utility.dm index 4a945f442c..3d2dcb20a4 100644 --- a/code/modules/client/preference_setup/loadout/loadout_utility.dm +++ b/code/modules/client/preference_setup/loadout/loadout_utility.dm @@ -72,9 +72,13 @@ path = /obj/item/weapon/folder/yellow /datum/gear/utility/paicard - display_name = "personal AI device" + display_name = "personal AI device (classic)" path = /obj/item/device/paicard +/datum/gear/utility/paicard_b + display_name = "personal AI device (new)" + path = /obj/item/device/paicard/typeb + /datum/gear/utility/securecase display_name = "secure briefcase" path =/obj/item/weapon/storage/secure/briefcase diff --git a/code/modules/emotes/definitions/audible_furry_vr.dm b/code/modules/emotes/definitions/audible_furry_vr.dm index 832c5e6dfa..f2118f1030 100644 --- a/code/modules/emotes/definitions/audible_furry_vr.dm +++ b/code/modules/emotes/definitions/audible_furry_vr.dm @@ -158,6 +158,12 @@ emote_sound = pick(smolsound) else emote_sound = pick(bigsound) + else if(istype(user, /mob/living/silicon/pai)) + var/mob/living/silicon/pai/me = user + if(me.chassis == "teppi") + emote_sound = pick(bigsound) + else + emote_sound = pick(smolsound) else if(user.size_multiplier >= 1.5) emote_sound = pick(bigsound) else diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index f9d8ef7495..144933a4d5 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -48,7 +48,8 @@ "Duffel" = "pai-duffel", "Rat" = "rat", "Panther" = "panther", - "Cyber Elf" = "cyberelf" + "Cyber Elf" = "cyberelf", + "Teppi" = "teppi" //VOREStation Addition End ) diff --git a/code/modules/mob/living/silicon/pai/pai_vr.dm b/code/modules/mob/living/silicon/pai/pai_vr.dm index 8bccfbad18..65d997b581 100644 --- a/code/modules/mob/living/silicon/pai/pai_vr.dm +++ b/code/modules/mob/living/silicon/pai/pai_vr.dm @@ -7,7 +7,8 @@ var/eye_color = "#00ff0d" var/global/list/wide_chassis = list( "rat", - "panther" + "panther", + "teppi" ) var/global/list/flying_chassis = list( "pai-parrot", @@ -35,7 +36,8 @@ "panther", "pai-bear", "pai-fen", - "cyberelf" + "cyberelf", + "teppi" ) /mob/living/silicon/pai/Initialize() @@ -80,6 +82,11 @@ icon_state = "[chassis]_rest_full" else icon_state = "[chassis]_rest" + if(chassis in wide_chassis) + pixel_x = -16 + else + pixel_x = 0 + add_eyes() /mob/living/silicon/pai/update_icons() //And other functions cause this to occur, such as digesting someone. @@ -93,6 +100,10 @@ icon_state = "[chassis]_full" else if(people_eaten && resting) icon_state = "[chassis]_rest_full" + if(chassis in wide_chassis) + pixel_x = -16 + else + pixel_x = 0 add_eyes() //proc override to avoid pAI players being invisible while the chassis selection window is open @@ -106,11 +117,9 @@ chassis = possible_chassis[choice] 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 if(chassis in flying_chassis) diff --git a/icons/mob/pai_vr64x64.dmi b/icons/mob/pai_vr64x64.dmi index 800b6a902d..e2def869e1 100644 Binary files a/icons/mob/pai_vr64x64.dmi and b/icons/mob/pai_vr64x64.dmi differ diff --git a/maps/groundbase/gb-z1.dmm b/maps/groundbase/gb-z1.dmm index 9961fcef26..10e7a0f4b7 100644 --- a/maps/groundbase/gb-z1.dmm +++ b/maps/groundbase/gb-z1.dmm @@ -885,7 +885,7 @@ /obj/random/tech_supply, /obj/random/tech_supply, /obj/random/tech_supply, -/obj/item/device/paicard, +/obj/random/paicard, /turf/simulated/floor/tiled, /area/groundbase/civilian/toolstorage) "cs" = ( @@ -5546,7 +5546,7 @@ /area/groundbase/security/lobby) "nU" = ( /obj/structure/table/reinforced, -/obj/item/device/paicard, +/obj/random/paicard, /obj/machinery/recharger{ pixel_y = 5 }, @@ -7379,7 +7379,7 @@ /area/groundbase/security/lobby) "sq" = ( /obj/structure/table/woodentable, -/obj/item/device/paicard, +/obj/random/paicard, /obj/structure/cable/yellow{ icon_state = "2-8" }, diff --git a/maps/groundbase/gb-z2.dmm b/maps/groundbase/gb-z2.dmm index 0b91d7cd41..087f0a1eb5 100644 --- a/maps/groundbase/gb-z2.dmm +++ b/maps/groundbase/gb-z2.dmm @@ -5295,7 +5295,7 @@ /area/groundbase/command/hop) "pA" = ( /obj/structure/table/hardwoodtable, -/obj/item/device/paicard, +/obj/random/paicard, /obj/structure/cable/yellow{ icon_state = "1-2" }, @@ -9003,7 +9003,7 @@ pixel_y = 4 }, /obj/item/weapon/circuitboard/teleporter, -/obj/item/device/paicard{ +/obj/random/paicard{ pixel_x = 4 }, /obj/item/device/taperecorder{ diff --git a/maps/offmap_vr/om_ships/abductor.dmm b/maps/offmap_vr/om_ships/abductor.dmm index 11f3098ca6..c96d1b8994 100644 --- a/maps/offmap_vr/om_ships/abductor.dmm +++ b/maps/offmap_vr/om_ships/abductor.dmm @@ -105,8 +105,8 @@ /area/abductor/interior) "hj" = ( /obj/structure/table/alien, -/obj/item/device/paicard, -/obj/item/device/paicard, +/obj/random/paicard, +/obj/random/paicard, /turf/simulated/shuttle/floor/alienplating, /area/abductor/interior) "hq" = ( diff --git a/maps/offmap_vr/om_ships/itglight.dmm b/maps/offmap_vr/om_ships/itglight.dmm index 99c70134b5..8dae10297d 100644 --- a/maps/offmap_vr/om_ships/itglight.dmm +++ b/maps/offmap_vr/om_ships/itglight.dmm @@ -6353,7 +6353,7 @@ /area/itglight/common) "MF" = ( /obj/structure/table/wooden_reinforced, -/obj/item/device/paicard, +/obj/random/paicard, /turf/simulated/floor/glass/reinforced, /area/itglight/common) "MG" = ( diff --git a/maps/offmap_vr/talon/talon_v2.dmm b/maps/offmap_vr/talon/talon_v2.dmm index 43f02d7f6e..368368c3a9 100644 --- a/maps/offmap_vr/talon/talon_v2.dmm +++ b/maps/offmap_vr/talon/talon_v2.dmm @@ -190,7 +190,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/item/device/paicard, +/obj/random/paicard, /turf/simulated/floor/tiled/techfloor, /area/talon_v2/workroom) "aw" = ( @@ -15549,7 +15549,7 @@ /area/talon_v2/crew_quarters/eng_room) "Xi" = ( /obj/structure/table/woodentable, -/obj/item/device/paicard, +/obj/random/paicard, /turf/simulated/floor/wood, /area/talon_v2/crew_quarters/meditation) "Xl" = ( diff --git a/maps/stellardelight/stellar_delight1.dmm b/maps/stellardelight/stellar_delight1.dmm index c4e5b2dfaa..6e65aa5629 100644 --- a/maps/stellardelight/stellar_delight1.dmm +++ b/maps/stellardelight/stellar_delight1.dmm @@ -21786,7 +21786,7 @@ /area/library) "Uj" = ( /obj/structure/table/woodentable, -/obj/item/device/paicard, +/obj/random/paicard, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, diff --git a/maps/stellardelight/stellar_delight2.dmm b/maps/stellardelight/stellar_delight2.dmm index 61649271d2..a53bc1fb65 100644 --- a/maps/stellardelight/stellar_delight2.dmm +++ b/maps/stellardelight/stellar_delight2.dmm @@ -5862,7 +5862,7 @@ /area/maintenance/stellardelight/deck2/atmos) "mJ" = ( /obj/structure/table/woodentable, -/obj/item/device/paicard, +/obj/random/paicard, /turf/simulated/floor/tiled/eris/steel/brown_platform, /area/crew_quarters/bar) "mK" = ( @@ -8066,7 +8066,7 @@ /obj/random/tech_supply, /obj/random/tech_supply, /obj/random/tech_supply, -/obj/item/device/paicard, +/obj/random/paicard, /obj/machinery/atmospherics/unary/vent_pump/on, /obj/machinery/newscaster{ pixel_y = 28 @@ -21981,7 +21981,7 @@ /area/medical/reception) "WR" = ( /obj/structure/table/wooden_reinforced, -/obj/item/device/paicard, +/obj/random/paicard, /turf/simulated/floor/tiled/eris/dark/cargo, /area/crew_quarters/recreation_area) "WS" = ( diff --git a/maps/stellardelight/stellar_delight3.dmm b/maps/stellardelight/stellar_delight3.dmm index 067cf7585b..418fa680b0 100644 --- a/maps/stellardelight/stellar_delight3.dmm +++ b/maps/stellardelight/stellar_delight3.dmm @@ -1606,7 +1606,7 @@ /area/maintenance/stellardelight/deck3/foreportroomb) "gk" = ( /obj/structure/table/woodentable, -/obj/item/device/paicard, +/obj/random/paicard, /turf/simulated/floor/wood, /area/stellardelight/deck3/cafe) "gl" = ( @@ -5054,7 +5054,7 @@ /area/space) "sI" = ( /obj/structure/table/standard, -/obj/item/device/paicard, +/obj/random/paicard, /obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/bluegrid, /area/ai_cyborg_station) @@ -10254,7 +10254,7 @@ /turf/simulated/floor, /area/maintenance/stellardelight/deck3/starboardaft) "Lm" = ( -/obj/item/device/paicard, +/obj/random/paicard, /obj/structure/table/glass, /obj/machinery/camera/network/civilian{ dir = 8 @@ -13710,7 +13710,7 @@ name = "station intercom (Science)"; pixel_y = 24 }, -/obj/item/device/paicard{ +/obj/random/paicard{ pixel_x = 4 }, /obj/item/weapon/paper_bin{ diff --git a/maps/submaps/admin_use_vr/dojo.dmm b/maps/submaps/admin_use_vr/dojo.dmm index fd50bcf52f..a2bd85f37f 100644 --- a/maps/submaps/admin_use_vr/dojo.dmm +++ b/maps/submaps/admin_use_vr/dojo.dmm @@ -432,7 +432,7 @@ /area/ninja_dojo/dojo) "bc" = ( /obj/structure/table/steel_reinforced, -/obj/item/device/paicard, +/obj/random/paicard, /obj/item/device/pda/syndicate, /turf/simulated/shuttle/floor/voidcraft/light, /area/shuttle/ninja) diff --git a/maps/submaps/admin_use_vr/skipjack.dmm b/maps/submaps/admin_use_vr/skipjack.dmm index 2c252f6ad8..2e12a90bc4 100644 --- a/maps/submaps/admin_use_vr/skipjack.dmm +++ b/maps/submaps/admin_use_vr/skipjack.dmm @@ -14,7 +14,7 @@ /area/skipjack_station) "ad" = ( /obj/structure/table/standard, -/obj/item/device/paicard, +/obj/random/paicard, /turf/unsimulated/floor{ icon_state = "steel" }, diff --git a/maps/submaps/admin_use_vr/wizard.dmm b/maps/submaps/admin_use_vr/wizard.dmm index b85af43205..aa97a3f082 100644 --- a/maps/submaps/admin_use_vr/wizard.dmm +++ b/maps/submaps/admin_use_vr/wizard.dmm @@ -240,7 +240,7 @@ /area/wizard_station) "aB" = ( /obj/structure/table/woodentable, -/obj/item/device/paicard, +/obj/random/paicard, /turf/unsimulated/floor{ dir = 8; icon_state = "wood" diff --git a/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm b/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm index c641f359b8..5e8cc12496 100644 --- a/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm +++ b/maps/submaps/surface_submaps/mountains/quarantineshuttle.dmm @@ -344,7 +344,7 @@ }, /area/submap/cave/qShuttle) "aX" = ( -/obj/item/device/paicard, +/obj/random/paicard, /turf/simulated/shuttle/floor{ icon_state = "floor_yellow" }, diff --git a/maps/tether/tether-01-surface1.dmm b/maps/tether/tether-01-surface1.dmm index 9cd83ea37d..6d8e8206b1 100644 --- a/maps/tether/tether-01-surface1.dmm +++ b/maps/tether/tether-01-surface1.dmm @@ -7759,7 +7759,7 @@ pixel_x = 32 }, /obj/structure/table/standard, -/obj/item/device/paicard, +/obj/random/paicard, /turf/simulated/floor/tiled, /area/storage/primary) "amW" = ( @@ -28761,7 +28761,7 @@ dir = 8 }, /obj/structure/table/standard, -/obj/item/device/paicard, +/obj/random/paicard, /turf/simulated/floor/tiled, /area/crew_quarters/visitor_laundry) "aWW" = ( @@ -33813,7 +33813,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/item/device/paicard, +/obj/random/paicard, /turf/simulated/floor/tiled, /area/crew_quarters/locker) "hTw" = ( diff --git a/maps/tether/tether-02-surface2.dmm b/maps/tether/tether-02-surface2.dmm index f67738972f..a412e998d0 100644 --- a/maps/tether/tether-02-surface2.dmm +++ b/maps/tether/tether-02-surface2.dmm @@ -13264,7 +13264,7 @@ /obj/machinery/recharger, /obj/item/weapon/storage/toolbox/mechanical, /obj/random/drinkbottle, -/obj/item/device/paicard, +/obj/random/paicard, /turf/simulated/floor/tiled/techfloor, /area/maintenance/lower/bar) "avg" = ( @@ -22134,7 +22134,7 @@ /obj/item/device/taperecorder{ pixel_x = -3 }, -/obj/item/device/paicard{ +/obj/random/paicard{ pixel_x = 4 }, /obj/item/weapon/circuitboard/teleporter, @@ -31053,7 +31053,7 @@ /obj/structure/sign/painting/public{ pixel_x = -30 }, -/obj/item/device/paicard, +/obj/random/paicard, /turf/simulated/floor/wood, /area/tether/surfacebase/reading_room) "biK" = ( @@ -31624,7 +31624,7 @@ pixel_x = -23 }, /obj/random/junk, -/obj/item/device/paicard, +/obj/random/paicard, /turf/simulated/floor/plating, /area/maintenance/lower/atmos) "bkE" = ( diff --git a/maps/tether/tether-03-surface3.dmm b/maps/tether/tether-03-surface3.dmm index b91bb8c2bc..d21a316752 100644 --- a/maps/tether/tether-03-surface3.dmm +++ b/maps/tether/tether-03-surface3.dmm @@ -8328,7 +8328,7 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 }, -/obj/item/device/paicard, +/obj/random/paicard, /turf/simulated/floor/wood, /area/crew_quarters/recreation_area) "anb" = ( @@ -9784,7 +9784,7 @@ /obj/random/maintenance/medical, /obj/random/maintenance/clean, /obj/random/maintenance/clean, -/obj/item/device/paicard, +/obj/random/paicard, /turf/simulated/floor/plating, /area/tether/surfacebase/surface_three_hall) "apA" = ( @@ -40756,7 +40756,7 @@ /area/tether/surfacebase/security/hos) "lHr" = ( /obj/structure/table/woodentable, -/obj/item/device/paicard, +/obj/random/paicard, /turf/simulated/floor/wood, /area/tether/surfacebase/entertainment) "lIe" = ( diff --git a/maps/tether/tether-04-transit.dmm b/maps/tether/tether-04-transit.dmm index 72748da792..2f5e075c78 100644 --- a/maps/tether/tether-04-transit.dmm +++ b/maps/tether/tether-04-transit.dmm @@ -683,7 +683,7 @@ /area/tether/midpoint) "Ud" = ( /obj/structure/table/woodentable, -/obj/item/device/paicard, +/obj/random/paicard, /turf/simulated/floor/midpoint_glass/reinf, /area/tether/midpoint) "Ui" = ( diff --git a/maps/tether/tether-05-station1.dmm b/maps/tether/tether-05-station1.dmm index 6f79a19b09..faa7cd90d3 100644 --- a/maps/tether/tether-05-station1.dmm +++ b/maps/tether/tether-05-station1.dmm @@ -1120,7 +1120,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/item/device/paicard, +/obj/random/paicard, /turf/simulated/floor/tiled, /area/teleporter/departing) "acc" = ( @@ -26600,7 +26600,7 @@ /obj/random/maintenance/clean, /obj/random/maintenance/clean, /obj/random/junk, -/obj/item/device/paicard, +/obj/random/paicard, /turf/simulated/floor, /area/maintenance/station/exploration) "lVJ" = ( @@ -28245,7 +28245,7 @@ layer = 2.9 }, /obj/random/junk, -/obj/item/device/paicard, +/obj/random/paicard, /turf/simulated/floor/plating, /area/maintenance/station/cargo) "nCS" = (