mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 20:48:56 +01:00
Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29
# Conflicts: # _maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm # _maps/RandomRuins/SpaceRuins/garbagetruck2.dmm # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # _maps/map_files/tramstation/tramstation.dmm # code/_onclick/hud/new_player.dm # code/datums/components/squashable.dm # code/datums/diseases/advance/symptoms/heal.dm # code/datums/diseases/chronic_illness.dm # code/datums/status_effects/buffs.dm # code/datums/status_effects/debuffs/drunk.dm # code/datums/status_effects/debuffs/stamcrit.dm # code/game/machinery/computer/crew.dm # code/game/objects/items/devices/scanners/health_analyzer.dm # code/game/objects/items/wall_mounted.dm # code/game/turfs/closed/indestructible.dm # code/modules/admin/view_variables/filterrific.dm # code/modules/antagonists/heretic/influences.dm # code/modules/cargo/orderconsole.dm # code/modules/client/preferences.dm # code/modules/events/space_vines/vine_mutations.dm # code/modules/mob/dead/new_player/new_player.dm # code/modules/mob/living/carbon/human/death.dm # code/modules/mob/living/carbon/human/species_types/jellypeople.dm # code/modules/mob/living/damage_procs.dm # code/modules/mob/living/living.dm # code/modules/mob_spawn/ghost_roles/mining_roles.dm # code/modules/mob_spawn/mob_spawn.dm # code/modules/projectiles/ammunition/energy/laser.dm # code/modules/projectiles/guns/ballistic/launchers.dm # code/modules/projectiles/guns/energy/laser.dm # code/modules/reagents/chemistry/machinery/chem_dispenser.dm # code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm # code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm # code/modules/reagents/chemistry/reagents/medicine_reagents.dm # code/modules/surgery/healing.dm # code/modules/unit_tests/designs.dm # icons/mob/inhands/items_lefthand.dmi # icons/mob/inhands/items_righthand.dmi # tgui/packages/tgui/interfaces/ChemDispenser.tsx
This commit is contained in:
@@ -61,22 +61,32 @@ DEFINE_BITFIELD(appearance_flags, list(
|
||||
))
|
||||
|
||||
DEFINE_BITFIELD(area_flags, list(
|
||||
"BLOBS_ALLOWED" = BLOBS_ALLOWED,
|
||||
"BLOCK_SUICIDE" = BLOCK_SUICIDE,
|
||||
"CAVES_ALLOWED" = CAVES_ALLOWED,
|
||||
"CULT_PERMITTED" = CULT_PERMITTED,
|
||||
"FLORA_ALLOWED" = FLORA_ALLOWED,
|
||||
"HIDDEN_AREA" = HIDDEN_AREA,
|
||||
"MEGAFAUNA_SPAWN_ALLOWED" = MEGAFAUNA_SPAWN_ALLOWED,
|
||||
"MOB_SPAWN_ALLOWED" = MOB_SPAWN_ALLOWED,
|
||||
"NOTELEPORT" = NOTELEPORT,
|
||||
"NO_DEATH_MESSAGE" = NO_DEATH_MESSAGE,
|
||||
"PERSISTENT_ENGRAVINGS" = PERSISTENT_ENGRAVINGS,
|
||||
"UNIQUE_AREA" = UNIQUE_AREA,
|
||||
"VALID_TERRITORY" = VALID_TERRITORY,
|
||||
"BLOBS_ALLOWED" = BLOBS_ALLOWED,
|
||||
"NOTELEPORT" = NOTELEPORT,
|
||||
"HIDDEN_AREA" = HIDDEN_AREA,
|
||||
"BLOCK_SUICIDE" = BLOCK_SUICIDE,
|
||||
"XENOBIOLOGY_COMPATIBLE" = XENOBIOLOGY_COMPATIBLE,
|
||||
"CULT_PERMITTED" = CULT_PERMITTED,
|
||||
"NO_DEATH_MESSAGE" = NO_DEATH_MESSAGE,
|
||||
"EVENT_PROTECTED" = EVENT_PROTECTED,
|
||||
"QUIET_LOGS" = QUIET_LOGS,
|
||||
"BINARY_JAMMING" = BINARY_JAMMING,
|
||||
"NO_BOH" = NO_BOH,
|
||||
"UNLIMITED_FISHING" = UNLIMITED_FISHING,
|
||||
"NO_GRAVITY" = NO_GRAVITY,
|
||||
"LOCAL_TELEPORT" = LOCAL_TELEPORT,
|
||||
))
|
||||
|
||||
DEFINE_BITFIELD(area_flags_mapping, list(
|
||||
"UNIQUE_AREA" = UNIQUE_AREA,
|
||||
"CAVES_ALLOWED" = CAVES_ALLOWED,
|
||||
"FLORA_ALLOWED" = FLORA_ALLOWED,
|
||||
"MOB_SPAWN_ALLOWED" = MOB_SPAWN_ALLOWED,
|
||||
"MEGAFAUNA_SPAWN_ALLOWED" = MEGAFAUNA_SPAWN_ALLOWED,
|
||||
"PERSISTENT_ENGRAVINGS" = PERSISTENT_ENGRAVINGS,
|
||||
"VIRTUAL_AREA" = VIRTUAL_AREA,
|
||||
"VIRTUAL_SAFE_AREA" = VIRTUAL_SAFE_AREA,
|
||||
))
|
||||
|
||||
DEFINE_BITFIELD(turf_flags, list(
|
||||
@@ -112,6 +122,7 @@ DEFINE_BITFIELD(clothing_flags, list(
|
||||
"VOICEBOX_DISABLED" = VOICEBOX_DISABLED,
|
||||
"VOICEBOX_TOGGLABLE" = VOICEBOX_TOGGLABLE,
|
||||
"INTERNALS_ADJUST_EXEMPT" = INTERNALS_ADJUST_EXEMPT,
|
||||
"NO_ZONE_DISABLING" = NO_ZONE_DISABLING,
|
||||
))
|
||||
|
||||
DEFINE_BITFIELD(datum_flags, list(
|
||||
@@ -511,6 +522,17 @@ DEFINE_BITFIELD(bodypart_flags, list(
|
||||
"BODYPART_IMPLANTED" = BODYPART_IMPLANTED,
|
||||
))
|
||||
|
||||
DEFINE_BITFIELD(biological_state, list(
|
||||
"BIO_INORGANIC" = BIO_INORGANIC,
|
||||
"BIO_BONE" = BIO_BONE,
|
||||
"BIO_FLESH" = BIO_FLESH,
|
||||
"BIO_METAL" = BIO_METAL,
|
||||
"BIO_WOOD" = BIO_WOOD,
|
||||
"BIO_WIRED" = BIO_WIRED,
|
||||
"BIO_BLOODED" = BIO_BLOODED,
|
||||
"BIO_JOINTED" = BIO_JOINTED,
|
||||
))
|
||||
|
||||
DEFINE_BITFIELD(change_exempt_flags, list(
|
||||
"BP_BLOCK_CHANGE_SPECIES" = BP_BLOCK_CHANGE_SPECIES,
|
||||
))
|
||||
@@ -706,3 +728,8 @@ DEFINE_BITFIELD(visible_info, list(
|
||||
"EMPATH_SEE_COLD" = EMPATH_SEE_COLD,
|
||||
"EMPATH_SEE_EVIL" = EMPATH_SEE_EVIL,
|
||||
))
|
||||
|
||||
DEFINE_BITFIELD(allow_custom_character, list(
|
||||
"GHOSTROLE_TAKE_PREFS_SPECIES" = GHOSTROLE_TAKE_PREFS_SPECIES,
|
||||
"GHOSTROLE_TAKE_PREFS_APPEARANCE" = GHOSTROLE_TAKE_PREFS_APPEARANCE,
|
||||
))
|
||||
|
||||
@@ -13,10 +13,10 @@ GLOBAL_VAR_INIT(ooc_allowed, TRUE) // used with admin verbs to disable ooc - not
|
||||
GLOBAL_VAR_INIT(dooc_allowed, TRUE)
|
||||
|
||||
|
||||
// Debug is used exactly once (in living.dm) but is commented out in a lot of places. It is not set anywhere and only checked.
|
||||
// Debug2 is used in conjunction with a lot of admin verbs and therefore is actually legit.
|
||||
GLOBAL_VAR_INIT(Debug, FALSE) // global debug switch
|
||||
GLOBAL_VAR_INIT(Debug2, FALSE)
|
||||
// debugging_enabled is used in conjunction with a lot of admin verbs and therefore is actually legit.
|
||||
// im not sure why you would ever add behavoir, likely use a define like TESTING or even checking `Debugger?.enabled`
|
||||
/// global debug switch
|
||||
GLOBAL_VAR_INIT(debugging_enabled, FALSE)
|
||||
|
||||
//This was a define, but I changed it to a variable so it can be changed in-game.(kept the all-caps definition because... code...) -Errorage
|
||||
//Protecting these because the proper way to edit them is with the config/secrets
|
||||
|
||||
@@ -4,9 +4,12 @@ GLOBAL_LIST_INIT_TYPED(language_datum_instances, /datum/language, init_language_
|
||||
GLOBAL_LIST_INIT(all_languages, init_all_languages())
|
||||
/// /List of language prototypes to reference, assoc "name" = typepath
|
||||
GLOBAL_LIST_INIT(language_types_by_name, init_language_types_by_name())
|
||||
/// 1000 element long list containing the 1000 most common words in the English language.
|
||||
/// ~1400 element long list containing the 1000 most common words in the English language in alphabetical order.
|
||||
/// Indexed by word, value is the rank of the word in the list. So accessing it is fasta.
|
||||
GLOBAL_LIST_INIT(most_common_words, init_common_words())
|
||||
GLOBAL_LIST_INIT(most_common_words_alphabetical, init_common_words_by_alphabetical())
|
||||
/// ~1000 element long list containing the 1000 most common words in the English language in frequency order.
|
||||
/// Indexed by word, value is the rank of the word in the list. So accessing it is fasta.
|
||||
GLOBAL_LIST_INIT(most_common_words_frequency, init_common_words_by_frequency())
|
||||
|
||||
/proc/init_language_prototypes()
|
||||
var/list/lang_list = list()
|
||||
@@ -33,10 +36,22 @@ GLOBAL_LIST_INIT(most_common_words, init_common_words())
|
||||
lang_list[initial(lang_type.name)] = lang_type
|
||||
return lang_list
|
||||
|
||||
/proc/init_common_words()
|
||||
/proc/init_common_words_by_alphabetical()
|
||||
var/list/word_to_commonness_list = list()
|
||||
var/i = 1
|
||||
for(var/word in world.file2list("strings/1000_most_common.txt"))
|
||||
for(var/word in world.file2list("strings/1400_most_common_alpha.txt"))
|
||||
word_to_commonness_list[word] = i
|
||||
i += 1
|
||||
return word_to_commonness_list
|
||||
|
||||
/proc/init_common_words_by_frequency()
|
||||
var/list/word_to_commonness_list = list()
|
||||
var/i = 1
|
||||
for(var/word in world.file2list("strings/1000_most_common_frequency.txt"))
|
||||
word_to_commonness_list[word] = i
|
||||
i += 1
|
||||
// alphabetical list has a few more entries than the frequency list, so
|
||||
// if there are any words we're missing, add them with a default "commonness" of 500
|
||||
for(var/word in world.file2list("strings/1400_most_common_alpha.txt"))
|
||||
word_to_commonness_list[word] ||= 500
|
||||
return word_to_commonness_list
|
||||
|
||||
@@ -8,32 +8,15 @@ GLOBAL_LIST_EMPTY(stealthminID) //reference list with IDs that store ckeys, for
|
||||
|
||||
/// List of types of abstract mob which shouldn't usually exist in the world on its own if we're spawning random mobs
|
||||
GLOBAL_LIST_INIT(abstract_mob_types, list(
|
||||
/mob/living/basic,
|
||||
/mob/living/basic/blob_minion,
|
||||
/mob/living/basic/bot,
|
||||
/mob/living/basic/construct,
|
||||
/mob/living/basic/guardian,
|
||||
/mob/living/basic/heretic_summon,
|
||||
/mob/living/basic/mimic, // Cannot exist if spawned without being passed an item reference
|
||||
/mob/living/basic/mining,
|
||||
/mob/living/basic/pet,
|
||||
/mob/living/basic/mimic/copy, // Cannot exist if spawned without being passed an item reference
|
||||
/mob/living/basic/soulscythe, // This is just a way for players to control the soulscythe item
|
||||
/mob/living/basic/spider,
|
||||
/mob/living/carbon,
|
||||
/mob/living/carbon/alien,
|
||||
/mob/living/carbon/alien/adult,
|
||||
/mob/living/carbon/human/consistent,
|
||||
/mob/living/carbon/human/dummy,
|
||||
/mob/living/carbon/human/dummy/consistent,
|
||||
/mob/living/carbon/human/species,
|
||||
/mob/living/silicon,
|
||||
/mob/living/simple_animal,
|
||||
/mob/living/simple_animal/bot,
|
||||
/mob/living/simple_animal/hostile,
|
||||
/mob/living/simple_animal/hostile/asteroid,
|
||||
/mob/living/simple_animal/hostile/asteroid/elite,
|
||||
/mob/living/simple_animal/hostile/megafauna,
|
||||
))
|
||||
))
|
||||
|
||||
|
||||
//Since it didn't really belong in any other category, I'm putting this here
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
#define POLL_IGNORE_GOLEM "golem"
|
||||
#define POLL_IGNORE_HERETIC_MONSTER "heretic_monster"
|
||||
#define POLL_IGNORE_HOLOPARASITE "holoparasite"
|
||||
#define POLL_IGNORE_HORRIFIC_NECKTIE "horrific_necktie"
|
||||
#define POLL_IGNORE_IMAGINARYFRIEND "imaginary_friend"
|
||||
#define POLL_IGNORE_LAVALAND_ELITE "lavaland_elite"
|
||||
#define POLL_IGNORE_MAID_IN_MIRROR "maid_in_mirror"
|
||||
@@ -59,6 +60,7 @@ GLOBAL_LIST_INIT(poll_ignore_desc, list(
|
||||
POLL_IGNORE_GOLEM = "Golems",
|
||||
POLL_IGNORE_HERETIC_MONSTER = "Heretic Monster",
|
||||
POLL_IGNORE_HOLOPARASITE = "Holoparasite",
|
||||
POLL_IGNORE_HORRIFIC_NECKTIE = "Horrific Necktie",
|
||||
POLL_IGNORE_IMAGINARYFRIEND = "Imaginary Friend",
|
||||
POLL_IGNORE_LAVALAND_ELITE = "Lavaland elite",
|
||||
POLL_IGNORE_MAID_IN_MIRROR = "Maid in the Mirror",
|
||||
|
||||
@@ -182,7 +182,12 @@ GLOBAL_LIST_INIT(plant_traits, init_plant_traits())
|
||||
|
||||
if(!is_type_in_typecache(reaction.type, blacklist))
|
||||
//Master list of ALL reactions that is used in the UI lookup table. This is expensive to make, and we don't want to lag the server by creating it on UI request, so it's cached to send to UIs instantly.
|
||||
GLOB.chemical_reactions_results_lookup_list += list(list("name" = product_name, "id" = reaction.type, "bitflags" = bitflags, "reactants" = reagents))
|
||||
GLOB.chemical_reactions_results_lookup_list += list(list(
|
||||
"name" = product_name,
|
||||
"id" = reaction.type,
|
||||
"bitflags" = bitflags,
|
||||
"reactants" = reagents,
|
||||
))
|
||||
|
||||
// Create filters based on each reagent id in the required reagents list - this is specifically for finding reactions from product(reagent) ids/typepaths.
|
||||
for(var/id in product_ids)
|
||||
|
||||
@@ -823,6 +823,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
|
||||
"TRAIT_MECHA_DIAGNOSTIC_CREATED" = TRAIT_MECHA_DIAGNOSTIC_CREATED,
|
||||
),
|
||||
/turf = list(
|
||||
"TRAIT_AI_AVOID_TURF" = TRAIT_AI_AVOID_TURF,
|
||||
"TRAIT_CHASM_STOPPED" = TRAIT_CHASM_STOPPED,
|
||||
"TRAIT_CONTAINMENT_FIELD" = TRAIT_CONTAINMENT_FIELD,
|
||||
"TRAIT_ELEVATED_TURF" = TRAIT_ELEVATED_TURF,
|
||||
|
||||
Reference in New Issue
Block a user