mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 19:44:09 +01:00
@@ -347,14 +347,12 @@
|
||||
/mob/living/carbon/human/proc/generate_valid_species(check_whitelist = TRUE, list/whitelist = list(), list/blacklist = list())
|
||||
var/list/valid_species = new()
|
||||
for(var/current_species_name in GLOB.all_species)
|
||||
var/datum/species/current_species = GLOB.all_species[current_species_name]
|
||||
|
||||
if(check_whitelist && !check_rights(R_ADMIN, FALSE, src)) //If we're using the whitelist, make sure to check it!
|
||||
if(whitelist.len && !(current_species_name in whitelist))
|
||||
continue
|
||||
if(blacklist.len && (current_species_name in blacklist))
|
||||
continue
|
||||
if((IS_WHITELISTED in current_species.species_traits) && !can_use_species(src, current_species_name))
|
||||
if(!can_use_species(src, current_species_name))
|
||||
continue
|
||||
|
||||
valid_species += current_species_name
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
"eyes" = /obj/item/organ/internal/eyes/abductor //3 darksight.
|
||||
)
|
||||
|
||||
species_traits = list(NO_BLOOD, NO_HAIR)
|
||||
species_traits = list(NO_BLOOD, NO_HAIR, NOT_SELECTABLE)
|
||||
inherent_traits = list(TRAIT_VIRUSIMMUNE, TRAIT_CHUNKYFINGERS, TRAIT_NOHUNGER, TRAIT_NOBREATH, TRAIT_NOEXAMINE, TRAIT_REPEATSURGERY)
|
||||
dies_at_threshold = TRUE
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
"is sucking in warm air!",
|
||||
"is holding their breath!")
|
||||
|
||||
species_traits = list(LIPS, IS_WHITELISTED, NO_HAIR)
|
||||
species_traits = list(LIPS, NO_HAIR)
|
||||
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT
|
||||
bodyflags = HAS_SKIN_TONE | HAS_BODY_MARKINGS | BALD | SHAVED
|
||||
has_gender = FALSE
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
icobase = 'icons/mob/human_races/r_golem.dmi'
|
||||
|
||||
species_traits = list(NO_BLOOD, NO_HAIR)
|
||||
species_traits = list(NO_BLOOD, NO_HAIR, NOT_SELECTABLE)
|
||||
inherent_traits = list(TRAIT_RESISTHEAT, TRAIT_NOBREATH, TRAIT_RESISTCOLD, TRAIT_RESISTHIGHPRESSURE, TRAIT_RESISTLOWPRESSURE, TRAIT_NOFIRE, TRAIT_CHUNKYFINGERS, TRAIT_RADIMMUNE, TRAIT_PIERCEIMMUNE, TRAIT_NOPAIN, TRAIT_NO_BONES, TRAIT_STURDY_LIMBS, TRAIT_XENO_IMMUNE)
|
||||
inherent_biotypes = MOB_HUMANOID | MOB_MINERAL
|
||||
dies_at_threshold = TRUE
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
"eyes" = /obj/item/organ/internal/eyes/grey //5 darksight.
|
||||
)
|
||||
|
||||
species_traits = list(LIPS, IS_WHITELISTED, CAN_WINGDINGS, NO_HAIR)
|
||||
species_traits = list(LIPS, CAN_WINGDINGS, NO_HAIR)
|
||||
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS
|
||||
bodyflags = HAS_BODY_MARKINGS | HAS_BODYACC_COLOR | SHAVED | BALD
|
||||
dietflags = DIET_HERB
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
hunger_drain = 0.15
|
||||
tox_mod = 1.7
|
||||
|
||||
species_traits = list(IS_WHITELISTED, NO_HAIR)
|
||||
species_traits = list(NO_HAIR)
|
||||
inherent_biotypes = MOB_ORGANIC | MOB_HUMANOID | MOB_BUG
|
||||
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS
|
||||
bodyflags = HAS_HEAD_ACCESSORY | HAS_HEAD_MARKINGS | HAS_BODY_MARKINGS | HAS_BODYACC_COLOR | SHAVED
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
death_message = "gives a short series of shrill beeps, their chassis shuddering before falling limp, nonfunctional."
|
||||
death_sounds = list('sound/voice/borg_deathsound.ogg') //I've made this a list in the event we add more sounds for dead robots.
|
||||
|
||||
species_traits = list(IS_WHITELISTED, NO_BLOOD, NO_CLONESCAN, NO_INTORGANS)
|
||||
species_traits = list(NO_BLOOD, NO_CLONESCAN, NO_INTORGANS)
|
||||
inherent_traits = list(TRAIT_VIRUSIMMUNE, TRAIT_NOBREATH, TRAIT_NOGERMS, TRAIT_NODECAY, TRAIT_NOPAIN, TRAIT_GENELESS) //Computers that don't decay? What a lie!
|
||||
inherent_biotypes = MOB_ROBOTIC | MOB_HUMANOID
|
||||
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
language = null
|
||||
default_language = "Chimpanzee"
|
||||
inherent_traits = list(TRAIT_NOEXAMINE)
|
||||
species_traits = list(NOT_SELECTABLE)
|
||||
skinned_type = /obj/item/stack/sheet/animalhide/monkey
|
||||
greater_form = /datum/species/human
|
||||
no_equip = list(slot_belt, slot_wear_id, slot_l_ear, slot_r_ear, slot_glasses, slot_gloves, slot_shoes, slot_wear_suit, slot_w_uniform, slot_l_store, slot_r_store, slot_s_store, slot_wear_pda)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
language = "Sol Common"
|
||||
burn_mod = 4 // holy shite, poor guys wont survive half a second cooking smores
|
||||
brute_mod = 2 // damn, double wham, double dam
|
||||
species_traits = list(LIPS, IS_WHITELISTED, NO_BLOOD, NO_CLONESCAN)
|
||||
species_traits = list(LIPS, NO_BLOOD, NO_CLONESCAN)
|
||||
inherent_traits = list(TRAIT_NOBREATH, TRAIT_RADIMMUNE, TRAIT_NOPAIN)
|
||||
bodyflags = SHAVED
|
||||
dies_at_threshold = TRUE
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
dangerous_existence = TRUE //So so much
|
||||
//language = "Clatter"
|
||||
|
||||
species_traits = list(IS_WHITELISTED, NO_BLOOD, NO_HAIR)
|
||||
species_traits = list(NO_BLOOD, NO_HAIR)
|
||||
inherent_traits = list(TRAIT_RADIMMUNE, TRAIT_NOHUNGER)
|
||||
inherent_biotypes = MOB_HUMANOID | MOB_MINERAL
|
||||
forced_heartattack = TRUE // Plasmamen have no blood, but they should still get heart-attacks
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
"eyes" = /obj/item/organ/internal/eyes/night_vision/nightmare //8 darksight.
|
||||
)
|
||||
|
||||
species_traits = list(NO_BLOOD)
|
||||
species_traits = list(NO_BLOOD, NOT_SELECTABLE)
|
||||
inherent_traits = list(TRAIT_VIRUSIMMUNE, TRAIT_NOBREATH, TRAIT_RADIMMUNE)
|
||||
dies_at_threshold = TRUE
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
blood_color = "#FFFFFF"
|
||||
flesh_color = "#E6E6C6"
|
||||
|
||||
species_traits = list(NO_BLOOD, NO_HAIR)
|
||||
species_traits = list(NO_BLOOD, NO_HAIR, NOT_SELECTABLE)
|
||||
inherent_traits = list(TRAIT_RESISTHEAT, TRAIT_NOBREATH, TRAIT_RESISTCOLD, TRAIT_RESISTHIGHPRESSURE, TRAIT_RESISTLOWPRESSURE, TRAIT_RADIMMUNE, TRAIT_PIERCEIMMUNE, TRAIT_NOHUNGER, TRAIT_XENO_IMMUNE)
|
||||
inherent_biotypes = MOB_UNDEAD | MOB_HUMANOID
|
||||
tox_mod = 0
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
male_cough_sounds = list('sound/effects/slime_squish.ogg')
|
||||
female_cough_sounds = list('sound/effects/slime_squish.ogg')
|
||||
|
||||
species_traits = list(LIPS, IS_WHITELISTED, NO_CLONESCAN, EXOTIC_COLOR)
|
||||
species_traits = list(LIPS, NO_CLONESCAN, EXOTIC_COLOR)
|
||||
inherent_traits = list(TRAIT_WATERBREATH, TRAIT_NO_BONES)
|
||||
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS
|
||||
bodyflags = HAS_SKIN_COLOR | NO_EYES
|
||||
|
||||
@@ -114,6 +114,7 @@
|
||||
default_language = "Sinta'unathi"
|
||||
|
||||
speed_mod = -0.80
|
||||
species_traits = list(LIPS, NOT_SELECTABLE)
|
||||
inherent_traits = list(TRAIT_CHUNKYFINGERS)
|
||||
|
||||
has_organ = list( // same as unathi's organs, aside for the lungs as they need to be able to breathe on lavaland.
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
eyes = "vox_eyes_s"
|
||||
|
||||
species_traits = list(NO_CLONESCAN, IS_WHITELISTED)
|
||||
species_traits = list(NO_CLONESCAN)
|
||||
inherent_traits = list(TRAIT_NOGERMS, TRAIT_NODECAY)
|
||||
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS //Species-fitted 'em all.
|
||||
dietflags = DIET_OMNI
|
||||
@@ -144,7 +144,7 @@
|
||||
|
||||
eyes = "blank_eyes"
|
||||
|
||||
species_traits = list(NO_CLONESCAN, NO_BLOOD, IS_WHITELISTED)
|
||||
species_traits = list(NO_CLONESCAN, NO_BLOOD)
|
||||
inherent_traits = list(TRAIT_RESISTHEAT, TRAIT_RESISTCOLD, TRAIT_RESISTHIGHPRESSURE, TRAIT_RESISTLOWPRESSURE, TRAIT_NOFIRE, TRAIT_NOPAIN, TRAIT_NOGERMS, TRAIT_NODECAY)
|
||||
clothing_flags = 0 //IDK if you've ever seen underwear on an Armalis, but it ain't pretty.
|
||||
bodyflags = HAS_TAIL
|
||||
|
||||
@@ -225,11 +225,9 @@
|
||||
if(!SSticker || SSticker.current_state != GAME_STATE_PLAYING)
|
||||
to_chat(usr, "<span class='warning'>The round is either not ready, or has already finished...</span>")
|
||||
return
|
||||
if(client.prefs.active_character.species in GLOB.whitelisted_species)
|
||||
|
||||
if(!can_use_species(src, client.prefs.active_character.species))
|
||||
to_chat(src, alert("You are currently not whitelisted to play [client.prefs.active_character.species]."))
|
||||
return FALSE
|
||||
if(!can_use_species(src, client.prefs.active_character.species))
|
||||
to_chat(src, alert("You are currently not whitelisted to play [client.prefs.active_character.species]."))
|
||||
return FALSE
|
||||
|
||||
LateChoices()
|
||||
|
||||
@@ -245,10 +243,9 @@
|
||||
if(client.prefs.toggles2 & PREFTOGGLE_2_RANDOMSLOT)
|
||||
client.prefs.load_random_character_slot(client)
|
||||
|
||||
if(client.prefs.active_character.species in GLOB.whitelisted_species)
|
||||
if(!can_use_species(src, client.prefs.active_character.species))
|
||||
to_chat(src, alert("You are currently not whitelisted to play [client.prefs.active_character.species]."))
|
||||
return FALSE
|
||||
if(!can_use_species(src, client.prefs.active_character.species))
|
||||
to_chat(src, alert("You are currently not whitelisted to play [client.prefs.active_character.species]."))
|
||||
return FALSE
|
||||
|
||||
AttemptLateSpawn(href_list["SelectedJob"])
|
||||
return
|
||||
@@ -601,8 +598,9 @@
|
||||
return check_rights(R_ADMIN, 0, src)
|
||||
|
||||
/mob/new_player/proc/is_species_whitelisted(datum/species/S)
|
||||
if(!S) return 1
|
||||
return can_use_species(src, S.name) || !(IS_WHITELISTED in S.species_traits)
|
||||
if(!S)
|
||||
return TRUE // Allow null species?
|
||||
return can_use_species(src, S.name)
|
||||
|
||||
/mob/new_player/get_gender()
|
||||
if(!client || !client.prefs) ..()
|
||||
|
||||
Reference in New Issue
Block a user