diff --git a/code/__defines/species_languages.dm b/code/__defines/species_languages.dm index 3239e8fa1a..bdfbebb1bc 100644 --- a/code/__defines/species_languages.dm +++ b/code/__defines/species_languages.dm @@ -49,11 +49,13 @@ #define AG_SLEEPY 0x40 // fatigue/exhaustion // Species spawn flags -#define SPECIES_IS_WHITELISTED 0x1 // Must be whitelisted to play. -#define SPECIES_IS_RESTRICTED 0x2 // Is not a core/normally playable species. (castes, mutantraces) -#define SPECIES_CAN_JOIN 0x4 // Species is selectable in chargen. -#define SPECIES_NO_FBP_CONSTRUCTION 0x8 // FBP of this species can't be made in-game. -#define SPECIES_NO_FBP_CHARGEN 0x10 // FBP of this species can't be selected at chargen. +#define SPECIES_IS_WHITELISTED 0x1 // Must be whitelisted to play. +#define SPECIES_IS_RESTRICTED 0x2 // Is not a core/normally playable species. (castes, mutantraces) +#define SPECIES_CAN_JOIN 0x4 // Species is selectable in chargen. +#define SPECIES_NO_FBP_CONSTRUCTION 0x8 // FBP of this species can't be made in-game. +#define SPECIES_NO_FBP_CHARGEN 0x10 // FBP of this species can't be selected at chargen. +#define SPECIES_NO_POSIBRAIN 0x20 // FBP of this species cannot have a positronic brain. +#define SPECIES_NO_DRONEBRAIN 0x40 // FBP of this species cannot have a drone intelligence. // Species appearance flags #define HAS_SKIN_TONE 0x1 // Skin tone selectable in chargen. (0-255) diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm index 30df7ec640..2ebdb98719 100644 --- a/code/modules/client/preference_setup/general/03_body.dm +++ b/code/modules/client/preference_setup/general/03_body.dm @@ -1073,13 +1073,16 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O return organ = "brain" + var/datum/species/current_species = GLOB.all_species[pref.species] var/list/organ_choices = list("Normal") if(pref.organ_data[BP_TORSO] == "cyborg") organ_choices -= "Normal" if(organ_name == "Brain") organ_choices += "Cybernetic" - organ_choices += "Positronic" - organ_choices += "Drone" + if(!(current_species.spawn_flags & SPECIES_NO_POSIBRAIN)) + organ_choices += "Positronic" + if(!(current_species.spawn_flags & SPECIES_NO_DRONEBRAIN)) + organ_choices += "Drone" else organ_choices += "Assisted" organ_choices += "Mechanical" @@ -1097,7 +1100,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O pref.organ_data[organ] = "assisted" if("Cybernetic") pref.organ_data[organ] = "assisted" - if ("Mechanical") + if("Mechanical") pref.organ_data[organ] = "mechanical" if("Drone") pref.organ_data[organ] = "digital" diff --git a/code/modules/mob/living/carbon/human/species/station/teshari.dm b/code/modules/mob/living/carbon/human/species/station/teshari.dm index 55569135a9..c15d95c2c5 100644 --- a/code/modules/mob/living/carbon/human/species/station/teshari.dm +++ b/code/modules/mob/living/carbon/human/species/station/teshari.dm @@ -1,7 +1,3 @@ -//CHOMPStation Removal Start - TFF 24/12/19 - Bruh. This ain't a fun thing. -///mob/living/carbon/var/loneliness_stage = 0 -///mob/living/carbon/var/next_loneliness_time = 0 -//CHOMPStation Removal End /datum/species/teshari name = SPECIES_TESHARI name_plural = "Tesharii" @@ -22,19 +18,12 @@ economic_modifier = 10 health_hud_intensity = 3 - //CHOMPStation Removal Start - TFF 24/12/19 - Bruh. This ain't a fun thing. -/* - //YW Edit: Readding loneliness - var/warning_cap = 300 - var/hallucination_cap = 25 - //YW Edit End -*/ - //CHOMPStation Removal End male_cough_sounds = list('sound/effects/mob_effects/tesharicougha.ogg','sound/effects/mob_effects/tesharicoughb.ogg') female_cough_sounds = list('sound/effects/mob_effects/tesharicougha.ogg','sound/effects/mob_effects/tesharicoughb.ogg') male_sneeze_sound = 'sound/effects/mob_effects/tesharisneeze.ogg' female_sneeze_sound = 'sound/effects/mob_effects/tesharisneeze.ogg' + //CHOMPStation Add. Y'know I should probably just put this upstream. male_scream_sound = 'sound/effects/mob_effects/teshariscream.ogg' female_scream_sound = 'sound/effects/mob_effects/teshariscream.ogg' @@ -74,7 +63,7 @@ ambiguous_genders = TRUE - spawn_flags = SPECIES_CAN_JOIN + spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED | SPECIES_NO_POSIBRAIN //CHOMPedit: This is overriden by teshari_vr.dm. Noting here for future reference. appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_COLOR | HAS_EYE_COLOR bump_flag = MONKEY swap_flags = MONKEY|SLIME|SIMPLE_ANIMAL @@ -160,103 +149,3 @@ /datum/species/teshari/equip_survival_gear(var/mob/living/carbon/human/H) ..() H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(H),slot_shoes) - -//CHOMPStation Removal Start - TFF 24/12/19 - Bruh. This ain't a fun thing. -/* -/datum/species/teshari/handle_environment_special(var/mob/living/carbon/human/H) - spawn(0) - // If they're dead or unconcious they're a bit beyond this kind of thing. - if(H.stat) - return - // No point processing if we're already stressing the hell out. - if(H.hallucination >= hallucination_cap && H.loneliness_stage >= warning_cap) - return - // Vored? Not gonna get frightened. - if(isbelly(H.loc)) - if(H.loneliness_stage > 0) - H.loneliness_stage -= 4 - return - if(istype(H.loc, /obj/item/weapon/holder)) - if(H.loneliness_stage > 0) - H.loneliness_stage -= 4 - return - // Check for company. - for(var/mob/living/M in viewers(H)) - if(!istype(M, /mob/living/carbon) && !istype(M, /mob/living/silicon/robot)) - continue - if(M == H || M.stat == DEAD || M.invisibility > H.see_invisible) - continue - if(M.faction == "neutral" || M.faction == H.faction) - if(H.loneliness_stage > 0) - H.loneliness_stage -= 4 - if(H.loneliness_stage < 0) - H.loneliness_stage = 0 - if(world.time >= H.next_loneliness_time) - to_chat(H, "The nearby company calms you down...") - H.next_loneliness_time = world.time+500 - return - - - for(var/obj/item/weapon/holder/micro/M in range(1, H)) - if(H.loneliness_stage > 0) - H.loneliness_stage -= 4 - if(H.loneliness_stage < 0) - H.loneliness_stage = 0 - if(world.time >= H.next_loneliness_time) - to_chat(H, "[M] calms you down...") - H.next_loneliness_time = world.time+500 - - for(var/obj/effect/overlay/aiholo/A in range(5, H)) - if(H.loneliness_stage > 0) - H.loneliness_stage -= 4 - if(H.loneliness_stage < 0) - H.loneliness_stage = 0 - if(world.time >= H.next_loneliness_time) - to_chat(H, "[A] calms you down...") - H.next_loneliness_time = world.time+500 - - //re-enabled for YawnWider - for(var/obj/item/toy/plushie/teshari/P in range(5, H)) - if(H.loneliness_stage > 0) - H.loneliness_stage -= 4 - if(H.loneliness_stage < 0) - H.loneliness_stage = 0 - if(world.time >= H.next_loneliness_time) - to_chat(H, "The [P] calms you down, reminding you of people...") - H.next_loneliness_time = world.time+500 - - // No company? Suffer :( - if(H.loneliness_stage < warning_cap) - H.loneliness_stage += 1 - handle_loneliness(H) - if(H.loneliness_stage >= warning_cap && H.hallucination < hallucination_cap) - H.hallucination += 2.5 - -/datum/species/teshari/proc/handle_loneliness(var/mob/living/carbon/human/H) - var/ms = "" - - if(H.loneliness_stage == 1) - ms = "Well.. No one is around you anymore..." - if(H.loneliness_stage >= 50) - ms = "You begin to feel alone..." - if(H.loneliness_stage >= 250) - ms = "[pick("You don't think you can last much longer without some visible company!", "You should go find someone!")]" - if(H.stuttering < hallucination_cap) - H.stuttering += 5 - if(H.loneliness_stage >= warning_cap) - ms = "[pick("Where are the others?", "Please, there has to be someone nearby!", "I don't want to be alone!")]" - if(world.time < H.next_loneliness_time) - return - - if(ms != "") - to_chat(H, ms) - H.next_loneliness_time = world.time+500 - - -/datum/species/teshari/get_vision_flags(var/mob/living/carbon/human/H) - if(!(H.sdisabilities & DEAF) && !H.ear_deaf) - return SEE_SELF|SEE_MOBS - else - return SEE_SELF -*/ -//CHOMPStation Removal End