Skip to content

Commit

Permalink
Merge pull request #441 from KoboldCommando/Spooktober-Jobs
Browse files Browse the repository at this point in the history
Spooktober jobs
  • Loading branch information
dwasint authored Oct 14, 2023
2 parents 7962da8 + 5ef8737 commit cb245ec
Show file tree
Hide file tree
Showing 34 changed files with 495 additions and 1 deletion.
12 changes: 12 additions & 0 deletions code/__DEFINES/jobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,14 @@
#define JOB_LAWYER "Lawyer"
#define JOB_CHAPLAIN "Chaplain"
#define JOB_PSYCHOLOGIST "Psychologist"
//Spooktober
#define JOB_SPOOKTOBER_GHOST "Ghost"
#define JOB_SPOOKTOBER_GODZILLA "Discount Godzilla"
#define JOB_SPOOKTOBER_WIZARD "Diet Wizard"
#define JOB_SPOOKTOBER_YELLOWCLOWN "Yellow Clown"
#define JOB_SPOOKTOBER_SKELETON "Skeleton"
#define JOB_SPOOKTOBER_CANDYSALESMAN "Candy Salesman"
#define JOB_SPOOKTOBER_GORILLA "Gorilla"
//ERTs
#define JOB_ERT_DEATHSQUAD "Death Commando"
#define JOB_ERT_COMMANDER "Emergency Response Team Commander"
Expand Down Expand Up @@ -164,6 +172,8 @@
#define DEPARTMENT_ASSISTANT "Assistant"
#define DEPARTMENT_BITFLAG_CAPTAIN (1<<9)
#define DEPARTMENT_CAPTAIN "Captain"
#define DEPARTMENT_BITFLAG_SPOOKTOBER (1<<10)
#define DEPARTMENT_SPOOKTOBER "Spooktober"

/* Job datum job_flags */
/// Whether the mob is announced on arrival.
Expand All @@ -184,6 +194,8 @@
#define JOB_ASSIGN_QUIRKS (1<<7)
/// Whether this job can be an intern.
#define JOB_CAN_BE_INTERN (1<<8)
/// Whether this job is enabled/disabled by the spooktober config
#define JOB_SPOOKTOBER (1<<9)

#define FACTION_NONE "None"
#define FACTION_STATION "Station"
Expand Down
2 changes: 2 additions & 0 deletions code/controllers/configuration/entries/game_options.dm
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,8 @@
/datum/config_entry/string/overflow_job
default = JOB_ASSISTANT

/datum/config_entry/flag/spooktober_enabled

/datum/config_entry/flag/grey_assistants

/datum/config_entry/number/lavaland_budget
Expand Down
2 changes: 2 additions & 0 deletions code/controllers/subsystem/job.dm
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,8 @@ SUBSYSTEM_DEF(job)
if(!job.map_check()) //Even though we initialize before mapping, this is fine because the config is loaded at new
log_job_debug("Removed [job.title] due to map config")
continue
if(!CONFIG_GET(flag/spooktober_enabled) && job.job_flags & JOB_SPOOKTOBER) //if spooktober's not enabled, don't load spooktober jobs
continue
new_all_occupations += job
name_occupations[job.title] = job
type_occupations[job_type] = job
Expand Down
1 change: 1 addition & 0 deletions code/modules/clothing/under/costume.dm
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,7 @@
female_sprite_flags = NO_FEMALE_UNIFORM
can_adjust = FALSE
resistance_flags = NONE
alternative_screams = list('monkestation/sound/voice/screams/skeleton/scream_skeleton.ogg')

/obj/item/clothing/under/costume/mech_suit
name = "mech pilot's suit"
Expand Down
7 changes: 7 additions & 0 deletions code/modules/jobs/departments/departments.dm
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,13 @@
label_class = "silicon"
ui_color = "#5dbda0"

/datum/job_department/spooktober
department_name = DEPARTMENT_SPOOKTOBER
department_bitflags = DEPARTMENT_BITFLAG_SPOOKTOBER
display_order = 9
label_class = "spooktober"
ui_color = "#f05e16"

/datum/job_department/silicon/generate_nation_name()
return "United Nations" //For nations ruleset specifically, because all other sources of nation creation cannot choose silicons

Expand Down
7 changes: 7 additions & 0 deletions code/modules/vending/autodrobe.dm
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@
/obj/item/clothing/head/costume/shrine_wig = 1,
/obj/item/clothing/suit/costume/shrine_maiden = 1,
/obj/item/gohei = 1,
/obj/item/clothing/under/costume/skeleton = 1,
),
),
list(
Expand Down Expand Up @@ -107,6 +108,8 @@
/obj/item/clothing/under/suit/white_on_white = 1,
/obj/item/clothing/head/tragic = 2,
/obj/item/clothing/under/costume/tragic = 2,
/obj/item/clothing/mask/gas/clown_hat/yellow = 1,
/obj/item/clothing/shoes/clown_shoes/yellow = 1,
/obj/item/clothing/head/knowingclown = 2,
/obj/item/clothing/under/knowingclown = 2,
),
Expand All @@ -124,6 +127,7 @@
/obj/item/clothing/under/dress/skirt = 1,
/obj/item/clothing/neck/tie = 3,
/obj/item/clothing/head/hats/tophat = 1,
/obj/item/clothing/head/wonka = 1,
/obj/item/clothing/under/costume/kilt = 1,
/obj/item/clothing/glasses/monocle =1,
/obj/item/clothing/head/hats/bowler = 1,
Expand All @@ -134,6 +138,7 @@
/obj/item/clothing/suit/costume/changshan_blue = 1,
/obj/item/clothing/suit/costume/cheongsam_red = 1,
/obj/item/clothing/suit/costume/cheongsam_blue = 1,
/obj/item/clothing/under/wonka = 1,
),
),
list(
Expand All @@ -147,6 +152,7 @@
/obj/item/clothing/suit/hooded/carp_costume = 1,
/obj/item/clothing/suit/hooded/ian_costume = 1,
/obj/item/clothing/suit/hooded/bee_costume = 1,
/obj/item/clothing/suit/hooded/dinojammies = 1,
/obj/item/clothing/mask/animal/small/bat = 1,
/obj/item/clothing/mask/animal/small/bee = 1,
/obj/item/clothing/mask/animal/small/bear = 1,
Expand All @@ -158,6 +164,7 @@
/obj/item/clothing/mask/animal/pig = 1,
/obj/item/clothing/mask/animal/cowmask = 1,
/obj/item/clothing/mask/animal/horsehead = 1,
/obj/item/clothing/head/lizard = 1,
),
),
list(
Expand Down
1 change: 1 addition & 0 deletions code/modules/vending/clothesmate.dm
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@
/obj/item/clothing/under/ethereal_tunic = 3,

/obj/item/clothing/suit/costume/ianshirt = 1,
/obj/item/clothing/suit/hooded/dinojammies = 3,
/obj/item/clothing/head/costume/irs = 20,
/obj/item/clothing/head/costume/tmc = 20,
/obj/item/clothing/head/costume/deckers = 20,
Expand Down
5 changes: 5 additions & 0 deletions code/modules/vending/wardrobes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,11 @@
/obj/item/clothing/head/costume/mailman = 1,
/obj/item/clothing/under/misc/mailman = 1,
)
contraband = list(
/obj/item/clothing/under/wonka = 1,
/obj/item/clothing/head/wonka = 1,
/obj/item/cane = 1
)
refill_canister = /obj/item/vending_refill/wardrobe/cargo_wardrobe
payment_department = ACCOUNT_CAR

Expand Down
3 changes: 3 additions & 0 deletions config/game_options.txt
Original file line number Diff line number Diff line change
Expand Up @@ -425,6 +425,9 @@ OVERFLOW_JOB Assistant
## Overflow slot cap. Set to -1 for unlimited. If limited, it will still open up if every other job is full.
OVERFLOW_CAP -1

## Enables Spooktober jobs.
SPOOKTOBER_ENABLED

## Uncomment to bring back old grey suit assistants instead of the now default rainbow colored assistants.
#GREY_ASSISTANTS

Expand Down
18 changes: 17 additions & 1 deletion monkestation/code/modules/clothing/head/costume.dm
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,26 @@
flags_inv = HIDEHAIR
worn_y_offset = 2

/obj/item/clothing/head/lizard
name = "novelty lizard head"
desc = "A giant sculpted foam lizard head. It doesn't quite look like the lizards from this sector..."
icon = 'monkestation/icons/obj/clothing/hats.dmi'
worn_icon = 'monkestation/icons/mob/clothing/head.dmi'
icon_state = "lizardhead"
flags_inv = HIDEHAIR
worn_y_offset = 1

/obj/item/clothing/head/wonka
name = "wonky hat"
desc = "Come with me, and you'll be, in a world of OSHA violations!"
icon = 'monkestation/icons/obj/clothing/hats.dmi'
worn_icon = 'monkestation/icons/mob/clothing/head.dmi'
icon_state = "wonka"

/obj/item/clothing/head/knowingclown
name = "Small but Knowing Clown hat"
desc = "The Cap of a Small but All Knowing Clown"
icon = 'monkestation/icons/obj/clothing/hats.dmi'
worn_icon = 'monkestation/icons/mob/clothing/head.dmi'
icon_state = "knowingclownhat"
worn_y_offset = 6
worn_y_offset = 6
7 changes: 7 additions & 0 deletions monkestation/code/modules/clothing/masks/gasmask.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/obj/item/clothing/mask/gas/clown_hat/yellow
name = "yellow clown wig and mask"
desc = "A true prankster's facial attire. But yellow! A clown is incomplete without his wig and mask."
icon = 'monkestation/icons/obj/clothing/masks.dmi'
icon_state = "clown_yellow"
worn_icon = 'monkestation/icons/mob/clothing/mask.dmi'
worn_icon_state = "clown_yellow"
7 changes: 7 additions & 0 deletions monkestation/code/modules/clothing/shoes/clown.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/obj/item/clothing/shoes/clown_shoes/yellow
desc = "The prankster's standard-issue clowning shoes. But Yellow! Ctrl-click to toggle waddle dampeners."
name = "yellow clown shoes"
icon = 'monkestation/icons/obj/clothing/shoes.dmi'
icon_state = "clown_yellow"
worn_icon = 'monkestation/icons/mob/clothing/feet.dmi'
worn_icon_state = "clown_yellow"
34 changes: 34 additions & 0 deletions monkestation/code/modules/clothing/suits/costume.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/obj/item/clothing/suit/hooded/dinojammies
name = "dinosaur pajamas"
desc = "The ultimate in reptile-pajama-costume fusion."
icon = 'monkestation/icons/obj/clothing/suits.dmi'
worn_icon = 'monkestation/icons/mob/clothing/suit.dmi'
icon_state = "dinojammies"
worn_icon_state = "dinojammies"
hoodtype = /obj/item/clothing/head/hooded/dinojammies

/obj/item/clothing/head/hooded/dinojammies
desc = "A dinosaur head hood."
icon = 'monkestation/icons/obj/clothing/hats.dmi'
worn_icon = 'monkestation/icons/mob/clothing/head.dmi'
icon_state = "dinojammies_hood"
worn_icon_state = "dinojammies_hood"
flags_inv = HIDEHAIR

/obj/item/clothing/suit/hooded/gorilla
name = "gorilla costume"
desc = "Ooga!"
icon = 'monkestation/icons/obj/clothing/suits.dmi'
worn_icon = 'monkestation/icons/mob/clothing/suit.dmi'
icon_state = "gorilla"
worn_icon_state = "gorilla"
hoodtype = /obj/item/clothing/head/hooded/gorilla
alternative_screams = list('sound/creatures/gorilla.ogg')

/obj/item/clothing/head/hooded/gorilla
desc = "A gorilla costume hood."
icon = 'monkestation/icons/obj/clothing/hats.dmi'
worn_icon = 'monkestation/icons/mob/clothing/head.dmi'
icon_state = "gorilla"
worn_icon_state = "gorilla"
flags_inv = HIDEHAIR|HIDEFACE|HIDEFACIALHAIR|HIDESNOUT
8 changes: 8 additions & 0 deletions monkestation/code/modules/clothing/under/undersuit.dm
Original file line number Diff line number Diff line change
Expand Up @@ -67,3 +67,11 @@
/obj/item/clothing/under/rank/civilian/janitor/maid //heckin subtypes
icon = 'icons/obj/clothing/under/civilian.dmi'
worn_icon = 'icons/mob/clothing/under/civilian.dmi'

/obj/item/clothing/under/wonka
name = "wonky suit"
desc = "Come with me, and you'll be, in a world of OSHA violations!"
icon = 'monkestation/icons/obj/clothing/uniforms.dmi'
icon_state = "wonka"
worn_icon = 'monkestation/icons/mob/clothing/uniform.dmi'
worn_icon_state = "wonka"
46 changes: 46 additions & 0 deletions monkestation/code/modules/jobs/job_types/candysalesman.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/datum/job/candysalesman
title = JOB_SPOOKTOBER_CANDYSALESMAN
description = "Sell candy to the crew. Get high on your own supply. Subject people to unsafe working conditions."
faction = FACTION_STATION
total_positions = 1
spawn_positions = 0
supervisors = JOB_HEAD_OF_PERSONNEL
exp_granted_type = EXP_TYPE_CREW

outfit = /datum/outfit/job/candysalesman
plasmaman_outfit = /datum/outfit/plasmaman

paycheck = PAYCHECK_LOWER
paycheck_department = ACCOUNT_CIV

display_order = JOB_DISPLAY_ORDER_ASSISTANT

departments_list = list(
/datum/job_department/spooktober,
)

family_heirlooms = list(/obj/item/cane)

mail_goodies = list(
/obj/item/storage/spooky
)

rpg_title = "Purveyor of Sweets"
job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS | JOB_CAN_BE_INTERN | JOB_SPOOKTOBER

/datum/outfit/job/candysalesman
name = "Candy Salesman"
jobtype = /datum/job/candysalesman

head = /obj/item/clothing/head/wonka
uniform = /obj/item/clothing/under/wonka
id_trim = /datum/id_trim/job/assistant
belt = /obj/item/modular_computer/pda/assistant

backpack_contents = list(
/obj/item/cane,
/obj/item/storage/pill_bottle/maintenance_pill/full,
/obj/item/storage/spooky,
/obj/item/storage/spooky,
/obj/item/storage/spooky
)
44 changes: 44 additions & 0 deletions monkestation/code/modules/jobs/job_types/dietwizard.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/datum/job/dietwizard
title = JOB_SPOOKTOBER_WIZARD
description = "Amaze the crew! Get murdered because there are actual wizards out there. Have your costume confiscated as contraband."
faction = FACTION_STATION
total_positions = 1
spawn_positions = 0
supervisors = JOB_HEAD_OF_PERSONNEL
exp_granted_type = EXP_TYPE_CREW

outfit = /datum/outfit/job/dietwizard
plasmaman_outfit = /datum/outfit/plasmaman

paycheck = PAYCHECK_LOWER
paycheck_department = ACCOUNT_CIV

display_order = JOB_DISPLAY_ORDER_ASSISTANT

departments_list = list(
/datum/job_department/spooktober,
)

family_heirlooms = list(/obj/item/staff, /obj/item/clothing/head/wizard/fake)

mail_goodies = list(
/obj/item/staff,
/obj/item/storage/box/snappops,
/obj/item/grenade/smokebomb
)

rpg_title = "Hedge Mage"
job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS | JOB_CAN_BE_INTERN | JOB_SPOOKTOBER

/datum/outfit/job/dietwizard
name = "Diet Wizard"
jobtype = /datum/job/dietwizard

head = /obj/item/clothing/head/wizard/fake
suit = /obj/item/clothing/suit/wizrobe/fake
id_trim = /datum/id_trim/job/assistant
belt = /obj/item/modular_computer/pda/assistant
shoes = /obj/item/clothing/shoes/sandal
l_hand = /obj/item/staff

backpack_contents = list(/obj/item/storage/box/snappops, /obj/item/storage/box/snappops, /obj/item/grenade/smokebomb, /obj/item/grenade/smokebomb)
40 changes: 40 additions & 0 deletions monkestation/code/modules/jobs/job_types/ghost.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/datum/job/ghost
title = JOB_SPOOKTOBER_GHOST
description = "Spook the crew. Get your bedsheet stolen and run around the station naked."
faction = FACTION_STATION
total_positions = 1
spawn_positions = 0
supervisors = JOB_CHAPLAIN
exp_granted_type = EXP_TYPE_CREW

outfit = /datum/outfit/job/ghost
plasmaman_outfit = /datum/outfit/plasmaman

paycheck = PAYCHECK_LOWER
paycheck_department = ACCOUNT_CIV

display_order = JOB_DISPLAY_ORDER_ASSISTANT

departments_list = list(
/datum/job_department/spooktober,
)

family_heirlooms = list(/obj/item/clothing/suit/costume/ghost_sheet)

mail_goodies = list(
/obj/item/clothing/suit/costume/ghost_sheet
)

rpg_title = "Spectre"
job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS | JOB_CAN_BE_INTERN | JOB_SPOOKTOBER

/datum/outfit/job/ghost
name = "Ghost"
jobtype = /datum/job/ghost

suit = /obj/item/clothing/suit/costume/ghost_sheet
shoes = null
id_trim = /datum/id_trim/job/assistant
belt = /obj/item/modular_computer/pda/assistant

backpack_contents = list()
Loading

0 comments on commit cb245ec

Please sign in to comment.