pAI and emote tweaks and upgrades

This commit is contained in:
Casey
2022-06-04 05:59:32 -04:00
committed by CHOMPStation2
parent ee099334c3
commit d3e0d8524c
20 changed files with 294 additions and 71 deletions

View File

@@ -14,6 +14,8 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard)
var/obj/item/device/radio/radio
var/looking_for_personality = 0
var/mob/living/silicon/pai/pai
var/image/screen_layer
var/screen_color = "#00ff0d"
/obj/item/device/paicard/relaymove(var/mob/user, var/direction)
if(user.stat || user.stunned)
@@ -48,12 +50,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 +223,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard)
else //</font></font>
dat += "<b>Radio Uplink</b><br>"
dat += "<font color=red><i>Radio firmware not loaded. Please install a pAI personality to load firmware.</i></font><br>"
/* - //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 += {"
<table>
<td class="button_red"><a href='byond://?src=\ref[src];wipe=1' class='button'>Wipe current pAI personality</a>
@@ -221,6 +231,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard)
</td>
</table>
"}
*/
else
if(looking_for_personality)
dat += {"
@@ -304,34 +315,40 @@ 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")
setEmotion(1)
/obj/item/device/paicard/proc/removePersonality()
src.pai = null
cut_overlays()
add_overlay("pai-off")
setEmotion(16)
/obj/item/device/paicard
var/current_emotion = 1
/obj/item/device/paicard/proc/setEmotion(var/emotion)
if(pai)
cut_overlays()
qdel(screen_layer)
screen_layer = null
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) screen_layer = image(icon, "pai-neutral")
if(2) screen_layer = image(icon, "pai-what")
if(3) screen_layer = image(icon, "pai-happy")
if(4) screen_layer = image(icon, "pai-cat")
if(5) screen_layer = image(icon, "pai-extremely-happy")
if(6) screen_layer = image(icon, "pai-face")
if(7) screen_layer = image(icon, "pai-laugh")
if(8) screen_layer = image(icon, "pai-sad")
if(9) screen_layer = image(icon, "pai-angry")
if(10) screen_layer = image(icon, "pai-silly")
if(11) screen_layer = image(icon, "pai-nose")
if(12) screen_layer = image(icon, "pai-smirk")
if(13) screen_layer = image(icon, "pai-exclamation")
if(14) screen_layer = image(icon, "pai-question")
if(15) screen_layer = image(icon, "pai-blank")
if(16) screen_layer = image(icon, "pai-off")
screen_layer.color = pai.eye_color
add_overlay(screen_layer)
current_emotion = emotion
/obj/item/device/paicard/proc/alertUpdate()
@@ -396,4 +413,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)]."))
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'

View File

@@ -78,7 +78,11 @@
adjustOxyLoss(max(getMaxHealth() * 2 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0))
updatehealth()
<<<<<<< HEAD
/* CHOMP EDIT START: Removing PAI suicide, literally no one needs this.
=======
/*
>>>>>>> 337b7e903f... Merge pull request #13031 from Very-Soft/master
/mob/living/silicon/pai/verb/suicide()
set category = "pAI Commands"
set desc = "Kill yourself and become a ghost (You will receive a confirmation prompt)"
@@ -93,5 +97,9 @@
death(0)
else
to_chat(src, "Aborting suicide attempt.")
<<<<<<< HEAD
*/
=======
*/
>>>>>>> 337b7e903f... Merge pull request #13031 from Very-Soft/master

View File

@@ -183,6 +183,7 @@
key = "squish"
emote_sound = 'sound/effects/slime_squish.ogg' //Credit to DrMinky (freesound.org) for the sound.
emote_message_3p = "squishes."
sound_vary = FALSE
/decl/emote/audible/warble
key = "warble"
@@ -211,6 +212,7 @@
emote_message_1p_target = "You chirp in surprise at TARGET!"
emote_message_3p_target = "chirps in surprise at TARGET!"
emote_sound = 'sound/voice/teshsqueak.ogg' // Copyright CC BY 3.0 InspectorJ (freesound.org) for the source audio.
sound_vary = FALSE
/decl/emote/audible/teshchirp
key = "tchirp"

View File

@@ -34,6 +34,7 @@
key = "chirp"
emote_message_3p = "chirps!"
emote_sound = 'sound/misc/nymphchirp.ogg'
sound_vary = FALSE
/decl/emote/audible/hoot
key = "hoot"
emote_message_3p = "hoots!"
@@ -109,10 +110,12 @@
key = "snort"
emote_message_3p = "snorts!"
emote_sound = 'sound/voice/Snort.ogg'
sound_vary = FALSE
/decl/emote/audible/meow
key = "meow"
emote_message_3p = "gently meows!"
emote_sound = 'sound/voice/Meow.ogg'
sound_vary = FALSE
/decl/emote/audible/moo
key = "moo"
emote_message_3p = "takes a breath and lets out a moo."

View File

@@ -1,17 +1,18 @@
/decl/emote/audible/synth
key = "beep"
emote_message_3p = "beeps."
emote_sound = 'sound/machines/twobeep.ogg'
key = "ping"
emote_message_3p = "pings."
emote_sound = 'sound/machines/ping.ogg'
/decl/emote/audible/synth/mob_can_use(var/mob/living/user)
if(istype(user) && user.isSynthetic())
return ..()
return FALSE
/decl/emote/audible/synth/ping
key = "ping"
emote_message_3p = "pings."
emote_sound = 'sound/machines/ping.ogg'
/decl/emote/audible/synth/beep
key = "beep"
emote_message_3p = "beeps."
emote_sound = 'sound/machines/twobeep.ogg'
sound_vary = FALSE
/decl/emote/audible/synth/buzz
key = "buzz"
@@ -54,3 +55,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 = "roboboop"
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'

View File

@@ -44,6 +44,7 @@ var/global/list/emotes_by_key
var/emote_range = 0 // If >0, restricts emote visibility to viewers within range.
var/sound_preferences = list(/datum/client_preference/emote_noises) // Default emote sound_preferences is just emote_noises. Belch emote overrides this list for pref-checks.
var/sound_vary = TRUE
/decl/emote/Initialize()
. = ..()
@@ -186,7 +187,7 @@ var/global/list/emotes_by_key
if(islist(sound_to_play) && length(sound_to_play))
sound_to_play = pick(sound_to_play)
if(sound_to_play)
playsound(user.loc, sound_to_play, use_sound["vol"], 0, preference = sound_preferences) //VOREStation Add - Preference
playsound(user.loc, sound_to_play, use_sound["vol"], sound_vary, frequency = null, preference = sound_preferences) //VOREStation Add - Preference
/decl/emote/proc/mob_can_use(var/mob/user)
return istype(user) && user.stat != DEAD && (type in user.get_available_emotes())

View File

@@ -1,12 +1,14 @@
var/list/_human_default_emotes = list(
/decl/emote/visible/blink,
/decl/emote/audible/synth,
/decl/emote/audible/synth/ping,
/decl/emote/audible/synth/beep,
/decl/emote/audible/synth/buzz,
/decl/emote/audible/synth/confirm,
/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,

View File

@@ -1,14 +1,23 @@
var/list/_silicon_default_emotes = list(
/decl/emote/audible/synth,
/decl/emote/audible/synth/ping,
/decl/emote/audible/synth/beep,
/decl/emote/audible/synth/buzz,
/decl/emote/audible/synth/confirm,
/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

View File

@@ -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)

View File

@@ -31,7 +31,7 @@
"Cat" = "pai-cat",
"Mouse" = "pai-mouse",
"Monkey" = "pai-monkey",
"Corgi" = "pai-borgi",
"Borgi" = "pai-borgi",
"Fox" = "pai-fox",
"Parrot" = "pai-parrot",
"Rabbit" = "pai-rabbit",
@@ -48,6 +48,10 @@
"Duffel" = "pai-duffel",
"Rat" = "rat",
"Panther" = "panther",
<<<<<<< HEAD
=======
"Cyber Elf" = "cyberelf"
>>>>>>> 337b7e903f... Merge pull request #13031 from Very-Soft/master
//VOREStation Addition End
)
@@ -409,6 +413,8 @@
resting = 0
icon_state = "[chassis]"
verbs -= /mob/living/silicon/pai/proc/pai_nom //VOREStation edit. Let's remove their nom verb
if(isopenspace(card.loc))
fall()
// No binary for pAIs.
/mob/living/silicon/pai/binarycheck()
@@ -433,10 +439,12 @@
if("Add Access")
idcard.access |= ID.access
to_chat(user, "<span class='notice'>You add the access from the [W] to [src].</span>")
to_chat(src, "<span class='notice'>\The [user] swipes the [W] over you. You copy the access codes.</span>")
return
if("Remove Access")
idcard.access = list()
to_chat(user, "<span class='notice'>You remove the access from [src].</span>")
to_chat(src, "<span class='warning'>\The [user] swipes the [W] over you, removing access codes from you.</span>")
return
if("Cancel")
return
@@ -451,16 +459,22 @@
if(idaccessible == 0)
idaccessible = 1
to_chat(src, "<span class='notice'>You allow access modifications.</span>")
visible_message("<span class='notice'>\The [src] clicks as their access modification slot opens.</span>","<span class='notice'>You allow access modifications.</span>", runemessage = "click")
else
idaccessible = 0
to_chat(src, "<span class='notice'>You block access modfications.</span>")
visible_message("<span class='notice'>\The [src] clicks as their access modification slot closes.</span>","<span class='notice'>You block access modfications.</span>", runemessage = "click")
/mob/living/silicon/pai/verb/wipe_software()
<<<<<<< HEAD
set name = "Wipe Software (CRYO)" //CHOMP EDIT: making this clear on first glance
set category = "pAI Commands" //CHOMP EDIT: moving this to pai commands, where it belongs
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."
>>>>>>> 337b7e903f... Merge pull request #13031 from Very-Soft/master
// 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")

View File

@@ -1,10 +1,48 @@
/mob/living/silicon/pai
var/people_eaten = 0
icon = 'icons/mob/pai_vr.dmi'
softfall = TRUE
var/eye_glow = TRUE
var/image/eye_layer = null // Holds the eye overlay.
var/eye_color = "#00ff0d"
var/global/list/wide_chassis = list(
"rat",
"panther"
)
var/global/list/flying_chassis = list(
"pai-parrot",
"pai-bat",
"pai-butterfly",
"pai-hawk",
"cyberelf"
)
//Sure I could spend all day making wacky overlays for all of the different forms
//but quite simply most of these sprites aren't made for that, and I'd rather just make new ones
//the birds especially! Just naw. If someone else wants to mess with 12x4 frames of animation where
//most of the pixels are different kinds of green and tastefully translate that to whitescale
//they can have fun with that! I not doing it!
var/global/list/allows_eye_color = list(
"pai-repairbot",
"pai-typezero",
"pai-bat",
"pai-butterfly",
"pai-mouse",
"pai-monkey",
"pai-raccoon",
"pai-cat",
"rat",
"panther",
"pai-bear",
"pai-fen",
"cyberelf"
)
/mob/living/silicon/pai/Initialize()
. = ..()
verbs |= /mob/living/proc/hide
verbs |= /mob/living/proc/vertical_nom
/mob/living/silicon/pai/proc/pai_nom(var/mob/living/T in oview(1))
set name = "pAI Nom"
@@ -42,15 +80,7 @@
icon_state = "[chassis]_rest_full"
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
add_eyes()
/mob/living/silicon/pai/update_icons() //And other functions cause this to occur, such as digesting someone.
..()
@@ -63,13 +93,8 @@
icon_state = "[chassis]_full"
else if(people_eaten && resting)
icon_state = "[chassis]_rest_full"
add_eyes()
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"
@@ -79,9 +104,67 @@
choice = tgui_input_list(usr, "What would you like to use for your mobile chassis icon?", "Chassis Choice", possible_chassis)
if(!choice) return
chassis = possible_chassis[choice]
verbs |= /mob/living/proc/hide
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)
hovering = TRUE
else
hovering = FALSE
if(isopenspace(loc))
fall()
update_icon()
/mob/living/silicon/pai/verb/toggle_eyeglow()
set category = "pAI Commands"
set name = "Toggle Eye Glow"
if(chassis in allows_eye_color)
if(eye_glow)
eye_glow = FALSE
else
eye_glow = TRUE
update_icon()
else
to_chat(src, "Your selected chassis cannot modify its eye glow!")
return
/mob/living/silicon/pai/verb/pick_eye_color()
set category = "pAI Commands"
set name = "Pick Eye Color"
if(chassis in allows_eye_color)
else
to_chat(src, "<span class='warning'>Your selected chassis eye color can not be modified. The color you pick will only apply to supporting chassis and your card screen.</span>")
eye_color = input(src, "Choose your character's eye color:", "Eye Color") as color|null
update_icon()
card.setEmotion(card.current_emotion)
// Release belly contents before being gc'd!
/mob/living/silicon/pai/Destroy()
release_vore_contents()
return ..()
return ..()
/mob/living/silicon/pai/proc/add_eyes()
if(chassis in allows_eye_color)
remove_eyes()
if(!eye_layer)
eye_layer = image(icon, "[icon_state]-eyes")
eye_layer.appearance_flags = appearance_flags
eye_layer.color = eye_color
if(eye_glow)
eye_layer.plane = PLANE_LIGHTING_ABOVE
add_overlay(eye_layer)
/mob/living/silicon/pai/proc/remove_eyes()
if(chassis in allows_eye_color)
cut_overlay(eye_layer)
qdel(eye_layer)
eye_layer = null

View File

@@ -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
)

View File

@@ -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

View File

@@ -16,12 +16,14 @@ var/list/_robot_default_emotes = list(
/decl/emote/visible/spin,
/decl/emote/visible/sidestep,
/decl/emote/audible/synth,
/decl/emote/audible/synth/ping,
/decl/emote/audible/synth/beep,
/decl/emote/audible/synth/buzz,
/decl/emote/audible/synth/confirm,
/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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 25 KiB

BIN
icons/obj/paicard.dmi Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

BIN
sound/voice/roboboop.ogg Normal file

Binary file not shown.

BIN
sound/voice/robochirp.ogg Normal file

Binary file not shown.