mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-16 02:24:11 +01:00
Merge remote-tracking branch 'skrat/master' into upstream-aug-29
# Conflicts: # .github/CODEOWNERS # .github/workflows/ci_suite.yml # README.md # code/controllers/subsystem/processing/quirks.dm # code/modules/antagonists/space_ninja/space_ninja.dm # code/modules/client/preferences/middleware/quirks.dm # code/modules/jobs/job_types/head_of_security.dm # code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm # code/modules/research/techweb/all_nodes.dm # code/modules/vehicles/sealed.dm # modular_skyrat/modules/automapper/code/area_spawn_subsystem.dm # modular_skyrat/modules/loadouts/loadout_items/donator/personal/donator_personal.dm # modular_skyrat/modules/veteran_players/code/veteran_players.dm
This commit is contained in:
@@ -1,6 +1,48 @@
|
||||
#define EXP_ASSIGN_WAYFINDER 1200
|
||||
#define RANDOM_QUIRK_BONUS 3
|
||||
#define MINIMUM_RANDOM_QUIRKS 3
|
||||
|
||||
// Shifted to glob so they are generated at world start instead of risking players doing preference stuff before the subsystem inits
|
||||
GLOBAL_LIST_INIT_TYPED(quirk_blacklist, /list/datum/quirk, list(
|
||||
list(/datum/quirk/item_quirk/blindness, /datum/quirk/item_quirk/nearsighted),
|
||||
list(/datum/quirk/jolly, /datum/quirk/depression, /datum/quirk/apathetic, /datum/quirk/hypersensitive),
|
||||
list(/datum/quirk/no_taste, /datum/quirk/vegetarian, /datum/quirk/deviant_tastes, /datum/quirk/gamer),
|
||||
list(/datum/quirk/pineapple_liker, /datum/quirk/pineapple_hater, /datum/quirk/gamer),
|
||||
list(/datum/quirk/alcohol_tolerance, /datum/quirk/light_drinker),
|
||||
list(/datum/quirk/item_quirk/clown_enjoyer, /datum/quirk/item_quirk/mime_fan, /datum/quirk/item_quirk/pride_pin),
|
||||
list(/datum/quirk/bad_touch, /datum/quirk/friendly),
|
||||
list(/datum/quirk/extrovert, /datum/quirk/introvert),
|
||||
list(/datum/quirk/prosthetic_limb, /datum/quirk/quadruple_amputee, /datum/quirk/body_purist),
|
||||
list(/datum/quirk/prosthetic_organ, /datum/quirk/tin_man, /datum/quirk/body_purist),
|
||||
list(/datum/quirk/quadruple_amputee, /datum/quirk/paraplegic, /datum/quirk/hemiplegic),
|
||||
list(/datum/quirk/quadruple_amputee, /datum/quirk/frail),
|
||||
list(/datum/quirk/social_anxiety, /datum/quirk/mute),
|
||||
list(/datum/quirk/mute, /datum/quirk/softspoken),
|
||||
list(/datum/quirk/poor_aim, /datum/quirk/bighands),
|
||||
list(/datum/quirk/bilingual, /datum/quirk/foreigner),
|
||||
list(/datum/quirk/spacer_born, /datum/quirk/paraplegic, /datum/quirk/item_quirk/settler),
|
||||
list(/datum/quirk/photophobia, /datum/quirk/nyctophobia),
|
||||
list(/datum/quirk/item_quirk/settler, /datum/quirk/freerunning),
|
||||
//SKYRAT EDIT ADDITION BEGIN
|
||||
list(/datum/quirk/equipping/nerve_staple, /datum/quirk/nonviolent),
|
||||
list(/datum/quirk/equipping/nerve_staple, /datum/quirk/item_quirk/nearsighted),
|
||||
list(/datum/quirk/no_guns, /datum/quirk/bighands, /datum/quirk/poor_aim),
|
||||
list(/datum/quirk/no_guns, /datum/quirk/nonviolent),
|
||||
list(/datum/quirk/spacer_born, /datum/quirk/oversized),
|
||||
//SKYRAT EDIT ADDITION END
|
||||
))
|
||||
|
||||
GLOBAL_LIST_INIT(quirk_string_blacklist, generate_quirk_string_blacklist())
|
||||
|
||||
/proc/generate_quirk_string_blacklist()
|
||||
var/list/string_blacklist = list()
|
||||
for(var/blacklist in GLOB.quirk_blacklist)
|
||||
var/list/string_list = list()
|
||||
for(var/datum/quirk/typepath as anything in blacklist)
|
||||
string_list += initial(typepath.name)
|
||||
string_blacklist += list(string_list)
|
||||
return string_blacklist
|
||||
|
||||
//Used to process and handle roundstart quirks
|
||||
// - Quirk strings are used for faster checking in code
|
||||
// - Quirk datums are stored and hold different effects, as well as being a vector for applying trait string
|
||||
@@ -15,43 +57,12 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
|
||||
var/list/quirk_points = list() //Assoc. list of quirk names and their "point cost"; positive numbers are good traits, and negative ones are bad
|
||||
///An assoc list of quirks that can be obtained as a hardcore character, and their hardcore value.
|
||||
var/list/hardcore_quirks = list()
|
||||
|
||||
/// A list of quirks that can not be used with each other. Format: list(quirk1,quirk2),list(quirk3,quirk4)
|
||||
var/static/list/quirk_blacklist = list(
|
||||
list("Blind", "Nearsighted"),
|
||||
list("Jolly", "Depression", "Apathetic", "Hypersensitive"),
|
||||
list("Ageusia", "Vegetarian", "Deviant Tastes", "Gamer"),
|
||||
list("Ananas Affinity", "Ananas Aversion", "Gamer"),
|
||||
list("Alcohol Tolerance", "Light Drinker"),
|
||||
list("Clown Enjoyer", "Mime Fan", "Pride Pin"),
|
||||
list("Bad Touch", "Friendly"),
|
||||
list("Extrovert", "Introvert"),
|
||||
list("Prosthetic Limb", "Quadruple Amputee", "Body Purist"),
|
||||
list("Prosthetic Organ", "Tin Man", "Body Purist"),
|
||||
list("Quadruple Amputee", "Paraplegic", "Hemiplegic"),
|
||||
list("Quadruple Amputee", "Frail"),
|
||||
list("Social Anxiety", "Mute"),
|
||||
list("Mute", "Soft-Spoken"),
|
||||
list("Stormtrooper Aim", "Big Hands"),
|
||||
list("Bilingual", "Foreigner"),
|
||||
list("Spacer", "Paraplegic"),
|
||||
list("Photophobia", "Nyctophobia"),
|
||||
//SKYRAT EDIT ADDITION BEGIN
|
||||
list("Nerve Stapled", "Pacifist"),
|
||||
list("Nerve Stapled", "Nearsighted"),
|
||||
list("No Guns", "Big Hands", "Stormtrooper Aim"),
|
||||
list("No Guns", "Pacifist"),
|
||||
list("Spacer", "Oversized"),
|
||||
//SKYRAT EDIT ADDITION END
|
||||
)
|
||||
|
||||
//BUBBER EDIT ADDITION START - Species quirks
|
||||
/// A list of quirks that can only be used by a certain species. Format: list(quirk, species define)
|
||||
var/static/list/quirk_species_whitelist = list(
|
||||
list("Hydrophilic", "[SPECIES_SLIMESTART]")
|
||||
)
|
||||
//BUBBER EDIT ADDITION END
|
||||
|
||||
/datum/controller/subsystem/processing/quirks/Initialize()
|
||||
get_quirks()
|
||||
return SS_INIT_SUCCESS
|
||||
@@ -119,7 +130,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
|
||||
//Create a random list of stuff to start with
|
||||
while(bonus_quirks > added_quirk_count)
|
||||
var/quirk = pick(possible_quirks) //quirk is a string
|
||||
if(quirk in quirk_blacklist) //prevent blacklisted
|
||||
if(quirk in GLOB.quirk_blacklist) //prevent blacklisted
|
||||
possible_quirks -= quirk
|
||||
continue
|
||||
if(quirk_points[quirk] > 0)
|
||||
@@ -134,7 +145,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
|
||||
if(!length(possible_quirks))//Lets not get stuck
|
||||
break
|
||||
var/quirk = pick(quirks)
|
||||
if(quirk in quirk_blacklist) //prevent blacklisted
|
||||
if(quirk in GLOB.quirk_blacklist) //prevent blacklisted
|
||||
possible_quirks -= quirk
|
||||
continue
|
||||
if(!quirk_points[quirk] < 0)//negative only
|
||||
@@ -149,7 +160,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
|
||||
if(!length(possible_quirks))//Lets not get stuck
|
||||
break
|
||||
var/quirk = pick(quirks)
|
||||
if(quirk in quirk_blacklist) //prevent blacklisted
|
||||
if(quirk in GLOB.quirk_blacklist) //prevent blacklisted
|
||||
possible_quirks -= quirk
|
||||
continue
|
||||
if(!quirk_points[quirk] > 0) //positive only
|
||||
@@ -194,7 +205,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
|
||||
|
||||
var/blacklisted = FALSE
|
||||
|
||||
for (var/list/blacklist as anything in quirk_blacklist)
|
||||
for (var/list/blacklist as anything in GLOB.quirk_blacklist)
|
||||
if (!(quirk in blacklist))
|
||||
continue
|
||||
|
||||
|
||||
Reference in New Issue
Block a user