mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-29 16:18:01 +01:00
Skyrat Cleanup: Total Veteran Annihilation (#2519)
## About The Pull Request Removes all fragments of veteran code from the game. ## Why It's Good For The Game It should help maintainers when doing upstream syncs as it removes some non-modular code. Also we have no use for the veteran system. ## Proof Of Testing It compiled and ran. ## Changelog Nothing player facing. Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
// Just keeping this easy to maintain in the future.
|
||||
#define JOB_NOT_VETERAN (JOB_UNAVAILABLE_AGE + 1)
|
||||
#define JOB_UNAVAILABLE_QUIRK (JOB_NOT_VETERAN + 1)
|
||||
#define JOB_UNAVAILABLE_QUIRK (JOB_UNAVAILABLE_AGE + 1)
|
||||
#define JOB_UNAVAILABLE_SPECIES (JOB_UNAVAILABLE_QUIRK + 1)
|
||||
#define JOB_UNAVAILABLE_LANGUAGE (JOB_UNAVAILABLE_SPECIES + 1)
|
||||
#define JOB_UNAVAILABLE_FLAVOUR (JOB_UNAVAILABLE_LANGUAGE + 1)
|
||||
|
||||
@@ -964,10 +964,6 @@ SUBSYSTEM_DEF(job)
|
||||
return JOB_UNAVAILABLE_AGE
|
||||
|
||||
//SKYRAT EDIT ADDITION BEGIN - CUSTOMIZATION
|
||||
if(!CONFIG_GET(flag/bypass_veteran_system) && possible_job.veteran_only && !SSplayer_ranks.is_veteran(player.client))
|
||||
job_debug("[debug_prefix] Error: [get_job_unavailable_error_message(JOB_NOT_VETERAN)], Player: [player][add_job_to_log ? ", Job: [possible_job]" : ""]")
|
||||
return JOB_NOT_VETERAN
|
||||
|
||||
if(possible_job.has_banned_quirk(player.client.prefs))
|
||||
job_debug("[debug_prefix] Error: [get_job_unavailable_error_message(JOB_UNAVAILABLE_QUIRK)], Player: [player][add_job_to_log ? ", Job: [possible_job]" : ""]")
|
||||
return JOB_UNAVAILABLE_QUIRK
|
||||
|
||||
@@ -36,9 +36,6 @@ ADMIN_VERB_ONLY_CONTEXT_MENU(show_player_panel, R_ADMIN, "Show Player Panel", mo
|
||||
|
||||
if(SSplayer_ranks.is_mentor(player.client, admin_bypass = FALSE))
|
||||
player_ranks += "Mentor"
|
||||
|
||||
if(SSplayer_ranks.is_veteran(player.client, admin_bypass = FALSE))
|
||||
player_ranks += "Veteran"
|
||||
//BUBBER ADDITION START
|
||||
if(SSplayer_ranks.is_vetted(player.client, admin_bypass = FALSE))
|
||||
player_ranks |= "Vetted"
|
||||
|
||||
@@ -75,7 +75,6 @@
|
||||
jobs[job.title] = list(
|
||||
"description" = job.description,
|
||||
"department" = department_name,
|
||||
"veteran" = job.veteran_only, // SKYRAT EDIT
|
||||
"alt_titles" = job.alt_titles, // SKYRAT EDIT
|
||||
)
|
||||
|
||||
@@ -101,10 +100,6 @@
|
||||
/datum/preference_middleware/jobs/get_ui_static_data(mob/user)
|
||||
var/list/data = list()
|
||||
|
||||
// SKYRAT EDIT
|
||||
if(CONFIG_GET(flag/bypass_veteran_system) || SSplayer_ranks.is_veteran(user.client))
|
||||
data["is_veteran"] = TRUE
|
||||
// SKYRAT EDIT END
|
||||
// BUBBER EDIT BEGIN
|
||||
if(SSplayer_ranks.is_vetted(user.client))
|
||||
data["is_vetted"] = TRUE
|
||||
|
||||
@@ -54,7 +54,6 @@
|
||||
"value" = initial(quirk.value),
|
||||
"customizable" = constant_data?.is_customizable(),
|
||||
"customization_options" = customization_options,
|
||||
"veteran_only" = initial(quirk.veteran_only), // SKYRAT EDIT - Veteran quirks
|
||||
"species_whitelist" = species_whitelist, //BUBBER EDIT - Species quirks
|
||||
)
|
||||
|
||||
@@ -71,13 +70,6 @@
|
||||
/datum/preference_middleware/quirks/proc/give_quirk(list/params, mob/user)
|
||||
var/quirk_name = params["quirk"]
|
||||
|
||||
//SKYRAT EDIT ADDITION
|
||||
var/list/quirks = SSquirks.get_quirks()
|
||||
var/datum/quirk/quirk = quirks[quirk_name]
|
||||
if(!CONFIG_GET(flag/bypass_veteran_system) && initial(quirk.veteran_only) && !SSplayer_ranks.is_veteran(preferences?.parent))
|
||||
return FALSE
|
||||
//SKYRAT EDIT END
|
||||
|
||||
var/list/new_quirks = preferences.all_quirks | quirk_name
|
||||
if (SSquirks.filter_invalid_quirks(new_quirks, preferences.augments) != new_quirks)// SKYRAT EDIT - AUGMENTS+
|
||||
// If the client is sending an invalid give_quirk, that means that
|
||||
@@ -114,13 +106,6 @@
|
||||
var/list/selected_quirks = list()
|
||||
|
||||
for (var/quirk in preferences.all_quirks)
|
||||
//SKYRAT EDIT ADDITION
|
||||
var/list/quirks = SSquirks.get_quirks()
|
||||
var/datum/quirk/quirk_datum = quirks[quirk]
|
||||
if(!CONFIG_GET(flag/bypass_veteran_system) && initial(quirk_datum.veteran_only) && !SSplayer_ranks.is_veteran(preferences?.parent))
|
||||
preferences.all_quirks -= quirk
|
||||
continue
|
||||
//SKYRAT EDIT END
|
||||
selected_quirks += sanitize_css_class_name(quirk)
|
||||
|
||||
return selected_quirks
|
||||
|
||||
@@ -61,6 +61,5 @@
|
||||
data[species_id]["enabled_features"] = species.get_features()
|
||||
data[species_id]["perks"] = species.get_species_perks()
|
||||
data[species_id]["diet"] = species.get_species_diet()
|
||||
data[species_id]["veteran_only"] = species.veteran_only // SKYRAT EDIT ADDITION - Veteran races
|
||||
|
||||
return data
|
||||
|
||||
@@ -122,8 +122,6 @@
|
||||
if(JOB_UNAVAILABLE_SLOTFULL)
|
||||
return "[jobtitle] is already filled to capacity."
|
||||
//SKYRAT EDIT ADDITION
|
||||
if(JOB_NOT_VETERAN)
|
||||
return "You need to be veteran to join as [jobtitle]."
|
||||
if(JOB_UNAVAILABLE_QUIRK)
|
||||
return "[jobtitle] is restricted due to your selected quirks."
|
||||
if(JOB_UNAVAILABLE_LANGUAGE)
|
||||
@@ -171,8 +169,6 @@
|
||||
return JOB_UNAVAILABLE_LANGUAGE
|
||||
if(job.has_banned_quirk(client.prefs))
|
||||
return JOB_UNAVAILABLE_QUIRK
|
||||
if(!CONFIG_GET(flag/bypass_veteran_system) && job.veteran_only && !SSplayer_ranks.is_veteran(client))
|
||||
return JOB_NOT_VETERAN
|
||||
if(job.has_banned_species(client.prefs))
|
||||
return JOB_UNAVAILABLE_SPECIES
|
||||
//SKYRAT EDIT END
|
||||
|
||||
@@ -144,7 +144,6 @@ SIZE_COLLAR_MINIMUM 15
|
||||
## These flags are automatically enabled if SQL_ENABLED isn't.
|
||||
DONATOR_LEGACY_SYSTEM
|
||||
MENTOR_LEGACY_SYSTEM
|
||||
VETERAN_LEGACY_SYSTEM
|
||||
|
||||
## How much time arrivals shuttle should stay at station after its engines recharged before returning to interlink. In deciseconds. 150 - 15 seconds. 0 - disables autoreturn.
|
||||
ARRIVALS_WAIT 150
|
||||
@@ -161,8 +160,5 @@ LOWPOP_THRESHOLD_ENABLE 9
|
||||
## The lowpop subsystem fire rate. It does actions each time it fires.(default is 10 minutes)
|
||||
LOWPOP_SUBSYSTEM_FIRE 3000
|
||||
|
||||
## Uncomment to make veteran quirks and jobs available to everybody
|
||||
#BYPASS_VETERAN_SYSTEM
|
||||
|
||||
## Uncomment to enable the age prompt system; It asks players for their date of birth upon entry and denies players below a certain age.
|
||||
#AGE_PROMPT_SYSTEM
|
||||
|
||||
-4
@@ -60,7 +60,3 @@
|
||||
/// Defines whether the server uses the legacy mentor system with mentors.txt or the SQL system.
|
||||
/datum/config_entry/flag/mentor_legacy_system
|
||||
protection = CONFIG_ENTRY_LOCKED
|
||||
|
||||
/// Defines whether the server uses the legacy veteran system with veteran_players.txt or the SQL system.
|
||||
/datum/config_entry/flag/veteran_legacy_system
|
||||
protection = CONFIG_ENTRY_LOCKED
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
/datum/quirk
|
||||
/// Is this quirk restricted to veteran players only?
|
||||
var/veteran_only = FALSE
|
||||
// Is this quirk hidden from TGUI / the character preferences window?
|
||||
var/hidden_quirk = FALSE
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/// The list of the available special player ranks
|
||||
#define SKYRAT_PLAYER_RANKS list("Donator", "Mentor", "Veteran")
|
||||
#define SKYRAT_PLAYER_RANKS list("Donator", "Mentor")
|
||||
|
||||
ADMIN_VERB(manage_player_ranks, R_PERMISSIONS, "Manage Player Ranks", "Manage who has the special player ranks while the server is running.", ADMIN_CATEGORY_MAIN)
|
||||
if(!check_rights(R_PERMISSIONS))
|
||||
@@ -7,7 +7,7 @@ ADMIN_VERB(manage_player_ranks, R_PERMISSIONS, "Manage Player Ranks", "Manage wh
|
||||
|
||||
usr.client?.holder.manage_player_ranks()
|
||||
|
||||
/// Proc for admins to change people's "player" ranks (donator, mentor, veteran, etc.)
|
||||
/// Proc for admins to change people's "player" ranks (donator, mentor, etc.)
|
||||
/datum/admins/proc/manage_player_ranks()
|
||||
if(IsAdminAdvancedProcCall())
|
||||
return
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
/obj/item/ammo_box/magazine/caflechette = 10,
|
||||
)
|
||||
|
||||
veteran_only = TRUE
|
||||
job_flags = STATION_JOB_FLAGS | JOB_CANNOT_OPEN_SLOTS
|
||||
|
||||
/datum/outfit/job/blueshield
|
||||
|
||||
@@ -16,10 +16,6 @@
|
||||
/// Which languages does the job require, associative to UNDERSTOOD_LANGUAGE or (UNDERSTOOD_LANGUAGE | SPOKEN_LANGUAGE)
|
||||
var/list/required_languages = list(/datum/language/common = (UNDERSTOOD_LANGUAGE | SPOKEN_LANGUAGE))
|
||||
|
||||
///Is this job veteran only? If so, then this job requires the player to be in the veteran_players.txt
|
||||
var/veteran_only = FALSE
|
||||
|
||||
|
||||
/datum/job/proc/has_banned_quirk(datum/preferences/pref)
|
||||
if(!pref) //No preferences? We'll let you pass, this time (just a precautionary check,you dont wanna mess up gamemode setting logic)
|
||||
return FALSE
|
||||
|
||||
@@ -21,8 +21,6 @@ GLOBAL_LIST_EMPTY(customizable_races)
|
||||
var/markings_alpha = 255
|
||||
///If a species can always be picked in prefs for the purposes of customizing it for ghost roles or events
|
||||
var/always_customizable = FALSE
|
||||
/// If a species requires the player to be a Veteran to be able to pick it.
|
||||
var/veteran_only = FALSE
|
||||
///Flavor text of the species displayed on character creation screeen
|
||||
var/flavor_text = "No description."
|
||||
///Path to BODYSHAPE_CUSTOM species worn icons. An assoc list of ITEM_SLOT_X => /icon
|
||||
|
||||
-1
@@ -25,7 +25,6 @@
|
||||
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT
|
||||
examine_limb_id = SPECIES_HUMAN
|
||||
skinned_type = /obj/item/stack/sheet/animalhide/human
|
||||
veteran_only = TRUE
|
||||
|
||||
/datum/species/hemophage/allows_food_preferences()
|
||||
return FALSE
|
||||
|
||||
@@ -37,7 +37,6 @@
|
||||
/obj/item/reagent_containers/cup/glass/bottle/champagne = 10
|
||||
)
|
||||
|
||||
veteran_only = TRUE
|
||||
job_flags = STATION_JOB_FLAGS | JOB_BOLD_SELECT_TEXT | JOB_CANNOT_OPEN_SLOTS
|
||||
|
||||
/datum/outfit/job/nanotrasen_consultant
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
value = 0
|
||||
mob_trait = TRAIT_OVERSIZED
|
||||
icon = FA_ICON_EXPAND_ARROWS_ALT
|
||||
veteran_only = TRUE
|
||||
quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_CHANGES_APPEARANCE
|
||||
|
||||
/datum/quirk/oversized/add(client/client_source)
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
icon = FA_ICON_HORSE
|
||||
value = 4
|
||||
mob_trait = TRAIT_PET_OWNER
|
||||
veteran_only = TRUE
|
||||
gain_text = span_notice("You brought your pet with you to work.")
|
||||
lose_text = span_danger("You feel lonely, as if leaving somebody behind...")
|
||||
medical_record_text = "Patient mentions their fondness for their pet."
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
/datum/config_entry/flag/bypass_veteran_system
|
||||
@@ -1,47 +0,0 @@
|
||||
/// The list of all veteran players.
|
||||
GLOBAL_LIST_EMPTY(veteran_list)
|
||||
GLOBAL_PROTECT(veteran_list)
|
||||
|
||||
|
||||
/datum/player_rank_controller/veteran
|
||||
rank_title = "veteran"
|
||||
|
||||
|
||||
/datum/player_rank_controller/veteran/New()
|
||||
. = ..()
|
||||
legacy_file_path = "[global.config.directory]/skyrat/veteran_players.txt"
|
||||
|
||||
|
||||
/datum/player_rank_controller/veteran/add_player(ckey)
|
||||
if(IsAdminAdvancedProcCall())
|
||||
return
|
||||
|
||||
ckey = ckey(ckey)
|
||||
|
||||
// Associative list for extra SPEED!
|
||||
GLOB.veteran_list[ckey] = TRUE
|
||||
|
||||
|
||||
/datum/player_rank_controller/veteran/remove_player(ckey)
|
||||
if(IsAdminAdvancedProcCall())
|
||||
return
|
||||
|
||||
GLOB.veteran_list -= ckey
|
||||
|
||||
|
||||
/datum/player_rank_controller/veteran/get_ckeys_for_legacy_save()
|
||||
if(IsAdminAdvancedProcCall())
|
||||
return
|
||||
|
||||
return GLOB.veteran_list
|
||||
|
||||
|
||||
/datum/player_rank_controller/veteran/should_use_legacy_system()
|
||||
return CONFIG_GET(flag/veteran_legacy_system)
|
||||
|
||||
|
||||
/datum/player_rank_controller/veteran/clear_existing_rank_data()
|
||||
if(IsAdminAdvancedProcCall())
|
||||
return
|
||||
|
||||
GLOB.veteran_list = list()
|
||||
@@ -18,8 +18,7 @@ SUBSYSTEM_DEF(player_ranks)
|
||||
var/datum/player_rank_controller/donator/donator_controller
|
||||
/// The mentor player rank controller.
|
||||
var/datum/player_rank_controller/mentor/mentor_controller
|
||||
/// The veteran player rank controller.
|
||||
var/datum/player_rank_controller/veteran/veteran_controller
|
||||
/// The vetted player rank controller.
|
||||
var/datum/player_rank_controller/vetted/vetted_controller
|
||||
|
||||
/datum/controller/subsystem/player_ranks/Initialize()
|
||||
@@ -28,7 +27,6 @@ SUBSYSTEM_DEF(player_ranks)
|
||||
|
||||
load_donators()
|
||||
load_mentors()
|
||||
load_veterans()
|
||||
load_vetted_ckeys()
|
||||
return SS_INIT_SUCCESS
|
||||
|
||||
@@ -38,7 +36,6 @@ SUBSYSTEM_DEF(player_ranks)
|
||||
|
||||
QDEL_NULL(donator_controller)
|
||||
QDEL_NULL(mentor_controller)
|
||||
QDEL_NULL(veteran_controller)
|
||||
QDEL_NULL(vetted_controller)
|
||||
|
||||
/**
|
||||
@@ -77,18 +74,6 @@ SUBSYSTEM_DEF(player_ranks)
|
||||
|
||||
return user.is_mentor(admin_bypass)
|
||||
|
||||
|
||||
/**
|
||||
* Returns whether or not the user is qualified as a veteran.
|
||||
*
|
||||
* Arguments:
|
||||
* * user - The client to verify the veteran status of.
|
||||
* * admin_bypass - Whether or not admins can succeed this check, even if they
|
||||
* do not actually possess the role. Defaults to `TRUE`.
|
||||
*/
|
||||
/datum/controller/subsystem/player_ranks/proc/is_veteran(client/user, admin_bypass = TRUE) // BUBBER TODO - Remove the remnants of the skyrat elitism system
|
||||
return TRUE
|
||||
|
||||
/// Handles loading donators either via SQL or using the legacy system,
|
||||
/// based on configs.
|
||||
/datum/controller/subsystem/player_ranks/proc/load_donators()
|
||||
@@ -167,33 +152,6 @@ SUBSYSTEM_DEF(player_ranks)
|
||||
|
||||
load_player_rank_sql(mentor_controller)
|
||||
|
||||
|
||||
/// Handles loading veteran players either via SQL or using the legacy system,
|
||||
/// based on configs.
|
||||
/datum/controller/subsystem/player_ranks/proc/load_veterans()
|
||||
PROTECTED_PROC(TRUE)
|
||||
|
||||
if(IsAdminAdvancedProcCall())
|
||||
return
|
||||
|
||||
veteran_controller = new
|
||||
|
||||
if(CONFIG_GET(flag/veteran_legacy_system))
|
||||
veteran_controller.load_legacy()
|
||||
return
|
||||
|
||||
if(!SSdbcore.Connect())
|
||||
var/message = "Failed to connect to database in load_veterans(). Reverting to legacy system."
|
||||
log_config(message)
|
||||
log_game(message)
|
||||
message_admins(message)
|
||||
CONFIG_SET(flag/veteran_legacy_system, TRUE)
|
||||
veteran_controller.load_legacy()
|
||||
return
|
||||
|
||||
load_player_rank_sql(veteran_controller)
|
||||
|
||||
|
||||
/**
|
||||
* Handles populating the player rank from the database.
|
||||
*
|
||||
@@ -234,9 +192,6 @@ SUBSYSTEM_DEF(player_ranks)
|
||||
if(rank_title == mentor_controller.rank_title)
|
||||
return mentor_controller
|
||||
|
||||
if(rank_title == veteran_controller.rank_title)
|
||||
return veteran_controller
|
||||
|
||||
CRASH("Invalid player_rank_controller \"[rank_title || "*null*"]\" used in get_controller_for_group()!")
|
||||
|
||||
|
||||
|
||||
@@ -3,8 +3,6 @@
|
||||
|
||||
/datum/station_trait/overflow_job_bureaucracy/set_overflow_job_override(datum/source)
|
||||
var/datum/job/picked_job = pick(SSjob.joinable_occupations)
|
||||
while(picked_job.veteran_only)
|
||||
picked_job = pick(SSjob.joinable_occupations)
|
||||
chosen_job_name = lowertext(picked_job.title) // like Chief Engineers vs like chief engineers
|
||||
SSjob.set_overflow_role(picked_job.type)
|
||||
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
/datum/job/clown
|
||||
veteran_only = TRUE
|
||||
|
||||
/datum/job/mime
|
||||
veteran_only = TRUE
|
||||
@@ -1,2 +0,0 @@
|
||||
/datum/species/snail
|
||||
veteran_only = TRUE
|
||||
@@ -1,28 +0,0 @@
|
||||
## Title: Veteran Only Overrides
|
||||
|
||||
MODULE ID: VETERAN_ONLY
|
||||
|
||||
### Description:
|
||||
|
||||
Overrides or extends /tg/ definitions with veteran only requirements.
|
||||
|
||||
As of module creation, there are no veteran_only overrides remaining in the master files.
|
||||
|
||||
### TG Proc Changes:
|
||||
|
||||
- N/A
|
||||
|
||||
### Defines:
|
||||
|
||||
- N/A
|
||||
|
||||
### Master file additions
|
||||
|
||||
- None!
|
||||
|
||||
### Included files that are not contained in this module:
|
||||
|
||||
- N/A
|
||||
|
||||
### Credits:
|
||||
- N/A
|
||||
@@ -8339,10 +8339,8 @@
|
||||
#include "modular_skyrat\modules\player_ranks\code\preferences.dm"
|
||||
#include "modular_skyrat\modules\player_ranks\code\world_topic.dm"
|
||||
#include "modular_skyrat\modules\player_ranks\code\player_rank_controller\_player_rank_controller.dm"
|
||||
#include "modular_skyrat\modules\player_ranks\code\player_rank_controller\config_entry.dm"
|
||||
#include "modular_skyrat\modules\player_ranks\code\player_rank_controller\donator_controller.dm"
|
||||
#include "modular_skyrat\modules\player_ranks\code\player_rank_controller\mentor_controller.dm"
|
||||
#include "modular_skyrat\modules\player_ranks\code\player_rank_controller\veteran_controller.dm"
|
||||
#include "modular_skyrat\modules\player_ranks\code\subsystem\player_ranks.dm"
|
||||
#include "modular_skyrat\modules\pod_locking\pod_locking.dm"
|
||||
#include "modular_skyrat\modules\polarized_windows\capacitor.dm"
|
||||
@@ -8613,8 +8611,6 @@
|
||||
#include "modular_skyrat\modules\verbs\code\looc.dm"
|
||||
#include "modular_skyrat\modules\verbs\code\say.dm"
|
||||
#include "modular_skyrat\modules\verbs\code\subtle.dm"
|
||||
#include "modular_skyrat\modules\veteran_only\code\job_types.dm"
|
||||
#include "modular_skyrat\modules\veteran_only\code\species_types.dm"
|
||||
#include "modular_skyrat\modules\vox_sprites\code\color.dm"
|
||||
#include "modular_skyrat\modules\vox_sprites\code\head.dm"
|
||||
#include "modular_skyrat\modules\vox_sprites\code\security.dm"
|
||||
|
||||
@@ -225,14 +225,6 @@ const JobRow = (props: { className?: string; job: Job; name: string }) => {
|
||||
</Stack>
|
||||
);
|
||||
// SKYRAT EDIT START
|
||||
} else if (job.veteran && !data.is_veteran) {
|
||||
rightSide = (
|
||||
<Stack align="center" height="100%" pr={1}>
|
||||
<Stack.Item grow textAlign="right">
|
||||
<b>Veteran Only</b>
|
||||
</Stack.Item>
|
||||
</Stack>
|
||||
);
|
||||
} else if (
|
||||
data.species_restricted_jobs &&
|
||||
data.species_restricted_jobs.indexOf(name) !== -1
|
||||
|
||||
@@ -344,11 +344,6 @@ export function QuirksPage(props) {
|
||||
}
|
||||
}
|
||||
|
||||
// SKYRAT EDIT START - Veteran quirks. Please phase these out! - Kali
|
||||
if (quirk.veteran_only && !data.is_veteran) {
|
||||
return 'You need to be a veteran to select this quirk, apply today!';
|
||||
}
|
||||
// SKYRAT EDIT END
|
||||
const selectedQuirkNames = selectedQuirks.map((quirkKey) => {
|
||||
return quirkInfo[quirkKey].name;
|
||||
});
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { classes } from 'common/react';
|
||||
|
||||
import { useBackend } from '../../backend';
|
||||
import {
|
||||
BlockQuote,
|
||||
@@ -268,49 +266,6 @@ const SpeciesPageInner = (props: {
|
||||
|
||||
<Stack.Item grow>
|
||||
<Stack fill>
|
||||
<Stack.Item>
|
||||
<Box height="calc(100vh - 170px)" overflowY="auto" pr={3}>
|
||||
{species.map(([speciesKey, species]) => {
|
||||
// SKYRAT EDIT START - Veteran-only species
|
||||
let speciesPage = (
|
||||
<Button
|
||||
key={speciesKey}
|
||||
onClick={() => {
|
||||
if (species.veteran_only && !data.is_veteran) {
|
||||
return;
|
||||
}
|
||||
setSpecies(speciesKey);
|
||||
}}
|
||||
selected={
|
||||
data.character_preferences.misc.species === speciesKey
|
||||
}
|
||||
tooltip={species.name}
|
||||
style={{
|
||||
display: 'block',
|
||||
height: '64px',
|
||||
width: '64px',
|
||||
}}
|
||||
>
|
||||
<Box
|
||||
className={classes(['species64x64', species.icon])}
|
||||
ml={-1}
|
||||
/>
|
||||
</Button>
|
||||
);
|
||||
if (species.veteran_only && !data.is_veteran) {
|
||||
let tooltipContent =
|
||||
species.name +
|
||||
' - You need to be a veteran to select this race, apply today!';
|
||||
speciesPage = (
|
||||
<Tooltip content={tooltipContent}>{speciesPage}</Tooltip>
|
||||
);
|
||||
}
|
||||
return speciesPage;
|
||||
// SKYRAT EDIT END
|
||||
})}
|
||||
</Box>
|
||||
</Stack.Item>
|
||||
|
||||
<Stack.Item grow>
|
||||
<Box>
|
||||
<Box>
|
||||
|
||||
@@ -52,8 +52,6 @@ export type Species = {
|
||||
|
||||
enabled_features: string[];
|
||||
|
||||
veteran_only: boolean; // SKYRAT EDIT - Veteran quirks
|
||||
|
||||
perks: {
|
||||
positive: Perk[];
|
||||
negative: Perk[];
|
||||
@@ -81,7 +79,6 @@ export type Job = {
|
||||
description: string;
|
||||
department: string;
|
||||
// SKYRAT EDIT
|
||||
veteran?: boolean;
|
||||
alt_titles?: string[];
|
||||
// SKYRAT EDIT END
|
||||
};
|
||||
@@ -93,7 +90,6 @@ export type Quirk = {
|
||||
value: number;
|
||||
customizable: boolean;
|
||||
customization_options?: string[];
|
||||
veteran_only: boolean; // SKYRAT EDIT - Veteran quirks
|
||||
species_whitelist: Record<string, string>[]; // BUBBER EDIT ADDITION - Species quirks
|
||||
};
|
||||
|
||||
@@ -182,7 +178,6 @@ export type PreferencesMenuData = {
|
||||
preview_options: string[]; // SKYRAT EDIT ADDITION
|
||||
preview_selection: string; // SKYRAT EDIT ADDITION
|
||||
|
||||
is_veteran: BooleanLike; // SKYRAT EDIT - Veteran status
|
||||
is_vetted: BooleanLike; // BUBBER EDIT - Vetted Users
|
||||
character_preferences: {
|
||||
clothing: Record<string, string>;
|
||||
|
||||
Reference in New Issue
Block a user