mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-13 17:14:47 +01:00
00ccf0c6b5
# Conflicts: # .github/CODEOWNERS # .github/workflows/compile_changelogs.yml # .github/workflows/stale.yml # SQL/database_changelog.md # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # code/__DEFINES/atom_hud.dm # code/__DEFINES/inventory.dm # code/__DEFINES/mobs.dm # code/__DEFINES/species_clothing_paths.dm # code/__DEFINES/subsystems.dm # code/__DEFINES/surgery.dm # code/__HELPERS/global_lists.dm # code/_globalvars/lists/maintenance_loot.dm # code/_globalvars/traits/_traits.dm # code/controllers/subsystem/minor_mapping.dm # code/controllers/subsystem/processing/quirks.dm # code/controllers/subsystem/shuttle.dm # code/datums/components/palette.dm # code/datums/components/surgery_initiator.dm # code/datums/diseases/advance/advance.dm # code/datums/hud.dm # code/datums/mood.dm # code/datums/mutations/chameleon.dm # code/datums/quirks/negative_quirks/nyctophobia.dm # code/datums/status_effects/debuffs/debuffs.dm # code/datums/status_effects/debuffs/drunk.dm # code/datums/status_effects/debuffs/slime/slime_leech.dm # code/datums/weather/weather.dm # code/game/data_huds.dm # code/game/objects/items.dm # code/game/objects/items/devices/scanners/health_analyzer.dm # code/game/objects/items/frog_statue.dm # code/game/objects/items/rcd/RLD.dm # code/game/objects/items/robot/items/hypo.dm # code/game/objects/items/stacks/medical.dm # code/game/objects/items/stacks/wrap.dm # code/game/objects/items/storage/garment.dm # code/game/objects/items/tools/medical/defib.dm # code/game/objects/items/weaponry.dm # code/game/objects/items/weaponry/melee/misc.dm # code/game/objects/structures/crates_lockers/closets/secure/security.dm # code/game/objects/structures/curtains.dm # code/game/objects/structures/dresser.dm # code/game/objects/structures/girders.dm # code/game/objects/structures/maintenance.dm # code/game/objects/structures/mirror.dm # code/modules/admin/greyscale_modify_menu.dm # code/modules/admin/verbs/light_debug.dm # code/modules/antagonists/ashwalker/ashwalker.dm # code/modules/antagonists/heretic/knowledge/starting_lore.dm # code/modules/antagonists/ninja/ninjaDrainAct.dm # code/modules/art/paintings.dm # code/modules/client/preferences.dm # code/modules/client/verbs/ooc.dm # code/modules/clothing/head/wig.dm # code/modules/events/disease_outbreak.dm # code/modules/holodeck/holo_effect.dm # code/modules/jobs/job_types/head_of_security.dm # code/modules/jobs/job_types/security_officer.dm # code/modules/library/skill_learning/generic_skillchips/point.dm # code/modules/mining/lavaland/ash_flora.dm # code/modules/mining/lavaland/mining_loot/megafauna/ash_drake.dm # code/modules/mob/dead/new_player/new_player.dm # code/modules/mob/living/basic/guardian/guardian.dm # code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm # code/modules/mob/living/carbon/carbon.dm # code/modules/mob/living/carbon/human/human.dm # code/modules/mob/living/carbon/human/human_defines.dm # code/modules/mob/living/carbon/life.dm # code/modules/mob/living/living.dm # code/modules/mob/living/living_defines.dm # code/modules/mob/mob.dm # code/modules/mob_spawn/ghost_roles/mining_roles.dm # code/modules/mod/mod_control.dm # code/modules/mod/modules/modules_general.dm # code/modules/modular_computers/computers/item/computer_ui.dm # code/modules/paperwork/paper.dm # code/modules/paperwork/paperbin.dm # code/modules/power/lighting/light.dm # code/modules/projectiles/guns/energy/kinetic_accelerator.dm # code/modules/projectiles/projectile.dm # code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm # code/modules/reagents/chemistry/reagents/food_reagents.dm # code/modules/reagents/chemistry/reagents/other_reagents.dm # code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm # code/modules/research/xenobiology/crossbreeding/_clothing.dm # code/modules/research/xenobiology/crossbreeding/prismatic.dm # code/modules/surgery/advanced/brainwashing.dm # code/modules/surgery/advanced/lobotomy.dm # code/modules/surgery/amputation.dm # code/modules/surgery/blood_filter.dm # code/modules/surgery/bodyparts/_bodyparts.dm # code/modules/surgery/brain_surgery.dm # code/modules/surgery/cavity_implant.dm # code/modules/surgery/coronary_bypass.dm # code/modules/surgery/gastrectomy.dm # code/modules/surgery/healing.dm # code/modules/surgery/limb_augmentation.dm # code/modules/surgery/organ_manipulation.dm # code/modules/surgery/revival.dm # code/modules/surgery/sleeper_protocol.dm # code/modules/surgery/surgery_helpers.dm # code/modules/surgery/surgery_step.dm # code/modules/unit_tests/_unit_tests.dm # code/modules/unit_tests/designs.dm # code/modules/unit_tests/icon_state_worn.dm # code/modules/unit_tests/screenshots/screenshot_antag_icons_cultist.png # code/modules/unit_tests/screenshots/screenshot_antag_icons_headrevolutionary.png # code/modules/unit_tests/screenshots/screenshot_antag_icons_provocateur.png # code/modules/unit_tests/screenshots/screenshot_husk_body.png # code/modules/unit_tests/screenshots/screenshot_husk_body_missing_limbs.png # icons/map_icons/clothing/head/_head.dmi # icons/map_icons/clothing/shoes.dmi # icons/map_icons/items/_item.dmi # icons/mob/huds/hud.dmi # icons/mob/inhands/64x64_lefthand.dmi # icons/mob/inhands/64x64_righthand.dmi # icons/obj/machines/computer.dmi # tgui/packages/tgui/interfaces/OperatingComputer.jsx # tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/MainPage.tsx # tgui/packages/tgui/interfaces/PreferencesMenu/types.ts # tgui/packages/tgui/interfaces/SurgeryInitiator.tsx # tools/icon_cutter/check.py
169 lines
7.0 KiB
Plaintext
169 lines
7.0 KiB
Plaintext
GLOBAL_LIST_EMPTY(clients) //all clients
|
|
GLOBAL_LIST_EMPTY(admins) //all clients whom are admins
|
|
GLOBAL_PROTECT(admins)
|
|
GLOBAL_LIST_EMPTY(deadmins) //all ckeys who have used the de-admin verb.
|
|
|
|
GLOBAL_LIST_EMPTY(directory) //all ckeys with associated client
|
|
GLOBAL_LIST_EMPTY(stealthminID) //reference list with IDs that store ckeys, for stealthmins
|
|
|
|
/// 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/construct,
|
|
/mob/living/basic/guardian,
|
|
/mob/living/basic/heretic_summon,
|
|
/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/carbon/human/consistent,
|
|
/mob/living/carbon/human/dummy,
|
|
/mob/living/carbon/human/dummy/consistent,
|
|
))
|
|
|
|
|
|
//Since it didn't really belong in any other category, I'm putting this here
|
|
//This is for procs to replace all the goddamn 'in world's that are chilling around the code
|
|
|
|
GLOBAL_LIST_EMPTY(player_list) //all mobs **with clients attached**.
|
|
GLOBAL_LIST_EMPTY(keyloop_list) //as above but can be limited to boost performance
|
|
GLOBAL_LIST_EMPTY(mob_list) //all mobs, including clientless
|
|
GLOBAL_LIST_EMPTY(alive_mob_list) //all alive mobs, including clientless. Excludes /mob/dead/new_player
|
|
GLOBAL_LIST_EMPTY(suicided_mob_list) //contains a list of all mobs that suicided, including their associated ghosts.
|
|
GLOBAL_LIST_EMPTY(drones_list)
|
|
GLOBAL_LIST_EMPTY(dead_mob_list) //all dead mobs, including clientless. Excludes /mob/dead/new_player
|
|
GLOBAL_LIST_EMPTY(joined_player_list) //all ckeys that have joined the game at round-start or as a latejoin.
|
|
GLOBAL_LIST_EMPTY(new_player_list) //all /mob/dead/new_player, in theory all should have clients and those that don't are in the process of spawning and get deleted when done.
|
|
GLOBAL_LIST_EMPTY(pre_setup_antags) //minds that have been picked as antag by the gamemode. removed as antag datums are set.
|
|
GLOBAL_LIST_EMPTY(silicon_mobs) //all silicon mobs
|
|
GLOBAL_LIST_EMPTY(mob_living_list) //all instances of /mob/living and subtypes
|
|
GLOBAL_LIST_EMPTY(carbon_list) //all instances of /mob/living/carbon and subtypes, notably does not contain brains or simple animals
|
|
GLOBAL_LIST_EMPTY(human_list) //all instances of /mob/living/carbon/human and subtypes
|
|
GLOBAL_LIST_EMPTY(ai_list)
|
|
GLOBAL_LIST_EMPTY(available_ai_shells)
|
|
GLOBAL_LIST_INIT(simple_animals, list(list(),list(),list())) // One for each AI_* status define
|
|
GLOBAL_LIST_EMPTY(spidermobs) //all sentient spider mobs
|
|
GLOBAL_LIST_EMPTY(bots_list)
|
|
GLOBAL_LIST_EMPTY(camera_eyes)
|
|
GLOBAL_LIST_EMPTY(suit_sensors_list) //all people with suit sensors on
|
|
GLOBAL_LIST_EMPTY(nanite_sensors_list) //app people with nanite monitoring program // BUBBER EDIT ADDITION
|
|
|
|
/// All alive mobs with clients.
|
|
GLOBAL_LIST_EMPTY(alive_player_list)
|
|
|
|
/// All dead mobs with clients. Does not include observers.
|
|
GLOBAL_LIST_EMPTY(dead_player_list)
|
|
|
|
/// All alive antags with clients.
|
|
GLOBAL_LIST_EMPTY(current_living_antags)
|
|
|
|
/// All observers with clients that joined as observers.
|
|
GLOBAL_LIST_EMPTY(current_observers_list)
|
|
|
|
/// All living mobs which can hear blob telepathy
|
|
GLOBAL_LIST_EMPTY(blob_telepathy_mobs)
|
|
|
|
/// All "living" (because revenants are in between mortal planes or whatever) mobs that can hear revenants
|
|
GLOBAL_LIST_EMPTY(revenant_relay_mobs)
|
|
|
|
///underages who have been reported to security for trying to buy things they shouldn't, so they can't spam
|
|
GLOBAL_LIST_EMPTY(narcd_underages)
|
|
|
|
/// A list of all the possible blood types, keyed by id (which is just the name in most cases)
|
|
GLOBAL_LIST_INIT(blood_types, init_blood_types())
|
|
|
|
/// Initializes the list of blood type singletons
|
|
/proc/init_blood_types()
|
|
. = list()
|
|
for(var/datum/blood_type/blood_type_path as anything in valid_subtypesof(/datum/blood_type))
|
|
var/datum/blood_type/new_type = new blood_type_path()
|
|
.[new_type.id] = new_type
|
|
|
|
/// An assoc list of species IDs to type paths
|
|
GLOBAL_LIST_INIT(species_list, init_species_list())
|
|
/// List of all species prototypes to reference, assoc [type] = prototype
|
|
GLOBAL_LIST_INIT_TYPED(species_prototypes, /datum/species, init_species_prototypes())
|
|
|
|
/proc/init_species_list()
|
|
var/list/species_list = list()
|
|
for(var/datum/species/species_path as anything in subtypesof(/datum/species))
|
|
species_list[initial(species_path.id)] = species_path
|
|
return species_list
|
|
|
|
/proc/init_species_prototypes()
|
|
var/list/species_list = list()
|
|
for(var/species_type in subtypesof(/datum/species))
|
|
species_list[species_type] = new species_type()
|
|
return species_list
|
|
|
|
GLOBAL_LIST_EMPTY(latejoin_ai_cores)
|
|
|
|
GLOBAL_LIST_EMPTY(mob_config_movespeed_type_lookup)
|
|
|
|
GLOBAL_LIST_EMPTY(emote_list)
|
|
|
|
GLOBAL_LIST_INIT(construct_radial_images, list(
|
|
CONSTRUCT_JUGGERNAUT = image(icon = 'icons/mob/nonhuman-player/cult.dmi', icon_state = "juggernaut"),
|
|
CONSTRUCT_WRAITH = image(icon = 'icons/mob/nonhuman-player/cult.dmi', icon_state = "wraith"),
|
|
CONSTRUCT_ARTIFICER = image(icon = 'icons/mob/nonhuman-player/cult.dmi', icon_state = "artificer")
|
|
))
|
|
|
|
/proc/update_config_movespeed_type_lookup(update_mobs = TRUE)
|
|
var/list/mob_types = list()
|
|
var/list/entry_value = CONFIG_GET(keyed_list/multiplicative_movespeed)
|
|
for(var/path in entry_value)
|
|
var/value = entry_value[path]
|
|
if(!value)
|
|
continue
|
|
for(var/subpath in typesof(path))
|
|
mob_types[subpath] = value
|
|
GLOB.mob_config_movespeed_type_lookup = mob_types
|
|
if(update_mobs)
|
|
update_mob_config_movespeeds()
|
|
|
|
/proc/update_mob_config_movespeeds()
|
|
for(var/i in GLOB.mob_list)
|
|
var/mob/M = i
|
|
M.update_config_movespeed()
|
|
|
|
/proc/init_emote_list()
|
|
. = list()
|
|
for(var/path in valid_subtypesof(/datum/emote))
|
|
var/datum/emote/E = new path()
|
|
if(E.key)
|
|
if(!.[E.key])
|
|
.[E.key] = list(E)
|
|
else
|
|
.[E.key] += E
|
|
else if(E.message) //Assuming all non-base emotes have this
|
|
stack_trace("Keyless emote: [E.type]")
|
|
|
|
if(E.key_third_person) //This one is optional
|
|
if(!.[E.key_third_person])
|
|
.[E.key_third_person] = list(E)
|
|
else
|
|
.[E.key_third_person] |= E
|
|
|
|
/proc/get_crewmember_minds()
|
|
var/list/minds = list()
|
|
for(var/datum/record/locked/target in GLOB.manifest.locked)
|
|
var/datum/mind/mind = target.mind_ref.resolve()
|
|
if(mind)
|
|
minds += mind
|
|
return minds
|
|
|
|
/// A keyed list of identity block singletons, in a key:value group of typepath:block
|
|
GLOBAL_LIST_INIT(dna_identity_blocks, init_identity_block_types())
|
|
|
|
/proc/init_identity_block_types()
|
|
. = list()
|
|
for(var/datum/dna_block/identity/block_path as anything in valid_subtypesof(/datum/dna_block/identity))
|
|
var/datum/dna_block/identity/new_block = new block_path()
|
|
.[block_path] = new_block
|
|
|
|
/// A keyed list of feature block singletons, in a key:value group of typepath:block
|
|
GLOBAL_LIST_INIT(dna_feature_blocks, init_feature_block_types())
|
|
|
|
/proc/init_feature_block_types()
|
|
. = list()
|
|
for(var/datum/dna_block/feature/block_path as anything in valid_subtypesof(/datum/dna_block/feature))
|
|
var/datum/dna_block/feature/new_block = new block_path()
|
|
.[block_path] = new_block
|