Removes karma jobs framework (#17646)

This commit is contained in:
AffectedArc07
2022-05-03 12:26:56 +01:00
committed by GitHub
parent 240c738e2b
commit 747097d7c3
19 changed files with 36 additions and 204 deletions
-3
View File
@@ -58,9 +58,6 @@ CREATE TABLE `characters` (
`job_engsec_high` mediumint(8) NOT NULL,
`job_engsec_med` mediumint(8) NOT NULL,
`job_engsec_low` mediumint(8) NOT NULL,
`job_karma_high` mediumint(8) NOT NULL,
`job_karma_med` mediumint(8) NOT NULL,
`job_karma_low` mediumint(8) NOT NULL,
`flavor_text` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
`med_record` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
`sec_record` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
+7
View File
@@ -0,0 +1,7 @@
# Updates DB from 35 to 36 -AffectedArc07
# Removes karma job prefs
ALTER TABLE `characters`
DROP COLUMN `job_karma_high`,
DROP COLUMN `job_karma_med`,
DROP COLUMN `job_karma_low`;
-10
View File
@@ -56,13 +56,3 @@
#define JOB_ASSISTANT (1<<13)
#define JOB_EXPLORER (1<<14)
#define JOB_BARBER (1<<15)
#define JOBCAT_KARMA (1<<3)
// #define JOB_NANO (1<<0) // AA07 2022-04-10 - Moved to ENGSEC (Non karma): Define kept for history sake
// #define JOB_BLUESHIELD (1<<1) // AA07 2022-02-23 - Moved to ENGSEC (Non karma): Define kept for history sake
// #define JOB_BARBER (1<<3) // AA07 2022-04-07 - Moved to SUPPORT (Non karma): Define kept for history sake
// #define JOB_MECHANIC (1<<4) // AA07 2021-10-02 - Removed: Kept for history sake
// #define JOB_BRIGDOC (1<<5) // AA07 2021-12-01 - Removed: Kept for history sake
// #define JOB_JUDGE (1<<6) // AA07 2021-10-09 - Moved to ENGSEC (Non karma): Define kept for history sake
// #define JOB_PILOT (1<<7) // AA07 2021-10-02 - Removed: Kept for history sake
+1 -1
View File
@@ -367,7 +367,7 @@
#define INVESTIGATE_BOMB "bombs"
// The SQL version required by this version of the code
#define SQL_VERSION 35
#define SQL_VERSION 36
// Vending machine stuff
#define CAT_NORMAL 1
-1
View File
@@ -93,7 +93,6 @@
#define EXP_TYPE_SECURITY "Security"
#define EXP_TYPE_SILICON "Silicon"
#define EXP_TYPE_SERVICE "Service"
#define EXP_TYPE_WHITELIST "Whitelist"
#define EXP_DEPT_TYPE_LIST list(EXP_TYPE_SUPPLY, EXP_TYPE_SERVICE, EXP_TYPE_MEDICAL, EXP_TYPE_ENGINEERING, EXP_TYPE_SCIENCE, EXP_TYPE_SECURITY, EXP_TYPE_COMMAND, EXP_TYPE_SILICON, EXP_TYPE_SPECIAL, EXP_TYPE_GHOST)
+2 -11
View File
@@ -77,8 +77,6 @@ SUBSYSTEM_DEF(jobs)
return FALSE
if(job.barred_by_disability(player.client))
return FALSE
if(!is_job_whitelisted(player, rank))
return FALSE
var/position_limit = job.total_positions
if(!latejoin)
@@ -153,9 +151,6 @@ SUBSYSTEM_DEF(jobs)
if(job.title in GLOB.command_positions) //If you want a command position, select it!
continue
if(job.title in GLOB.whitelisted_positions) // No random whitelisted job, sorry!
continue
if(job.admin_only) // No admin positions either.
continue
@@ -356,10 +351,6 @@ SUBSYSTEM_DEF(jobs)
Debug("DO incompatible with antagonist role, Player: [player], Job:[job.title]")
continue
if(!is_job_whitelisted(player, job.title))
Debug("DO player not whitelisted, Player: [player], Job:[job.title]")
continue
// If the player wants that job on this level, then try give it to him.
if(player.client.prefs.active_character.GetJobDepartment(job, level) & job.flag)
@@ -620,8 +611,8 @@ SUBSYSTEM_DEF(jobs)
jobs_to_formats[job.title] = "green" // the job they already have is pre-selected
else if(tgtcard.assignment == "Demoted" || tgtcard.assignment == "Terminated")
jobs_to_formats[job.title] = "grey"
else if(!job.would_accept_job_transfer_from_player(M))
jobs_to_formats[job.title] = "grey" // jobs which are karma-locked and not unlocked for this player are discouraged
else if(!job.transfer_allowed)
jobs_to_formats[job.title] = "grey" // jobs which shouldnt be transferred into for whatever reason, likely due to high hour requirements
else if((job.title in GLOB.command_positions) && istype(M) && M.client && job.get_exp_restrictions(M.client))
jobs_to_formats[job.title] = "grey" // command jobs which are playtime-locked and not unlocked for this player are discouraged
else if(job.total_positions && !job.current_positions && job.title != "Assistant")
-9
View File
@@ -265,12 +265,3 @@
PDA.ownjob = C.assignment
PDA.ownrank = C.rank
PDA.name = "PDA-[H.real_name] ([PDA.ownjob])"
/datum/job/proc/would_accept_job_transfer_from_player(mob/player)
if(!transfer_allowed)
return FALSE
if(!check_job_karma(title))
return TRUE
if(!istype(player))
return FALSE
return is_job_whitelisted(player, title)
+1 -9
View File
@@ -88,13 +88,6 @@ GLOBAL_LIST_INIT(nonhuman_positions, list(
"pAI"
))
// TODO: Remove
GLOBAL_LIST_EMPTY(whitelisted_positions)
/proc/check_job_karma(job)
return (job in GLOB.whitelisted_positions)
// END TODO
/proc/get_job_datums()
var/list/occupations = list()
var/list/all_jobs = typesof(/datum/job)
@@ -119,7 +112,7 @@ GLOBAL_LIST_EMPTY(whitelisted_positions)
GLOBAL_LIST_INIT(exp_jobsmap, list(
EXP_TYPE_LIVING = list(), // all living mobs
EXP_TYPE_CREW = list(titles = command_positions | engineering_positions | medical_positions | science_positions | support_positions | supply_positions | security_positions | assistant_positions | list("AI","Cyborg") | whitelisted_positions), // crew positions
EXP_TYPE_CREW = list(titles = command_positions | engineering_positions | medical_positions | science_positions | support_positions | supply_positions | security_positions | assistant_positions | list("AI","Cyborg")), // crew positions
EXP_TYPE_SPECIAL = list(), // antags, ERT, etc
EXP_TYPE_GHOST = list(), // dead people, observers
EXP_TYPE_COMMAND = list(titles = command_positions),
@@ -130,5 +123,4 @@ GLOBAL_LIST_INIT(exp_jobsmap, list(
EXP_TYPE_SECURITY = list(titles = security_positions),
EXP_TYPE_SILICON = list(titles = list("AI","Cyborg")),
EXP_TYPE_SERVICE = list(titles = service_positions),
EXP_TYPE_WHITELIST = list(titles = whitelisted_positions) // karma-locked jobs
))
-25
View File
@@ -1,19 +1,3 @@
/proc/is_job_whitelisted(mob/M, rank)
if(!check_job_karma(rank)) // If it aint a karma job, let them play
return TRUE
if(!GLOB.configuration.general.enable_karma)
return TRUE
if(check_rights(R_ADMIN, FALSE, M))
return TRUE
var/package_id = job2package(rank)
if(!package_id) // Not a valid karma package
return TRUE
if(M.client.karmaholder.hasPackage(package_id)) // They have it
return TRUE
return FALSE
/proc/can_use_species(mob/M, species)
if(!GLOB.configuration.general.enable_karma)
return TRUE
@@ -51,12 +35,3 @@
return KARMAPACKAGE_SPECIES_MACHINE
if("Plasmaman")
return KARMAPACKAGE_SPECIES_PLASMAMAN
/proc/job2package(job_id)
switch(job_id)
if("Blueshield")
return KARMAPACKAGE_JOB_BLUESHIELD
if("Barber")
return KARMAPACKAGE_JOB_BARBER
if("Nanotrasen Representative")
return KARMAPACKAGE_JOB_NANOTRASENREPRESENTATIVE
-1
View File
@@ -341,7 +341,6 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
data["jobs_service"] = GLOB.service_positions
data["jobs_supply"] = GLOB.supply_positions - "Head of Personnel"
data["jobs_assistant"] = GLOB.assistant_positions
data["jobs_karma"] = GLOB.whitelisted_positions
data["jobs_centcom"] = get_all_centcom_jobs()
data["jobFormats"] = SSjobs.format_jobs_for_id_computer(modify)
data["current_skin"] = modify.icon_state
-27
View File
@@ -647,27 +647,6 @@
counter = 0
jobs += "</tr></table>"
//Whitelisted positions
counter = 0
jobs += "<table cellpadding='1' cellspacing='0' width='100%'>"
jobs += "<tr bgcolor='dddddd'><th colspan='[length(GLOB.whitelisted_positions)]'><a href='?src=[UID()];jobban3=whitelistdept;jobban4=[M.UID()];dbbanaddckey=[M.ckey]'>Whitelisted Positions</a></th></tr><tr align='center'>"
for(var/jobPos in GLOB.whitelisted_positions)
if(!jobPos) continue
var/datum/job/job = SSjobs.GetJob(jobPos)
if(!job) continue
if(jobban_isbanned(M, job.title))
jobs += "<td width='20%'><a href='?src=[UID()];jobban3=[job.title];jobban4=[M.UID()];dbbanaddckey=[M.ckey]'><font color=red>[replacetext(job.title, " ", "&nbsp")]</font></a></td>"
counter++
else
jobs += "<td width='20%'><a href='?src=[UID()];jobban3=[job.title];jobban4=[M.UID()];dbbanaddckey=[M.ckey]'>[replacetext(job.title, " ", "&nbsp")]</a></td>"
counter++
if(counter >= 5) //So things dont get squiiiiished!
jobs += "</tr><tr align='center'>"
counter = 0
jobs += "</tr></table>"
body = "<body>[jobs]</body>"
dat = "<tt>[header][body]</tt>"
usr << browse(dat, "window=jobban2;size=800x490")
@@ -739,12 +718,6 @@
var/datum/job/temp = SSjobs.GetJob(jobPos)
if(!temp) continue
joblist += temp.title
if("whitelistdept")
for(var/jobPos in GLOB.whitelisted_positions)
if(!jobPos) continue
var/datum/job/temp = SSjobs.GetJob(jobPos)
if(!temp) continue
joblist += temp.title
else
joblist += href_list["jobban3"]
+1 -1
View File
@@ -391,7 +391,7 @@
if(_2fa_alert)
to_chat(src,"<span class='boldannounce'><big>You do not have 2FA enabled. Admin verbs will be unavailable until you have enabled 2FA.</big></span>") // Very fucking obvious
// This happens asyncronously
// This happens "asyncronously"
if(karmaholder)
karmaholder.processRefunds(mob)
@@ -39,9 +39,6 @@
job_engsec_high,
job_engsec_med,
job_engsec_low,
job_karma_high,
job_karma_med,
job_karma_low,
flavor_text,
med_record,
sec_record,
@@ -85,7 +82,7 @@
while(Q.NextRow())
character_loaded = TRUE
var/datum/character_save/CS = C.prefs.character_saves[Q.item[53]] // Get the slot referenced by this query
var/datum/character_save/CS = C.prefs.character_saves[Q.item[50]] // Get the slot referenced by this query
CS.load(Q) // Let the save handle the query processing
CS.valid_save = TRUE
+20 -88
View File
@@ -62,10 +62,6 @@
var/job_engsec_med = 0
var/job_engsec_low = 0
var/job_karma_high = 0
var/job_karma_med = 0
var/job_karma_low = 0
//Keeps track of preferrence for not getting any wanted jobs
var/alternate_option = 2
@@ -170,9 +166,6 @@
job_engsec_high=:job_engsec_high,
job_engsec_med=:job_engsec_med,
job_engsec_low=:job_engsec_low,
job_karma_high=:job_karma_high,
job_karma_med=:job_karma_med,
job_karma_low=:job_karma_low,
flavor_text=:flavor_text,
med_record=:med_record,
sec_record=:sec_record,
@@ -229,9 +222,6 @@
"job_engsec_high" = job_engsec_high,
"job_engsec_med" = job_engsec_med,
"job_engsec_low" = job_engsec_low,
"job_karma_high" = job_karma_high,
"job_karma_med" = job_karma_med,
"job_karma_low" = job_karma_low,
"flavor_text" = flavor_text,
"med_record" = med_record,
"sec_record" = sec_record,
@@ -283,7 +273,6 @@
job_support_high, job_support_med, job_support_low,
job_medsci_high, job_medsci_med, job_medsci_low,
job_engsec_high, job_engsec_med, job_engsec_low,
job_karma_high, job_karma_med, job_karma_low,
flavor_text,
med_record,
sec_record,
@@ -311,7 +300,6 @@
:job_support_high, :job_support_med, :job_support_low,
:job_medsci_high, :job_medsci_med, :job_medsci_low,
:job_engsec_high, :job_engsec_med, :job_engsec_low,
:job_karma_high, :job_karma_med, :job_karma_low,
:flavor_text,
:med_record,
:sec_record,
@@ -359,9 +347,6 @@
"job_engsec_high" = job_engsec_high,
"job_engsec_med" = job_engsec_med,
"job_engsec_low" = job_engsec_low,
"job_karma_high" = job_karma_high,
"job_karma_med" = job_karma_med,
"job_karma_low" = job_karma_low,
"flavor_text" = flavor_text,
"med_record" = med_record,
"sec_record" = sec_record,
@@ -432,15 +417,12 @@
job_engsec_high = text2num(query.item[33])
job_engsec_med = text2num(query.item[34])
job_engsec_low = text2num(query.item[35])
job_karma_high = text2num(query.item[36])
job_karma_med = text2num(query.item[37])
job_karma_low = text2num(query.item[38])
//Miscellaneous
flavor_text = query.item[39]
med_record = query.item[40]
sec_record = query.item[41]
gen_record = query.item[42]
flavor_text = query.item[36]
med_record = query.item[37]
sec_record = query.item[38]
gen_record = query.item[39]
// Apparently, the preceding vars weren't always encoded properly...
if(findtext(flavor_text, "<")) // ... so let's clumsily check for tags!
flavor_text = html_encode(flavor_text)
@@ -450,23 +432,23 @@
sec_record = html_encode(sec_record)
if(findtext(gen_record, "<"))
gen_record = html_encode(gen_record)
disabilities = text2num(query.item[43])
player_alt_titles = params2list(query.item[44])
organ_data = params2list(query.item[45])
rlimb_data = params2list(query.item[46])
nanotrasen_relation = query.item[47]
speciesprefs = text2num(query.item[48])
disabilities = text2num(query.item[40])
player_alt_titles = params2list(query.item[41])
organ_data = params2list(query.item[42])
rlimb_data = params2list(query.item[43])
nanotrasen_relation = query.item[44]
speciesprefs = text2num(query.item[45])
//socks
socks = query.item[49]
body_accessory = query.item[50]
loadout_gear = query.item[51]
autohiss_mode = text2num(query.item[52])
h_grad_style = query.item[54]
h_grad_offset_x = query.item[55] // parsed down below
h_grad_colour = query.item[56]
h_grad_alpha = query.item[57]
socks = query.item[46]
body_accessory = query.item[47]
loadout_gear = query.item[48]
autohiss_mode = text2num(query.item[49])
// Index [50] is the slot
h_grad_style = query.item[51]
h_grad_offset_x = query.item[52] // parsed down below
h_grad_colour = query.item[53]
h_grad_alpha = query.item[54]
//Sanitize
var/datum/species/SP = GLOB.all_species[species]
@@ -527,9 +509,6 @@
job_engsec_high = sanitize_integer(job_engsec_high, 0, 65535, initial(job_engsec_high))
job_engsec_med = sanitize_integer(job_engsec_med, 0, 65535, initial(job_engsec_med))
job_engsec_low = sanitize_integer(job_engsec_low, 0, 65535, initial(job_engsec_low))
job_karma_high = sanitize_integer(job_karma_high, 0, 65535, initial(job_karma_high))
job_karma_med = sanitize_integer(job_karma_med, 0, 65535, initial(job_karma_med))
job_karma_low = sanitize_integer(job_karma_low, 0, 65535, initial(job_karma_low))
disabilities = sanitize_integer(disabilities, 0, 65535, initial(disabilities))
socks = sanitize_text(socks, initial(socks))
@@ -1443,8 +1422,6 @@
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel-norm"), ICON_OVERLAY)
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
else if(job_karma_high)
switch(job_karma_high)
if(JOB_NANO)
clothes_s = new /icon(uniform_dmi, "officer_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "laceups"), ICON_UNDERLAY)
@@ -1527,11 +1504,9 @@
job_support_med |= job_support_high
job_engsec_med |= job_engsec_high
job_medsci_med |= job_medsci_high
job_karma_med |= job_karma_high
job_support_high = 0
job_engsec_high = 0
job_medsci_high = 0
job_karma_high = 0
if(job.department_flag == JOBCAT_SUPPORT)
job_support_low &= ~job.flag
@@ -1575,20 +1550,6 @@
job_medsci_low |= job.flag
return 1
else if(job.department_flag == JOBCAT_KARMA)
job_karma_low &= ~job.flag
job_karma_med &= ~job.flag
job_karma_high &= ~job.flag
switch(level)
if(1)
job_karma_high |= job.flag
if(2)
job_karma_med |= job.flag
if(3)
job_karma_low |= job.flag
return 1
return 0
@@ -1684,11 +1645,6 @@
job_engsec_med = 0
job_engsec_low = 0
job_karma_high = 0
job_karma_med = 0
job_karma_low = 0
/datum/character_save/proc/GetJobDepartment(datum/job/job, level)
if(!job || !level) return 0
switch(job.department_flag)
@@ -1716,14 +1672,6 @@
return job_engsec_med
if(3)
return job_engsec_low
if(JOBCAT_KARMA)
switch(level)
if(1)
return job_karma_high
if(2)
return job_karma_med
if(3)
return job_karma_low
return 0
/datum/character_save/proc/SetJobDepartment(datum/job/job, level)
@@ -1733,17 +1681,14 @@
job_support_high = 0
job_medsci_high = 0
job_engsec_high = 0
job_karma_high = 0
return 1
if(2)//Set current highs to med, then reset them
job_support_med |= job_support_high
job_medsci_med |= job_medsci_high
job_engsec_med |= job_engsec_high
job_karma_med |= job_karma_high
job_support_high = 0
job_medsci_high = 0
job_engsec_high = 0
job_karma_high = 0
switch(job.department_flag)
if(JOBCAT_SUPPORT)
@@ -1776,16 +1721,6 @@
job_engsec_low &= ~job.flag
else
job_engsec_low |= job.flag
if(JOBCAT_KARMA)
switch(level)
if(2)
job_karma_high = job.flag
job_karma_med &= ~job.flag
if(3)
job_karma_med |= job.flag
job_karma_low &= ~job.flag
else
job_karma_low |= job.flag
return 1
/datum/character_save/proc/copy_to(mob/living/carbon/human/character)
@@ -1956,7 +1891,7 @@
//Check if the user has ANY job selected.
/datum/character_save/proc/check_any_job()
return(job_support_high || job_support_med || job_support_low || job_medsci_high || job_medsci_med || job_medsci_low || job_engsec_high || job_engsec_med || job_engsec_low || job_karma_high || job_karma_med || job_karma_low)
return(job_support_high || job_support_med || job_support_low || job_medsci_high || job_medsci_med || job_medsci_low || job_engsec_high || job_engsec_med || job_engsec_low)
/datum/character_save/proc/SetChoices(mob/user, limit = 17, list/splitJobs = list("Head of Security", "Bartender"), widthPerColumn = 400, height = 700)
@@ -2017,9 +1952,6 @@
else
rank = job.title
lastJob = job
if(!is_job_whitelisted(user, job.title))
html += "<del class='dark'>[rank]</del></td><td class='bad'><b> \[KARMA]</b></td></tr>"
continue
if(jobban_isbanned(user, job.title))
html += "<del class='dark'>[rank]</del></td><td class='bad'><b> \[BANNED]</b></td></tr>"
continue
+1 -1
View File
@@ -22,7 +22,7 @@
// If you are ever removing something from the karma store, **DO NOT** delete its definition datum.
// Just set redunable = TRUE on it so people can get their karma refund
// Jobs
// Jobs - These no longer exist in the codebase
/datum/karma_package/job
category = "Karma Jobs"
@@ -259,8 +259,6 @@
return FALSE
if(jobban_isbanned(src, rank))
return FALSE
if(!is_job_whitelisted(src, rank))
return FALSE
if(!job.player_old_enough(client))
return FALSE
if(job.admin_only && !check_rights(R_EVENT, FALSE))
+1 -1
View File
@@ -145,7 +145,7 @@ ipc_screens = [
# Enable/disable the database on a whole
sql_enabled = false
# SQL version. If this is a mismatch, round start will be delayed
sql_version = 35
sql_version = 36
# SQL server address. Can be an IP or DNS name
sql_address = "127.0.0.1"
# SQL server port
@@ -236,15 +236,6 @@ export const CardComputer = (props, context) => {
onClick={() => act("assign", { assign_target: v })} />
))}
</LabeledList.Item>
<LabeledList.Item label="Restricted">
{data.jobs_karma.map(v => (
<Button
selected={v === data.modify_rank}
color={data.jobFormats[v] ? data.jobFormats[v] : ""}
key={v} content={v}
onClick={() => act("assign", { assign_target: v })} />
))}
</LabeledList.Item>
{!!data.iscentcom && (
<LabeledList.Item label="CentCom" labelColor={deptCols.centcom}>
{data.jobs_centcom.map(v => (
File diff suppressed because one or more lines are too long