From 287fb079d1d52c8f244c7f08b3efa18de567f1cd Mon Sep 17 00:00:00 2001 From: Felix <58342752+TheLordME@users.noreply.github.com> Date: Fri, 27 Jan 2023 10:17:33 +0100 Subject: [PATCH] Whitelist backend changes (#4996) ## About The Pull Request ## Why It's Good For The Game Whitelist are run by name, so renaming a whitelisted species also needs an update to the WL as well. Removes a shitty gimmick of a mirror most people dont have access to because its a fucking nightmare of conditions we partially removed and a fix for both runtimes and uninteded stat cheating ## Changelog :cl: del: Removed the code behind the raider mirror fix: fixed the shadekin traits applying to non shadekin config: changed WL using Species ID rather than name refactor: changed character species to always have a superspecies_id /:cl: --- code/__DEFINES/species/species.dm | 4 +-- code/__DEFINES/species/species_flags.dm | 3 ++ code/controllers/configuration/whitelists.dm | 2 +- .../subsystem/characters/species.dm | 7 ++-- code/game/objects/structures/mirror.dm | 26 ++------------- .../mob/living/carbon/human/appearance.dm | 2 +- code/modules/mob/new_player/new_player.dm | 4 +-- .../preference_setup/background/species.dm | 6 ++-- code/modules/species/character_species.dm | 2 +- .../modules/species/protean/protean_powers.dm | 4 +-- .../species/shadekin/shadekin_traits.dm | 33 ++++++++++--------- code/modules/species/species.dm | 4 +-- code/modules/species/station/adherent.dm | 3 +- code/modules/species/station/alraune.dm | 3 +- code/modules/species/station/apidaen.dm | 3 +- .../modules/species/station/custom_species.dm | 3 +- code/modules/species/station/diona.dm | 3 +- code/modules/species/station/golem.dm | 3 +- code/modules/species/station/monkey.dm | 3 +- code/modules/species/station/phoronoids.dm | 3 +- code/modules/species/station/rapala.dm | 3 +- .../modules/species/station/standard/akula.dm | 1 + .../modules/species/station/standard/harpy.dm | 1 + .../station/standard/human_subspecies.dm | 3 ++ .../species/station/standard/naramadi.dm | 11 ++++--- .../species/station/standard/nevrean.dm | 1 + .../species/station/standard/shadekin.dm | 1 + .../species/station/standard/skrell.dm | 1 + .../species/station/standard/tajaran.dm | 1 + .../species/station/standard/teshari.dm | 1 + .../species/station/standard/unathi.dm | 1 + .../species/station/standard/unathidigi.dm | 3 +- .../species/station/standard/vulpkanin.dm | 1 + .../species/station/standard/zaddat.dm | 1 + .../species/station/standard/zorren.dm | 1 + code/modules/species/station/vasilissan.dm | 3 +- code/modules/species/station/werebeast.dm | 3 +- .../station/xenomorph_hybrids/xeno_hybrids.dm | 1 + .../species/virtual_reality/opaque_form.dm | 19 ++++++++--- .../species/xenochimera/xenochimera.dm | 3 +- 40 files changed, 99 insertions(+), 82 deletions(-) diff --git a/code/__DEFINES/species/species.dm b/code/__DEFINES/species/species.dm index feb7b3f417a..f8b54c65e3a 100644 --- a/code/__DEFINES/species/species.dm +++ b/code/__DEFINES/species/species.dm @@ -33,7 +33,7 @@ #define SPECIES_ID_SCORI "scori" #define SPECIES_ID_SERGLING "sergling" #define SPECIES_ID_SHADEKIN "shadekin" -#define SPECIES_ID_SHADEKIN_BLACK "shadekin_black" +#define SPECIES_ID_SHADEKIN_BLACK "blackeyedshadekin" #define SPECIES_ID_SHADOW "shadow" #define SPECIES_ID_SKELETON "skeleton" #define SPECIES_ID_SKRELL "skrell" @@ -65,7 +65,7 @@ #define SPECIES_ID_XENOMORPH_HUNTER "xenomorph_hunter" #define SPECIES_ID_XENOMORPH_QUEEN "xenomorph_queen" #define SPECIES_ID_XENOMORPH_SENTINEL "xenomorph_sentinel" -#define SPECIES_ID_XENOHYBRID "xenohybrid" +#define SPECIES_ID_XENOHYBRID "xenomorph_hybrid" #define SPECIES_ID_ZADDAT "zaddat" #define SPECIES_ID_ZORREN "zorren" #define SPECIES_ID_ZORREN_HIGH "zorren_high" diff --git a/code/__DEFINES/species/species_flags.dm b/code/__DEFINES/species/species_flags.dm index e93340cf0db..5908590a9eb 100644 --- a/code/__DEFINES/species/species_flags.dm +++ b/code/__DEFINES/species/species_flags.dm @@ -72,6 +72,8 @@ DEFINE_BITFIELD(species_fluff_flags, list( #define SPECIES_SPAWN_SECRET (1<<3) /// Cannot normally spawn; something must pass in PREFS_COPY_TO_NO_CHECK_SPECIES to spawn checks to use! #define SPECIES_SPAWN_RESTRICTED (1<<4) +/// if set, check species.id in WL, otherwise use uid +#define SPECIES_SPAWN_WHITELIST_FLEXIBLE (1<<5) //? FLAGS ABOVE ARE RELEVANT TO UI. //? If you change them, change necessary TGUI too. //? Current TGUI that uses this: @@ -92,6 +94,7 @@ DEFINE_BITFIELD(species_spawn_flags, list( BITFIELD(SPECIES_SPAWN_NO_FBP_CONSTRUCT), BITFIELD(SPECIES_SPAWN_NO_FBP_SETUP), BITFIELD(SPECIES_SPAWN_NO_ROBOTIC_ORGANS), + BITFIELD(SPECIES_SPAWN_WHITELIST_FLEXIBLE), )) //! species_appearance_flags diff --git a/code/controllers/configuration/whitelists.dm b/code/controllers/configuration/whitelists.dm index c6a4d51843b..47a7a84c966 100644 --- a/code/controllers/configuration/whitelists.dm +++ b/code/controllers/configuration/whitelists.dm @@ -7,7 +7,7 @@ var/list/job_whitelist = list() /** - * name, ckey must be CKEY()'d. + * name and ckey must be CKEY()'d. */ /datum/controller/configuration/proc/check_alien_whitelist(name, ckey) if(!config_legacy.usealienwhitelist) diff --git a/code/controllers/subsystem/characters/species.dm b/code/controllers/subsystem/characters/species.dm index 787b9f48aa6..20afd6e3bc1 100644 --- a/code/controllers/subsystem/characters/species.dm +++ b/code/controllers/subsystem/characters/species.dm @@ -22,7 +22,6 @@ species_paths = list() species_names = list() playable_species = list() - whitelisted_species = list() custom_species_bases = list() var/static/list/blacklisted_icon_ids = list(SPECIES_ID_CUSTOM, SPECIES_ID_PROMETHEAN) var/static/list/whitelisted_icon_ids = list(SPECIES_ID_VULPKANIN, SPECIES_ID_XENOMORPH_HUNTER) @@ -41,17 +40,15 @@ species_names[S.name] = S species_paths[path] = S - if(S.species_spawn_flags & SPECIES_SPAWN_WHITELISTED) - whitelisted_species += S.name + if(!(S.species_spawn_flags & SPECIES_SPAWN_SPECIAL)) - playable_species += S.name + playable_species += S.uid if((!(S.species_spawn_flags & (SPECIES_SPAWN_WHITELISTED | SPECIES_SPAWN_SPECIAL)) && !(S.get_species_id() in blacklisted_icon_ids)) || (S.get_species_id() in whitelisted_icon_ids)) custom_species_bases += S.name tim_sort(species_lookup, /proc/cmp_auto_compare, TRUE) tim_sort(species_names, /proc/cmp_auto_compare, TRUE) tim_sort(species_lookup, /proc/cmp_auto_compare, TRUE) - tim_sort(whitelisted_species, /proc/cmp_auto_compare) tim_sort(playable_species, /proc/cmp_auto_compare) tim_sort(custom_species_bases, /proc/cmp_auto_compare) diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index d9e503398b2..08f3cda3c2c 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -114,35 +114,13 @@ user.visible_message("[user] hits [src] and bounces off!") return 1 -// The following mirror is ~special~. +/// TODO: retype this one, I dont wanna touch maps in a Whitelist rework /obj/structure/mirror/raider name = "cracked mirror" - desc = "Something seems strange about this old, dirty mirror. Your reflection doesn't look like you remember it." + desc = "Oh no, seven years of bad luck!" icon_state = "mirror_broke" shattered = 1 -/obj/structure/mirror/raider/attack_hand(var/mob/living/carbon/human/user) - if(istype(get_area(src),/area/syndicate_mothership)) - if(istype(user) && user.mind && user.mind.special_role == "Raider" && user.species.name != SPECIES_VOX && config.check_alien_whitelist(ckey(SPECIES_VOX), user.ckey)) - var/choice = input("Do you wish to become a true Vox of the Shoal? This is not reversible.") as null|anything in list("No","Yes") - if(choice && choice == "Yes") - var/mob/living/carbon/human/vox/vox = new(get_turf(src),SPECIES_VOX) - vox.gender = user.gender - raiders.equip(vox) - if(user.mind) - user.mind.transfer_to(vox) - spawn(1) - var/newname = sanitizeSafe(input(vox,"Enter a name, or leave blank for the default name.", "Name change","") as text, MAX_NAME_LEN) - if(!newname || newname == "") - var/datum/language/L = SScharacters.resolve_language_id(vox.species.default_language) - newname = L.get_random_name() - vox.real_name = newname - vox.name = vox.real_name - raiders.update_access(vox) - qdel(user) - ..() - - //Long mirrors. /obj/structure/mirror/long name = "mirror" diff --git a/code/modules/mob/living/carbon/human/appearance.dm b/code/modules/mob/living/carbon/human/appearance.dm index 00fd0440ae8..c845bd03d64 100644 --- a/code/modules/mob/living/carbon/human/appearance.dm +++ b/code/modules/mob/living/carbon/human/appearance.dm @@ -194,7 +194,7 @@ continue if(blacklist.len && (current_species_name in blacklist)) continue - if((S.species_spawn_flags & SPECIES_SPAWN_WHITELISTED) && !config.check_alien_whitelist(ckey(S.name), ckey)) + if((S.species_spawn_flags & SPECIES_SPAWN_WHITELISTED) && !config.check_alien_whitelist(ckey(S.species_spawn_flags & SPECIES_SPAWN_WHITELIST_FLEXIBLE ? S.id : S.uid), ckey)) continue valid_species += current_species_name diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 4e8f887ba16..4163b2ba68f 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -571,7 +571,7 @@ if(chosen_species && use_species_name) // Have to recheck admin due to no usr at roundstart. Latejoins are fine though. - if(!(chosen_species.species_spawn_flags & SPECIES_SPAWN_WHITELISTED) || config.check_alien_whitelist(ckey(chosen_species.name), ckey)) + if(!(chosen_species.species_spawn_flags & SPECIES_SPAWN_WHITELISTED) || config.check_alien_whitelist(ckey(chosen_species.species_spawn_flags & SPECIES_SPAWN_WHITELIST_FLEXIBLE ? chosen_species.id : chosen_species.uid), ckey)) new_character = new(T, use_species_name) if(!new_character) @@ -661,7 +661,7 @@ if(!chosen_species) return SPECIES_HUMAN - if(!(chosen_species.species_spawn_flags & SPECIES_SPAWN_WHITELISTED) || config.check_alien_whitelist(ckey(chosen_species.name), ckey)) + if(!(chosen_species.species_spawn_flags & SPECIES_SPAWN_WHITELISTED) || config.check_alien_whitelist(ckey(chosen_species.id), ckey)) return chosen_species.name return SPECIES_HUMAN diff --git a/code/modules/preferences/preference_setup/background/species.dm b/code/modules/preferences/preference_setup/background/species.dm index c9fbf56f347..340a9c0f99e 100644 --- a/code/modules/preferences/preference_setup/background/species.dm +++ b/code/modules/preferences/preference_setup/background/species.dm @@ -14,7 +14,7 @@ . += "
This is a [SPAN_RED("restricted")] species. You cannot join as this outside of special circumstances." else if(CS.species_spawn_flags & SPECIES_SPAWN_WHITELISTED) . += "
This is a whitelisted species. You " - if(config.check_alien_whitelist(ckey(CS.name), prefs.client_ckey)) + if(config.check_alien_whitelist(ckey(CS.species_spawn_flags & SPECIES_SPAWN_WHITELIST_FLEXIBLE ? CS.superspecies_id : CS.uid), prefs.client_ckey)) . += SPAN_GREEN("do") else . += SPAN_RED("do not") @@ -29,7 +29,7 @@ if((CS.species_spawn_flags & SPECIES_SPAWN_RESTRICTED) && !(flags & PREF_COPY_TO_NO_CHECK_SPECIES)) errors?.Add(SPAN_WARNING("[CS.name] is a restricted species. You cannot join as this as most normal roles.")) return FALSE - if((CS.species_spawn_flags & SPECIES_SPAWN_WHITELISTED) && !config.check_alien_whitelist(ckey(CS.name), prefs.client_ckey)) + if((CS.species_spawn_flags & SPECIES_SPAWN_WHITELISTED) && !config.check_alien_whitelist(ckey(CS.species_spawn_flags & SPECIES_SPAWN_WHITELIST_FLEXIBLE ? CS.superspecies_id : CS.uid), prefs.client_ckey)) errors?.Add(SPAN_WARNING("You do not have the whitelist to play as a [CS.name].")) return FALSE return TRUE @@ -79,7 +79,7 @@ var/datum/species/S = SScharacters.resolve_species_id(data) if(!S) return SScharacters.default_species_id() - if(!(S.name in SScharacters.playable_species)) + if(!(S.uid in SScharacters.playable_species)) return SScharacters.default_species_id() return data diff --git a/code/modules/species/character_species.dm b/code/modules/species/character_species.dm index 49d2190b33b..fd5f1f86299 100644 --- a/code/modules/species/character_species.dm +++ b/code/modules/species/character_species.dm @@ -5,7 +5,7 @@ template.uid = uid if(id != uid) template.is_subspecies = TRUE - template.superspecies_id = id + template.superspecies_id = src.get_species_id()//Now its always safe to do template.category = category template.desc = blurb template.species_spawn_flags = species_spawn_flags diff --git a/code/modules/species/protean/protean_powers.dm b/code/modules/species/protean/protean_powers.dm index b0a8b2c24cb..d4a2ede5877 100644 --- a/code/modules/species/protean/protean_powers.dm +++ b/code/modules/species/protean/protean_powers.dm @@ -289,8 +289,8 @@ to_chat(src,"You must be awake and standing to perform this action!") return - var/new_species_name = input("Please select a species to emulate.", "Shapeshifter Body") as null|anything in SScharacters.playable_species - var/datum/species/new_species = SScharacters.resolve_species_name(new_species_name) + var/new_species_id = input("Please select a species to emulate.", "Shapeshifter Body") as null|anything in SScharacters.playable_species + var/datum/species/new_species = SScharacters.resolve_species_id(new_species_id) if(new_species) impersonate_bodytype_legacy = new_species.get_bodytype_legacy() impersonate_bodytype = new_species.default_bodytype diff --git a/code/modules/species/shadekin/shadekin_traits.dm b/code/modules/species/shadekin/shadekin_traits.dm index 5510f283059..14fe001d4b1 100644 --- a/code/modules/species/shadekin/shadekin_traits.dm +++ b/code/modules/species/shadekin/shadekin_traits.dm @@ -104,22 +104,23 @@ ) /datum/trait/kintype/apply(datum/species/shadekin/S, mob/living/carbon/human/H) - ..(S,H) - if(color && istype(S)) //Sanity check to see if they're actually a shadekin, otherwise just don't do anything. They shouldn't be able to spawn with the trait. - S.kin_type = color - switch(color) - if(BLUE_EYES) - H.shapeshifter_set_eye_color("0000FF") - if(RED_EYES) - H.shapeshifter_set_eye_color("FF0000") - if(GREEN_EYES) - H.shapeshifter_set_eye_color("00FF00") - if(PURPLE_EYES) - H.shapeshifter_set_eye_color("FF00FF") - if(YELLOW_EYES) - H.shapeshifter_set_eye_color("FFFF00") - if(ORANGE_EYES) - H.shapeshifter_set_eye_color("FFA500") + if (istype(S)) + ..(S,H) + if(color) //Sanity check to see if they're actually a shadekin, otherwise just don't do anything. They shouldn't be able to spawn with the trait. + S.kin_type = color + switch(color) + if(BLUE_EYES) + H.shapeshifter_set_eye_color("0000FF") + if(RED_EYES) + H.shapeshifter_set_eye_color("FF0000") + if(GREEN_EYES) + H.shapeshifter_set_eye_color("00FF00") + if(PURPLE_EYES) + H.shapeshifter_set_eye_color("FF00FF") + if(YELLOW_EYES) + H.shapeshifter_set_eye_color("FFFF00") + if(ORANGE_EYES) + H.shapeshifter_set_eye_color("FFA500") /datum/unarmed_attack/shadekinharmbap diff --git a/code/modules/species/species.dm b/code/modules/species/species.dm index e299ccc9943..80de42db2d8 100644 --- a/code/modules/species/species.dm +++ b/code/modules/species/species.dm @@ -22,9 +22,9 @@ abstract_type = /datum/species //! Intrinsics - /// uid - **must be unique** + /// uid - **must be unique** - Identifies the exact species you are using var/uid - /// if we're a subspecies, real id + /// id usually identical to uid, if we are a subspecies we use the parent species id/uid here var/id // TODO: ref species by id in code, so we can rename as needed diff --git a/code/modules/species/station/adherent.dm b/code/modules/species/station/adherent.dm index 9d42058dd28..1ddee4df0c9 100644 --- a/code/modules/species/station/adherent.dm +++ b/code/modules/species/station/adherent.dm @@ -1,7 +1,8 @@ /datum/species/adherent + uid = SPECIES_ID_ADHERENT + id = SPECIES_ID_ADHERENT name = SPECIES_ADHERENT name_plural = "Adherents" - uid = SPECIES_ID_ADHERENT default_bodytype = BODYTYPE_ADHERENT blurb = "The Vigil is a relatively loose association of machine-servitors, Adherents, \ diff --git a/code/modules/species/station/alraune.dm b/code/modules/species/station/alraune.dm index 405c55c9291..37c86a49781 100644 --- a/code/modules/species/station/alraune.dm +++ b/code/modules/species/station/alraune.dm @@ -1,6 +1,7 @@ /datum/species/alraune - name = SPECIES_ALRAUNE uid = SPECIES_ID_ALRAUNE + id = SPECIES_ID_ALRAUNE + name = SPECIES_ALRAUNE name_plural = "Alraunes" icobase = 'icons/mob/species/human/body_greyscale.dmi' diff --git a/code/modules/species/station/apidaen.dm b/code/modules/species/station/apidaen.dm index 0d74a3ed8e9..9313f387f08 100644 --- a/code/modules/species/station/apidaen.dm +++ b/code/modules/species/station/apidaen.dm @@ -1,7 +1,8 @@ /datum/species/apidaen + uid = SPECIES_ID_APIDAEN + id = SPECIES_ID_APIDAEN name = SPECIES_APIDAEN name_plural = SPECIES_APIDAEN - uid = SPECIES_ID_APIDAEN icobase = 'icons/mob/species/apidaen/body.dmi' deform = 'icons/mob/species/apidaen/body.dmi' // No deformed set has been made yet. diff --git a/code/modules/species/station/custom_species.dm b/code/modules/species/station/custom_species.dm index 6be2cc2acaa..de565736f73 100644 --- a/code/modules/species/station/custom_species.dm +++ b/code/modules/species/station/custom_species.dm @@ -1,7 +1,8 @@ /datum/species/custom - name = SPECIES_CUSTOM uid = SPECIES_ID_CUSTOM + id = SPECIES_ID_CUSTOM + name = SPECIES_CUSTOM name_plural = "Custom" selects_bodytype = TRUE base_species = SPECIES_HUMAN diff --git a/code/modules/species/station/diona.dm b/code/modules/species/station/diona.dm index db19b89b619..a3fcff5f1a1 100644 --- a/code/modules/species/station/diona.dm +++ b/code/modules/species/station/diona.dm @@ -1,8 +1,9 @@ /datum/species/diona + uid = SPECIES_ID_DIONA + id = SPECIES_ID_DIONA name = SPECIES_DIONA name_plural = "Dionaea" - uid = SPECIES_ID_DIONA //primitive_form = "Nymph" icobase = 'icons/mob/species/diona/body.dmi' diff --git a/code/modules/species/station/golem.dm b/code/modules/species/station/golem.dm index ed31d3d5e14..5f131a6dc4f 100644 --- a/code/modules/species/station/golem.dm +++ b/code/modules/species/station/golem.dm @@ -1,7 +1,8 @@ /datum/species/golem + uid = SPECIES_ID_GOLEM + id = SPECIES_ID_GOLEM name = SPECIES_GOLEM name_plural = "golems" - uid = SPECIES_ID_GOLEM icobase = 'icons/mob/species/golem/body.dmi' deform = 'icons/mob/species/golem/body.dmi' diff --git a/code/modules/species/station/monkey.dm b/code/modules/species/station/monkey.dm index 58a7a834402..0ab708318cc 100644 --- a/code/modules/species/station/monkey.dm +++ b/code/modules/species/station/monkey.dm @@ -1,6 +1,7 @@ /datum/species/monkey - name = SPECIES_MONKEY uid = SPECIES_ID_MONKEY + id = SPECIES_ID_MONKEY + name = SPECIES_MONKEY name_plural = "Monkeys" greater_form = SPECIES_HUMAN diff --git a/code/modules/species/station/phoronoids.dm b/code/modules/species/station/phoronoids.dm index db664031f2e..2f94e5d6468 100644 --- a/code/modules/species/station/phoronoids.dm +++ b/code/modules/species/station/phoronoids.dm @@ -1,6 +1,7 @@ /datum/species/phoronoid - name = SPECIES_PHORONOID uid = SPECIES_ID_PHORONOID + id = SPECIES_ID_PHORONOID + name = SPECIES_PHORONOID name_plural = "Phoronoids" default_bodytype = BODYTYPE_PHORONOID diff --git a/code/modules/species/station/rapala.dm b/code/modules/species/station/rapala.dm index 47387376be0..21417f89a50 100644 --- a/code/modules/species/station/rapala.dm +++ b/code/modules/species/station/rapala.dm @@ -1,7 +1,8 @@ /datum/species/rapala + uid = SPECIES_ID_RAPALA + id = SPECIES_ID_RAPALA name = SPECIES_RAPALA name_plural = "Rapalans" - uid = SPECIES_ID_RAPALA icobase = 'icons/mob/species/rapala/body.dmi' deform = 'icons/mob/species/rapala/deformed_body.dmi' diff --git a/code/modules/species/station/standard/akula.dm b/code/modules/species/station/standard/akula.dm index 9e8b2f0407a..847f42e4dbe 100644 --- a/code/modules/species/station/standard/akula.dm +++ b/code/modules/species/station/standard/akula.dm @@ -1,5 +1,6 @@ /datum/species/akula uid = SPECIES_ID_AKULA + id = SPECIES_ID_AKULA name = SPECIES_AKULA name_plural = SPECIES_AKULA //It's singular and plural. English is weird. primitive_form = SPECIES_MONKEY_AKULA diff --git a/code/modules/species/station/standard/harpy.dm b/code/modules/species/station/standard/harpy.dm index 8f235ef2f3b..19a6e502548 100644 --- a/code/modules/species/station/standard/harpy.dm +++ b/code/modules/species/station/standard/harpy.dm @@ -1,5 +1,6 @@ /datum/species/harpy uid = SPECIES_ID_HARPY + id = SPECIES_ID_HARPY name = SPECIES_RAPALA name_plural = "Rapalans" icobase = 'icons/mob/human_races/r_harpy_vr.dmi' diff --git a/code/modules/species/station/standard/human_subspecies.dm b/code/modules/species/station/standard/human_subspecies.dm index 09b4eb798e7..630318b4801 100644 --- a/code/modules/species/station/standard/human_subspecies.dm +++ b/code/modules/species/station/standard/human_subspecies.dm @@ -1,5 +1,6 @@ /datum/species/human/gravworlder uid = SPECIES_ID_HUMAN_GRAV + id = SPECIES_ID_HUMAN name = SPECIES_HUMAN_GRAV name_plural = "grav-adapted Humans" @@ -51,6 +52,7 @@ /datum/species/human/spacer uid = SPECIES_ID_HUMAN_SPACE + id = SPECIES_ID_HUMAN name = SPECIES_HUMAN_SPACER name_plural = "space-adapted Humans" @@ -98,6 +100,7 @@ /datum/species/human/vatgrown uid = SPECIES_ID_HUMAN_VAT + id = SPECIES_ID_HUMAN name = SPECIES_HUMAN_VATBORN name_plural = SPECIES_HUMAN_VATBORN diff --git a/code/modules/species/station/standard/naramadi.dm b/code/modules/species/station/standard/naramadi.dm index 9179442d654..e7361a46b96 100644 --- a/code/modules/species/station/standard/naramadi.dm +++ b/code/modules/species/station/standard/naramadi.dm @@ -1,6 +1,7 @@ /datum/species/naramadi - name = SPECIES_SERGAL uid = SPECIES_ID_NARAMADI + id = SPECIES_ID_NARAMADI + name = SPECIES_SERGAL name_plural = "Naramadi" category = "Naramadi" default_bodytype = BODYTYPE_SERGAL @@ -40,17 +41,17 @@ flesh_color = "#AFA59E" base_color = "#777777" - + ambiguous_genders = TRUE //Naramadi look the same when female and male, at least from the groin up if you catch my drift ;^) - Papalus - + cold_level_1 = 280 //I'm not sorry, Lore changes. - Papalus cold_level_2 = 240 cold_level_3 = 180 - + heat_level_1 = 380 heat_level_2 = 420 //Nice heat_level_3 = 1000 - + heat_discomfort_strings = list( "Your fur prickles in the heat.", "You feel uncomfortably warm.", diff --git a/code/modules/species/station/standard/nevrean.dm b/code/modules/species/station/standard/nevrean.dm index e28530d4b4e..4cf202e11e6 100644 --- a/code/modules/species/station/standard/nevrean.dm +++ b/code/modules/species/station/standard/nevrean.dm @@ -1,5 +1,6 @@ /datum/species/nevrean uid = SPECIES_ID_NEVREAN + id = SPECIES_ID_NEVREAN name = SPECIES_NEVREAN name_plural = "Nevreans" primitive_form = SPECIES_MONKEY_NEVREAN diff --git a/code/modules/species/station/standard/shadekin.dm b/code/modules/species/station/standard/shadekin.dm index 49f18f29e2d..7741d191561 100644 --- a/code/modules/species/station/standard/shadekin.dm +++ b/code/modules/species/station/standard/shadekin.dm @@ -1,5 +1,6 @@ /datum/species/crew_shadekin uid = SPECIES_ID_SHADEKIN_BLACK + id = SPECIES_ID_SHADEKIN_BLACK name = SPECIES_SHADEKIN_CREW name_plural = SPECIES_SHADEKIN_CREW category = "Special" diff --git a/code/modules/species/station/standard/skrell.dm b/code/modules/species/station/standard/skrell.dm index 446eb60c9e3..445bfaaa07c 100644 --- a/code/modules/species/station/standard/skrell.dm +++ b/code/modules/species/station/standard/skrell.dm @@ -1,5 +1,6 @@ /datum/species/skrell uid = SPECIES_ID_SKRELL + id = SPECIES_ID_SKRELL name = SPECIES_SKRELL name_plural = SPECIES_SKRELL primitive_form = SPECIES_MONKEY_SKRELL diff --git a/code/modules/species/station/standard/tajaran.dm b/code/modules/species/station/standard/tajaran.dm index 456b494676b..78c47027243 100644 --- a/code/modules/species/station/standard/tajaran.dm +++ b/code/modules/species/station/standard/tajaran.dm @@ -1,5 +1,6 @@ /datum/species/tajaran uid = SPECIES_ID_TAJARAN + id = SPECIES_ID_TAJARAN name = SPECIES_TAJ name_plural = "Tajaran" category = "Tajaran" diff --git a/code/modules/species/station/standard/teshari.dm b/code/modules/species/station/standard/teshari.dm index 15f4b2e2f38..a5195c532a7 100644 --- a/code/modules/species/station/standard/teshari.dm +++ b/code/modules/species/station/standard/teshari.dm @@ -1,5 +1,6 @@ /datum/species/teshari uid = SPECIES_ID_TESHARI + id = SPECIES_ID_TESHARI name = SPECIES_TESHARI default_bodytype = BODYTYPE_TESHARI category = "Teshari" diff --git a/code/modules/species/station/standard/unathi.dm b/code/modules/species/station/standard/unathi.dm index 5e4627db684..b76b54c35b4 100644 --- a/code/modules/species/station/standard/unathi.dm +++ b/code/modules/species/station/standard/unathi.dm @@ -1,5 +1,6 @@ /datum/species/unathi uid = SPECIES_ID_UNATHI + id = SPECIES_ID_UNATHI name = SPECIES_UNATHI category = "Unathi" name_plural = SPECIES_UNATHI diff --git a/code/modules/species/station/standard/unathidigi.dm b/code/modules/species/station/standard/unathidigi.dm index 51e9b225828..74218159bd5 100644 --- a/code/modules/species/station/standard/unathidigi.dm +++ b/code/modules/species/station/standard/unathidigi.dm @@ -1,5 +1,6 @@ /datum/species/unathi/digi uid = SPECIES_ID_UNATHI_DIGI + id = SPECIES_ID_UNATHI_DIGI name = SPECIES_UNATHI_DIGI name_plural = SPECIES_UNATHI_DIGI default_bodytype = BODYTYPE_UNATHI_DIGI @@ -12,7 +13,7 @@ tail_animation = 'icons/mob/species/unathidigi/tail.dmi' blurb = {" - As a result of the many challenges of living on Moghes and other worlds, Unathi have become morphologically diverse. + As a result of the many challenges of living on Moghes and other worlds, Unathi have become morphologically diverse. While some unathi are plantigrade and almost resemble humans in their silhouette, others are more hulking; a digitigrade, beastial and alien creature. "} diff --git a/code/modules/species/station/standard/vulpkanin.dm b/code/modules/species/station/standard/vulpkanin.dm index dc2b5e4c1fe..8dcc986f0e1 100644 --- a/code/modules/species/station/standard/vulpkanin.dm +++ b/code/modules/species/station/standard/vulpkanin.dm @@ -1,5 +1,6 @@ /datum/species/vulpkanin uid = SPECIES_ID_VULPKANIN + id = SPECIES_ID_VULPKANIN name = SPECIES_VULPKANIN name_plural = SPECIES_VULPKANIN primitive_form = SPECIES_MONKEY_VULPKANIN diff --git a/code/modules/species/station/standard/zaddat.dm b/code/modules/species/station/standard/zaddat.dm index aeedb034811..e8e39946df3 100644 --- a/code/modules/species/station/standard/zaddat.dm +++ b/code/modules/species/station/standard/zaddat.dm @@ -1,5 +1,6 @@ /datum/species/zaddat uid = SPECIES_ID_ZADDAT + id = SPECIES_ID_ZADDAT name = SPECIES_ZADDAT name_plural = SPECIES_ZADDAT icobase = 'icons/mob/species/zaddat/body.dmi' diff --git a/code/modules/species/station/standard/zorren.dm b/code/modules/species/station/standard/zorren.dm index d82c86581f4..2501349e2bb 100644 --- a/code/modules/species/station/standard/zorren.dm +++ b/code/modules/species/station/standard/zorren.dm @@ -1,5 +1,6 @@ /datum/species/hi_zoxxen uid = SPECIES_ID_ZORREN_HIGH + id = SPECIES_ID_ZORREN_HIGH id = SPECIES_ID_ZORREN name = SPECIES_ZORREN_HIGH name_plural = "Zorren" diff --git a/code/modules/species/station/vasilissan.dm b/code/modules/species/station/vasilissan.dm index 83666e58023..5ee40d8636f 100644 --- a/code/modules/species/station/vasilissan.dm +++ b/code/modules/species/station/vasilissan.dm @@ -1,7 +1,8 @@ /datum/species/vasilissan //These actually look pretty damn spooky! + uid = SPECIES_ID_VASILISSAN + id = SPECIES_ID_VASILISSAN name = SPECIES_VASILISSAN name_plural = "Vasilissans" - uid = SPECIES_ID_VASILISSAN icobase = 'icons/mob/species/vasilissan/body.dmi' deform = 'icons/mob/species/vasilissan/deformed_body.dmi' diff --git a/code/modules/species/station/werebeast.dm b/code/modules/species/station/werebeast.dm index 5167c041fc3..9a7a9f2075e 100644 --- a/code/modules/species/station/werebeast.dm +++ b/code/modules/species/station/werebeast.dm @@ -1,6 +1,7 @@ /datum/species/werebeast - name = SPECIES_WEREBEAST uid = SPECIES_ID_WEREBEAST + id = SPECIES_ID_WEREBEAST + name = SPECIES_WEREBEAST name_plural = "Werebeasts" primitive_form = SPECIES_MONKEY_VULPKANIN default_bodytype = BODYTYPE_WEREBEAST diff --git a/code/modules/species/station/xenomorph_hybrids/xeno_hybrids.dm b/code/modules/species/station/xenomorph_hybrids/xeno_hybrids.dm index fe28a6aaeec..0b440cb5a98 100644 --- a/code/modules/species/station/xenomorph_hybrids/xeno_hybrids.dm +++ b/code/modules/species/station/xenomorph_hybrids/xeno_hybrids.dm @@ -2,6 +2,7 @@ name = SPECIES_XENOHYBRID name_plural = "Xenomorph Hybrids" uid = SPECIES_ID_XENOHYBRID + id = SPECIES_ID_XENOHYBRID default_bodytype = BODYTYPE_XENOHYBRID icobase = 'icons/mob/species/xenohybrid/body.dmi' diff --git a/code/modules/species/virtual_reality/opaque_form.dm b/code/modules/species/virtual_reality/opaque_form.dm index 12b4d492fe8..6dd3b09165a 100644 --- a/code/modules/species/virtual_reality/opaque_form.dm +++ b/code/modules/species/virtual_reality/opaque_form.dm @@ -2,8 +2,9 @@ // Due to sprite construction, they have to have separate limb lists /datum/species/shapeshifter/promethean/avatar/human - name = SPECIES_VR_HUMAN uid = SPECIES_ID_VIRTUAL_REALITY_HUMAN + id = SPECIES_ID_VIRTUAL_REALITY_HUMAN + name = SPECIES_VR_HUMAN icobase = 'icons/mob/species/human/body.dmi' deform = 'icons/mob/species/human/deformed_body.dmi' species_appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_EYE_COLOR @@ -22,8 +23,9 @@ ) /datum/species/shapeshifter/promethean/avatar/unathi - name = SPECIES_VR_UNATHI uid = SPECIES_ID_VIRTUAL_REALITY_UNATHI + id = SPECIES_ID_VIRTUAL_REALITY_UNATHI + name = SPECIES_VR_UNATHI icobase = 'icons/mob/species/unathi/body_greyscale.dmi' deform = 'icons/mob/species/unathi/deformed_body_greyscale.dmi' tail = "sogtail" @@ -44,8 +46,9 @@ ) /datum/species/shapeshifter/promethean/avatar/tajaran - name = "Virtual Reality Tajaran" uid = SPECIES_ID_VIRTUAL_REALITY_TAJARAN + id = SPECIES_ID_VIRTUAL_REALITY_TAJARAN + name = "Virtual Reality Tajaran" icobase = 'icons/mob/species/tajaran/body_greyscale.dmi' deform = 'icons/mob/species/tajaran/deformed_body_greyscale.dmi' tail = "tajtail" @@ -66,8 +69,9 @@ ) /datum/species/shapeshifter/promethean/avatar/skrell - name = SPECIES_VR_SKRELL uid = SPECIES_ID_VIRTUAL_REALITY_SKRELL + id = SPECIES_ID_VIRTUAL_REALITY_SKRELL + name = SPECIES_VR_SKRELL icobase = 'icons/mob/species/skrell/body_greyscale.dmi' deform = 'icons/mob/species/skrell/deformed_body_greyscale.dmi' species_appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR @@ -86,8 +90,9 @@ ) /datum/species/shapeshifter/promethean/avatar/teshari - name = SPECIES_VR_TESHARI uid = SPECIES_ID_VIRTUAL_REALITY_TESHARI + id = SPECIES_ID_VIRTUAL_REALITY_TESHARI + name = SPECIES_VR_TESHARI icobase = 'icons/mob/species/teshari/body.dmi' deform = 'icons/mob/species/teshari/deformed_body.dmi' species_appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_COLOR | HAS_EYE_COLOR @@ -107,6 +112,7 @@ /datum/species/shapeshifter/promethean/avatar/diona uid = SPECIES_ID_VIRTUAL_REALITY_DIONA + id = SPECIES_ID_VIRTUAL_REALITY_DIONA name = SPECIES_VR_DIONA icobase = 'icons/mob/species/diona/body.dmi' deform = 'icons/mob/species/diona/deformed_body.dmi' @@ -127,6 +133,7 @@ /datum/species/shapeshifter/promethean/avatar/monkey uid = SPECIES_ID_VIRTUAL_REALITY_MONKEY + id = SPECIES_ID_VIRTUAL_REALITY_MONKEY name = SPECIES_VR_MONKEY icobase = 'icons/mob/species/monkey/body_monkey.dmi' deform = 'icons/mob/species/monkey/body_monkey.dmi' @@ -151,6 +158,7 @@ /datum/species/shapeshifter/promethean/avatar/vox uid = SPECIES_ID_VIRTUAL_REALITY_VOX + id = SPECIES_ID_VIRTUAL_REALITY_VOX name = SPECIES_VR_VOX icobase = 'icons/mob/species/vox/body.dmi' deform = 'icons/mob/species/vox/deformed_body.dmi' @@ -171,6 +179,7 @@ /datum/species/shapeshifter/promethean/avatar/skeleton uid = SPECIES_ID_VIRTUAL_REALITY_SKELETON + id = SPECIES_ID_VIRTUAL_REALITY_SKELETON name = SPECIES_VR_SKELETON icobase = 'icons/mob/species/human/skeleton.dmi' deform = 'icons/mob/species/human/skeleton.dmi' diff --git a/code/modules/species/xenochimera/xenochimera.dm b/code/modules/species/xenochimera/xenochimera.dm index aed5c718cff..58c73fc6310 100644 --- a/code/modules/species/xenochimera/xenochimera.dm +++ b/code/modules/species/xenochimera/xenochimera.dm @@ -1,8 +1,9 @@ /datum/species/shapeshifter/xenochimera //Scree's race. + uid = SPECIES_ID_XENOCHIMERA + id = SPECIES_ID_XENOCHIMERA name = SPECIES_XENOCHIMERA name_plural = "Xenochimeras" base_species = SPECIES_XENOCHIMERA - uid = SPECIES_ID_XENOCHIMERA category = "Special" selects_bodytype = TRUE