Skip to content

Commit

Permalink
Upp Dzho Automaton/Fighting Joe (#7700)
Browse files Browse the repository at this point in the history
# About the pull request

Adds the UPP Working Joe, aka Dzho Automaton (offical upp name), aka
Fighting Joe (uscm nickname).

Fully based on what [Colonial Marines Operations
Manual](https://avp.fandom.com/wiki/Colonial_Marines_Operations_Manual)
has to say, as well as information from the [AVP wiki
page](https://avp.fandom.com/wiki/Fighting_Joe).

Main gimmick of these Joes, is that they are capable of using firearms
and performing security/brig duties, also they are aggressive to english
speakers when forced to speak english.

Added 128 voice lines in Russian just for this Joe subtype.

Added unique uniform made by Crowford, discord tag **sir.crow** .

The role is whitelisted under same conditions as normal Working Joe.

Roundstart spawners are supposed to be placed on
#7525, in the 1VAN/3 core.


![image](https://github.com/user-attachments/assets/932afb8b-fb4f-4325-8df6-4d2381de350e)


# Explain why it's good for the game

New lore correct content is always good.

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>


https://github.com/user-attachments/assets/134fd53f-a8c1-4b62-b2f2-3b52a3be3df9

</details>


# Changelog
:cl:
add: Upp Dzho Automaton/Fighting Joe and his uniform
fix: fixed working joe not having eye intent set by default
/:cl:

---------

Co-authored-by: Ben <[email protected]>
  • Loading branch information
Blundir and Ben10083 authored Dec 16, 2024
1 parent b8e33d6 commit fdc96e8
Show file tree
Hide file tree
Showing 155 changed files with 640 additions and 64 deletions.
2 changes: 2 additions & 0 deletions code/__DEFINES/flags.dm
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,5 @@
#define WORKING_JOE_EMOTE (1<<0)
/// Hazard Joe emote
#define HAZARD_JOE_EMOTE (1<<1)
/// UPP Joe emote
#define UPP_JOE_EMOTE (1<<2)
1 change: 1 addition & 0 deletions code/__DEFINES/human.dm
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,7 @@
#define SYNTH_INFILTRATOR "Infiltrator Synthetic"
#define SYNTH_WORKING_JOE "Working Joe"
#define SYNTH_HAZARD_JOE "Hazard Joe"
#define SYNTH_UPP_JOE "Dzho Automaton"
#define SYNTH_GEN_ONE "First Generation Synthetic"
#define SYNTH_GEN_TWO "Second Generation Synthetic"
#define SYNTH_GEN_THREE "Third Generation Synthetic"
Expand Down
3 changes: 2 additions & 1 deletion code/__DEFINES/job.dm
Original file line number Diff line number Diff line change
Expand Up @@ -303,8 +303,9 @@ GLOBAL_LIST_INIT(job_command_roles, JOB_COMMAND_ROLES_LIST)

#define JOB_UPP_COMBAT_SYNTH "UPP Combat Synthetic"
#define JOB_UPP_SUPPORT_SYNTH "UPP Support Synthetic"
#define JOB_UPP_JOE "Dzho Automaton"

#define UPP_JOB_LIST list(JOB_UPP, JOB_UPP_ENGI, JOB_UPP_MEDIC, JOB_UPP_SPECIALIST, JOB_UPP_LEADER, JOB_UPP_POLICE, JOB_UPP_LT_OFFICER, JOB_UPP_LT_DOKTOR, JOB_UPP_PILOT, JOB_UPP_SUPPLY, JOB_UPP_SRLT_OFFICER, JOB_UPP_KPT_OFFICER, JOB_UPP_CO_OFFICER, JOB_UPP_SUPPORT_SYNTH, JOB_UPP_COMMISSAR)
#define UPP_JOB_LIST list(JOB_UPP, JOB_UPP_ENGI, JOB_UPP_MEDIC, JOB_UPP_SPECIALIST, JOB_UPP_LEADER, JOB_UPP_POLICE, JOB_UPP_LT_OFFICER, JOB_UPP_LT_DOKTOR, JOB_UPP_PILOT, JOB_UPP_SUPPLY, JOB_UPP_SRLT_OFFICER, JOB_UPP_KPT_OFFICER, JOB_UPP_CO_OFFICER, JOB_UPP_SUPPORT_SYNTH, JOB_UPP_JOE, JOB_UPP_COMMISSAR)
#define UPP_JOB_GRUNT_LIST list(JOB_UPP, JOB_UPP_ENGI, JOB_UPP_MEDIC, JOB_UPP_SPECIALIST, JOB_UPP_LEADER, JOB_UPP_POLICE, JOB_UPP_CREWMAN)

#define JOB_UPP_COMMANDO "UPP Junior Kommando"
Expand Down
2 changes: 1 addition & 1 deletion code/__DEFINES/mode.dm
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ GLOBAL_LIST_INIT(ROLES_CIC_ANTAG, list(JOB_UPP_SRLT_OFFICER, JOB_UPP_KPT_OFFICER
GLOBAL_LIST_INIT(ROLES_AUXIL_SUPPORT, list(JOB_AUXILIARY_OFFICER, JOB_INTEL, JOB_CAS_PILOT, JOB_DROPSHIP_PILOT, JOB_DROPSHIP_CREW_CHIEF, JOB_TANK_CREW, JOB_WO_CHIEF_POLICE, JOB_WO_SO, JOB_WO_CREWMAN, JOB_WO_POLICE, JOB_WO_PILOT))
GLOBAL_LIST_INIT(ROLES_AUXIL_SUPPORT_ANTAG, list(JOB_UPP_CREWMAN, JOB_UPP_PILOT))
GLOBAL_LIST_INIT(ROLES_MISC, list(JOB_SYNTH, JOB_WORKING_JOE, JOB_SEA, JOB_CORPORATE_LIAISON, JOB_COMBAT_REPORTER, JOB_MESS_SERGEANT, JOB_WO_CORPORATE_LIAISON, JOB_WO_SYNTH))
GLOBAL_LIST_INIT(ROLES_MISC_ANTAG, list(JOB_UPP_COMBAT_SYNTH, JOB_UPP_SUPPORT_SYNTH))
GLOBAL_LIST_INIT(ROLES_MISC_ANTAG, list(JOB_UPP_COMBAT_SYNTH, JOB_UPP_SUPPORT_SYNTH, JOB_UPP_JOE))
GLOBAL_LIST_INIT(ROLES_POLICE, list(JOB_CHIEF_POLICE, JOB_WARDEN, JOB_POLICE))
GLOBAL_LIST_INIT(ROLES_POLICE_ANTAG, list(JOB_UPP_POLICE))
GLOBAL_LIST_INIT(ROLES_ENGINEERING, list(JOB_CHIEF_ENGINEER, JOB_ORDNANCE_TECH, JOB_MAINT_TECH, JOB_WO_CHIEF_ENGINEER, JOB_WO_ORDNANCE_TECH))
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/typecheck/humanoids.dm
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#define iscolonysynthetic(A) (ishuman(A) && istype(A?:species, /datum/species/synthetic/colonial))
#define isworkingjoe(A) (ishuman(A) && istype(A?:species, /datum/species/synthetic/colonial/working_joe))
#define ishazardjoe(A) (ishuman(A) && istype(A?:species, /datum/species/synthetic/colonial/working_joe/hazard))
#define isuppjoe(A) (ishuman(A) && istype(A?:species, /datum/species/synthetic/colonial/working_joe/upp))
#define isinfiltratorsynthetic(A) (ishuman(A) && istype(A?:species, /datum/species/synthetic/infiltrator))
#define isk9synth(A) (ishuman(A) && istype(A?:species, /datum/species/synthetic/synth_k9))

Expand Down
17 changes: 17 additions & 0 deletions code/_globalvars/global_lists.dm
Original file line number Diff line number Diff line change
Expand Up @@ -323,6 +323,10 @@ GLOBAL_LIST_INIT(wj_emotes, setup_working_joe_emotes())
GLOBAL_LIST_EMPTY(hj_categories)
/// dict ("category" : (emotes)) of every hj emote typepath
GLOBAL_LIST_INIT(hj_emotes, setup_hazard_joe_emotes())
/// dict ("category" : (emotes)) of every uppj emote typepath
GLOBAL_LIST_EMPTY(uppj_categories)
/// dict ("category" : (emotes)) of every uppj emote typepath
GLOBAL_LIST_INIT(uppj_emotes, setup_upp_joe_emotes())

/proc/cached_params_decode(params_data, decode_proc)
. = GLOB.paramslist_cache[params_data]
Expand Down Expand Up @@ -598,6 +602,19 @@ GLOBAL_LIST_INIT_TYPED(specialist_set_datums, /datum/specialist_set, setup_speci
emotes_to_add += emote
return emotes_to_add

/// Setup for Hazard joe emotes and category list, returns data for uppj_emotes
/proc/setup_upp_joe_emotes()
var/list/emotes_to_add = list()
for(var/datum/emote/living/carbon/human/synthetic/working_joe/emote as anything in subtypesof(/datum/emote/living/carbon/human/synthetic/working_joe))
if(!(initial(emote.joe_flag) & UPP_JOE_EMOTE) || !initial(emote.key) || !initial(emote.say_message))
continue

if(!(initial(emote.category) in GLOB.uppj_categories))
GLOB.uppj_categories += initial(emote.category)

emotes_to_add += emote
return emotes_to_add

GLOBAL_LIST_EMPTY(topic_tokens)
GLOBAL_PROTECT(topic_tokens)

Expand Down
22 changes: 22 additions & 0 deletions code/game/jobs/job/civilians/support/working_joe.dm
Original file line number Diff line number Diff line change
Expand Up @@ -66,3 +66,25 @@

if(SSticker.mode)
SSticker.mode.initialize_joe(M)

/datum/job/antag/upp/dzho_automaton
title = JOB_UPP_JOE
total_positions = 3 //Number is actually based on information from Colonial Marines_Operations Manual, 1IVAN/3 starts to lag if it is connected to more than 3.
spawn_positions = 3
allow_additional = TRUE
scaled = FALSE
supervisors = "1VAN/3 and UPP command staff"
gear_preset = /datum/equipment_preset/synth/working_joe/upp
flags_startup_parameters = ROLE_WHITELISTED

flags_whitelist = WHITELIST_JOE

/datum/job/antag/upp/dzho_automaton/check_whitelist_status(mob/user)
if(user.client.check_whitelist_status(WHITELIST_SYNTHETIC))
return TRUE

return ..()

/datum/job/antag/upp/dzho_automaton/generate_entry_message(mob/living/carbon/human/H)
. = {"You are a <a>Dzho Automaton.</a> You are held to a higher standard and are required to obey not only the Server Rules but UPP Law, Roleplay Expectations and Synthetic Rules. Your primary task is to maintain the ship, patrol and other tasks given to you by UPP officer staff. Alternatively, your primary task may be to assist with manual labor in limited capacity, or clerical duties. You can perform brig duties and security duties if needed. You have a firearm permit and can use lethal force where applicable. Your capacities are limited, but you have all the equipment you need, and the central AI has a plan! Stay in character at all times.!"}

1 change: 1 addition & 0 deletions code/game/jobs/whitelist.dm
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ GLOBAL_LIST_INIT(yaut_flags, list(
GLOBAL_LIST_INIT(misc_flags, list(
list(name = "Senior Enlisted Advisor", bitflag = WHITELIST_MENTOR, permission = WL_PANEL_RIGHT_MENTOR),
list(name = "Working Joe", bitflag = WHITELIST_JOE, permission = WL_PANEL_RIGHT_SYNTH),
list(name = "Dzho Automaton", bitflag = WHITELIST_JOE, permission = WL_PANEL_RIGHT_SYNTH),
list(name = "Fax Responder", bitflag = WHITELIST_FAX_RESPONDER, permission = WL_PANEL_RIGHT_MANAGER),
))

Expand Down
3 changes: 3 additions & 0 deletions code/game/objects/effects/landmarks/landmarks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -462,6 +462,9 @@
name = "working joe late join"
job = JOB_WORKING_JOE

/obj/effect/landmark/late_join/dzho_automaton
name = "dzho automaton late join"
job = JOB_UPP_JOE

/obj/effect/landmark/late_join/cmo
name = "Chief Medical Officer late join"
Expand Down
9 changes: 9 additions & 0 deletions code/game/objects/items/storage/pouch.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1344,6 +1344,15 @@
new /obj/item/stack/cable_coil(src)
new /obj/item/device/defibrillator/synthetic(src)

/obj/item/storage/pouch/tools/tactical/upp/dzho/fill_preset_inventory()
new /obj/item/tool/wrench(src)
new /obj/item/tool/crowbar(src)
new /obj/item/tool/wirecutters(src)
new /obj/item/device/multitool(src)
new /obj/item/tool/weldingtool(src)
new /obj/item/tool/screwdriver(src)
new /obj/item/stack/cable_coil(src)

/obj/item/storage/pouch/tools/uppsynth/fill_preset_inventory()
new /obj/item/tool/crowbar(src)
new /obj/item/tool/wirecutters(src)
Expand Down
2 changes: 2 additions & 0 deletions code/game/sound.dm
Original file line number Diff line number Diff line change
Expand Up @@ -404,6 +404,8 @@
sound = pick('sound/voice/joe/death_normal.ogg', 'sound/voice/joe/death_silence.ogg',10;'sound/voice/joe/death_tomorrow.ogg',5;'sound/voice/joe/death_dream.ogg')
if("hj_death")
sound = pick('sound/voice/joe/death_hj_normal.ogg', 'sound/voice/joe/death_hj_silence.ogg',10;'sound/voice/joe/death_hj_tomorrow.ogg')
if("upp_wj_death")
sound = pick('sound/voice/joe/upp_joe/smert1.ogg', 'sound/voice/joe/upp_joe/smert2.ogg', 'sound/voice/joe/upp_joe/smert3.ogg', 'sound/voice/joe/upp_joe/smert4.ogg', 'sound/voice/joe/upp_joe/smert5.ogg')
//misc mobs
if("cat_meow")
sound = pick('sound/voice/cat_meow_1.ogg','sound/voice/cat_meow_2.ogg','sound/voice/cat_meow_3.ogg','sound/voice/cat_meow_4.ogg','sound/voice/cat_meow_5.ogg','sound/voice/cat_meow_6.ogg','sound/voice/cat_meow_7.ogg')
Expand Down
11 changes: 11 additions & 0 deletions code/modules/clothing/under/marine_uniform.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1161,6 +1161,17 @@
WEAR_BODY = 'icons/mob/humans/onmob/clothing/uniforms/uniforms_by_department/research.dmi',
)

/obj/item/clothing/under/rank/synthetic/upp_joe
name = "android suit"
desc = "Uniform designed for UPP security synthetics."
icon_state = "upp_joe"
worn_state = "upp_joe"
icon = 'icons/obj/items/clothing/uniforms/uniforms_by_faction/UPP.dmi'
item_icons = list(
WEAR_BODY = 'icons/mob/humans/onmob/clothing/uniforms/uniforms_by_faction/UPP.dmi',
)
flags_item = NO_CRYO_STORE

/obj/item/clothing/under/rank/synthetic/joe
name = "\improper Working Joe Uniform"
desc = "A cheap uniform made for Synthetic labor. Tomorrow, Together."
Expand Down
39 changes: 38 additions & 1 deletion code/modules/gear_presets/synths.dm
Original file line number Diff line number Diff line change
Expand Up @@ -696,6 +696,40 @@
new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/large_stack(new_human.back), WEAR_IN_R_STORE)
new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/glass/reinforced/large_stack(new_human.back), WEAR_IN_R_STORE)

/datum/equipment_preset/synth/working_joe/upp
name = "Synthetic - Dzho Automaton"
assignment = JOB_UPP_JOE
rank = JOB_UPP_JOE
joe_type = SYNTH_UPP_JOE
idtype = /obj/item/card/id/dogtag
minimap_background = "background_upp"
faction_group = list(FACTION_UPP)
faction = FACTION_UPP
languages = list(LANGUAGE_RUSSIAN, LANGUAGE_GERMAN, LANGUAGE_SPANISH, LANGUAGE_CHINESE, LANGUAGE_ENGLISH)

/datum/equipment_preset/synth/working_joe/upp/load_gear(mob/living/carbon/human/new_human)
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/synthetic/upp_joe(new_human), WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(new_human), WEAR_FEET)
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/upp(new_human), WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/np92(new_human), WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran, WEAR_HANDS)
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/cct(new_human), WEAR_L_EAR)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/tactical/upp/dzho(new_human), WEAR_L_STORE)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/construction(new_human), WEAR_R_STORE)
new_human.equip_to_slot_or_del(new /obj/item/reagent_container/spray/cleaner(new_human.back), WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/reagent_container/glass/bucket/janibucket(new_human.back), WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/tool/mop(new_human.back), WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/weapon/baton(new_human.back), WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip(new_human.back), WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/restraint/handcuffs/zip(new_human.back), WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/device/defibrillator/synthetic(new_human.back), WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/device/lightreplacer(new_human.back), WEAR_IN_R_STORE)
new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/medium_stack(new_human.back), WEAR_IN_R_STORE)
new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/glass/reinforced/medium_stack(new_human.back), WEAR_IN_R_STORE)

/datum/equipment_preset/synth/working_joe/upp/load_skills(mob/living/carbon/human/new_human)
. = ..()
new_human.allow_gun_usage = TRUE

/datum/equipment_preset/synth/working_joe/load_race(mob/living/carbon/human/new_human)
. = ..()
Expand All @@ -716,7 +750,10 @@
new_human.b_facial = 255

/datum/equipment_preset/synth/working_joe/load_name(mob/living/carbon/human/new_human, randomise)
new_human.change_real_name(new_human, "Working Joe #[rand(100)][rand(100)]")
if(src.faction == FACTION_UPP)
new_human.change_real_name(new_human, "Dzho Automaton №[rand(9)][rand(9)][ascii2text(rand(65, 90))][ascii2text(rand(65, 90))]")
else
new_human.change_real_name(new_human, "Working Joe #[rand(100)][rand(100)]")

//*****************************************************************************************************/

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,14 @@
var/override_say = ""
/// Path to hazard joe variant sound
var/haz_sound
/// Path to upp joe variant sound
var/upp_joe_sound
/// What Working Joe types can use this emote
var/joe_flag = WORKING_JOE_EMOTE

/datum/emote/living/carbon/human/synthetic/working_joe/get_sound(mob/living/user)
if(ishazardjoe(user) && haz_sound)
return haz_sound
if(isuppjoe(user) && upp_joe_sound)
return upp_joe_sound
return sound
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,16 @@
return
playsound(get_turf(dying_joe), "hj_death", 25, FALSE)

/datum/species/synthetic/colonial/working_joe/upp
name = SYNTH_UPP_JOE
name_plural = "Dzho Automaton"
emote_panel_type = /datum/joe_emote_panel/upp

/datum/species/synthetic/colonial/working_joe/upp/handle_death(mob/living/carbon/human/dying_joe, gibbed)
if(!gibbed) //A gibbed Joe won't have a death rattle
return
playsound(get_turf(dying_joe), "upp_wj_death", 25, FALSE)

/datum/species/synthetic/colonial/working_joe/handle_post_spawn(mob/living/carbon/human/joe)
. = ..()
give_action(joe, /datum/action/joe_emote_panel)
Expand Down Expand Up @@ -120,6 +130,23 @@

return data

/datum/joe_emote_panel/upp/ui_static_data(mob/user)
var/list/data = list()

data["theme"] = "crtred"
data["categories"] = GLOB.uppj_categories
data["emotes"] = list()

for(var/datum/emote/living/carbon/human/synthetic/working_joe/emote as anything in GLOB.uppj_emotes)
data["emotes"] += list(list(
"id" = initial(emote.key),
"text" = (initial(emote.override_say) || initial(emote.say_message)),
"category" = initial(emote.category),
"path" = "[emote]",
))

return data


/datum/joe_emote_panel/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
Expand Down
43 changes: 38 additions & 5 deletions code/modules/mob/living/carbon/human/species/working_joe/damage.dm
Original file line number Diff line number Diff line change
Expand Up @@ -41,21 +41,44 @@
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE

/datum/emote/living/carbon/human/synthetic/working_joe/damage/seriously
key = "seriously"
upp_joe_sound = 'sound/voice/joe/upp_joe/seryozno.ogg'
say_message = "Seriously?"
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
joe_flag = UPP_JOE_EMOTE

/datum/emote/living/carbon/human/synthetic/working_joe/damage/unpleasant
key = "unpleasant"
upp_joe_sound = 'sound/voice/joe/upp_joe/nepriyatno.ogg'
say_message = "Unpleasant."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
joe_flag = UPP_JOE_EMOTE

/datum/emote/living/carbon/human/synthetic/working_joe/damage/dont_recommend
key = "dontrecommend"
upp_joe_sound = 'sound/voice/joe/upp_joe/ne_recomenduyu.ogg'
say_message = "I don't recommend that."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
joe_flag = UPP_JOE_EMOTE

/datum/emote/living/carbon/human/synthetic/working_joe/damage/enough
key = "enough"
sound = 'sound/voice/joe/enough.ogg'
haz_sound = 'sound/voice/joe/enough_haz.ogg'
upp_joe_sound = 'sound/voice/joe/upp_joe/hvatit.ogg'
say_message = "Enough."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE
joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE|UPP_JOE_EMOTE

/datum/emote/living/carbon/human/synthetic/working_joe/damage/stop_that
key = "stopthat"
sound = 'sound/voice/joe/stop_that.ogg'
haz_sound = 'sound/voice/joe/stop_that_haz.ogg'
upp_joe_sound = 'sound/voice/joe/upp_joe/prekratite.ogg'
say_message = "Stop that."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE
joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE|UPP_JOE_EMOTE

/datum/emote/living/carbon/human/synthetic/working_joe/damage/tut_tut
key = "tuttut"
Expand All @@ -65,6 +88,13 @@
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE

/datum/emote/living/carbon/human/synthetic/working_joe/damage/ay_ya_yay
key = "ayayay"
upp_joe_sound = 'sound/voice/joe/upp_joe/ay-ya-yay.ogg'
say_message = "Ay-ya-yay."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
joe_flag = UPP_JOE_EMOTE

/datum/emote/living/carbon/human/synthetic/working_joe/damage/unwarranted
key = "unwarranted"
sound = 'sound/voice/joe/unwarranted.ogg'
Expand All @@ -77,25 +107,28 @@
key = "expensivemistake"
sound = 'sound/voice/joe/expensive_mistake.ogg'
haz_sound = 'sound/voice/joe/expensive_mistake_haz.ogg'
upp_joe_sound = 'sound/voice/joe/upp_joe/dorogo_stoit.ogg'
say_message = "That was an expensive mistake."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE
joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE|UPP_JOE_EMOTE

/datum/emote/living/carbon/human/synthetic/working_joe/damage/this_isnt_the_answer
key = "isnttheanswer"
sound = 'sound/voice/joe/this_isnt_the_answer.ogg'
haz_sound = 'sound/voice/joe/this_isnt_the_answer_haz.ogg'
upp_joe_sound = 'sound/voice/joe/upp_joe/ne_otvet.ogg'
say_message = "This isn't the answer."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE
joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE|UPP_JOE_EMOTE

/datum/emote/living/carbon/human/synthetic/working_joe/damage/my_turn_now
key = "myturnnow"
sound = 'sound/voice/joe/my_turn_now.ogg'
haz_sound = 'sound/voice/joe/my_turn_now_haz.ogg'
upp_joe_sound = 'sound/voice/joe/upp_joe/ochered.ogg'
say_message = "My turn now."
emote_type = EMOTE_AUDIBLE|EMOTE_VISIBLE
joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE
joe_flag = WORKING_JOE_EMOTE|HAZARD_JOE_EMOTE|UPP_JOE_EMOTE

/datum/emote/living/carbon/human/synthetic/working_joe/damage/i_wish_you
key = "iwishyou"
Expand Down
Loading

0 comments on commit fdc96e8

Please sign in to comment.