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)