Merge remote-tracking branch 'skrat/master' into upstream-2024-02-03

# Conflicts:
#	_maps/map_files/IceBoxStation/IceBoxStation.dmm
#	_maps/map_files/KiloStation/KiloStation.dmm
#	_maps/map_files/tramstation/tramstation.dmm
#	_maps/skyrat/automapper/automapper_config.toml
#	code/controllers/subsystem/statpanel.dm
#	code/datums/chatmessage.dm
#	code/datums/quirks/negative_quirks/claustrophobia.dm
#	code/game/objects/items/tools/weldingtool.dm
#	code/modules/client/preferences/middleware/quirks.dm
#	code/modules/mob/living/carbon/carbon_defense.dm
#	code/modules/mob/living/carbon/human/human_defense.dm
#	code/modules/mob/living/carbon/human/inventory.dm
#	code/modules/mob/living/living_say.dm
#	code/modules/modular_computers/file_system/programs/jobmanagement.dm
#	code/modules/projectiles/guns/energy/kinetic_accelerator.dm
#	code/modules/research/designs/mechfabricator_designs.dm
#	code/modules/research/machinery/_production.dm
#	code/modules/surgery/organs/internal/_internal_organ.dm
#	html/changelogs/archive/2024-01.yml
#	modular_skyrat/modules/automapper/code/area_spawn_entries.dm
#	modular_skyrat/modules/jukebox/code/jukebox_subsystem.dm
#	modular_skyrat/modules/loadouts/loadout_items/loadout_datum_heads.dm
#	modular_skyrat/modules/loadouts/loadout_items/loadout_datum_suit.dm
#	modular_skyrat/modules/loadouts/loadout_items/under/loadout_datum_under.dm
#	modular_skyrat/modules/synths/code/bodyparts/power_cord.dm
#	tgstation.dme
#	tgui/packages/tgui/components/Dropdown.tsx
#	tgui/packages/tgui/components/Input.tsx
#	tgui/packages/tgui/interfaces/Fabrication/DesignBrowser.tsx
#	tgui/packages/tgui/interfaces/Jukebox.jsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/QuirksPage.tsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/data.ts
#	tgui/packages/tgui/interfaces/common/SearchBar.tsx
This commit is contained in:
nevimer
2024-02-03 21:08:40 -05:00
1451 changed files with 57801 additions and 80514 deletions
+27 -16
View File
@@ -32,6 +32,9 @@ GLOBAL_LIST_INIT_TYPED(quirk_blacklist, /list/datum/quirk, list(
list(/datum/quirk/spacer_born, /datum/quirk/oversized),
list(/datum/quirk/feline_aspect, /datum/quirk/item_quirk/canine, /datum/quirk/item_quirk/avian),
list(/datum/quirk/all_nighter, /datum/quirk/heavy_sleeper),
list(/datum/quirk/light_drinker, /datum/quirk/drunkhealing),
list(/datum/quirk/oversized, /datum/quirk/freerunning),
list(/datum/quirk/oversized, /datum/quirk/item_quirk/settler),
//SKYRAT EDIT ADDITION END
))
@@ -126,10 +129,15 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
var/bonus_quirks = max((length(user.quirks) + rand(-RANDOM_QUIRK_BONUS, RANDOM_QUIRK_BONUS)), MINIMUM_RANDOM_QUIRKS)
var/added_quirk_count = 0 //How many we've added
var/list/quirks_to_add = list() //Quirks we're adding
var/good_count = 0 //Maximum of 6 good perks
var/good_count = 0
var/score //What point score we're at
///Cached list of possible quirks
var/list/possible_quirks = quirks.Copy()
var/max_positive_quirks = CONFIG_GET(number/max_positive_quirks)
if(max_positive_quirks < 0)
max_positive_quirks = 6
//Create a random list of stuff to start with
while(bonus_quirks > added_quirk_count)
var/quirk = pick(possible_quirks) //quirk is a string
@@ -159,19 +167,20 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
quirks_to_add += quirk
//And have benefits too
while(score < 0 && good_count <= MAX_QUIRKS)
if(!length(possible_quirks))//Lets not get stuck
break
var/quirk = pick(quirks)
if(quirk in GLOB.quirk_blacklist) //prevent blacklisted
possible_quirks -= quirk
continue
if(!quirk_points[quirk] > 0) //positive only
possible_quirks -= quirk
continue
good_count++
score += quirk_points[quirk]
quirks_to_add += quirk
if(max_positive_quirks > 0)
while(score < 0 && good_count <= max_positive_quirks)
if(!length(possible_quirks))//Lets not get stuck
break
var/quirk = pick(quirks)
if(quirk in GLOB.quirk_blacklist) //prevent blacklisted
possible_quirks -= quirk
continue
if(!(quirk_points[quirk] > 0)) //positive only
possible_quirks -= quirk
continue
good_count++
score += quirk_points[quirk]
quirks_to_add += quirk
for(var/datum/quirk/quirk as anything in user.quirks)
if(quirk.name in quirks_to_add) //Don't delete ones we keep
@@ -189,6 +198,8 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
/datum/controller/subsystem/processing/quirks/proc/filter_invalid_quirks(list/quirks, list/augments) // SKYRAT EDIT - AUGMENTS+
var/list/new_quirks = list()
var/list/positive_quirks = list()
var/points_enabled = !CONFIG_GET(flag/disable_quirk_points)
var/max_positive_quirks = CONFIG_GET(number/max_positive_quirks)
var/balance = 0
var/list/all_quirks = get_quirks()
@@ -225,7 +236,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
var/value = initial(quirk.value)
if (value > 0)
if (positive_quirks.len == MAX_QUIRKS)
if (max_positive_quirks >= 0 && positive_quirks.len == max_positive_quirks)
continue
positive_quirks[quirk_name] = value
@@ -233,7 +244,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
balance += value
new_quirks += quirk_name
if (balance > 0)
if (points_enabled && balance > 0)
var/balance_left_to_remove = balance
for (var/positive_quirk in positive_quirks)