diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm index 428de96dfc5..7ecda17af15 100644 --- a/code/_helpers/global_lists.dm +++ b/code/_helpers/global_lists.dm @@ -97,23 +97,21 @@ var/global/list/string_slot_flags = list( return 1 // This is all placeholder procs for an eventual PR to change them to use decls. -var/list/all_species -var/list/playable_species // A list of ALL playable species, whitelisted, latejoin or otherwise. +var/list/all_species = list() +var/list/playable_species = list() // A list of ALL playable species, whitelisted, latejoin or otherwise. /proc/build_species_lists() - if(global.all_species && global.playable_species) - return - global.playable_species = list() - global.all_species = list() - for(var/species_type in typesof(/datum/species)) - var/datum/species/species = species_type - var/species_name = initial(species.name) - if(species_name) - global.all_species[species_name] = new species - species = get_species_by_key(species_name) + global.all_species.Cut() + global.playable_species.Cut() + var/list/species_decls = decls_repository.get_decls_of_subtype(/decl/species) + for(var/species_type in species_decls) + var/decl/species/species = species_decls[species_type] + if(species.name) + global.all_species[species.name] = species if(!(species.spawn_flags & SPECIES_IS_RESTRICTED)) global.playable_species += species.name if(GLOB.using_map.default_species) global.playable_species |= GLOB.using_map.default_species + /proc/get_species_by_key(var/species_key) build_species_lists() . = global.all_species[species_key] diff --git a/code/_helpers/mobs.dm b/code/_helpers/mobs.dm index 6fbfe10eabf..937456a84c6 100644 --- a/code/_helpers/mobs.dm +++ b/code/_helpers/mobs.dm @@ -28,7 +28,7 @@ proc/random_hair_style(gender, species) species = species || GLOB.using_map.default_species var/h_style = "Bald" - var/datum/species/mob_species = get_species_by_key(species) + var/decl/species/mob_species = get_species_by_key(species) var/list/valid_hairstyles = mob_species.get_hair_styles() if(valid_hairstyles.len) h_style = pick(valid_hairstyles) @@ -38,7 +38,7 @@ proc/random_hair_style(gender, species) proc/random_facial_hair_style(gender, var/species) species = species || GLOB.using_map.default_species var/f_style = "Shaved" - var/datum/species/mob_species = get_species_by_key(species) + var/decl/species/mob_species = get_species_by_key(species) var/list/valid_facialhairstyles = mob_species.get_facial_hair_styles(gender) if(valid_facialhairstyles.len) f_style = pick(valid_facialhairstyles) @@ -46,14 +46,14 @@ proc/random_facial_hair_style(gender, var/species) proc/random_name(gender, species) if(species) - var/datum/species/current_species = get_species_by_key(species) + var/decl/species/current_species = get_species_by_key(species) if(current_species) var/decl/cultural_info/current_culture = SSlore.get_culture(current_species.default_cultural_info[TAG_CULTURE]) if(current_culture) return current_culture.get_random_name(null, gender) return capitalize(pick(gender == FEMALE ? GLOB.first_names_female : GLOB.first_names_male)) + " " + capitalize(pick(GLOB.last_names)) -proc/random_skin_tone(var/datum/species/current_species) +proc/random_skin_tone(var/decl/species/current_species) var/species_tone = current_species ? 35 - current_species.max_skin_tone() : -185 switch(pick(60;"caucasian", 15;"afroamerican", 10;"african", 10;"latino", 5;"albino")) if("caucasian") . = -10 diff --git a/code/datums/mil_ranks.dm b/code/datums/mil_ranks.dm index 00a4a36c5fa..e27ad3f3897 100644 --- a/code/datums/mil_ranks.dm +++ b/code/datums/mil_ranks.dm @@ -53,7 +53,7 @@ var/datum/mil_branches/mil_branches = new() /** * Return all spawn branches for the given input */ -/datum/mil_branches/proc/spawn_branches(var/datum/species/S) +/datum/mil_branches/proc/spawn_branches(var/decl/species/S) if(!S) return spawn_branches_.Copy() . = LAZYACCESS(spawn_branches_by_species_, S) @@ -67,21 +67,21 @@ var/datum/mil_branches/mil_branches = new() /** * Return all spawn ranks for the given input */ -/datum/mil_branches/proc/spawn_ranks(var/branch_name, var/datum/species/S) +/datum/mil_branches/proc/spawn_ranks(var/branch_name, var/decl/species/S) var/datum/mil_branch/branch = get_branch(branch_name) return branch && branch.spawn_ranks(S) /** * Return a true value if branch_name is a valid spawn branch key */ -/datum/mil_branches/proc/is_spawn_branch(var/branch_name, var/datum/species/S) +/datum/mil_branches/proc/is_spawn_branch(var/branch_name, var/decl/species/S) return (branch_name in spawn_branches(S)) /** * Return a true value if rank_name is a valid spawn rank in branch under branch_name */ -/datum/mil_branches/proc/is_spawn_rank(var/branch_name, var/rank_name, var/datum/species/S) +/datum/mil_branches/proc/is_spawn_rank(var/branch_name, var/rank_name, var/decl/species/S) var/datum/mil_branch/branch = get_branch(branch_name) if(branch && (rank_name in branch.spawn_ranks(S))) return TRUE @@ -128,7 +128,7 @@ var/datum/mil_branches/mil_branches = new() if(rank_path in spawn_rank_types) spawn_ranks_[rank.name] = rank -/datum/mil_branch/proc/spawn_ranks(var/datum/species/S) +/datum/mil_branch/proc/spawn_ranks(var/decl/species/S) if(!S) return spawn_ranks_.Copy() . = spawn_ranks_by_species_[S] diff --git a/code/game/antagonist/station/changeling.dm b/code/game/antagonist/station/changeling.dm index b54179b36f9..bc36c96d17d 100644 --- a/code/game/antagonist/station/changeling.dm +++ b/code/game/antagonist/station/changeling.dm @@ -75,7 +75,7 @@ GLOBAL_DATUM_INIT(changelings, /datum/antagonist/changeling, new) return 1 else if(isnewplayer(player.current)) if(player.current.client && player.current.client.prefs) - var/datum/species/S = get_species_by_key(player.current.client.prefs.species) + var/decl/species/S = get_species_by_key(player.current.client.prefs.species) if(S && (S.species_flags & SPECIES_FLAG_NO_SCAN)) return 0 if(player.current.client.prefs.organ_data[BP_CHEST] == "cyborg") // Full synthetic. diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index f243a06534f..f5d61164693 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -277,7 +277,7 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E changeling.geneticdamage = 30 var/S_name = chosen_dna.speciesName - var/datum/species/S_dat = get_species_by_key(S_name) + var/decl/species/S_dat = get_species_by_key(S_name) var/changeTime = 2 SECONDS if(mob_size != S_dat.mob_size) src.visible_message("[src]'s body begins to twist, their mass changing rapidly!") @@ -604,7 +604,7 @@ var/list/datum/absorbed_dna/hivemind_bank = list() if(!chosen_dna) return - var/datum/species/spec = get_species_by_key(chosen_dna.speciesName) + var/decl/species/spec = get_species_by_key(chosen_dna.speciesName) if(spec && spec.species_flags & SPECIES_FLAG_NEED_DIRECT_ABSORB) to_chat(src, "That species must be absorbed directly.") diff --git a/code/game/jobs/job/_job.dm b/code/game/jobs/job/_job.dm index e8835083b81..a1070baf07e 100644 --- a/code/game/jobs/job/_job.dm +++ b/code/game/jobs/job/_job.dm @@ -199,7 +199,7 @@ to_chat(feedback, "Wrong rank for [title]. Valid ranks in [prefs.branches[title]] are: [get_ranks(prefs.branches[title])].") return TRUE - var/datum/species/S = get_species_by_key(prefs.species) + var/decl/species/S = get_species_by_key(prefs.species) if(!is_species_allowed(S)) to_chat(feedback, "Restricted species, [S], for [title].") return TRUE @@ -239,7 +239,7 @@ active++ return active -/datum/job/proc/is_species_allowed(var/datum/species/S) +/datum/job/proc/is_species_allowed(var/decl/species/S) if(GLOB.using_map.is_species_job_restricted(S, src)) return FALSE // We also make sure that there is at least one valid branch-rank combo for the species. @@ -248,7 +248,7 @@ return LAZYLEN(get_branch_rank(S)) // Don't use if the map doesn't use branches but jobs do. -/datum/job/proc/get_branch_rank(var/datum/species/S) +/datum/job/proc/get_branch_rank(var/decl/species/S) . = species_branch_rank_cache_[S] if(.) return @@ -364,7 +364,7 @@ reasons["Your branch of service does not allow it."] = TRUE else if(!isnull(allowed_ranks) && (!caller.prefs.ranks[title] || !is_rank_allowed(caller.prefs.branches[title], caller.prefs.ranks[title]))) reasons["Your rank choice does not allow it."] = TRUE - var/datum/species/S = get_species_by_key(caller.prefs.species) + var/decl/species/S = get_species_by_key(caller.prefs.species) if(S) if(!is_species_allowed(S)) reasons["Your species choice does not allow it."] = TRUE diff --git a/code/game/jobs/whitelist.dm b/code/game/jobs/whitelist.dm index 8f905bb9c68..ee5aba6a118 100644 --- a/code/game/jobs/whitelist.dm +++ b/code/game/jobs/whitelist.dm @@ -50,7 +50,7 @@ var/list/whitelist = list() return 1 /proc/is_species_whitelisted(mob/M, var/species_name) - var/datum/species/S = get_species_by_key(species_name) + var/decl/species/S = get_species_by_key(species_name) return is_alien_whitelisted(M, S) //todo: admin aliens @@ -68,8 +68,8 @@ var/list/whitelist = list() return 1 return whitelist_lookup(L.name, M.ckey) - if(istype(species,/datum/species)) - var/datum/species/S = species + if(istype(species,/decl/species)) + var/decl/species/S = species if(!(S.spawn_flags & (SPECIES_IS_WHITELISTED|SPECIES_IS_RESTRICTED))) return 1 return whitelist_lookup(S.get_root_species_name(M), M.ckey) diff --git a/code/game/movietitles.dm b/code/game/movietitles.dm index 276f9506a1f..1a55258ffc1 100644 --- a/code/game/movietitles.dm +++ b/code/game/movietitles.dm @@ -152,7 +152,7 @@ client else if(H.real_name) corpses += H.real_name for(var/spec in monkies) - var/datum/species/S = get_species_by_key(spec) + var/decl/species/S = get_species_by_key(spec) corpses += "[monkies[spec]] [lowertext(monkies[spec] > 1 ? S.name_plural : S.name)]" if(corpses.len) titles += "
BASED ON REAL EVENTS
In memory of [english_list(corpses)].
" diff --git a/code/modules/client/preference_setup/background/01_culture.dm b/code/modules/client/preference_setup/background/01_culture.dm index 06e07216123..16f03d9dbef 100644 --- a/code/modules/client/preference_setup/background/01_culture.dm +++ b/code/modules/client/preference_setup/background/01_culture.dm @@ -1,5 +1,5 @@ #define GET_ALLOWED_VALUES(write_to, check_key) \ - var/datum/species/S = get_species_by_key(pref.species); \ + var/decl/species/S = get_species_by_key(pref.species); \ if(!S) { \ write_to = list(); \ } else if(S.force_cultural_info[check_key]) { \ diff --git a/code/modules/client/preference_setup/general/01_basic.dm b/code/modules/client/preference_setup/general/01_basic.dm index df2136342d3..6b597cc0e84 100644 --- a/code/modules/client/preference_setup/general/01_basic.dm +++ b/code/modules/client/preference_setup/general/01_basic.dm @@ -27,7 +27,7 @@ datum/preferences to_file(S["name_is_always_random"], pref.be_random_name) /datum/category_item/player_setup_item/physical/basic/sanitize_character() - var/datum/species/S = get_species_by_key(pref.species) || get_species_by_key(GLOB.using_map.default_species) + var/decl/species/S = get_species_by_key(pref.species) || get_species_by_key(GLOB.using_map.default_species) pref.age = sanitize_integer(pref.age, S.min_age, S.max_age, initial(pref.age)) pref.gender = sanitize_inlist(pref.gender, S.genders, pick(S.genders)) pref.spawnpoint = sanitize_inlist(pref.spawnpoint, spawntypes(), initial(pref.spawnpoint)) @@ -56,7 +56,7 @@ datum/preferences . = jointext(.,null) /datum/category_item/player_setup_item/physical/basic/OnTopic(var/href,var/list/href_list, var/mob/user) - var/datum/species/S = get_species_by_key(pref.species) + var/decl/species/S = get_species_by_key(pref.species) if(href_list["rename"]) var/raw_name = input(user, "Choose your character's name:", "Character Name") as text|null diff --git a/code/modules/client/preference_setup/general/02_body.dm b/code/modules/client/preference_setup/general/02_body.dm index 32bfb774e09..5a4735e2989 100644 --- a/code/modules/client/preference_setup/general/02_body.dm +++ b/code/modules/client/preference_setup/general/02_body.dm @@ -107,7 +107,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O if(!pref.species || !(pref.species in get_playable_species())) pref.species = GLOB.using_map.default_species - var/datum/species/mob_species = get_species_by_key(pref.species) + var/decl/species/mob_species = get_species_by_key(pref.species) var/low_skin_tone = mob_species ? (35 - mob_species.max_skin_tone()) : -185 sanitize_integer(pref.skin_tone, low_skin_tone, 34, initial(pref.skin_tone)) @@ -148,7 +148,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O pref.update_preview_icon() send_rsc(user, pref.preview_icon, "previewicon.png") - var/datum/species/mob_species = get_species_by_key(pref.species) + var/decl/species/mob_species = get_species_by_key(pref.species) var/title = "Species?: [mob_species.name]" var/append_text = "[hide_species ? "Expand" : "Collapse"]" . += "
" @@ -295,12 +295,12 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O . = jointext(.,null) -/datum/category_item/player_setup_item/physical/body/proc/has_flag(var/datum/species/mob_species, var/flag) +/datum/category_item/player_setup_item/physical/body/proc/has_flag(var/decl/species/mob_species, var/flag) return mob_species && (mob_species.appearance_flags & flag) /datum/category_item/player_setup_item/physical/body/OnTopic(var/href,var/list/href_list, var/mob/user) - var/datum/species/mob_species = get_species_by_key(pref.species) + var/decl/species/mob_species = get_species_by_key(pref.species) if(href_list["toggle_species_verbose"]) hide_species = !hide_species return TOPIC_REFRESH @@ -328,7 +328,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O else if(href_list["show_species"]) var/choice = input("Which species would you like to look at?") as null|anything in get_playable_species() if(choice) - var/datum/species/current_species = get_species_by_key(choice) + var/decl/species/current_species = get_species_by_key(choice) show_browser(user, current_species.get_description(), "window=species;size=700x400") return TOPIC_HANDLED @@ -337,7 +337,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O var/list/species_to_pick = list() for(var/species in get_playable_species()) if(!check_rights(R_ADMIN, 0) && config.usealienwhitelist) - var/datum/species/current_species = get_species_by_key(species) + var/decl/species/current_species = get_species_by_key(species) if(!(current_species.spawn_flags & SPECIES_CAN_JOIN)) continue else if((current_species.spawn_flags & SPECIES_IS_WHITELISTED) && !is_alien_whitelisted(preference_mob(),current_species)) @@ -545,7 +545,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O pref.rlimb_data[second_limb] = null if("Prosthesis") - var/datum/species/temp_species = get_species_by_key(pref.species || GLOB.using_map.default_species) + var/decl/species/temp_species = get_species_by_key(pref.species || GLOB.using_map.default_species) var/tmp_bodytype = temp_species.get_bodytype(user) var/list/usable_manufacturers = list() for(var/company in chargen_robolimbs) @@ -652,7 +652,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O ResetFacialHair() /datum/category_item/player_setup_item/proc/ResetHair() - var/datum/species/mob_species = get_species_by_key(pref.species) + var/decl/species/mob_species = get_species_by_key(pref.species) var/list/valid_hairstyles = mob_species.get_hair_styles() if(valid_hairstyles.len) @@ -662,7 +662,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O pref.h_style = GLOB.hair_styles_list["Bald"] /datum/category_item/player_setup_item/proc/ResetFacialHair() - var/datum/species/mob_species = get_species_by_key(pref.species) + var/decl/species/mob_species = get_species_by_key(pref.species) var/list/valid_facialhairstyles = mob_species.get_facial_hair_styles(pref.gender) if(valid_facialhairstyles.len) @@ -672,7 +672,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O pref.f_style = GLOB.facial_hair_styles_list["Shaved"] /datum/category_item/player_setup_item/physical/body/proc/sanitize_organs() - var/datum/species/mob_species = get_species_by_key(pref.species) + var/decl/species/mob_species = get_species_by_key(pref.species) if(mob_species && mob_species.spawn_flags & SPECIES_NO_ROBOTIC_INTERNAL_ORGANS) for(var/name in pref.organ_data) var/status = pref.organ_data[name] diff --git a/code/modules/client/preference_setup/general/03_equipment.dm b/code/modules/client/preference_setup/general/03_equipment.dm index 471310407f6..3c4ce7ca6cd 100644 --- a/code/modules/client/preference_setup/general/03_equipment.dm +++ b/code/modules/client/preference_setup/general/03_equipment.dm @@ -58,7 +58,7 @@ pref.all_underwear[WRC.name] = WRI.name break - var/datum/species/mob_species = get_species_by_key(pref.species) + var/decl/species/mob_species = get_species_by_key(pref.species) if(!(mob_species && mob_species.appearance_flags & HAS_UNDERWEAR)) pref.all_underwear.Cut() diff --git a/code/modules/client/preference_setup/laws/laws_pref.dm b/code/modules/client/preference_setup/laws/laws_pref.dm index ae1f59442be..c01bd82def6 100644 --- a/code/modules/client/preference_setup/laws/laws_pref.dm +++ b/code/modules/client/preference_setup/laws/laws_pref.dm @@ -25,7 +25,7 @@ /datum/category_item/player_setup_item/law_pref/sanitize_character() if(!istype(pref.laws)) pref.laws = list() - var/datum/species/species = get_species_by_key(pref.species) + var/decl/species/species = get_species_by_key(pref.species) if(!(species && species.has_organ[BP_POSIBRAIN])) pref.is_shackled = initial(pref.is_shackled) else @@ -33,7 +33,7 @@ /datum/category_item/player_setup_item/law_pref/content() . = list() - var/datum/species/species = get_species_by_key(pref.species) + var/decl/species/species = get_species_by_key(pref.species) if(!(species && species.has_organ[BP_POSIBRAIN])) . += "Your Species Has No Laws
" diff --git a/code/modules/client/preference_setup/occupation/occupation.dm b/code/modules/client/preference_setup/occupation/occupation.dm index b9fa3894871..9081f1f931c 100644 --- a/code/modules/client/preference_setup/occupation/occupation.dm +++ b/code/modules/client/preference_setup/occupation/occupation.dm @@ -81,7 +81,7 @@ if(!SSmapping || !SSjobs.job_lists_by_map_name) return - var/datum/species/S = preference_species() + var/decl/species/S = preference_species() . = list() . += "" . += "" @@ -266,7 +266,7 @@ if(LAZYLEN(removing_ranks)) pref.ranks -= removing_ranks - var/datum/species/S = preference_species() + var/decl/species/S = preference_species() for(var/job_name in SSjobs.titles_to_datums) var/datum/job/job = SSjobs.get_by_title(job_name) @@ -335,7 +335,7 @@ else if(href_list["char_branch"]) var/datum/job/job = locate(href_list["checking_job"]) if(istype(job)) - var/datum/species/S = preference_species() + var/decl/species/S = preference_species() var/list/options = job.allowed_branches ? job.get_branch_rank(S) : mil_branches.spawn_branches(S) var/choice = input(user, "Choose your branch of service.", CHARACTER_PREFERENCE_INPUT_TITLE) as null|anything in options if(choice && CanUseTopic(user) && mil_branches.is_spawn_branch(choice, S)) @@ -350,7 +350,7 @@ var/datum/job/job = locate(href_list["checking_job"]) if(istype(job)) var/datum/mil_branch/branch = mil_branches.get_branch(pref.branches[job.title]) - var/datum/species/S = preference_species() + var/decl/species/S = preference_species() var/list/branch_rank = job.allowed_branches ? job.get_branch_rank(S) : mil_branches.spawn_branches(S) var/list/options = branch_rank[branch.name] || mil_branches.spawn_ranks(branch.name, S) var/choice = input(user, "Choose your rank.", CHARACTER_PREFERENCE_INPUT_TITLE) as null|anything in options diff --git a/code/modules/client/preference_setup/occupation/skill_selection.dm b/code/modules/client/preference_setup/occupation/skill_selection.dm index 0115ed4f415..6cf61a3837c 100644 --- a/code/modules/client/preference_setup/occupation/skill_selection.dm +++ b/code/modules/client/preference_setup/occupation/skill_selection.dm @@ -88,7 +88,7 @@ //Sets up skills_allocated /datum/preferences/proc/sanitize_skills(var/list/input) . = list() - var/datum/species/S = get_species_by_key(species) + var/decl/species/S = get_species_by_key(species) for(var/job_name in SSjobs.titles_to_datums) var/datum/job/job = SSjobs.get_by_title(job_name) var/input_skills = list() diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 2ce8c6b06c4..81932bb88a3 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -155,7 +155,7 @@ /obj/item/clothing/mask/rubber/species/Initialize() . = ..() visible_name = species - var/datum/species/S = get_species_by_key(species) + var/decl/species/S = get_species_by_key(species) if(istype(S)) var/decl/cultural_info/C = SSlore.get_culture(S.default_cultural_info[TAG_CULTURE]) if(istype(C)) diff --git a/code/modules/codex/categories/category_species.dm b/code/modules/codex/categories/category_species.dm index 9bd01869ed9..7c2b5a242ed 100644 --- a/code/modules/codex/categories/category_species.dm +++ b/code/modules/codex/categories/category_species.dm @@ -4,7 +4,7 @@ /decl/codex_category/species/Initialize() for(var/thing in get_all_species()) - var/datum/species/species = get_species_by_key(thing) + var/decl/species/species = get_species_by_key(thing) if(!species.hidden_from_codex) var/datum/codex_entry/entry = new(_display_name = "[species.name] (species)") entry.lore_text = species.codex_description diff --git a/code/modules/emotes/definitions/_species.dm b/code/modules/emotes/definitions/_species.dm index 843765f0169..afa2a46c8ee 100644 --- a/code/modules/emotes/definitions/_species.dm +++ b/code/modules/emotes/definitions/_species.dm @@ -1,4 +1,4 @@ -/datum/species +/decl/species var/list/default_emotes = list() /mob/living/carbon/update_emotes() diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm index 53bbd0306ac..2866d0f7a5d 100644 --- a/code/modules/events/ion_storm.dm +++ b/code/modules/events/ion_storm.dm @@ -144,8 +144,8 @@ /datum/event/ionstorm/proc/get_random_species_name(var/default_if_none = "Humans") var/list/species = list() - for(var/S in typesof(/datum/species)) - var/datum/species/specimen = S + for(var/S in typesof(/decl/species)) + var/decl/species/specimen = S if(initial(specimen.spawn_flags) & SPECIES_CAN_JOIN) species += initial(specimen.name_plural) diff --git a/code/modules/fabrication/_fabricator.dm b/code/modules/fabrication/_fabricator.dm index 0f1200b3ba3..9865ad71ccc 100644 --- a/code/modules/fabrication/_fabricator.dm +++ b/code/modules/fabrication/_fabricator.dm @@ -56,7 +56,7 @@ var/initial_network_id var/initial_network_key - var/species_variation = /datum/species/human // If this fabricator is a variant for a specific species, this will be checked to unlock species-specific designs. + var/species_variation = /decl/species/human // If this fabricator is a variant for a specific species, this will be checked to unlock species-specific designs. /obj/machinery/fabricator/Destroy() QDEL_NULL(currently_building) diff --git a/code/modules/mob/living/autohiss.dm b/code/modules/mob/living/autohiss.dm index 3aeb52415cb..af66a0447aa 100644 --- a/code/modules/mob/living/autohiss.dm +++ b/code/modules/mob/living/autohiss.dm @@ -9,12 +9,12 @@ return message return species.handle_autohiss(message, L, get_preference_value(/datum/client_preference/autohiss)) -/datum/species +/decl/species var/list/autohiss_basic_map = null var/list/autohiss_extra_map = null var/list/autohiss_exempt = null -/datum/species/proc/handle_autohiss(message, decl/language/lang, mode) +/decl/species/proc/handle_autohiss(message, decl/language/lang, mode) if(!autohiss_basic_map) return message if(lang.flags & NO_STUTTER) // Currently prevents EAL, Sign language, and emotes from autohissing diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index 9d587e90d0e..e9b9ca83030 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -21,7 +21,7 @@ var/hydration = 400 var/obj/item/tank/internal = null//Human/Monkey - var/datum/species/species //Contains icon generation and language information, set during New(). + var/decl/species/species //Contains icon generation and language information, set during New(). //these two help govern taste. The first is the last time a taste message was shown to the plaer. //the second is the message in question. diff --git a/code/modules/mob/living/carbon/human/appearance.dm b/code/modules/mob/living/carbon/human/appearance.dm index 1dbf5df29c9..6c954eeec1c 100644 --- a/code/modules/mob/living/carbon/human/appearance.dm +++ b/code/modules/mob/living/carbon/human/appearance.dm @@ -129,7 +129,7 @@ /mob/living/carbon/human/proc/generate_valid_species(var/check_whitelist = 1, var/list/whitelist = list(), var/list/blacklist = list()) var/list/valid_species = new() for(var/current_species_name in get_all_species()) - var/datum/species/current_species = get_species_by_key(current_species_name) + var/decl/species/current_species = get_species_by_key(current_species_name) if(check_whitelist) //If we're using the whitelist, make sure to check it! if((current_species.spawn_flags & SPECIES_IS_RESTRICTED) && !check_rights(R_ADMIN, 0, src)) diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index d485fd66b22..b54ef62c29f 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -247,7 +247,7 @@ else src.fire.icon_state = "fire1" if(oxygen && environment) - var/datum/species/species = all_species[GLOB.using_map.default_species] + var/decl/species/species = all_species[GLOB.using_map.default_species] if(!species.breath_type || environment.gas[species.breath_type] >= species.breath_pressure) src.oxygen.icon_state = "oxy0" for(var/gas in species.poison_types) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 21bff16b2d8..737c93cff46 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -33,7 +33,7 @@ return 0 /mob/living/carbon/human/isMonkey() - return istype(species, /datum/species/monkey) + return istype(species, /decl/species/monkey) proc/isdeaf(A) if(isliving(A)) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 39bbf780f29..347c7facd48 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -173,7 +173,7 @@ if(!SSjobs.check_general_join_blockers(src, job)) return FALSE - var/datum/species/S = get_species_by_key(client.prefs.species) + var/decl/species/S = get_species_by_key(client.prefs.species) if(!check_species_allowed(S)) return 0 @@ -442,7 +442,7 @@ var/mob/living/carbon/human/new_character - var/datum/species/chosen_species + var/decl/species/chosen_species if(client.prefs.species) chosen_species = get_species_by_key(client.prefs.species) @@ -520,7 +520,7 @@ close_browser(src, "window=latechoices") //closes late choices window panel.close() -/mob/new_player/proc/check_species_allowed(datum/species/S, var/show_alert=1) +/mob/new_player/proc/check_species_allowed(var/decl/species/S, var/show_alert=1) if(!S.is_available_for_join() && !has_admin_rights()) if(show_alert) to_chat(src, alert("Your current species, [client.prefs.species], is not available for play.")) @@ -532,7 +532,7 @@ return 1 /mob/new_player/get_species() - var/datum/species/chosen_species + var/decl/species/chosen_species if(client.prefs.species) chosen_species = get_species_by_key(client.prefs.species) diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 0f92906a46d..df65fae675a 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -1,7 +1,7 @@ /datum/preferences //The mob should have a gender you want before running this proc. Will run fine without H proc/randomize_appearance_and_body_for(var/mob/living/carbon/human/H) - var/datum/species/current_species = get_species_by_key(species || GLOB.using_map.default_species) + var/decl/species/current_species = get_species_by_key(species || GLOB.using_map.default_species) gender = pick(current_species.genders) h_style = random_hair_style(gender, species) diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index 5f13f1d84a6..b6276548cb1 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -17,7 +17,7 @@ // Reference data. var/mob/living/carbon/human/owner // Current mob owning the organ. var/datum/dna/dna // Original DNA. - var/datum/species/species // Original species. + var/decl/species/species // Original species. // Damage vars. var/damage = 0 // Current damage to the organ diff --git a/code/modules/overmap/exoplanets/planet_types/desert.dm b/code/modules/overmap/exoplanets/planet_types/desert.dm index 89136424921..ced15538526 100644 --- a/code/modules/overmap/exoplanets/planet_types/desert.dm +++ b/code/modules/overmap/exoplanets/planet_types/desert.dm @@ -23,7 +23,7 @@ if(atmosphere) var/limit = 1000 if(habitability_class <= HABITABILITY_OKAY) - var/datum/species/human/H = /datum/species/human + var/decl/species/human/H = /decl/species/human limit = initial(H.heat_level_1) - rand(1,10) atmosphere.temperature = min(T20C + rand(20, 100), limit) atmosphere.update_values() diff --git a/code/modules/overmap/exoplanets/planet_types/snow.dm b/code/modules/overmap/exoplanets/planet_types/snow.dm index 1a7ed01fe75..687c703000a 100644 --- a/code/modules/overmap/exoplanets/planet_types/snow.dm +++ b/code/modules/overmap/exoplanets/planet_types/snow.dm @@ -27,7 +27,7 @@ if(atmosphere) var/limit = 0 if(habitability_class <= HABITABILITY_OKAY) - var/datum/species/human/H = /datum/species/human + var/decl/species/human/H = /decl/species/human limit = initial(H.cold_level_1) + rand(1,10) atmosphere.temperature = max(T0C - rand(10, 100), limit) atmosphere.update_values() diff --git a/code/modules/species/outsider/random.dm b/code/modules/species/outsider/random.dm index 6e9660930c7..a92d8bbc212 100644 --- a/code/modules/species/outsider/random.dm +++ b/code/modules/species/outsider/random.dm @@ -1,4 +1,4 @@ -/datum/species/alium +/decl/species/alium name = SPECIES_ALIEN name_plural = "Humanoids" description = "Some alien humanoid species, unknown to humanity. How exciting." @@ -18,7 +18,7 @@ TAG_CULTURE = CULTURE_ALIUM ) -/datum/species/alium/New() +/decl/species/alium/New() //Coloring blood_color = RANDOM_RGB flesh_color = RANDOM_RGB @@ -86,7 +86,7 @@ ..() -/datum/species/alium/proc/adapt_to_atmosphere(var/datum/gas_mixture/atmosphere) +/decl/species/alium/proc/adapt_to_atmosphere(var/datum/gas_mixture/atmosphere) var/temp_comfort_shift = atmosphere.temperature - body_temperature cold_level_1 += temp_comfort_shift diff --git a/code/modules/species/outsider/shadow.dm b/code/modules/species/outsider/shadow.dm index c3b68707821..1e9c61d8932 100644 --- a/code/modules/species/outsider/shadow.dm +++ b/code/modules/species/outsider/shadow.dm @@ -1,4 +1,4 @@ -/datum/species/starlight/shadow +/decl/species/starlight/shadow name = "Shadow" name_plural = "shadows" description = "A being of pure darkness, hates the light and all that comes with it." @@ -22,7 +22,7 @@ species_flags = SPECIES_FLAG_NO_SCAN | SPECIES_FLAG_NO_SLIP | SPECIES_FLAG_NO_POISON | SPECIES_FLAG_NO_EMBED -/datum/species/starlight/shadow/handle_environment_special(var/mob/living/carbon/human/H) +/decl/species/starlight/shadow/handle_environment_special(var/mob/living/carbon/human/H) if(H.InStasis() || H.stat == DEAD || H.isSynthetic()) return var/light_amount = 0 diff --git a/code/modules/species/outsider/starlight.dm b/code/modules/species/outsider/starlight.dm index 9b9f89ada4a..f5363769e6d 100644 --- a/code/modules/species/outsider/starlight.dm +++ b/code/modules/species/outsider/starlight.dm @@ -1,4 +1,4 @@ -/datum/species/starlight +/decl/species/starlight name = "Starlight Base" meat_type = null @@ -27,15 +27,15 @@ TAG_CULTURE = CULTURE_STARLIGHT ) -/datum/species/starlight/handle_death_check(var/mob/living/carbon/human/H) +/decl/species/starlight/handle_death_check(var/mob/living/carbon/human/H) if(H.health == 0) return TRUE return FALSE -/datum/species/starlight/handle_death(var/mob/living/carbon/human/H) +/decl/species/starlight/handle_death(var/mob/living/carbon/human/H) addtimer(CALLBACK(H,/mob/proc/dust),0) -/datum/species/starlight/starborn +/decl/species/starlight/starborn name = "Starborn" name_plural = "Starborn" icobase = 'icons/mob/human_races/species/starborn/body.dmi' @@ -80,7 +80,7 @@ /obj/aura/starborn ) -/datum/species/starlight/starborn/handle_death(var/mob/living/carbon/human/H) +/decl/species/starlight/starborn/handle_death(var/mob/living/carbon/human/H) ..() var/turf/T = get_turf(H) var/obj/effect/fluid/F = locate() in T @@ -88,7 +88,7 @@ F.reagents.add_reagent(/decl/material/liquid/fuel, 20) T.hotspot_expose(FLAMMABLE_GAS_MINIMUM_BURN_TEMPERATURE) -/datum/species/starlight/blueforged +/decl/species/starlight/blueforged name = "Blueforged" name_plural = "Blueforged" icobase = 'icons/mob/human_races/species/blueforged/body.dmi' @@ -112,6 +112,6 @@ override_organ_types = list(BP_EYES = /obj/item/organ/internal/eyes/blueforged) -/datum/species/starlight/blueforged/handle_death(var/mob/living/carbon/human/H) +/decl/species/starlight/blueforged/handle_death(var/mob/living/carbon/human/H) ..() new /obj/effect/temporary(get_turf(H),11, 'icons/mob/mob.dmi', "liquify") \ No newline at end of file diff --git a/code/modules/species/species.dm b/code/modules/species/species.dm index a85924e5b3a..6bca084104b 100644 --- a/code/modules/species/species.dm +++ b/code/modules/species/species.dm @@ -2,7 +2,7 @@ Datum-based species. Should make for much cleaner and easier to maintain race code. */ -/datum/species +/decl/species // Descriptors and strings. var/name @@ -293,7 +293,7 @@ The slots that you can use are found in items_clothing.dm and are the inventory you use the _str version of the slot. */ -/datum/species/New() +/decl/species/New() if(!codex_description) codex_description = description @@ -356,7 +356,7 @@ The slots that you can use are found in items_clothing.dm and are the inventory var/obj/item/organ/limb_path = organ_data["path"] organ_data["descriptor"] = initial(limb_path.name) -/datum/species/proc/equip_survival_gear(var/mob/living/carbon/human/H,var/extendedtank = 1) +/decl/species/proc/equip_survival_gear(var/mob/living/carbon/human/H,var/extendedtank = 1) if(istype(H.get_equipped_item(slot_back_str), /obj/item/storage/backpack)) if (extendedtank) H.equip_to_slot_or_del(new /obj/item/storage/box/engineer(H.back), slot_in_backpack_str) @@ -368,10 +368,10 @@ The slots that you can use are found in items_clothing.dm and are the inventory else H.put_in_hands_or_del(new /obj/item/storage/box/survival(H)) -/datum/species/proc/get_manual_dexterity(var/mob/living/carbon/human/H) +/decl/species/proc/get_manual_dexterity(var/mob/living/carbon/human/H) . = manual_dexterity -/datum/species/proc/create_organs(var/mob/living/carbon/human/H) //Handles creation of mob organs. +/decl/species/proc/create_organs(var/mob/living/carbon/human/H) //Handles creation of mob organs. H.mob_size = mob_size for(var/obj/item/organ/organ in H.contents) @@ -413,7 +413,7 @@ The slots that you can use are found in items_clothing.dm and are the inventory H.sync_organ_dna() -/datum/species/proc/hug(var/mob/living/carbon/human/H,var/mob/living/target) +/decl/species/proc/hug(var/mob/living/carbon/human/H,var/mob/living/target) var/t_him = "them" switch(target.gender) @@ -429,12 +429,12 @@ The slots that you can use are found in items_clothing.dm and are the inventory H.update_personal_goal(/datum/goal/achievement/givehug, TRUE) target.update_personal_goal(/datum/goal/achievement/gethug, TRUE) -/datum/species/proc/add_base_auras(var/mob/living/carbon/human/H) +/decl/species/proc/add_base_auras(var/mob/living/carbon/human/H) if(base_auras) for(var/type in base_auras) H.add_aura(new type(H)) -/datum/species/proc/remove_base_auras(var/mob/living/carbon/human/H) +/decl/species/proc/remove_base_auras(var/mob/living/carbon/human/H) if(base_auras) var/list/bcopy = base_auras.Copy() for(var/a in H.auras) @@ -444,19 +444,19 @@ The slots that you can use are found in items_clothing.dm and are the inventory H.remove_aura(A) qdel(A) -/datum/species/proc/remove_inherent_verbs(var/mob/living/carbon/human/H) +/decl/species/proc/remove_inherent_verbs(var/mob/living/carbon/human/H) if(inherent_verbs) for(var/verb_path in inherent_verbs) H.verbs -= verb_path return -/datum/species/proc/add_inherent_verbs(var/mob/living/carbon/human/H) +/decl/species/proc/add_inherent_verbs(var/mob/living/carbon/human/H) if(inherent_verbs) for(var/verb_path in inherent_verbs) H.verbs |= verb_path return -/datum/species/proc/handle_post_spawn(var/mob/living/carbon/human/H) //Handles anything not already covered by basic species assignment. +/decl/species/proc/handle_post_spawn(var/mob/living/carbon/human/H) //Handles anything not already covered by basic species assignment. add_inherent_verbs(H) add_base_auras(H) H.mob_bump_flag = bump_flag @@ -465,56 +465,56 @@ The slots that you can use are found in items_clothing.dm and are the inventory H.pass_flags = pass_flags handle_limbs_setup(H) -/datum/species/proc/handle_pre_spawn(var/mob/living/carbon/human/H) +/decl/species/proc/handle_pre_spawn(var/mob/living/carbon/human/H) return -/datum/species/proc/handle_death(var/mob/living/carbon/human/H) //Handles any species-specific death events. +/decl/species/proc/handle_death(var/mob/living/carbon/human/H) //Handles any species-specific death events. return -/datum/species/proc/handle_new_grab(var/mob/living/carbon/human/H, var/obj/item/grab/G) +/decl/species/proc/handle_new_grab(var/mob/living/carbon/human/H, var/obj/item/grab/G) return -/datum/species/proc/handle_sleeping(var/mob/living/carbon/human/H) +/decl/species/proc/handle_sleeping(var/mob/living/carbon/human/H) if(prob(2) && !H.failed_last_breath && !H.isSynthetic()) if(!H.paralysis) H.emote("snore") else H.emote("groan") -/datum/species/proc/handle_environment_special(var/mob/living/carbon/human/H) +/decl/species/proc/handle_environment_special(var/mob/living/carbon/human/H) return -/datum/species/proc/handle_movement_delay_special(var/mob/living/carbon/human/H) +/decl/species/proc/handle_movement_delay_special(var/mob/living/carbon/human/H) return 0 // Used to update alien icons for aliens. -/datum/species/proc/handle_login_special(var/mob/living/carbon/human/H) +/decl/species/proc/handle_login_special(var/mob/living/carbon/human/H) return // As above. -/datum/species/proc/handle_logout_special(var/mob/living/carbon/human/H) +/decl/species/proc/handle_logout_special(var/mob/living/carbon/human/H) return // Builds the HUD using species-specific icons and usable slots. -/datum/species/proc/build_hud(var/mob/living/carbon/human/H) +/decl/species/proc/build_hud(var/mob/living/carbon/human/H) return -/datum/species/proc/can_understand(var/mob/other) +/decl/species/proc/can_understand(var/mob/other) return -/datum/species/proc/can_overcome_gravity(var/mob/living/carbon/human/H) +/decl/species/proc/can_overcome_gravity(var/mob/living/carbon/human/H) return FALSE // Used for any extra behaviour when falling and to see if a species will fall at all. -/datum/species/proc/can_fall(var/mob/living/carbon/human/H) +/decl/species/proc/can_fall(var/mob/living/carbon/human/H) return TRUE // Used to override normal fall behaviour. Use only when the species does fall down a level. -/datum/species/proc/handle_fall_special(var/mob/living/carbon/human/H, var/turf/landing) +/decl/species/proc/handle_fall_special(var/mob/living/carbon/human/H, var/turf/landing) return FALSE // Called when using the shredding behavior. -/datum/species/proc/can_shred(var/mob/living/carbon/human/H, var/ignore_intent, var/ignore_antag) +/decl/species/proc/can_shred(var/mob/living/carbon/human/H, var/ignore_intent, var/ignore_antag) if((!ignore_intent && H.a_intent != I_HURT) || H.pulling_punches) return 0 @@ -530,7 +530,7 @@ The slots that you can use are found in items_clothing.dm and are the inventory return 1 return 0 -/datum/species/proc/handle_vision(var/mob/living/carbon/human/H) +/decl/species/proc/handle_vision(var/mob/living/carbon/human/H) var/list/vision = H.get_accumulated_vision_handlers() H.update_sight() H.set_sight(H.sight|get_vision_flags(H)|H.equipment_vision_flags|vision[1]) @@ -569,7 +569,7 @@ The slots that you can use are found in items_clothing.dm and are the inventory return 1 -/datum/species/proc/get_how_nearsighted(var/mob/living/carbon/human/H) +/decl/species/proc/get_how_nearsighted(var/mob/living/carbon/human/H) var/prescriptions = short_sighted if(H.disabilities & NEARSIGHTED) prescriptions += 7 @@ -593,7 +593,7 @@ The slots that you can use are found in items_clothing.dm and are the inventory light -= H.equipment_light_protection return Clamp(max(prescriptions, light), 0, 7) -/datum/species/proc/set_default_hair(var/mob/living/carbon/human/H) +/decl/species/proc/set_default_hair(var/mob/living/carbon/human/H) if(H.h_style != H.species.default_h_style) H.h_style = H.species.default_h_style . = TRUE @@ -603,22 +603,22 @@ The slots that you can use are found in items_clothing.dm and are the inventory if(.) H.update_hair() -/datum/species/proc/handle_additional_hair_loss(var/mob/living/carbon/human/H, var/defer_body_update = TRUE) +/decl/species/proc/handle_additional_hair_loss(var/mob/living/carbon/human/H, var/defer_body_update = TRUE) return FALSE -/datum/species/proc/get_blood_name() +/decl/species/proc/get_blood_name() return "blood" -/datum/species/proc/handle_death_check(var/mob/living/carbon/human/H) +/decl/species/proc/handle_death_check(var/mob/living/carbon/human/H) return FALSE //Mostly for toasters -/datum/species/proc/handle_limbs_setup(var/mob/living/carbon/human/H) +/decl/species/proc/handle_limbs_setup(var/mob/living/carbon/human/H) for(var/thing in H.organs) post_organ_rejuvenate(thing, H) // Impliments different trails for species depending on if they're wearing shoes. -/datum/species/proc/get_move_trail(var/mob/living/carbon/human/H) +/decl/species/proc/get_move_trail(var/mob/living/carbon/human/H) if(H.lying) return /obj/effect/decal/cleanable/blood/tracks/body if(H.shoes || (H.wear_suit && (H.wear_suit.body_parts_covered & SLOT_FEET))) @@ -627,10 +627,10 @@ The slots that you can use are found in items_clothing.dm and are the inventory else return move_trail -/datum/species/proc/update_skin(var/mob/living/carbon/human/H) +/decl/species/proc/update_skin(var/mob/living/carbon/human/H) return -/datum/species/proc/disarm_attackhand(var/mob/living/carbon/human/attacker, var/mob/living/carbon/human/target) +/decl/species/proc/disarm_attackhand(var/mob/living/carbon/human/attacker, var/mob/living/carbon/human/target) attacker.do_attack_animation(target) if(target.w_uniform) @@ -679,11 +679,11 @@ The slots that you can use are found in items_clothing.dm and are the inventory playsound(target.loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) target.visible_message("[attacker] attempted to disarm \the [target]!") -/datum/species/proc/disfigure_msg(var/mob/living/carbon/human/H) //Used for determining the message a disfigured face has on examine. To add a unique message, just add this onto a specific species and change the "return" message. +/decl/species/proc/disfigure_msg(var/mob/living/carbon/human/H) //Used for determining the message a disfigured face has on examine. To add a unique message, just add this onto a specific species and change the "return" message. var/datum/gender/T = gender_datums[H.get_gender()] return "[T.His] face is horribly mangled!\n" -/datum/species/proc/max_skin_tone() +/decl/species/proc/max_skin_tone() if(appearance_flags & HAS_SKIN_TONE_GRAV) return 100 if(appearance_flags & HAS_SKIN_TONE_SPCR) @@ -692,7 +692,7 @@ The slots that you can use are found in items_clothing.dm and are the inventory return 80 return 220 -/datum/species/proc/get_hair_styles() +/decl/species/proc/get_hair_styles() var/list/L = LAZYACCESS(hair_styles, type) if(!L) L = list() @@ -707,7 +707,7 @@ The slots that you can use are found in items_clothing.dm and are the inventory L[hairstyle] = S return L -/datum/species/proc/get_facial_hair_styles(var/gender) +/decl/species/proc/get_facial_hair_styles(var/gender) var/list/facial_hair_styles_by_species = LAZYACCESS(facial_hair_styles, type) if(!facial_hair_styles_by_species) facial_hair_styles_by_species = list() @@ -733,7 +733,7 @@ The slots that you can use are found in items_clothing.dm and are the inventory return facial_hair_style_by_gender -/datum/species/proc/get_description(var/header, var/append, var/verbose = TRUE, var/skip_detail, var/skip_photo) +/decl/species/proc/get_description(var/header, var/append, var/verbose = TRUE, var/skip_detail, var/skip_photo) var/list/damage_types = list( "physical trauma" = brute_mod, "burns" = burn_mod, @@ -819,23 +819,23 @@ The slots that you can use are found in items_clothing.dm and are the inventory show_browser(src, species.get_description(), "window=species;size=700x400") -/datum/species/proc/skills_from_age(age) //Converts an age into a skill point allocation modifier. Can be used to give skill point bonuses/penalities not depending on job. +/decl/species/proc/skills_from_age(age) //Converts an age into a skill point allocation modifier. Can be used to give skill point bonuses/penalities not depending on job. switch(age) if(0 to 22) . = -4 if(23 to 30) . = 0 if(31 to 45) . = 4 else . = 8 -/datum/species/proc/post_organ_rejuvenate(var/obj/item/organ/org, var/mob/living/carbon/human/H) +/decl/species/proc/post_organ_rejuvenate(var/obj/item/organ/org, var/mob/living/carbon/human/H) if(org && (org.species ? org.species.is_crystalline : is_crystalline)) org.status |= (ORGAN_BRITTLE|ORGAN_CRYSTAL) -/datum/species/proc/check_no_slip(var/mob/living/carbon/human/H) +/decl/species/proc/check_no_slip(var/mob/living/carbon/human/H) if(can_overcome_gravity(H)) return TRUE return (species_flags & SPECIES_FLAG_NO_SLIP) -/datum/species/proc/get_pain_emote(var/mob/living/carbon/human/H, var/pain_power) +/decl/species/proc/get_pain_emote(var/mob/living/carbon/human/H, var/pain_power) if(!(species_flags & SPECIES_FLAG_NO_PAIN)) return for(var/pain_emotes in pain_emotes_with_pain_level) diff --git a/code/modules/species/species_getters.dm b/code/modules/species/species_getters.dm index 51f23d46282..40196176356 100644 --- a/code/modules/species/species_getters.dm +++ b/code/modules/species/species_getters.dm @@ -1,60 +1,60 @@ -/datum/species/proc/get_valid_shapeshifter_forms(var/mob/living/carbon/human/H) +/decl/species/proc/get_valid_shapeshifter_forms(var/mob/living/carbon/human/H) return list() -/datum/species/proc/get_additional_examine_text(var/mob/living/carbon/human/H) +/decl/species/proc/get_additional_examine_text(var/mob/living/carbon/human/H) return -/datum/species/proc/get_tail(var/mob/living/carbon/human/H) +/decl/species/proc/get_tail(var/mob/living/carbon/human/H) return tail -/datum/species/proc/get_tail_animation(var/mob/living/carbon/human/H) +/decl/species/proc/get_tail_animation(var/mob/living/carbon/human/H) return tail_animation -/datum/species/proc/get_tail_hair(var/mob/living/carbon/human/H) +/decl/species/proc/get_tail_hair(var/mob/living/carbon/human/H) return tail_hair -/datum/species/proc/get_blood_mask(var/mob/living/carbon/human/H) +/decl/species/proc/get_blood_mask(var/mob/living/carbon/human/H) return blood_mask -/datum/species/proc/get_damage_overlays(var/mob/living/carbon/human/H) +/decl/species/proc/get_damage_overlays(var/mob/living/carbon/human/H) return damage_overlays -/datum/species/proc/get_damage_mask(var/mob/living/carbon/human/H) +/decl/species/proc/get_damage_mask(var/mob/living/carbon/human/H) return damage_mask -/datum/species/proc/get_examine_name(var/mob/living/carbon/human/H) +/decl/species/proc/get_examine_name(var/mob/living/carbon/human/H) return name -/datum/species/proc/get_icobase(var/mob/living/carbon/human/H, var/get_deform) +/decl/species/proc/get_icobase(var/mob/living/carbon/human/H, var/get_deform) return (get_deform ? deform : icobase) -/datum/species/proc/get_station_variant() +/decl/species/proc/get_station_variant() return name -/datum/species/proc/get_icon_cache_uid(var/mob/H) +/decl/species/proc/get_icon_cache_uid(var/mob/H) if(!icon_cache_uid) - icon_cache_uid = "[sequential_id(/datum/species)]" + icon_cache_uid = "[sequential_id(/decl/species)]" return icon_cache_uid -/datum/species/proc/get_bodytype(var/mob/living/carbon/human/H) +/decl/species/proc/get_bodytype(var/mob/living/carbon/human/H) return bodytype -/datum/species/proc/get_knockout_message(var/mob/living/carbon/human/H) +/decl/species/proc/get_knockout_message(var/mob/living/carbon/human/H) return ((H && H.isSynthetic()) ? "encounters a hardware fault and suddenly reboots!" : knockout_message) -/datum/species/proc/get_death_message(var/mob/living/carbon/human/H) +/decl/species/proc/get_death_message(var/mob/living/carbon/human/H) return ((H && H.isSynthetic()) ? "gives one shrill beep before falling lifeless." : death_message) -/datum/species/proc/get_ssd(var/mob/living/carbon/human/H) +/decl/species/proc/get_ssd(var/mob/living/carbon/human/H) return ((H && H.isSynthetic()) ? "flashing a 'system offline' glyph on their monitor" : show_ssd) -/datum/species/proc/get_blood_colour(var/mob/living/carbon/human/H) +/decl/species/proc/get_blood_colour(var/mob/living/carbon/human/H) return ((H && H.isSynthetic()) ? SYNTH_BLOOD_COLOUR : blood_color) -/datum/species/proc/get_flesh_colour(var/mob/living/carbon/human/H) +/decl/species/proc/get_flesh_colour(var/mob/living/carbon/human/H) return ((H && H.isSynthetic()) ? SYNTH_FLESH_COLOUR : flesh_color) -/datum/species/proc/get_environment_discomfort(var/mob/living/carbon/human/H, var/msg_type) +/decl/species/proc/get_environment_discomfort(var/mob/living/carbon/human/H, var/msg_type) if(!prob(5)) return @@ -76,38 +76,38 @@ if(covered) to_chat(H, "[pick(heat_discomfort_strings)]") -/datum/species/proc/get_vision_flags(var/mob/living/carbon/human/H) +/decl/species/proc/get_vision_flags(var/mob/living/carbon/human/H) return vision_flags -/datum/species/proc/get_husk_icon(var/mob/living/carbon/human/H) +/decl/species/proc/get_husk_icon(var/mob/living/carbon/human/H) return husk_icon -/datum/species/proc/get_sex(var/mob/living/carbon/H) +/decl/species/proc/get_sex(var/mob/living/carbon/H) return H.gender -/datum/species/proc/get_surgery_overlay_icon(var/mob/living/carbon/human/H) +/decl/species/proc/get_surgery_overlay_icon(var/mob/living/carbon/human/H) return 'icons/mob/surgery.dmi' -/datum/species/proc/get_footstep(var/mob/living/carbon/human/H, var/footstep_type) +/decl/species/proc/get_footstep(var/mob/living/carbon/human/H, var/footstep_type) return -/datum/species/proc/get_brute_mod(var/mob/living/carbon/human/H) +/decl/species/proc/get_brute_mod(var/mob/living/carbon/human/H) . = brute_mod -/datum/species/proc/get_burn_mod(var/mob/living/carbon/human/H) +/decl/species/proc/get_burn_mod(var/mob/living/carbon/human/H) . = burn_mod -/datum/species/proc/get_toxins_mod(var/mob/living/carbon/human/H) +/decl/species/proc/get_toxins_mod(var/mob/living/carbon/human/H) . = toxins_mod -/datum/species/proc/get_radiation_mod(var/mob/living/carbon/human/H) +/decl/species/proc/get_radiation_mod(var/mob/living/carbon/human/H) . = (H && H.isSynthetic() ? 0.5 : radiation_mod) -/datum/species/proc/get_slowdown(var/mob/living/carbon/human/H) +/decl/species/proc/get_slowdown(var/mob/living/carbon/human/H) . = (H && H.isSynthetic() ? 0 : slowdown) -/datum/species/proc/get_root_species_name(var/mob/living/carbon/human/H) +/decl/species/proc/get_root_species_name(var/mob/living/carbon/human/H) return name -/datum/species/proc/get_limb_from_zone(var/limb) +/decl/species/proc/get_limb_from_zone(var/limb) . = length(LAZYACCESS(limb_mapping, limb)) ? pick(limb_mapping[limb]) : limb diff --git a/code/modules/species/species_helpers.dm b/code/modules/species/species_helpers.dm index 63c675c0220..67e9f6c650a 100644 --- a/code/modules/species/species_helpers.dm +++ b/code/modules/species/species_helpers.dm @@ -5,12 +5,12 @@ var/list/stored_shock_by_ref = list() target.electrocute_act(stored_shock_by_ref["\ref[src]"]*0.9, src) stored_shock_by_ref["\ref[src]"] = 0 -/datum/species/proc/toggle_stance(var/mob/living/carbon/human/H) +/decl/species/proc/toggle_stance(var/mob/living/carbon/human/H) if(!H.incapacitated()) H.pulling_punches = !H.pulling_punches to_chat(H, "You are now [H.pulling_punches ? "pulling your punches" : "not pulling your punches"].") -/datum/species/proc/get_offset_overlay_image(var/spritesheet, var/mob_icon, var/mob_state, var/color, var/slot) +/decl/species/proc/get_offset_overlay_image(var/spritesheet, var/mob_icon, var/mob_state, var/color, var/slot) // If we don't actually need to offset this, don't bother with any of the generation/caching. if(!spritesheet && equip_adjust.len && equip_adjust[slot] && LAZYLEN(equip_adjust[slot])) @@ -36,14 +36,14 @@ var/list/stored_shock_by_ref = list() return I return overlay_image(mob_icon, mob_state, color, RESET_COLOR) -/datum/species/proc/fluid_act(var/mob/living/carbon/human/H, var/datum/reagents/fluids) +/decl/species/proc/fluid_act(var/mob/living/carbon/human/H, var/datum/reagents/fluids) var/water = REAGENT_VOLUME(fluids, /decl/material/liquid/water) if(water >= 40 && H.getHalLoss()) H.adjustHalLoss(-(water_soothe_amount)) if(prob(5)) to_chat(H, SPAN_NOTICE("The water ripples gently over your skin in a soothing balm.")) -/datum/species/proc/is_available_for_join() +/decl/species/proc/is_available_for_join() if(!(spawn_flags & SPECIES_CAN_JOIN)) return FALSE else if(!isnull(max_players)) @@ -55,19 +55,19 @@ var/list/stored_shock_by_ref = list() return FALSE return TRUE -/datum/species/proc/check_background(var/datum/job/job, var/datum/preferences/prefs) +/decl/species/proc/check_background(var/datum/job/job, var/datum/preferences/prefs) . = TRUE -/datum/species/proc/get_digestion_product() +/decl/species/proc/get_digestion_product() return /decl/material/liquid/nutriment -/datum/species/proc/handle_post_species_pref_set(var/datum/preferences/pref) +/decl/species/proc/handle_post_species_pref_set(var/datum/preferences/pref) return -/datum/species/proc/get_resized_organ_w_class(var/organ_w_class) +/decl/species/proc/get_resized_organ_w_class(var/organ_w_class) . = Clamp(organ_w_class + mob_size_difference(mob_size, MOB_SIZE_MEDIUM), ITEM_SIZE_TINY, ITEM_SIZE_GARGANTUAN) -/datum/species/proc/resize_organ(var/obj/item/organ/organ) +/decl/species/proc/resize_organ(var/obj/item/organ/organ) if(!istype(organ)) return organ.w_class = get_resized_organ_w_class(initial(organ.w_class)) diff --git a/code/modules/species/species_random.dm b/code/modules/species/species_random.dm index 3b2a775d58e..6ef44ba57bf 100644 --- a/code/modules/species/species_random.dm +++ b/code/modules/species/species_random.dm @@ -1,6 +1,6 @@ #define SETUP_RANDOM_COLOR_GETTER(X, Y, Z, W) \ -/datum/species/var/list/random_##Y = W;\ -/datum/species/proc/get_random_##X(){\ +/decl/species/var/list/random_##Y = W;\ +/decl/species/proc/get_random_##X(){\ if(!(appearance_flags & Z) || !random_##Y.len){\ return;\ }\ @@ -52,12 +52,12 @@ SETUP_RANDOM_COLOR_GETTER(eye_color, eye_colors, HAS_EYE_COLOR, list( /decl/color_generator/albino_eye)) SETUP_RANDOM_COLOR_SETTER(eye_color, change_eye_color) -/datum/species/proc/get_random_facial_hair_color() +/decl/species/proc/get_random_facial_hair_color() return get_random_hair_color() SETUP_RANDOM_COLOR_SETTER(facial_hair_color, change_facial_hair_color) -/datum/species/proc/get_random_skin_tone() +/decl/species/proc/get_random_skin_tone() return random_skin_tone(src) /mob/living/carbon/human/proc/randomize_skin_tone() diff --git a/code/modules/species/species_shapeshift.dm b/code/modules/species/species_shapeshift.dm index 90804b876ae..253fc75705c 100644 --- a/code/modules/species/species_shapeshift.dm +++ b/code/modules/species/species_shapeshift.dm @@ -3,7 +3,7 @@ // used for slimes but it may be useful for changelings later. var/list/wrapped_species_by_ref = list() -/datum/species/shapeshifter +/decl/species/shapeshifter inherent_verbs = list( /mob/living/carbon/human/proc/shapeshifter_select_shape, @@ -15,87 +15,87 @@ var/list/wrapped_species_by_ref = list() var/monochromatic var/default_form -/datum/species/shapeshifter/New() +/decl/species/shapeshifter/New() default_form = GLOB.using_map.default_species valid_transform_species |= default_form ..() -/datum/species/shapeshifter/get_valid_shapeshifter_forms(var/mob/living/carbon/human/H) +/decl/species/shapeshifter/get_valid_shapeshifter_forms(var/mob/living/carbon/human/H) return valid_transform_species -/datum/species/shapeshifter/get_icobase(var/mob/living/carbon/human/H, var/get_deform) +/decl/species/shapeshifter/get_icobase(var/mob/living/carbon/human/H, var/get_deform) if(!H) return ..(null, get_deform) - var/datum/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) + var/decl/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) return S.get_icobase(H, get_deform) -/datum/species/shapeshifter/get_icon_cache_uid(var/mob/H) +/decl/species/shapeshifter/get_icon_cache_uid(var/mob/H) . = ..() if(H) . = "[.]-[wrapped_species_by_ref["\ref[H]"]]" -/datum/species/shapeshifter/get_bodytype(var/mob/living/carbon/human/H) +/decl/species/shapeshifter/get_bodytype(var/mob/living/carbon/human/H) if(!H) return ..() - var/datum/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) + var/decl/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) return S.get_bodytype(H) -/datum/species/shapeshifter/get_root_species_name(var/mob/living/carbon/human/H) +/decl/species/shapeshifter/get_root_species_name(var/mob/living/carbon/human/H) if(!H) return ..() - var/datum/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) + var/decl/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) return S.get_root_species_name(H) -/datum/species/shapeshifter/get_blood_mask(var/mob/living/carbon/human/H) +/decl/species/shapeshifter/get_blood_mask(var/mob/living/carbon/human/H) if(!H) return ..() - var/datum/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) + var/decl/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) return S.get_blood_mask(H) -/datum/species/shapeshifter/get_damage_mask(var/mob/living/carbon/human/H) +/decl/species/shapeshifter/get_damage_mask(var/mob/living/carbon/human/H) if(!H) return ..() - var/datum/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) + var/decl/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) return S.get_damage_mask(H) -/datum/species/shapeshifter/get_damage_overlays(var/mob/living/carbon/human/H) +/decl/species/shapeshifter/get_damage_overlays(var/mob/living/carbon/human/H) if(!H) return ..() - var/datum/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) + var/decl/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) return S.get_damage_overlays(H) -/datum/species/shapeshifter/get_tail(var/mob/living/carbon/human/H) +/decl/species/shapeshifter/get_tail(var/mob/living/carbon/human/H) if(!H) return ..() - var/datum/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) + var/decl/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) return S.get_tail(H) -/datum/species/shapeshifter/get_tail_animation(var/mob/living/carbon/human/H) +/decl/species/shapeshifter/get_tail_animation(var/mob/living/carbon/human/H) if(!H) return ..() - var/datum/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) + var/decl/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) return S.get_tail_animation(H) -/datum/species/shapeshifter/get_tail_hair(var/mob/living/carbon/human/H) +/decl/species/shapeshifter/get_tail_hair(var/mob/living/carbon/human/H) if(!H) return ..() - var/datum/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) + var/decl/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) return S.get_tail_hair(H) -/datum/species/shapeshifter/get_husk_icon(var/mob/living/carbon/human/H) +/decl/species/shapeshifter/get_husk_icon(var/mob/living/carbon/human/H) if(H) - var/datum/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) + var/decl/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) if(S) return S.get_husk_icon(H) return ..() -/datum/species/shapeshifter/handle_pre_spawn(var/mob/living/carbon/human/H) +/decl/species/shapeshifter/handle_pre_spawn(var/mob/living/carbon/human/H) ..() wrapped_species_by_ref["\ref[H]"] = default_form -/datum/species/shapeshifter/handle_post_spawn(var/mob/living/carbon/human/H) +/decl/species/shapeshifter/handle_post_spawn(var/mob/living/carbon/human/H) if(monochromatic) H.hair_colour = H.skin_colour H.facial_hair_colour = H.skin_colour ..() -/datum/species/shapeshifter/post_organ_rejuvenate(var/obj/item/organ/org, var/mob/living/carbon/human/H) +/decl/species/shapeshifter/post_organ_rejuvenate(var/obj/item/organ/org, var/mob/living/carbon/human/H) var/obj/item/organ/external/E = org if(H && istype(E)) E.sync_colour_to_human(H) -/datum/species/shapeshifter/get_pain_emote(var/mob/living/carbon/human/H, var/pain_power) - var/datum/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) +/decl/species/shapeshifter/get_pain_emote(var/mob/living/carbon/human/H, var/pain_power) + var/decl/species/S = get_species_by_key(wrapped_species_by_ref["\ref[H]"]) return S.get_pain_emote(H, pain_power) // Verbs follow. @@ -171,7 +171,7 @@ var/list/wrapped_species_by_ref = list() skin_colour = new_skin - var/datum/species/shapeshifter/S = species + var/decl/species/shapeshifter/S = species if(S.monochromatic) hair_colour = skin_colour facial_hair_colour = skin_colour diff --git a/code/modules/species/station/golem.dm b/code/modules/species/station/golem.dm index 2b2d6e9b03b..add5e3b6ada 100644 --- a/code/modules/species/station/golem.dm +++ b/code/modules/species/station/golem.dm @@ -1,4 +1,4 @@ -/datum/species/golem +/decl/species/golem name = SPECIES_GOLEM name_plural = "Golems" @@ -44,7 +44,7 @@ TAG_FACTION = FACTION_OTHER ) -/datum/species/golem/handle_post_spawn(var/mob/living/carbon/human/H) +/decl/species/golem/handle_post_spawn(var/mob/living/carbon/human/H) if(H.mind) H.mind.reset() H.mind.assigned_role = "Golem" diff --git a/code/modules/species/station/monkey.dm b/code/modules/species/station/monkey.dm index 956dcb89c7d..7d49dde0039 100644 --- a/code/modules/species/station/monkey.dm +++ b/code/modules/species/station/monkey.dm @@ -1,4 +1,4 @@ -/datum/species/monkey +/decl/species/monkey name = SPECIES_MONKEY name_plural = "Monkeys" description = "Ook." @@ -56,7 +56,7 @@ ai = /datum/ai/monkey -/datum/species/monkey/New() +/decl/species/monkey/New() equip_adjust = list( BP_L_HAND = list("[NORTH]" = list("x" = 1, "y" = 3), "[EAST]" = list("x" = -3, "y" = 2), "[SOUTH]" = list("x" = -1, "y" = 3), "[WEST]" = list("x" = 3, "y" = 2)), BP_R_HAND = list("[NORTH]" = list("x" = -1, "y" = 3), "[EAST]" = list("x" = 3, "y" = 2), "[SOUTH]" = list("x" = 1, "y" = 3), "[WEST]" = list("x" = -3, "y" = 2)), diff --git a/code/modules/species/station/station.dm b/code/modules/species/station/station.dm index 23b18ad8d01..fcb5e4d186c 100644 --- a/code/modules/species/station/station.dm +++ b/code/modules/species/station/station.dm @@ -1,4 +1,4 @@ -/datum/species/human +/decl/species/human name = SPECIES_HUMAN name_plural = "Humans" primitive_form = SPECIES_MONKEY @@ -25,10 +25,10 @@ ) ) -/datum/species/human/get_root_species_name(var/mob/living/carbon/human/H) +/decl/species/human/get_root_species_name(var/mob/living/carbon/human/H) return SPECIES_HUMAN -/datum/species/human/get_ssd(var/mob/living/carbon/human/H) +/decl/species/human/get_ssd(var/mob/living/carbon/human/H) if(H.stat == CONSCIOUS) return "staring blankly, not reacting to your presence" return ..() diff --git a/code/modules/species/station/utility_frame.dm b/code/modules/species/station/utility_frame.dm index b83bd4bd0ef..532a62217d0 100644 --- a/code/modules/species/station/utility_frame.dm +++ b/code/modules/species/station/utility_frame.dm @@ -1,4 +1,4 @@ -/datum/species/utility_frame +/decl/species/utility_frame name = SPECIES_FRAME name_plural = "Utility Frames" description = "Simple AI-driven robots are used for many menial or repetitive tasks in human space." @@ -49,7 +49,7 @@ BP_EYES = /obj/item/organ/internal/eyes/robot ) -/datum/species/utility_frame/post_organ_rejuvenate(obj/item/organ/org, mob/living/carbon/human/H) +/decl/species/utility_frame/post_organ_rejuvenate(obj/item/organ/org, mob/living/carbon/human/H) var/obj/item/organ/external/E = org if(istype(E) && !BP_IS_PROSTHETIC(E)) E.robotize("Utility Frame") @@ -61,7 +61,7 @@ eyes.eye_icon = 'icons/mob/human_races/cyberlimbs/utility/eyes.dmi' H.regenerate_icons() -/datum/species/utility_frame/handle_post_species_pref_set(var/datum/preferences/pref) +/decl/species/utility_frame/handle_post_species_pref_set(var/datum/preferences/pref) if(pref) LAZYINITLIST(pref.body_markings) for(var/marking in list("Frame Body Plating", "Frame Leg Plating", "Frame Head Plating")) @@ -70,10 +70,10 @@ pref.skin_colour = "#333355" pref.eye_colour = "#00ccff" -/datum/species/utility_frame/get_blood_name() +/decl/species/utility_frame/get_blood_name() . = "coolant" -/datum/species/utility_frame/disfigure_msg(var/mob/living/carbon/human/H) +/decl/species/utility_frame/disfigure_msg(var/mob/living/carbon/human/H) . = SPAN_DANGER("The faceplate is dented and cracked!\n") /datum/sprite_accessory/marking/frame diff --git a/code/modules/submaps/submap_job.dm b/code/modules/submaps/submap_job.dm index 208065c5c67..d0e4f38c234 100644 --- a/code/modules/submaps/submap_job.dm +++ b/code/modules/submaps/submap_job.dm @@ -56,7 +56,7 @@ owner = _owner ..() -/datum/job/submap/is_species_allowed(var/datum/species/S) +/datum/job/submap/is_species_allowed(var/decl/species/S) if(LAZYLEN(whitelisted_species) && !(S.name in whitelisted_species)) return FALSE if(S.name in blacklisted_species) @@ -69,7 +69,7 @@ return TRUE /datum/job/submap/is_restricted(var/datum/preferences/prefs, var/feedback) - var/datum/species/S = get_species_by_key(prefs.species) + var/decl/species/S = get_species_by_key(prefs.species) if(LAZYACCESS(minimum_character_age, S.get_root_species_name()) && (prefs.age < minimum_character_age[S.get_root_species_name()])) to_chat(feedback, "Not old enough. Minimum character age is [minimum_character_age[S.get_root_species_name()]].") return TRUE diff --git a/code/unit_tests/culture.dm b/code/unit_tests/culture.dm index 7e997a695f5..2773a958b0c 100644 --- a/code/unit_tests/culture.dm +++ b/code/unit_tests/culture.dm @@ -4,7 +4,7 @@ /datum/unit_test/culture/start_test() var/fails = 0 for(var/species_name in get_all_species()) - var/datum/species/species = get_species_by_key(species_name) + var/decl/species/species = get_species_by_key(species_name) if(!islist(species.default_cultural_info)) fails++ log_bad("Default cultural info for [species_name] is not a list.") diff --git a/code/unit_tests/mob_tests.dm b/code/unit_tests/mob_tests.dm index ceb1848f06a..ea28461aa51 100644 --- a/code/unit_tests/mob_tests.dm +++ b/code/unit_tests/mob_tests.dm @@ -27,7 +27,7 @@ if(!istype(T, /turf/space)) //If the above isn't a space turf then we force it to find one will most likely pick 1,1,1 T = locate(/turf/space) for(var/species_name in get_all_species()) - var/datum/species/S = get_species_by_key(species_name) + var/decl/species/S = get_species_by_key(species_name) var/mob/living/carbon/human/H = new(T, S.name) if(H.need_breathe()) var/species_organ = H.species.breathing_organ @@ -303,7 +303,7 @@ datum/unit_test/mob_damage/halloss /datum/unit_test/species_base_skin/start_test() for(var/species_name in get_all_species()) - var/datum/species/S = get_species_by_key(species_name) + var/decl/species/S = get_species_by_key(species_name) if(S.base_skin_colours) if(!(S.appearance_flags & HAS_BASE_SKIN_COLOURS)) log_unit_test("[S.name] has a skin colour list but no HAS_BASE_SKIN_COLOURS flag.") diff --git a/code/unit_tests/organ_tests.dm b/code/unit_tests/organ_tests.dm index c96e2c450dc..c41e35e141a 100644 --- a/code/unit_tests/organ_tests.dm +++ b/code/unit_tests/organ_tests.dm @@ -22,7 +22,7 @@ /datum/unit_test/species_organ_creation name = "ORGAN: Species Organs are Created Correctly" -/datum/unit_test/species_organ_creation/proc/check_internal_organs(var/mob/living/carbon/human/H, var/datum/species/species) +/datum/unit_test/species_organ_creation/proc/check_internal_organs(var/mob/living/carbon/human/H, var/decl/species/species) . = 1 for(var/organ_tag in species.has_organ) var/obj/item/organ/internal/I = H.internal_organs_by_name[organ_tag] @@ -43,7 +43,7 @@ fail("[species.name] internal organ tag mismatch. Registered as \"[organ_tag]\", actual tag was \"[I.organ_tag]\".") . = 0 -/datum/unit_test/species_organ_creation/proc/check_external_organs(var/mob/living/carbon/human/H, var/datum/species/species) +/datum/unit_test/species_organ_creation/proc/check_external_organs(var/mob/living/carbon/human/H, var/decl/species/species) . = 1 for(var/organ_tag in species.has_limbs) var/obj/item/organ/external/E = H.organs_by_name[organ_tag] @@ -65,7 +65,7 @@ fail("[species.name] internal organ tag mismatch. Registered as \"[organ_tag]\", actual tag was \"[E.organ_tag]\".") . = 0 -/datum/unit_test/species_organ_creation/proc/check_organ_parents(var/mob/living/carbon/human/H, var/datum/species/species) +/datum/unit_test/species_organ_creation/proc/check_organ_parents(var/mob/living/carbon/human/H, var/decl/species/species) . = 1 for(var/obj/item/organ/external/E in H.organs) if(!E.parent_organ) @@ -109,7 +109,7 @@ /datum/unit_test/species_organ_creation/start_test() var/failcount = 0 - for(var/datum/species/species in get_all_species()) + for(var/decl/species/species in get_all_species()) var/mob/living/carbon/human/test_subject = new(null, species.name) var/fail = 0 @@ -234,7 +234,7 @@ /datum/unit_test/species_organ_lists_update/start_test() var/failcount = 0 - for(var/datum/species/species in get_all_species()) + for(var/decl/species/species in get_all_species()) var/mob/living/carbon/human/test_subject = new(null, species.name) for(var/O in test_subject.internal_organs) diff --git a/maps/~mapsystem/map_ranks.dm b/maps/~mapsystem/map_ranks.dm index 3c859c657e7..9f100dc6666 100644 --- a/maps/~mapsystem/map_ranks.dm +++ b/maps/~mapsystem/map_ranks.dm @@ -9,7 +9,7 @@ var/list/species_to_rank_blacklist = list() // Lists of ranks which are restricted, per species. // The white, and blacklist are type specific, any subtypes (of both species and jobs) have to be added explicitly -/datum/map/proc/is_species_branch_restricted(var/datum/species/S, var/datum/mil_branch/MB) +/datum/map/proc/is_species_branch_restricted(var/decl/species/S, var/datum/mil_branch/MB) if(!istype(S) || !istype(MB)) return TRUE @@ -23,7 +23,7 @@ return whitelist // not in the whitelist, no blacklist = bad, no whitelist or blacklist = fine -/datum/map/proc/is_species_rank_restricted(var/datum/species/S, var/datum/mil_branch/MB, var/datum/mil_rank/MR) +/datum/map/proc/is_species_rank_restricted(var/decl/species/S, var/datum/mil_branch/MB, var/datum/mil_rank/MR) if(!istype(S) || !istype(MB) || !istype(MR)) return TRUE diff --git a/maps/~mapsystem/maps_jobs.dm b/maps/~mapsystem/maps_jobs.dm index ce6fa1ddf4f..5e5a6be2ec7 100644 --- a/maps/~mapsystem/maps_jobs.dm +++ b/maps/~mapsystem/maps_jobs.dm @@ -6,7 +6,7 @@ var/default_assistant_title = "Assistant" // The white, and blacklist are type specific, any subtypes (of both species and jobs) have to be added explicitly -/datum/map/proc/is_species_job_restricted(var/datum/species/S, var/datum/job/J) +/datum/map/proc/is_species_job_restricted(var/decl/species/S, var/datum/job/J) if(!istype(S) || !istype(J)) return TRUE diff --git a/mods/ascent/away_sites/ascent/ascent_jobs.dm b/mods/ascent/away_sites/ascent/ascent_jobs.dm index 96fb0b69432..d51ca7fb5b0 100644 --- a/mods/ascent/away_sites/ascent/ascent_jobs.dm +++ b/mods/ascent/away_sites/ascent/ascent_jobs.dm @@ -67,7 +67,7 @@ continue - var/new_alate_number = is_species_whitelisted(H, SPECIES_MANTID_GYNE) ? random_id(/datum/species/mantid, 1000, 9999) : random_id(/datum/species/mantid, 10000, 99999) + var/new_alate_number = is_species_whitelisted(H, SPECIES_MANTID_GYNE) ? random_id(/decl/species/mantid, 1000, 9999) : random_id(/decl/species/mantid, 10000, 99999) H.fully_replace_character_name("[new_alate_number] [new_name]") to_chat(H, SPAN_NOTICE("Your gyne, [real_name], has awakened, and you recall your place in the nest-lineage: [H.real_name].")) @@ -136,10 +136,10 @@ H.set_species(set_species_on_join) switch(H.species.name) if(SPECIES_MANTID_GYNE) - H.real_name = "[random_id(/datum/species/mantid, 1, 99)] [cutter.gyne_name]" + H.real_name = "[random_id(/decl/species/mantid, 1, 99)] [cutter.gyne_name]" H.verbs |= /mob/living/carbon/human/proc/gyne_rename_lineage if(SPECIES_MANTID_ALATE) - var/new_alate_number = is_species_whitelisted(H, SPECIES_MANTID_GYNE) ? random_id(/datum/species/mantid, 1000, 9999) : random_id(/datum/species/mantid, 10000, 99999) + var/new_alate_number = is_species_whitelisted(H, SPECIES_MANTID_GYNE) ? random_id(/decl/species/mantid, 1000, 9999) : random_id(/decl/species/mantid, 10000, 99999) H.real_name = "[new_alate_number] [cutter.gyne_name]" H.name = H.real_name if(H.mind) diff --git a/mods/ascent/datum/culture.dm b/mods/ascent/datum/culture.dm index 028a276912b..f3fb82bb64b 100644 --- a/mods/ascent/datum/culture.dm +++ b/mods/ascent/datum/culture.dm @@ -81,9 +81,9 @@ GLOBAL_LIST_INIT(gyne_architecture, list( if(istype(H) && H.dna.lineage) lineage = H.dna.lineage if(gender == MALE) - return "[random_id(/datum/species/mantid, 10000, 99999)] [lineage]" + return "[random_id(/decl/species/mantid, 10000, 99999)] [lineage]" else - return "[random_id(/datum/species/mantid, 1, 99)] [lineage]" + return "[random_id(/decl/species/mantid, 1, 99)] [lineage]" /decl/cultural_info/location/kharmaani name = HOME_SYSTEM_KHARMAANI diff --git a/mods/ascent/datum/emotes.dm b/mods/ascent/datum/emotes.dm index a4f0b157cfd..85a65b9ef8f 100644 --- a/mods/ascent/datum/emotes.dm +++ b/mods/ascent/datum/emotes.dm @@ -1,4 +1,4 @@ -/datum/species/mantid +/decl/species/mantid default_emotes = list( /decl/emote/audible/ascent_purr, /decl/emote/audible/ascent_hiss, diff --git a/mods/ascent/datum/species.dm b/mods/ascent/datum/species.dm index 14ba3e7186a..df06fb657c5 100644 --- a/mods/ascent/datum/species.dm +++ b/mods/ascent/datum/species.dm @@ -1,4 +1,4 @@ -/datum/species/mantid +/decl/species/mantid name = SPECIES_MANTID_ALATE name_plural = "Kharmaan Alates" @@ -114,24 +114,24 @@ list(/decl/emote/visible/ascent_flicker, /decl/emote/visible/ascent_glint) = 20, ) -///datum/species/mantid/New() +///decl/species/mantid/New() //..() //LAZYINITLIST(limb_mapping) //LAZYDISTINCTADD(limb_mapping, BP_CHEST, BP_M_HAND) -/datum/species/mantid/handle_sleeping(var/mob/living/carbon/human/H) +/decl/species/mantid/handle_sleeping(var/mob/living/carbon/human/H) return -/datum/species/mantid/get_blood_name() +/decl/species/mantid/get_blood_name() return "hemolymph" -/datum/species/mantid/post_organ_rejuvenate(var/obj/item/organ/org, var/mob/living/carbon/human/H) +/decl/species/mantid/post_organ_rejuvenate(var/obj/item/organ/org, var/mob/living/carbon/human/H) org.status |= ORGAN_CRYSTAL -/datum/species/mantid/equip_survival_gear(var/mob/living/carbon/human/H, var/extendedtank = 1) +/decl/species/mantid/equip_survival_gear(var/mob/living/carbon/human/H, var/extendedtank = 1) return -/datum/species/mantid/gyne +/decl/species/mantid/gyne name = SPECIES_MANTID_GYNE name_plural = "Kharmaan Gynes" @@ -178,7 +178,7 @@ TAG_RELIGION = RELIGION_KHARMAANI ) -/datum/species/mantid/gyne/New() +/decl/species/mantid/gyne/New() equip_adjust = list( BP_L_HAND = list( "[NORTH]" = list("x" = -4, "y" = 12), @@ -208,7 +208,7 @@ "belt" = list("loc" = ui_belt, "name" = "Belt", "slot" = slot_belt_str, "state" = "belt") ) -/datum/species/serpentid +/decl/species/serpentid name = SPECIES_SERPENTID name_plural = "Serpentids" spawn_flags = SPECIES_IS_RESTRICTED @@ -310,7 +310,7 @@ list(/decl/emote/audible/bug_hiss) = 40 ) -/datum/species/serpentid/New() +/decl/species/serpentid/New() ..() //LAZYINITLIST(limb_mapping) //LAZYDISTINCTADD(limb_mapping, BP_L_HAND, BP_L_HAND_UPPER) @@ -326,10 +326,10 @@ slot_glasses_str = list("[NORTH]" = list("x" = 0, "y" = 10), "[EAST]" = list("x" = 0, "y" = 11), "[SOUTH]" = list("x" = 0, "y" = 11), "[WEST]" = list("x" = 0, "y" = 11)) ) -/datum/species/serpentid/get_blood_name() +/decl/species/serpentid/get_blood_name() return "haemolymph" -/datum/species/serpentid/can_overcome_gravity(var/mob/living/carbon/human/H) +/decl/species/serpentid/can_overcome_gravity(var/mob/living/carbon/human/H) var/datum/gas_mixture/mixture = H.loc.return_air() if(mixture) @@ -342,12 +342,12 @@ return FALSE -/datum/species/serpentid/handle_environment_special(var/mob/living/carbon/human/H) +/decl/species/serpentid/handle_environment_special(var/mob/living/carbon/human/H) if(!H.on_fire && H.fire_stacks < 2) H.fire_stacks += 0.2 return -/datum/species/serpentid/can_fall(var/mob/living/carbon/human/H) +/decl/species/serpentid/can_fall(var/mob/living/carbon/human/H) var/datum/gas_mixture/mixture = H.loc.return_air() var/turf/T = GetBelow(H.loc) for(var/obj/O in T) @@ -359,7 +359,7 @@ return FALSE return TRUE -/datum/species/serpentid/handle_fall_special(var/mob/living/carbon/human/H, var/turf/landing) +/decl/species/serpentid/handle_fall_special(var/mob/living/carbon/human/H, var/turf/landing) var/datum/gas_mixture/mixture = H.loc.return_air() var/turf/T = GetBelow(H.loc) @@ -379,13 +379,13 @@ return FALSE -/datum/species/serpentid/can_shred(var/mob/living/carbon/human/H, var/ignore_intent, var/ignore_antag) +/decl/species/serpentid/can_shred(var/mob/living/carbon/human/H, var/ignore_intent, var/ignore_antag) if(!H.handcuffed || H.buckled) return ..(H, ignore_intent, TRUE) else return 0 -/datum/species/serpentid/handle_movement_delay_special(var/mob/living/carbon/human/H) +/decl/species/serpentid/handle_movement_delay_special(var/mob/living/carbon/human/H) var/tally = 0 H.remove_cloaking_source(src) @@ -396,7 +396,7 @@ tally += N.lowblood_tally * 2 return tally -/datum/species/serpentid/update_skin(var/mob/living/carbon/human/H) +/decl/species/serpentid/update_skin(var/mob/living/carbon/human/H) if(H.stat) H.skin_state = SKIN_NORMAL @@ -435,7 +435,7 @@ return(threat_image) -/datum/species/serpentid/disarm_attackhand(var/mob/living/carbon/human/attacker, var/mob/living/carbon/human/target) +/decl/species/serpentid/disarm_attackhand(var/mob/living/carbon/human/attacker, var/mob/living/carbon/human/target) if(attacker.pulling_punches || target.lying || attacker == target) return ..(attacker, target) if(world.time < attacker.last_attack + 20) @@ -452,7 +452,7 @@ if(prob(50)) target.set_dir(GLOB.reverse_dir[target.dir]) -/datum/species/serpentid/skills_from_age(age) //Converts an age into a skill point allocation modifier. Can be used to give skill point bonuses/penalities not depending on job. +/decl/species/serpentid/skills_from_age(age) //Converts an age into a skill point allocation modifier. Can be used to give skill point bonuses/penalities not depending on job. switch(age) if(0 to 18) . = 8 if(19 to 27) . = 2 diff --git a/mods/ascent/machines/fabricator.dm b/mods/ascent/machines/fabricator.dm index 6d0730d0865..0f6eb293d8b 100644 --- a/mods/ascent/machines/fabricator.dm +++ b/mods/ascent/machines/fabricator.dm @@ -7,7 +7,7 @@ req_access = list(access_ascent) base_type = /obj/machinery/fabricator construct_state = /decl/machine_construction/default/no_deconstruct - species_variation = /datum/species/mantid + species_variation = /decl/species/mantid /obj/item/stock_parts/circuitboard/ascent_fabricator name = T_BOARD("ascent nanofabricator") @@ -26,5 +26,5 @@ /datum/fabricator_recipe/imprinter/circuit/ascent_fabricator path = /obj/item/stock_parts/circuitboard/ascent_fabricator species_locked = list( - /datum/species/mantid + /decl/species/mantid ) \ No newline at end of file diff --git a/mods/ascent/machines/magnetotron.dm b/mods/ascent/machines/magnetotron.dm index e043fd5beca..65c6e187cf1 100644 --- a/mods/ascent/machines/magnetotron.dm +++ b/mods/ascent/machines/magnetotron.dm @@ -76,5 +76,5 @@ /datum/fabricator_recipe/imprinter/circuit/ascent_magnetotron path = /obj/item/stock_parts/circuitboard/ascent_magnetotron species_locked = list( - /datum/species/mantid + /decl/species/mantid ) \ No newline at end of file diff --git a/mods/ascent/machines/ship_alarm.dm b/mods/ascent/machines/ship_alarm.dm index a33090309f4..88ea31b6246 100644 --- a/mods/ascent/machines/ship_alarm.dm +++ b/mods/ascent/machines/ship_alarm.dm @@ -36,7 +36,7 @@ MANTIDIFY(/obj/machinery/alarm, "mantid thermostat", "atmospherics") /datum/fabricator_recipe/engineering/airalarm_kit/ascent path = /obj/item/frame/air_alarm/ascent/kit species_locked = list( - /datum/species/mantid + /decl/species/mantid ) /obj/item/stock_parts/circuitboard/air_alarm/ascent @@ -46,5 +46,5 @@ MANTIDIFY(/obj/machinery/alarm, "mantid thermostat", "atmospherics") /datum/fabricator_recipe/engineering/airalarm/ascent path = /obj/item/stock_parts/circuitboard/air_alarm/ascent species_locked = list( - /datum/species/mantid + /decl/species/mantid ) \ No newline at end of file diff --git a/mods/ascent/mobs/insectoid_egg.dm b/mods/ascent/mobs/insectoid_egg.dm index 65dfb45c7d8..8f3dbe96245 100644 --- a/mods/ascent/mobs/insectoid_egg.dm +++ b/mods/ascent/mobs/insectoid_egg.dm @@ -100,7 +100,7 @@ GLOBAL_VAR_INIT(default_gyne, create_gyne_name()) new_nymph.loc = src new_nymph.lastarea = get_area(src) new_nymph.key = C.ckey - new_nymph.real_name = "[random_id(/datum/species/mantid, 10000, 99999)] [lineage]" + new_nymph.real_name = "[random_id(/decl/species/mantid, 10000, 99999)] [lineage]" hatching = TRUE update_icon() visible_message(SPAN_NOTICE("\icon[src] \The [src] trembles and cracks as it begins to hatch.")) diff --git a/mods/ascent/mobs/nymph/nymph_life.dm b/mods/ascent/mobs/nymph/nymph_life.dm index 65a67356e72..d22892cbffd 100644 --- a/mods/ascent/mobs/nymph/nymph_life.dm +++ b/mods/ascent/mobs/nymph/nymph_life.dm @@ -70,7 +70,7 @@ if(do_after(nymph, 10 SECONDS, nymph, FALSE)) var/mob/living/carbon/human/H = new(get_turf(usr), SPECIES_MANTID_ALATE) H.dna.lineage = nymph.dna.lineage - H.real_name = "[random_id(/datum/species/mantid, 10000, 99999)] [H.get_gyne_name()]" + H.real_name = "[random_id(/decl/species/mantid, 10000, 99999)] [H.get_gyne_name()]" H.nutrition = nymph.nutrition * 0.25 // Homgry after molt. nymph.mind.transfer_to(H) qdel(nymph)