From 85d8aeee96f35d42ead709586aa03cd4d07f02da Mon Sep 17 00:00:00 2001
From: Henri215 <77684085+Henri215@users.noreply.github.com>
Date: Sun, 1 Oct 2023 07:49:24 -0300
Subject: [PATCH] Nt recruiter First DLC (emag and other tweaks) (#22427)
* New NT Recruiter update
* Adding emag effect for the arcade + other tweaks
* tickets for reward too
* ops
* Medal prize!
* adding sounds when losing!
* increasing minimum bad max age
* added small interaction cooldown
* adjusting time
* tgui rebuild
* ah shit, here we go again
* tgui rebuild
* lets fix this
* Apply suggestions from code review
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
* tgui rebuild
* tgui rebuild
---------
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
---
.../computer/arcade_games/recruiter.dm | 59 +++++++++++++++---
.../clothing/under/accessories/accessory.dm | 6 +-
sound/misc/for_the_syndicate.ogg | Bin 0 -> 10764 bytes
sound/misc/what_this_button_do.ogg | Bin 0 -> 10825 bytes
tgui/packages/tgui/interfaces/NTRecruiter.js | 5 +-
tgui/packages/tgui/public/tgui.bundle.js | 2 +-
6 files changed, 59 insertions(+), 13 deletions(-)
create mode 100644 sound/misc/for_the_syndicate.ogg
create mode 100644 sound/misc/what_this_button_do.ogg
diff --git a/code/game/machinery/computer/arcade_games/recruiter.dm b/code/game/machinery/computer/arcade_games/recruiter.dm
index 631a7c5a298..6a83d3817ae 100644
--- a/code/game/machinery/computer/arcade_games/recruiter.dm
+++ b/code/game/machinery/computer/arcade_games/recruiter.dm
@@ -17,6 +17,7 @@
desc = "Weed out the good from bad employees and build the perfect manifest to work aboard the station."
icon_state = "arcade_recruiter"
icon_screen = "nanotrasen"
+ light_color = LIGHT_COLOR_WHITE
circuit = /obj/item/circuitboard/arcade/recruiter
var/candidate_name
var/candidate_gender
@@ -27,6 +28,8 @@
var/employment_records
/// Current "turn" of the game
var/curriculums
+ /// Total number of "turns" to win
+ var/total_curriculums = 7
/// Which unique candidate is he?
var/unique_candidate
@@ -49,7 +52,7 @@
var/list/records = list("Ex-convict, reformed after lengthy rehabilitation, doesn't normally ask for good salaries", "Charged with three counts of aggravated silliness",
"Awarded the medal of service for outstanding work in botany", "Hacked into the Head of Personnel's office to save Ian",
"Has proven knowledge of SOP, but no working experience", "Has worked at Mr Changs",
- "Spent 8 years as a freelance journalist", "Known as a hero for keeping stations clean during attacks",
+ "Spent 2 years as a freelance journalist", "Known as a hero for keeping stations clean during attacks",
"Worked as a bureaucrat for SolGov", "Worked in Donk Corporation's R&D department",
"Did work for USSP as an translator", "Took care of Toxins, Xenobiology, Robotics and R&D as a single worker in the Research department",
"Served for 4 years as a soldier of the Prospero Order", "Traveled through various systems as an businessman",
@@ -57,7 +60,7 @@
"Spent years of their life being a janitor at Clown College", "Was given numerous good reviews for delivering cargo requests on time",
"Helped old people cross the holostreet", "Has proven ability to read", "Served 4 years in NT navy",
"Properly set station shields before a massive meteor shower", "Previously assisted people as an assistant",
- "Created golems for the purpose of making them work for the company", "Worked at the space IRS for 5 years",
+ "Created golems for the purpose of making them work for the company", "Worked at the space IRS for 3 years",
"Awarded a medal for hosting a fashion contest against the syndicate",
"Is certified for EVA repairs", "Known for storing important objects in curious places",
"Improved efficiency of Research Outpost by 5.7% through dismissal of underperforming workers", "Skilled in Enterprise Resource Planning",
@@ -81,7 +84,7 @@
var/list/hirable_species = list(/datum/species/human, /datum/species/unathi, /datum/species/skrell,
/datum/species/tajaran, /datum/species/kidan, /datum/species/drask,
/datum/species/diona, /datum/species/machine, /datum/species/slime,
- /datum/species/moth)
+ /datum/species/moth, /datum/species/vox)
/// Species that are NOT hirable in the eyes of NT
var/list/incorrect_species = list(/datum/species/abductor, /datum/species/monkey, /datum/species/nucleation,
/datum/species/shadow, /datum/species/skeleton, /datum/species/golem)
@@ -92,6 +95,8 @@
var/reason
/// In which screen are we?
var/game_status = RECRUITER_STATUS_START
+ /// Used to stop players from spamming the buttons
+ COOLDOWN_DECLARE(spam_cooldown)
/obj/machinery/computer/arcade/recruiter/proc/generate_candidate()
if(prob(PROB_CANDIDATE_ERRORS)) // Species
@@ -106,7 +111,7 @@
good_candidate = FALSE
if(prob(PROB_CANDIDATE_ERRORS)) // Age
- age = pick(initial(cand_species.max_age) + rand(10, 100), (initial(cand_species.min_age) - rand(1, 7))) // Its either too young or too old for the job
+ age = pick(initial(cand_species.max_age) + rand(20, 100), (initial(cand_species.min_age) - rand(1, 7))) // Its either too young or too old for the job
good_candidate = FALSE
else
age = rand(initial(cand_species.min_age), initial(cand_species.max_age))
@@ -178,7 +183,11 @@
/obj/machinery/computer/arcade/recruiter/proc/win()
game_status = RECRUITER_STATUS_START
atom_say("Congratulations recruiter, the company is going to have a productive shift thanks to you.")
- playsound(loc, 'sound/arcade/recruiter_win.ogg', 30)
+ playsound(loc, 'sound/arcade/recruiter_win.ogg', 20)
+ if(emagged)
+ new /obj/item/stamp/chameleon(get_turf(src))
+ new /obj/item/clothing/accessory/medal/recruiter(get_turf(src))
+ emagged = FALSE
prizevend(50)
/obj/machinery/computer/arcade/recruiter/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
@@ -200,6 +209,7 @@
"cand_records" = employment_records,
"cand_curriculum" = curriculums,
+ "total_curriculums" = total_curriculums,
"reason" = reason
)
@@ -213,15 +223,27 @@
add_fingerprint(user)
. = TRUE
+ if(!COOLDOWN_FINISHED(src, spam_cooldown))
+ return
+
+ COOLDOWN_START(src, spam_cooldown, 0.4 SECONDS)
+
switch(action)
if("hire")
playsound(user, 'sound/items/handling/standard_stamp.ogg', 50, TRUE)
if(!good_candidate)
game_status = RECRUITER_STATUS_GAMEOVER
- playsound(loc, 'sound/misc/compiler-failure.ogg', 3, TRUE)
+ if(emagged)
+ reason = "YOU ENDED UP HIRING A SYNDICATE AGENT IN DISGUISE!"
+ playsound(src, 'sound/misc/for_the_syndicate.ogg', 50)
+ atom_say("FOR THE SYNDICATE!")
+ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(explosion), src, 1, 0, 2, null, 1, 0, 0, 0, 1, null, FALSE), 1.5 SECONDS)
+ emagged = FALSE
+ return
reason = "You ended up hiring incompetent candidates and now the company is wasting lots of resources to fix what you caused..."
+ playsound(loc, 'sound/misc/compiler-failure.ogg', 3, TRUE)
return
- if(curriculums >= 5)
+ if(curriculums >= total_curriculums)
win()
return
curriculums++
@@ -235,10 +257,17 @@
playsound(user, 'sound/items/handling/standard_stamp.ogg', 50, TRUE)
if(good_candidate)
game_status = RECRUITER_STATUS_GAMEOVER
- playsound(loc, 'sound/misc/compiler-failure.ogg', 3, TRUE)
+ if(emagged)
+ reason = "MANIFEST HIRED STAFF IS NOW RESPONSIBLE FOR IMPORTANT TASKS!"
+ playsound(src, 'sound/misc/what_this_button_do.ogg', 50)
+ atom_say("What does this button do?")
+ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(explosion), src, 1, 0, 2, null, 1, 0, 0, 0, 1, null, FALSE), 1.5 SECONDS)
+ emagged = FALSE
+ return
reason = "You ended up dismissing a competent candidate and now the company is suffering with the lack of crew..."
+ playsound(loc, 'sound/misc/compiler-failure.ogg', 3, TRUE)
return
- if(curriculums >= 5)
+ if(curriculums >= total_curriculums)
win()
return
curriculums++
@@ -269,6 +298,18 @@
/obj/machinery/computer/arcade/recruiter/attack_hand(mob/user)
ui_interact(user)
+/obj/machinery/computer/arcade/recruiter/emag_act(mob/user)
+ if(emagged)
+ return
+ if(user)
+ to_chat(user, "You override the menu and revert the game to its previous version.")
+ add_hiddenprint(user)
+ game_status = RECRUITER_STATUS_START
+ name = "NT Recruiter Simulator HARDCORE EDITION"
+ desc = "The advanced version of Nanotrasen's recruiting simulator, used to train the highest echelon of Nanotrasen recruiters. Has double the application count, and supposedly includes some routines to weed out the less skilled."
+ total_curriculums = 14
+ emagged = TRUE
+
#undef PROB_CANDIDATE_ERRORS
#undef PROB_UNIQUE_CANDIDATE
#undef UNIQUE_STEVE
diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm
index 25821fdf3a9..579cfa71642 100644
--- a/code/modules/clothing/under/accessories/accessory.dm
+++ b/code/modules/clothing/under/accessories/accessory.dm
@@ -235,7 +235,7 @@
desc = "An award issued by Captains to heads of department who do an excellent job managing their department. Made of pure silver."
-// BRONZE (awarded by heads of department, except for the bronze heart)
+// BRONZE (awarded by heads of department, except for the bronze heart and recruiter medals)
@@ -267,6 +267,10 @@
name = "stable supply medal"
desc = "An award issued by the Quartermaster to supply staff dedicated to being effective."
+/obj/item/clothing/accessory/medal/recruiter // Prize for the NT Recruiter emagged arcade
+ name = "nanotrasen recruiter medal"
+ desc = "A prize for those who completed the company's most difficult training, use it to earn the respect of everyone in human resources."
+
/obj/item/clothing/accessory/medal/heart
name = "bronze heart medal"
desc = "A rarely-awarded medal for those who sacrifice themselves in the line of duty to save their fellow crew."
diff --git a/sound/misc/for_the_syndicate.ogg b/sound/misc/for_the_syndicate.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..95e5421c00a1495d4371e6092d1c1b7d6f4b89eb
GIT binary patch
literal 10764
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
MA04i(%TxgW2W8Tm8~^|S
literal 0
HcmV?d00001
diff --git a/sound/misc/what_this_button_do.ogg b/sound/misc/what_this_button_do.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..116d5756f09ed16a38399aa1086b66360d4048ec
GIT binary patch
literal 10825
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
DD89{4
literal 0
HcmV?d00001
diff --git a/tgui/packages/tgui/interfaces/NTRecruiter.js b/tgui/packages/tgui/interfaces/NTRecruiter.js
index bfd20fb6404..0e6ed660290 100644
--- a/tgui/packages/tgui/interfaces/NTRecruiter.js
+++ b/tgui/packages/tgui/interfaces/NTRecruiter.js
@@ -15,6 +15,7 @@ export const NTRecruiter = (props, context) => {
cand_job,
cand_records,
cand_curriculum,
+ total_curriculums,
reason,
} = data;
if (gamestatus === 0) {
@@ -79,7 +80,7 @@ export const NTRecruiter = (props, context) => {
>
- To win this game you must hire/dismiss FIVE candidates,
+ To win this game you must hire/dismiss {total_curriculums} candidates,
one wrongly made choice leads to a game over.
@@ -205,7 +206,7 @@ export const NTRecruiter = (props, context) => {
textAlign="center"
pt="10px"
>
- FINAL SCORE: {cand_curriculum - 1}/5
+ FINAL SCORE: {cand_curriculum - 1}/{total_curriculums}
|