From 348fbc951adfecd34b4ac678e582b2a4cec8aa1f Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Sun, 7 Jan 2024 20:59:15 +0100 Subject: [PATCH] [MIRROR] Geared Assistants Station Trait [MDB IGNORE] (#25928) * Geared Assistants Station Trait * merge conflicts fixes * hmmm --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com> --- code/__DEFINES/traits/declarations.dm | 1 + code/_globalvars/traits/_traits.dm | 1 + code/datums/station_traits/neutral_traits.dm | 1 + code/datums/station_traits/positive_traits.dm | 10 + code/game/objects/items/storage/fancy.dm | 10 + code/modules/cargo/coupon.dm | 13 +- code/modules/jobs/job_types/_job.dm | 10 +- .../jobs/job_types/assistant/assistant.dm | 101 +++++++++ .../colorful_assistants.dm} | 100 --------- .../job_types/assistant/gimmick_assistants.dm | 210 ++++++++++++++++++ tgstation.dme | 4 +- 11 files changed, 356 insertions(+), 105 deletions(-) create mode 100644 code/modules/jobs/job_types/assistant/assistant.dm rename code/modules/jobs/job_types/{assistant.dm => assistant/colorful_assistants.dm} (53%) create mode 100644 code/modules/jobs/job_types/assistant/gimmick_assistants.dm diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm index fffacf9ca62..af171751f33 100644 --- a/code/__DEFINES/traits/declarations.dm +++ b/code/__DEFINES/traits/declarations.dm @@ -889,6 +889,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_BLOB_ALLY "blob_ally" ///Traits given by station traits +#define STATION_TRAIT_ASSISTANT_GIMMICKS "station_trait_assistant_gimmicks" #define STATION_TRAIT_BANANIUM_SHIPMENTS "station_trait_bananium_shipments" #define STATION_TRAIT_BIGGER_PODS "station_trait_bigger_pods" #define STATION_TRAIT_BIRTHDAY "station_trait_birthday" diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm index 286f9e46fc3..025876e0542 100644 --- a/code/_globalvars/traits/_traits.dm +++ b/code/_globalvars/traits/_traits.dm @@ -69,6 +69,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( ), // AKA SSstation /datum/controller/subsystem/processing/station = list( + "STATION_TRAIT_ASSISTANT_GIMMICKS" = STATION_TRAIT_ASSISTANT_GIMMICKS, "STATION_TRAIT_BANANIUM_SHIPMENTS" = STATION_TRAIT_BANANIUM_SHIPMENTS, "STATION_TRAIT_BIGGER_PODS" = STATION_TRAIT_BIGGER_PODS, "STATION_TRAIT_BIRTHDAY" = STATION_TRAIT_BIRTHDAY, diff --git a/code/datums/station_traits/neutral_traits.dm b/code/datums/station_traits/neutral_traits.dm index ba6cfcac377..f12f9bed855 100644 --- a/code/datums/station_traits/neutral_traits.dm +++ b/code/datums/station_traits/neutral_traits.dm @@ -140,6 +140,7 @@ show_in_report = TRUE cost = STATION_TRAIT_COST_MINIMAL report_message = "Due to a shortage in standard issue jumpsuits, we have provided your assistants with one of our backup supplies." + blacklist = list(/datum/station_trait/assistant_gimmicks) /datum/station_trait/colored_assistants/New() . = ..() diff --git a/code/datums/station_traits/positive_traits.dm b/code/datums/station_traits/positive_traits.dm index 2c6b1c6524a..4a21d25f884 100644 --- a/code/datums/station_traits/positive_traits.dm +++ b/code/datums/station_traits/positive_traits.dm @@ -351,5 +351,15 @@ trim_state = "trim_stationengineer" department_color = COLOR_ASSISTANT_GRAY +/// Spawns assistants with some gear, either gimmicky or functional. Maybe, one day, it will inspire an assistant to do something productive or fun +/datum/station_trait/assistant_gimmicks + name = "Geared Assistants Pilot" + report_message = "The Nanotrassen Assistant Affairs division is performing a pilot to see if different assistant equipments help improve productivity!" + trait_type = STATION_TRAIT_POSITIVE + weight = 3 + trait_to_give = STATION_TRAIT_ASSISTANT_GIMMICKS + show_in_report = TRUE + blacklist = list(/datum/station_trait/colored_assistants) + #undef PARTY_COOLDOWN_LENGTH_MIN #undef PARTY_COOLDOWN_LENGTH_MAX diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index 61d96c1ff34..e1c21d1305c 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -155,6 +155,16 @@ . = ..() atom_storage.set_holdable(list(/obj/item/food/egg)) +/* + * Fertile Egg Box + */ + +/obj/item/storage/fancy/egg_box/fertile + name = "fertile egg box" + desc = "Only one thing here is fertile, and it's not the eggs." + spawn_type = /obj/item/food/egg/fertile + spawn_count = 6 + /* * Candle Box */ diff --git a/code/modules/cargo/coupon.dm b/code/modules/cargo/coupon.dm index e56544a1864..f654db44887 100644 --- a/code/modules/cargo/coupon.dm +++ b/code/modules/cargo/coupon.dm @@ -56,6 +56,12 @@ var/discount_pct_off = 0.05 var/obj/machinery/computer/cargo/inserted_console +/obj/item/coupon/Initialize(mapload) + . = ..() + + if(discounted_pack) + update_name() + /// Choose what our prize is :D /obj/item/coupon/proc/generate(discount, datum/supply_pack/discounted_pack) src.discounted_pack = discounted_pack || pick(GLOB.discountable_packs[pick_weight(GLOB.pack_discount_odds)]) @@ -65,11 +71,12 @@ if(discount_pct_off != COUPON_OMEN) if(!discount) // the discount arg should be a number already, while the keys in the chances list cannot be numbers discount_pct_off = text2num(discount_pct_off) - name = "coupon - [round(discount_pct_off * 100)]% off [initial(src.discounted_pack.name)]" + update_name() return name = "coupon - fuck you" desc = "The small text reads, 'You will be slaughtered'... That doesn't sound right, does it?" + if(!ismob(loc)) return FALSE @@ -83,6 +90,10 @@ to_chat(cursed, span_warning("What a horrible night... To have a curse!")) addtimer(CALLBACK(src, PROC_REF(curse_heart), cursed), 5 SECONDS, TIMER_UNIQUE | TIMER_STOPPABLE) +/obj/item/coupon/update_name() + name = "coupon - [round(discount_pct_off * 100)]% off [initial(discounted_pack.name)]" + return ..() + /// Play stupid games, win stupid prizes /obj/item/coupon/proc/curse_heart(mob/living/cursed) if(!iscarbon(cursed)) diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index 8df78283cf8..bbdefa6bcbe 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -178,6 +178,10 @@ for(var/i in roundstart_experience) spawned_human.mind.adjust_experience(i, roundstart_experience[i], TRUE) +/// Return the outfit to use +/datum/job/proc/get_outfit() + return outfit + /// Announce that this job as joined the round to all crew members. /// Note the joining mob has no client at this point. /datum/job/proc/announce_job(mob/living/joining_mob, job_title) // SKYRAT EDIT CHANGE - ALTERNATIVE_JOB_TITLES - Original: /datum/job/proc/announce_job(mob/living/joining_mob) @@ -220,10 +224,10 @@ /mob/living/carbon/human/dress_up_as_job(datum/job/equipping, visual_only = FALSE, datum/preferences/used_pref) //SKYRAT EDIT CHANGE dna.species.pre_equip_species_outfit(equipping, src, visual_only) - equip_outfit_and_loadout(equipping.outfit, used_pref, visual_only, equipping) //SKYRAT EDIT CHANGE + equip_outfit_and_loadout(equipping.get_outfit(), used_pref, visual_only, equipping) //SKYRAT EDIT CHANGE -/// tells the given channel that the given mob is the new department head. See communications.dm for valid channels. -/datum/job/proc/announce_head(mob/living/carbon/human/H, channels, job_title) // SKYRAT EDIT CHANGE - ALTERNATIVE_JOB_TITLES - Original: /datum/job/proc/announce_head(mob/living/carbon/human/H, channels) +// Original: /datum/job/proc/announce_head(mob/living/carbon/human/H, channels) //tells the given channel that the given mob is the new department head. See communications.dm for valid channels. +/datum/job/proc/announce_head(mob/living/carbon/human/H, channels, job_title) // SKYRAT EDIT CHANGE - ALTERNATIVE_JOB_TITLES if(H && GLOB.announcement_systems.len) //timer because these should come after the captain announcement SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_addtimer), CALLBACK(pick(GLOB.announcement_systems), TYPE_PROC_REF(/obj/machinery/announcement_system, announce), "NEWHEAD", H.real_name, job_title, channels), 1)) // SKYRAT EDIT CHANGE - ALTERNATIVE_JOB_TITLES - Original: SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_addtimer), CALLBACK(pick(GLOB.announcement_systems), TYPE_PROC_REF(/obj/machinery/announcement_system, announce), "NEWHEAD", H.real_name, H.job, channels), 1)) diff --git a/code/modules/jobs/job_types/assistant/assistant.dm b/code/modules/jobs/job_types/assistant/assistant.dm new file mode 100644 index 00000000000..45c439c1957 --- /dev/null +++ b/code/modules/jobs/job_types/assistant/assistant.dm @@ -0,0 +1,101 @@ +GLOBAL_DATUM(colored_assistant, /datum/colored_assistant) + +/* +Assistant +*/ +/datum/job/assistant + title = JOB_ASSISTANT + description = "Get your space legs, assist people, ask the HoP to give you a job." + faction = FACTION_STATION + total_positions = 5 + spawn_positions = 5 + supervisors = "absolutely everyone" + exp_granted_type = EXP_TYPE_CREW + outfit = /datum/outfit/job/assistant + plasmaman_outfit = /datum/outfit/plasmaman + paycheck = PAYCHECK_LOWER // Get a job. Job reassignment changes your paycheck now. Get over it. + + paycheck_department = ACCOUNT_CIV + display_order = JOB_DISPLAY_ORDER_ASSISTANT + + liver_traits = list(TRAIT_MAINTENANCE_METABOLISM) + + department_for_prefs = /datum/job_department/assistant + + family_heirlooms = list(/obj/item/storage/toolbox/mechanical/old/heirloom, /obj/item/clothing/gloves/cut/heirloom) + + mail_goodies = list( + /obj/effect/spawner/random/food_or_drink/donkpockets = 10, + /obj/item/clothing/mask/gas = 10, + /obj/item/clothing/gloves/color/fyellow = 7, + /obj/item/choice_beacon/music = 5, + /obj/item/toy/sprayoncan = 3, + /obj/item/crowbar/large = 1 + ) + + job_flags = STATION_JOB_FLAGS + rpg_title = "Lout" + config_tag = "ASSISTANT" + +/datum/job/assistant/get_outfit() + if(!HAS_TRAIT(SSstation, STATION_TRAIT_ASSISTANT_GIMMICKS)) + return ..() + + var/static/list/gimmicks = list() + if(!length(gimmicks)) + for(var/datum/outfit/job/assistant/gimmick/gimmick_outfit as anything in subtypesof(/datum/outfit/job/assistant/gimmick)) + gimmicks[gimmick_outfit] = gimmick_outfit::outfit_weight + + return pick_weight(gimmicks) + +/datum/outfit/job/assistant + name = JOB_ASSISTANT + jobtype = /datum/job/assistant + id_trim = /datum/id_trim/job/assistant + belt = /obj/item/modular_computer/pda/assistant + +/datum/outfit/job/assistant/pre_equip(mob/living/carbon/human/target) + ..() + for(var/holidayname in GLOB.holidays) + var/datum/holiday/holiday_today = GLOB.holidays[holidayname] + var/obj/item/special_hat = holiday_today.holiday_hat + if(prob(HOLIDAY_HAT_CHANCE) && !isnull(special_hat) && isnull(head)) + head = special_hat + + give_jumpsuit(target) + +/datum/outfit/job/assistant/proc/give_jumpsuit(mob/living/carbon/human/target) + var/static/jumpsuit_number = 0 + jumpsuit_number += 1 + + if (isnull(GLOB.colored_assistant)) + var/configured_type = get_configured_colored_assistant_type() + GLOB.colored_assistant = new configured_type + + var/index = (jumpsuit_number % GLOB.colored_assistant.jumpsuits.len) + 1 + + // SKYRAT EDIT - Loadouts (we don't want jumpsuits to override the person's loadout item) + if(modified_outfit_slots & ITEM_SLOT_ICLOTHING) + return + // SKYRAT EDIT END + + //We don't cache these, because they can delete on init + //Too fragile, better to just eat the cost + if (target.jumpsuit_style == PREF_SUIT) + uniform = GLOB.colored_assistant.jumpsuits[index] + else + uniform = GLOB.colored_assistant.jumpskirts[index] + +/datum/outfit/job/assistant/consistent + name = "Assistant - Consistent" + +/datum/outfit/job/assistant/consistent/give_jumpsuit(mob/living/carbon/human/target) + uniform = /obj/item/clothing/under/color/grey + +/datum/outfit/job/assistant/consistent/post_equip(mob/living/carbon/human/H, visualsOnly) + ..() + + // This outfit is used by the assets SS, which is ran before the atoms SS + if (SSatoms.initialized == INITIALIZATION_INSSATOMS) + H.w_uniform?.update_greyscale() + H.update_worn_undersuit() diff --git a/code/modules/jobs/job_types/assistant.dm b/code/modules/jobs/job_types/assistant/colorful_assistants.dm similarity index 53% rename from code/modules/jobs/job_types/assistant.dm rename to code/modules/jobs/job_types/assistant/colorful_assistants.dm index fce0aade6ca..740b64912c1 100644 --- a/code/modules/jobs/job_types/assistant.dm +++ b/code/modules/jobs/job_types/assistant/colorful_assistants.dm @@ -1,103 +1,3 @@ -GLOBAL_DATUM(colored_assistant, /datum/colored_assistant) - -/* -Assistant -*/ -/datum/job/assistant - title = JOB_ASSISTANT - description = "Get your space legs, assist people, ask the HoP to give you a job." - faction = FACTION_STATION - total_positions = 5 - spawn_positions = 5 - supervisors = "absolutely everyone" - exp_granted_type = EXP_TYPE_CREW - outfit = /datum/outfit/job/assistant - plasmaman_outfit = /datum/outfit/plasmaman - paycheck = PAYCHECK_LOWER // Get a job. Job reassignment changes your paycheck now. Get over it. - - paycheck_department = ACCOUNT_CIV - display_order = JOB_DISPLAY_ORDER_ASSISTANT - - liver_traits = list(TRAIT_MAINTENANCE_METABOLISM) - - department_for_prefs = /datum/job_department/assistant - - family_heirlooms = list(/obj/item/storage/toolbox/mechanical/old/heirloom, /obj/item/clothing/gloves/cut/heirloom) - - mail_goodies = list( - /obj/effect/spawner/random/food_or_drink/donkpockets = 10, - /obj/item/clothing/mask/gas = 10, - /obj/item/clothing/gloves/color/fyellow = 7, - /obj/item/choice_beacon/music = 5, - /obj/item/toy/sprayoncan = 3, - /obj/item/crowbar/large = 1 - ) - - job_flags = STATION_JOB_FLAGS - rpg_title = "Lout" - config_tag = "ASSISTANT" - - allow_bureaucratic_error = FALSE // SKYRAT EDIT ADDITION - -/datum/outfit/job/assistant - name = JOB_ASSISTANT - jobtype = /datum/job/assistant - id_trim = /datum/id_trim/job/assistant - uniform = /obj/item/clothing/under/color/random // SKYRAT EDIT ADD - belt = /obj/item/modular_computer/pda/assistant - -/datum/outfit/job/assistant/pre_equip(mob/living/carbon/human/target) - ..() - give_hat() - give_jumpsuit(target) - -/datum/outfit/job/assistant/proc/give_hat() - for(var/holidayname in GLOB.holidays) - var/datum/holiday/holiday_today = GLOB.holidays[holidayname] - var/obj/item/special_hat = holiday_today.holiday_hat - if(prob(HOLIDAY_HAT_CHANCE) && !isnull(special_hat) && isnull(head)) - head = special_hat - -/datum/outfit/job/assistant/proc/give_jumpsuit(mob/living/carbon/human/target) - var/static/jumpsuit_number = 0 - jumpsuit_number += 1 - - if (isnull(GLOB.colored_assistant)) - var/configured_type = get_configured_colored_assistant_type() - GLOB.colored_assistant = new configured_type - - var/index = (jumpsuit_number % GLOB.colored_assistant.jumpsuits.len) + 1 - - // SKYRAT EDIT - Loadouts (we don't want jumpsuits to override the person's loadout item) - if(modified_outfit_slots & ITEM_SLOT_ICLOTHING) - return - // SKYRAT EDIT END - - //We don't cache these, because they can delete on init - //Too fragile, better to just eat the cost - if (target.jumpsuit_style == PREF_SUIT) - uniform = GLOB.colored_assistant.jumpsuits[index] - else - uniform = GLOB.colored_assistant.jumpskirts[index] - -/datum/outfit/job/assistant/consistent - name = "Assistant - Consistent" - -/datum/outfit/job/assistant/consistent/give_hat() - return - -/datum/outfit/job/assistant/consistent/give_jumpsuit(mob/living/carbon/human/target) - uniform = /obj/item/clothing/under/color/grey - -/datum/outfit/job/assistant/consistent/post_equip(mob/living/carbon/human/H, visualsOnly) - ..() - - // This outfit is used by the assets SS, which is ran before the atoms SS - if (SSatoms.initialized == INITIALIZATION_INSSATOMS) - H.w_uniform?.update_greyscale() - H.update_worn_undersuit() - - /proc/get_configured_colored_assistant_type() return CONFIG_GET(flag/grey_assistants) ? /datum/colored_assistant/grey : /datum/colored_assistant/random diff --git a/code/modules/jobs/job_types/assistant/gimmick_assistants.dm b/code/modules/jobs/job_types/assistant/gimmick_assistants.dm new file mode 100644 index 00000000000..65967a0487e --- /dev/null +++ b/code/modules/jobs/job_types/assistant/gimmick_assistants.dm @@ -0,0 +1,210 @@ +// This file contains the louadouts for the assistant gimmicks station trait! When active, gives assistants random stupid gear + +/// Parent type of gimmick loadouts for assistants for the functional assistant station traits +/datum/outfit/job/assistant/gimmick + name = "Gimmick Assistant" + /// The weight of the outfit to be picked + var/outfit_weight = 0 + + +/datum/outfit/job/assistant/gimmick/give_jumpsuit(mob/living/carbon/human/target) + return //dont do colorized and stuff, it messes with our uniforms + +/datum/outfit/job/assistant/gimmick/bee + name = "Gimmick Assistant - Bee" + suit = /obj/item/clothing/suit/hooded/bee_costume + uniform = /obj/item/clothing/under/color/yellow + + l_pocket = /obj/item/coupon/bee + + outfit_weight = 2 + +/obj/item/coupon/bee + desc = "BEEEES???? AT AN AFFORDAbLE PORICE?!!!" //wordcoders seething + + discounted_pack = /datum/supply_pack/organic/hydroponics/beekeeping_fullkit + discount_pct_off = 0.7 + +/datum/outfit/job/assistant/gimmick/chicken + name = "Gimmick Assistant - Chicken" + suit = /obj/item/clothing/suit/costume/chickensuit + head = /obj/item/clothing/head/costume/chicken + + l_hand = /obj/item/storage/fancy/egg_box/fertile + + outfit_weight = 2 + +/datum/outfit/job/assistant/gimmick/cyborg + name = "Gimmick Assistant - Cardborg" + suit = /obj/item/clothing/suit/costume/cardborg + head = /obj/item/clothing/head/costume/cardborg + uniform = /obj/item/clothing/under/color/black + + r_hand = /obj/item/weldingtool/largetank + l_hand = /obj/item/stack/cable_coil/five + + uniform = /obj/item/clothing/under/color/black + + outfit_weight = 2 + +/datum/outfit/job/assistant/gimmick/cyborg/post_equip(mob/living/carbon/human/equipped, visualsOnly) + . = ..() + var/obj/item/organ/internal/tongue/robot/robotongue = new () + robotongue.Insert(equipped, movement_flags = DELETE_IF_REPLACED) + +/datum/outfit/job/assistant/gimmick/skater + name = "Gimmick Assistant - Skater" + head = /obj/item/clothing/head/helmet/redtaghelm + suit = /obj/item/clothing/suit/redtag + + l_hand = /obj/item/melee/skateboard + + uniform = /obj/item/clothing/under/color/orange + + outfit_weight = 6 + +/datum/outfit/job/assistant/gimmick/rollerskater + name = "Gimmick Assistant - Rollerskater" + head = /obj/item/clothing/head/helmet/bluetaghelm + suit = /obj/item/clothing/suit/bluetag + + shoes = /obj/item/clothing/shoes/wheelys/rollerskates + + uniform = /obj/item/clothing/under/color/darkblue + + outfit_weight = 6 + +/datum/outfit/job/assistant/gimmick/fisher + name = "Gimmick Assistant - Fisher" + suit = /obj/item/clothing/suit/jacket/puffer/vest + uniform = /obj/item/clothing/under/color/blue + + r_hand = /obj/item/storage/toolbox/fishing + + outfit_weight = 3 + +/datum/outfit/job/assistant/gimmick/patient + name = "Gimmick Assistant - Patient" + suit = /obj/item/clothing/suit/apron/surgical + + l_pocket = /obj/item/storage/pill_bottle/multiver + r_pocket = /obj/item/storage/pill_bottle/mutadone + + uniform = /obj/item/clothing/under/color/white + + outfit_weight = 3 + +/datum/outfit/job/assistant/gimmick/mopper + name = "Gimmick Assistant - Mopper" + suit = /obj/item/clothing/suit/caution + uniform = /obj/item/clothing/under/color/lightpurple + + l_hand = /obj/item/mop + + outfit_weight = 5 + +/datum/outfit/job/assistant/gimmick/mopper/post_equip(mob/living/carbon/human/equipped, visualsOnly) + . = ..() + + for(var/turf/turf in range(1, equipped)) + if(turf.is_blocked_turf()) + continue + var/obj/structure/mop_bucket/bucket = new /obj/structure/mop_bucket(turf) + equipped.start_pulling(bucket) + +/datum/outfit/job/assistant/gimmick/broomer + name = "Gimmick Assistant - Broomer" + suit = /obj/item/clothing/suit/caution + uniform = /obj/item/clothing/under/color/lightpurple + + l_hand = /obj/item/pushbroom + r_hand = /obj/item/storage/bag/trash + + outfit_weight = 5 + +/datum/outfit/job/assistant/gimmick/hall_monitor + name = "Gimmick Assistant - Hall Monitor" + head = /obj/item/clothing/head/collectable/police + mask = /obj/item/clothing/mask/whistle + uniform = /obj/item/clothing/under/color/red + + //neck = /obj/item/camera SKYRAT EDIT REMOVAL + + outfit_weight = 2 + +/datum/outfit/job/assistant/gimmick/monkey + name = "Gimmick Assistant - Monkey" + suit = /obj/item/clothing/suit/costume/monkeysuit + mask = /obj/item/clothing/mask/gas/monkeymask + l_pocket = /obj/item/food/monkeycube + r_pocket = /obj/item/food/monkeycube + + outfit_weight = 1 + +/datum/outfit/job/assistant/gimmick/flesh + name = "Gimmick Assistant - Fleshy" + suit = /obj/item/clothing/suit/hooded/bloated_human + r_hand = /obj/item/toy/foamblade + + outfit_weight = 1 + +/datum/outfit/job/assistant/gimmick/lightbringer + name = "Gimmick Assistant - Lightbringer" + uniform = /obj/item/clothing/under/color/yellow + head = /obj/item/clothing/head/costume/cueball + gloves = /obj/item/clothing/gloves/color/black + + l_pocket = /obj/item/flashlight/lantern + r_pocket = /obj/item/lightreplacer + + outfit_weight = 3 + +/datum/outfit/job/assistant/gimmick/handyman + name = "Gimmick Assistant - Handyman" + + suit = /obj/item/clothing/suit/hazardvest + belt = /obj/item/storage/belt/utility/full + head = /obj/item/clothing/head/utility/hardhat + uniform = /obj/item/clothing/under/color/yellow + + outfit_weight = 6 + +/datum/outfit/job/assistant/gimmick/magician + name = "Gimmick Assistant - Magician" + + head = /obj/item/clothing/head/hats/tophat + uniform = /obj/item/clothing/under/color/lightpurple + + l_hand = /obj/item/gun/magic/wand/nothing + + outfit_weight = 2 + +/datum/outfit/job/assistant/gimmick/firefighter + name = "Gimmick Assistant - Firefighter" + + head = /obj/item/clothing/head/utility/hardhat/red + suit = /obj/item/clothing/suit/hazardvest + uniform = /obj/item/clothing/under/color/red + + l_pocket = /obj/item/stack/medical/ointment + r_pocket = /obj/item/extinguisher/mini + + outfit_weight = 3 + +/datum/outfit/job/assistant/gimmick/gardener + name = "Gimmick Assistant - Gardener" + uniform = /obj/item/clothing/under/color/green + skillchips = list(/obj/item/skillchip/bonsai) + + l_pocket = /obj/item/knife/plastic + l_hand = /obj/item/kirbyplants/random + + outfit_weight = 3 + +/datum/outfit/job/assistant/gimmick/artist + name = "Gimmick Assistant - Artist" + uniform = /obj/item/clothing/under/color/rainbow + + backpack_contents = list(/obj/item/storage/crayons) + + outfit_weight = 3 diff --git a/tgstation.dme b/tgstation.dme index 276c6678e7f..65b53615a7e 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -4226,7 +4226,6 @@ #include "code\modules\jobs\departments\departments.dm" #include "code\modules\jobs\job_types\_job.dm" #include "code\modules\jobs\job_types\ai.dm" -#include "code\modules\jobs\job_types\assistant.dm" #include "code\modules\jobs\job_types\atmospheric_technician.dm" #include "code\modules\jobs\job_types\bartender.dm" #include "code\modules\jobs\job_types\botanist.dm" @@ -4279,6 +4278,9 @@ #include "code\modules\jobs\job_types\antagonists\space_wizard.dm" #include "code\modules\jobs\job_types\antagonists\wizard_apprentice.dm" #include "code\modules\jobs\job_types\antagonists\xenomorph.dm" +#include "code\modules\jobs\job_types\assistant\assistant.dm" +#include "code\modules\jobs\job_types\assistant\colorful_assistants.dm" +#include "code\modules\jobs\job_types\assistant\gimmick_assistants.dm" #include "code\modules\jobs\job_types\chaplain\chaplain.dm" #include "code\modules\jobs\job_types\chaplain\chaplain_costumes.dm" #include "code\modules\jobs\job_types\chaplain\chaplain_divine_archer.dm"