From d1aa11a534a06be5a0c4a64d71b097be6bf36558 Mon Sep 17 00:00:00 2001 From: Feedod Date: Mon, 25 Sep 2023 14:07:29 +0300 Subject: [PATCH 1/2] timelocks (exept sonsofmars) --- code/__DEFINES/jobs.dm | 11 ++++- .../code/datums/jobs/job/marines.dm | 14 +++++++ .../code/datums/jobs/job/shipside.dm | 42 +++++++++++++++++++ .../code/datums/jobs/job/survivor.dm | 2 + .../code/datums/jobs/job/xenomorph.dm | 3 ++ modular_RUtgmc/includes.dm | 1 + 6 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 modular_RUtgmc/code/datums/jobs/job/survivor.dm diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm index 9d1e1c5aa5548..4981c22e94e96 100644 --- a/code/__DEFINES/jobs.dm +++ b/code/__DEFINES/jobs.dm @@ -127,11 +127,20 @@ GLOBAL_LIST_INIT(jobs_fallen_marine, typecacheof(list(/datum/job/fallen/marine), #define CRYO_CHARLIE "Charlie Squad" #define CRYO_DELTA "Delta Squad" - +//RUTGMC EDIT BEGIN +/* //ORIGINAL #define XP_REQ_UNSEASONED 60 #define XP_REQ_INTERMEDIATE 180 #define XP_REQ_EXPERIENCED 600 #define XP_REQ_EXPERT 900 +*/ +#define XP_REQ_NOVICE 300 +#define XP_REQ_UNSEASONED 300 +#define XP_REQ_INTERMEDIATE 600 +#define XP_REQ_EXPERIENCED 2400 +#define XP_REQ_EXPERT 2400 +#define XP_REQ_SURVIVOR 3600 +//RUTGMC EDIT END // how much a job is going to contribute towards burrowed larva. see config for points required to larva. old balance was 1 larva per 3 humans. #define LARVA_POINTS_SHIPSIDE 1 diff --git a/modular_RUtgmc/code/datums/jobs/job/marines.dm b/modular_RUtgmc/code/datums/jobs/job/marines.dm index 2d9bc2a4e5335..9ff762b6ccf3c 100644 --- a/modular_RUtgmc/code/datums/jobs/job/marines.dm +++ b/modular_RUtgmc/code/datums/jobs/job/marines.dm @@ -2,3 +2,17 @@ if(!(title in GLOB.start_squad_landmarks_list[squad])) return pick(GLOB.start_squad_landmarks_list[squad][SQUAD_MARINE]) return pick(GLOB.start_squad_landmarks_list[squad][title]) + +/datum/job/terragov/squad/corpsman + exp_requirements = XP_REQ_NOVICE + +/datum/job/terragov/squad/engineer + exp_requirements = XP_REQ_UNSEASONED + +/datum/job/terragov/squad/smartgunner + exp_requirements = XP_REQ_UNSEASONED + +/datum/job/terragov/squad/leader + exp_requirements = XP_REQ_INTERMEDIATE + + diff --git a/modular_RUtgmc/code/datums/jobs/job/shipside.dm b/modular_RUtgmc/code/datums/jobs/job/shipside.dm index c91c355519fb0..b2f8aa886e68a 100644 --- a/modular_RUtgmc/code/datums/jobs/job/shipside.dm +++ b/modular_RUtgmc/code/datums/jobs/job/shipside.dm @@ -3,3 +3,45 @@ glasses = /obj/item/clothing/glasses/sunglasses/aviator/yellow head = /obj/item/clothing/head/beret/marine/captain back = /obj/item/storage/backpack/marine/satchel/officer_cloak_red + +/datum/job/terragov/engineering/tech + exp_requirements = XP_REQ_UNSEASONED + +/datum/job/terragov/medical/medicalofficer + exp_requirements = XP_REQ_UNSEASONED + +/datum/job/terragov/medical/researcher + exp_requirements = XP_REQ_UNSEASONED + +/datum/job/terragov/command/staffofficer + exp_requirements = XP_REQ_INTERMEDIATE + +/datum/job/terragov/command/pilot + exp_requirements = XP_REQ_INTERMEDIATE + +/datum/job/terragov/engineering/chief + exp_requirements = XP_REQ_INTERMEDIATE + +/datum/job/terragov/requisitions/officer + exp_requirements = XP_REQ_INTERMEDIATE + +/datum/job/terragov/medical/professor + exp_requirements = XP_REQ_INTERMEDIATE + +/datum/job/terragov/civilian/liaison + exp_requirements = XP_REQ_INTERMEDIATE + +/datum/job/terragov/silicon/ai + exp_requirements = XP_REQ_INTERMEDIATE + +/datum/job/terragov/command/captain + exp_requirements = XP_REQ_EXPERT + +/datum/job/terragov/command/fieldcommander + exp_requirements = XP_REQ_EXPERT + +/datum/job/terragov/command/mech_pilot + exp_requirements = XP_REQ_EXPERT + +/datum/job/terragov/silicon/synthetic + exp_requirements = XP_REQ_EXPERT diff --git a/modular_RUtgmc/code/datums/jobs/job/survivor.dm b/modular_RUtgmc/code/datums/jobs/job/survivor.dm new file mode 100644 index 0000000000000..a3f77e70f96f7 --- /dev/null +++ b/modular_RUtgmc/code/datums/jobs/job/survivor.dm @@ -0,0 +1,2 @@ +/datum/job/survivor + exp_requirements = XP_REQ_SURVIVOR diff --git a/modular_RUtgmc/code/datums/jobs/job/xenomorph.dm b/modular_RUtgmc/code/datums/jobs/job/xenomorph.dm index 86bb00c9717b2..c015a54e311ed 100644 --- a/modular_RUtgmc/code/datums/jobs/job/xenomorph.dm +++ b/modular_RUtgmc/code/datums/jobs/job/xenomorph.dm @@ -1,3 +1,6 @@ /datum/job/xenomorph/facehugger title = ROLE_XENO_HUGGER job_flags = JOB_FLAG_NOHEADSET|JOB_FLAG_OVERRIDELATEJOINSPAWN + +/datum/job/xenomorph/queen + exp_requirements = XP_REQ_INTERMEDIATE diff --git a/modular_RUtgmc/includes.dm b/modular_RUtgmc/includes.dm index f398db0442c32..888dab0a97ea7 100644 --- a/modular_RUtgmc/includes.dm +++ b/modular_RUtgmc/includes.dm @@ -15,6 +15,7 @@ #include "code\datums\jobs\job\marines.dm" #include "code\datums\jobs\job\xenomorph.dm" #include "code\datums\jobs\job\shipside.dm" +#include "code\datums\jobs\job\survivor.dm" #include "code\datums\status_effects\xeno_buffs.dm" #include "code\datums\skills.dm" #include "code\game\atoms.dm" From 8097990b40e1e22c41102f08f017daa984b01439 Mon Sep 17 00:00:00 2001 From: Feedod Date: Tue, 26 Sep 2023 15:07:35 +0300 Subject: [PATCH 2/2] global fixes --- code/__DEFINES/jobs.dm | 24 +++++++++-------- code/__DEFINES/~RUtgmc_defines/jobs.dm | 4 +++ code/datums/jobs/job/job_exp.dm | 27 +++++++++++++++++-- .../mob/living/carbon/xenomorph/evolution.dm | 6 ++++- .../configuration/entries/general.dm | 3 +++ .../code/datums/jobs/job/marines.dm | 4 +++ .../code/datums/jobs/job/shipside.dm | 14 ++++++++++ modular_RUtgmc/includes.dm | 1 + 8 files changed, 69 insertions(+), 14 deletions(-) create mode 100644 modular_RUtgmc/code/controllers/configuration/entries/general.dm diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm index 4981c22e94e96..765500a15ec77 100644 --- a/code/__DEFINES/jobs.dm +++ b/code/__DEFINES/jobs.dm @@ -90,30 +90,33 @@ #define ROLE_ERT "Emergency Response Team" #define ROLE_VALHALLA "Valhalla" -GLOBAL_LIST_EMPTY(jobs_command) -GLOBAL_LIST_INIT(jobs_officers, list(CAPTAIN, FIELD_COMMANDER, STAFF_OFFICER, PILOT_OFFICER, MECH_PILOT, CORPORATE_LIAISON, SYNTHETIC, SILICON_AI)) +//RUTGMC EDIT BEGIN +GLOBAL_LIST_INIT(jobs_command, list(CAPTAIN, FIELD_COMMANDER, STAFF_OFFICER, SQUAD_LEADER)) +GLOBAL_LIST_INIT(jobs_officers, list(CAPTAIN, FIELD_COMMANDER, STAFF_OFFICER, PILOT_OFFICER, MECH_PILOT, CORPORATE_LIAISON, SYNTHETIC, SILICON_AI, SQUAD_LEADER, CHIEF_MEDICAL_OFFICER, CHIEF_SHIP_ENGINEER, REQUISITIONS_OFFICER)) GLOBAL_LIST_INIT(jobs_support, list(PILOT_OFFICER, MECH_PILOT, REQUISITIONS_OFFICER, SYNTHETIC, SILICON_AI)) -GLOBAL_LIST_INIT(jobs_engineering, list(CHIEF_SHIP_ENGINEER, SHIP_TECH)) +GLOBAL_LIST_INIT(jobs_engineering, list(CHIEF_SHIP_ENGINEER, SHIP_TECH, SQUAD_ENGINEER)) GLOBAL_LIST_INIT(jobs_requisitions, list(REQUISITIONS_OFFICER)) -GLOBAL_LIST_INIT(jobs_medical, list(CHIEF_MEDICAL_OFFICER, MEDICAL_DOCTOR, MEDICAL_RESEARCHER)) +GLOBAL_LIST_INIT(jobs_medical, list(CHIEF_MEDICAL_OFFICER, MEDICAL_DOCTOR, MEDICAL_RESEARCHER, SQUAD_CORPSMAN)) GLOBAL_LIST_INIT(jobs_marines, list(SQUAD_LEADER, SQUAD_SMARTGUNNER, SQUAD_CORPSMAN, SQUAD_ENGINEER, SQUAD_MARINE)) -GLOBAL_LIST_INIT(jobs_som, list(SOM_SQUAD_MARINE, SOM_SQUAD_VETERAN, SOM_SQUAD_ENGINEER, SOM_SQUAD_CORPSMAN, SOM_SQUAD_LEADER)) +GLOBAL_LIST_INIT(jobs_robots, list(SYNTHETIC, SILICON_AI)) +GLOBAL_LIST_INIT(jobs_civilian, list(CORPORATE_LIAISON)) GLOBAL_LIST_INIT(jobs_regular_all, list(CAPTAIN, FIELD_COMMANDER, STAFF_OFFICER, PILOT_OFFICER, MECH_PILOT, REQUISITIONS_OFFICER, CHIEF_SHIP_ENGINEER, \ CHIEF_MEDICAL_OFFICER, SYNTHETIC, SILICON_AI, CORPORATE_LIAISON, SHIP_TECH, \ -MEDICAL_DOCTOR, MEDICAL_RESEARCHER, SQUAD_LEADER, SQUAD_SMARTGUNNER, SQUAD_CORPSMAN, SQUAD_ENGINEER, SQUAD_MARINE, \ -SOM_SQUAD_MARINE, SOM_SQUAD_VETERAN, SOM_SQUAD_ENGINEER, SOM_SQUAD_CORPSMAN, SOM_SQUAD_LEADER)) -//GLOBAL_LIST_INIT(jobs_xenos, list(ROLE_XENOMORPH, ROLE_XENO_QUEEN)) //RUTGMC EDIT: Moved to modular_RUtgmc\code\__DEFINES\jobs.dm -GLOBAL_LIST_INIT(jobs_fallen_marine, typecacheof(list(/datum/job/fallen/marine), TRUE)) +MEDICAL_DOCTOR, MEDICAL_RESEARCHER, SQUAD_LEADER, SQUAD_SMARTGUNNER, SQUAD_CORPSMAN, SQUAD_ENGINEER, SQUAD_MARINE, SOM_SQUAD_MARINE, SOM_SQUAD_VETERAN, SOM_SQUAD_ENGINEER, SOM_SQUAD_CORPSMAN, SOM_SQUAD_LEADER)) +GLOBAL_LIST_INIT(jobs_som, list(SOM_SQUAD_MARINE, SOM_SQUAD_VETERAN, SOM_SQUAD_ENGINEER, SOM_SQUAD_CORPSMAN, SOM_SQUAD_LEADER)) //Playtime tracking system, see jobs_exp.dm #define EXP_TYPE_LIVING "Living" -#define EXP_TYPE_REGULAR_ALL "Any" +#define EXP_TYPE_ALL "Any" +#define EXP_TYPE_REGULAR_ALL "Any TMGC" #define EXP_TYPE_COMMAND "Command" +#define EXP_TYPE_OFFICERS "Officers" #define EXP_TYPE_ENGINEERING "Engineering" #define EXP_TYPE_MEDICAL "Medical" #define EXP_TYPE_MARINES "Marines" #define EXP_TYPE_REQUISITIONS "Requisitions" #define EXP_TYPE_SILICON "Silicon" +#define EXP_TYPE_XENO "Xeno" #define EXP_TYPE_SPECIAL "Special" #define EXP_TYPE_GHOST "Ghost" #define EXP_TYPE_ADMIN "Admin" @@ -127,7 +130,6 @@ GLOBAL_LIST_INIT(jobs_fallen_marine, typecacheof(list(/datum/job/fallen/marine), #define CRYO_CHARLIE "Charlie Squad" #define CRYO_DELTA "Delta Squad" -//RUTGMC EDIT BEGIN /* //ORIGINAL #define XP_REQ_UNSEASONED 60 #define XP_REQ_INTERMEDIATE 180 diff --git a/code/__DEFINES/~RUtgmc_defines/jobs.dm b/code/__DEFINES/~RUtgmc_defines/jobs.dm index c4d4abc77ce91..b0446eae4f9fd 100644 --- a/code/__DEFINES/~RUtgmc_defines/jobs.dm +++ b/code/__DEFINES/~RUtgmc_defines/jobs.dm @@ -1,3 +1,7 @@ #define ROLE_XENO_HUGGER "Xeno Facehugger" GLOBAL_LIST_INIT(jobs_xenos, list(ROLE_XENOMORPH, ROLE_XENO_QUEEN, ROLE_XENO_HUGGER)) +GLOBAL_LIST_INIT(jobs_xeno, list(ROLE_XENOMORPH, ROLE_XENO_QUEEN, ROLE_XENO_HUGGER)) +GLOBAL_LIST_INIT(jobs_all, list(CAPTAIN, FIELD_COMMANDER, STAFF_OFFICER, PILOT_OFFICER, REQUISITIONS_OFFICER, CHIEF_SHIP_ENGINEER, CHIEF_MEDICAL_OFFICER, SYNTHETIC, SILICON_AI, CORPORATE_LIAISON, SHIP_TECH, +MEDICAL_DOCTOR, MEDICAL_RESEARCHER, SQUAD_LEADER, SQUAD_SMARTGUNNER, SQUAD_CORPSMAN, SQUAD_ENGINEER, SQUAD_MARINE, ROLE_XENOMORPH, ROLE_XENO_QUEEN, ROLE_XENO_HUGGER)) +GLOBAL_LIST_INIT(jobs_fallen_marine, typecacheof(list(/datum/job/fallen/marine))) diff --git a/code/datums/jobs/job/job_exp.dm b/code/datums/jobs/job/job_exp.dm index a13d367da262f..844bfbbd03540 100644 --- a/code/datums/jobs/job/job_exp.dm +++ b/code/datums/jobs/job/job_exp.dm @@ -7,22 +7,35 @@ GLOBAL_PROTECT(exp_to_update) return FALSE if(!CONFIG_GET(flag/use_exp_tracking)) return FALSE + //RUTGMC EDIT BEGIN + if(!CONFIG_GET(flag/use_exp_restrictions)) //ADDITION + return FALSE //ADDITION + //RUTGMC EDIT END if(!SSdbcore.Connect()) return FALSE if(!exp_requirements || !exp_type) return FALSE + //RUTGMC EDIT BEGIN + /* if(!job_is_xp_locked(src)) return FALSE + */ if(CONFIG_GET(flag/use_exp_restrictions_admin_bypass) && check_other_rights(C, R_ADMIN, FALSE)) return FALSE + /* //ORIGINAL var/my_exp = C.calc_exp_type(get_exp_req_type()) var/job_requirement = get_exp_req_amount() + */ + + // Calc client exp and how much do we need + var/my_exp = C.calc_exp_type(exp_type) + var/job_requirement = exp_requirements if(my_exp >= job_requirement) return FALSE else return (job_requirement - my_exp) - +/* /datum/job/proc/get_exp_req_amount() if(job_flags & JOB_FLAG_ISCOMMAND) var/uerhh = CONFIG_GET(number/use_exp_restrictions_command_hours) @@ -44,7 +57,8 @@ GLOBAL_PROTECT(exp_to_update) if(!CONFIG_GET(flag/use_exp_restrictions_other) && !(job.job_flags & JOB_FLAG_ISCOMMAND)) return FALSE return TRUE - +*/ +//RUTGMC EDIT END /client/proc/calc_exp_type(exptype) var/list/explist = prefs.exp.Copy() @@ -110,13 +124,22 @@ GLOBAL_PROTECT(exp_to_update) for(var/j in SSjob.joinable_occupations) var/datum/job/job = j if(job.exp_requirements && job.exp_type) + //RUTGMC EDIT BEGIN + /* if(!job_is_xp_locked(job)) continue else if(!job.required_playtime_remaining(mob.client)) + */ + if(!job.required_playtime_remaining(mob.client)) jobs_unlocked += job.title else + /* ORIGINAL var/xp_req = job.get_exp_req_amount() jobs_locked += "[job.title] [get_exp_format(text2num(calc_exp_type(job.get_exp_req_type())))] / [get_exp_format(xp_req)] as [job.get_exp_req_type()])" + */ + var/xp_req = job.exp_requirements + jobs_locked += "[job.title] [get_exp_format(text2num(calc_exp_type(job.exp_type)))] / [get_exp_format(xp_req)] as [job.exp_type])" + //RUTGMC EDIT END if(length(jobs_unlocked)) return_text += "

Jobs Unlocked: