resize limits and designer / dna update (#16807)

* resize limits and designer / dna update

* .

* genes to mobs

* .

* Update designer.dm

* Update designer.dm

* species cleanup
This commit is contained in:
Kashargul
2025-01-01 09:23:20 +01:00
committed by GitHub
parent 2f92f6809a
commit e6ef8b0f2c
74 changed files with 965 additions and 563 deletions
+1
View File
@@ -160,3 +160,4 @@ var/SMALLSIZEBLOCK = 0
// Gene flags
#define GENE_ALWAYS_ACTIVATE 1
#define MUTCHK_HIDEMSG 2
+50 -6
View File
@@ -262,6 +262,13 @@
#define MOB_PULL_SAME 2
#define MOB_PULL_LARGER 3
//Protean organs
#define O_ORCH "orchestrator"
#define O_FACT "refactory"
//Alraune organs
#define A_FRUIT "fruit gland"
//XENOBIO2 FLAGS
#define NOMUT 0
#define COLORMUT 1
@@ -298,23 +305,42 @@
#define SPECIES_UNATHI "Unathi"
#define SPECIES_SKRELL "Skrell"
#define SPECIES_TESHARI "Teshari"
#define SPECIES_TAJ "Tajara"
#define SPECIES_TAJARAN "Tajara"
#define SPECIES_PROMETHEAN "Promethean"
#define SPECIES_DIONA "Diona"
#define SPECIES_VOX "Vox"
#define SPECIES_ZADDAT "Zaddat"
#define SPECIES_AKULA "Akula"
#define SPECIES_ALRAUNE "Alraune"
#define SPECIES_NEVREAN "Nevrean"
#define SPECIES_PROTEAN "Protean"
#define SPECIES_RAPALA "Rapala"
#define SPECIES_SERGAL "Sergal"
#define SPECIES_ALTEVIAN "Altevian"
#define SPECIES_SHADEKIN_CREW "Black-Eyed Shadekin"
#define SPECIES_VASILISSAN "Vasilissan"
#define SPECIES_VULPKANIN "Vulpkanin"
#define SPECIES_XENOCHIMERA "Xenochimera"
#define SPECIES_ZORREN_HIGH "Zorren"
#define SPECIES_CUSTOM "Custom Species"
#define SPECIES_LLEILL "Lleill"
#define SPECIES_HANNER "Hanner"
// Monkey and alien monkeys.
#define SPECIES_MONKEY "Monkey"
#define SPECIES_MONKEY_TAJ "Farwa"
#define SPECIES_MONKEY_SKRELL "Neaera"
#define SPECIES_MONKEY_UNATHI "Stok"
#define SPECIES_MONKEY "Monkey"
#define SPECIES_MONKEY_TAJ "Farwa"
#define SPECIES_MONKEY_SKRELL "Neaera"
#define SPECIES_MONKEY_UNATHI "Stok"
#define SPECIES_MONKEY_AKULA "Sobaka"
#define SPECIES_MONKEY_NEVREAN "Sparra"
#define SPECIES_MONKEY_SERGAL "Saru"
#define SPECIES_MONKEY_VULPKANIN "Wolpin"
// Virtual Reality IDs.
#define SPECIES_VR "Virtual Reality Avatar"
#define SPECIES_VR_HUMAN "Virtual Reality Human"
#define SPECIES_VR_UNATHI "Virtual Reality Unathi"
#define SPECIES_VR_TAJ "Virtual Reality Tajara" // NO CHANGING.
#define SPECIES_VR_TAJARAN "Virtual Reality Tajara" // NO CHANGING.
#define SPECIES_VR_SKRELL "Virtual Reality Skrell"
#define SPECIES_VR_TESHARI "Virtual Reality Teshari"
#define SPECIES_VR_DIONA "Virtual Reality Diona"
@@ -343,6 +369,24 @@
#define SPECIES_REPLICANT_ALPHA "Alpha Replicant"
#define SPECIES_REPLICANT_BETA "Beta Replicant"
#define SPECIES_REPLICANT_CREW "Gamma Replicant"
#define SPECIES_WEREBEAST "Werebeast"
#define SPECIES_SHADEKIN "Shadekin"
// Custom species base
#define SPECIES_FENNEC "Fennec"
#define SPECIES_XENOHYBRID "Xenohybrid"
//for custom bodytypes
#define SELECTS_BODYTYPE_FALSE 0
#define SELECTS_BODYTYPE_CUSTOM 1
#define SELECTS_BODYTYPE_SHAPESHIFTER 2
#define MARKING_NONDIGI_ONLY (1 << 0)
#define MARKING_DIGITIGRADE_ONLY (1 << 1)
#define MARKING_ALL_LEGS MARKING_NONDIGI_ONLY|MARKING_DIGITIGRADE_ONLY
//Grabs
#define UPGRADE_COOLDOWN 40
// Used to seperate simple animals by ""intelligence"".
#define SA_PLANT 1
-50
View File
@@ -1,50 +0,0 @@
//Protean organs
#define O_ORCH "orchestrator"
#define O_FACT "refactory"
//Alraune organs
#define A_FRUIT "fruit gland"
//species defines
//station species
#define SPECIES_AKULA "Akula"
#define SPECIES_ALRAUNE "Alraune"
#define SPECIES_NEVREAN "Nevrean"
#define SPECIES_PROTEAN "Protean"
#define SPECIES_RAPALA "Rapala"
#define SPECIES_SERGAL "Sergal"
#define SPECIES_ALTEVIAN "Altevian"
#define SPECIES_SHADEKIN_CREW "Black-Eyed Shadekin"
#define SPECIES_VASILISSAN "Vasilissan"
#define SPECIES_VULPKANIN "Vulpkanin"
#define SPECIES_XENOCHIMERA "Xenochimera"
#define SPECIES_ZORREN_HIGH "Zorren"
#define SPECIES_CUSTOM "Custom Species"
#define SPECIES_TAJARAN "Tajara"
#define SPECIES_LLEILL "Lleill"
#define SPECIES_HANNER "Hanner"
//monkey species
#define SPECIES_MONKEY_AKULA "Sobaka"
#define SPECIES_MONKEY_NEVREAN "Sparra"
#define SPECIES_MONKEY_SERGAL "Saru"
#define SPECIES_MONKEY_VULPKANIN "Wolpin"
//event species
#define SPECIES_WEREBEAST "Werebeast"
#define SPECIES_SHADEKIN "Shadekin"
//custom species base sprites
#define SPECIES_FENNEC "Fennec"
#define SPECIES_XENOHYBRID "Xenohybrid"
//for custom bodytypes
#define SELECTS_BODYTYPE_FALSE 0
#define SELECTS_BODYTYPE_CUSTOM 1
#define SELECTS_BODYTYPE_SHAPESHIFTER 2
#define MARKING_NONDIGI_ONLY (1 << 0)
#define MARKING_DIGITIGRADE_ONLY (1 << 1)
#define MARKING_ALL_LEGS MARKING_NONDIGI_ONLY|MARKING_DIGITIGRADE_ONLY
//Grabs
#define UPGRADE_COOLDOWN 40
+17 -17
View File
@@ -1,7 +1,7 @@
// Default species get default sprites, VR species get VR sprites
#define VR_SPECIES_SPRITE_SHEETS_SUIT_MOB list(\
SPECIES_HUMAN = 'icons/inventory/suit/mob.dmi',\
SPECIES_TAJ = 'icons/inventory/suit/mob_tajaran.dmi',\
SPECIES_TAJARAN = 'icons/inventory/suit/mob_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/suit/mob_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/suit/mob_unathi.dmi',\
SPECIES_TESHARI = 'icons/inventory/suit/mob_teshari.dmi',\
@@ -15,7 +15,7 @@ SPECIES_FENNEC = 'icons/inventory/suit/mob_vr_vulpkanin.dmi',\
SPECIES_ALTEVIAN = 'icons/inventory/suit/mob_vr_altevian.dmi')
#define VR_SPECIES_SPRITE_SHEETS_HEAD_MOB list(\
SPECIES_HUMAN = 'icons/inventory/head/mob.dmi',\
SPECIES_TAJ = 'icons/inventory/head/mob_tajaran.dmi',\
SPECIES_TAJARAN = 'icons/inventory/head/mob_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/head/mob_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/head/mob_unathi.dmi',\
SPECIES_TESHARI = 'icons/inventory/head/mob_teshari.dmi',\
@@ -29,7 +29,7 @@ SPECIES_FENNEC = 'icons/inventory/head/mob_vr_vulpkanin.dmi',\
SPECIES_ALTEVIAN = 'icons/inventory/head/mob_vr_altevian.dmi')
#define VR_SPECIES_SPRITE_SHEETS_HANDS_MOB list(\
SPECIES_HUMAN = 'icons/inventory/hands/mob.dmi',\
SPECIES_TAJ = 'icons/inventory/hands/mob_tajaran.dmi',\
SPECIES_TAJARAN = 'icons/inventory/hands/mob_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/hands/mob_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/hands/mob_unathi.dmi',\
SPECIES_TESHARI = 'icons/inventory/hands/mob_teshari.dmi',\
@@ -42,7 +42,7 @@ SPECIES_ZORREN_HIGH = 'icons/inventory/hands/mob_vr_vulpkanin.dmi',\
SPECIES_FENNEC = 'icons/inventory/hands/mob_vr_vulpkanin.dmi')
#define VR_SPECIES_SPRITE_SHEETS_FEET_MOB list(\
SPECIES_HUMAN = 'icons/inventory/feet/mob.dmi',\
SPECIES_TAJ = 'icons/inventory/feet/mob_tajaran.dmi',\
SPECIES_TAJARAN = 'icons/inventory/feet/mob_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/feet/mob_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/feet/mob_unathi.dmi',\
SPECIES_TESHARI = 'icons/inventory/feet/mob_teshari.dmi',\
@@ -56,7 +56,7 @@ SPECIES_FENNEC = 'icons/inventory/feet/mob_vr_vulpkanin.dmi')
#define VR_SPECIES_SPRITE_SHEETS_SUIT_ITEM list(\
SPECIES_HUMAN = 'icons/inventory/suit/item.dmi',\
SPECIES_TAJ = 'icons/inventory/suit/item_tajaran.dmi',\
SPECIES_TAJARAN = 'icons/inventory/suit/item_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/suit/item_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/suit/item_unathi.dmi',\
SPECIES_TESHARI = 'icons/inventory/suit/item_teshari.dmi',\
@@ -70,7 +70,7 @@ SPECIES_FENNEC = 'icons/inventory/suit/item_vr_vulpkanin.dmi',\
SPECIES_ALTEVIAN = 'icons/inventory/suit/item_vr_altevian.dmi')
#define VR_SPECIES_SPRITE_SHEETS_HEAD_ITEM list(\
SPECIES_HUMAN = 'icons/inventory/head/item.dmi',\
SPECIES_TAJ = 'icons/inventory/head/item_tajaran.dmi',\
SPECIES_TAJARAN = 'icons/inventory/head/item_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/head/item_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/head/item_unathi.dmi',\
SPECIES_TESHARI = 'icons/inventory/head/item_teshari.dmi',\
@@ -84,7 +84,7 @@ SPECIES_FENNEC = 'icons/inventory/head/item_vr_vulpkanin.dmi',\
SPECIES_ALTEVIAN = 'icons/inventory/head/item_vr_altevian.dmi')
#define VR_SPECIES_SPRITE_SHEETS_HANDS_ITEM list(\
SPECIES_HUMAN = 'icons/inventory/hands/item.dmi',\
SPECIES_TAJ = 'icons/inventory/hands/item_tajaran.dmi',\
SPECIES_TAJARAN = 'icons/inventory/hands/item_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/hands/item_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/hands/item_unathi.dmi',\
SPECIES_TESHARI = 'icons/inventory/hands/item_teshari.dmi',\
@@ -97,7 +97,7 @@ SPECIES_ZORREN_HIGH = 'icons/inventory/hands/item_vr_vulpkanin.dmi',\
SPECIES_FENNEC = 'icons/inventory/hands/item_vr_vulpkanin.dmi')
#define VR_SPECIES_SPRITE_SHEETS_FEET_ITEM list(\
SPECIES_HUMAN = 'icons/inventory/feet/item.dmi',\
SPECIES_TAJ = 'icons/inventory/feet/item_tajaran.dmi',\
SPECIES_TAJARAN = 'icons/inventory/feet/item_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/feet/item_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/feet/item_unathi.dmi',\
SPECIES_TESHARI = 'icons/inventory/feet/item_teshari.dmi',\
@@ -112,7 +112,7 @@ SPECIES_FENNEC = 'icons/inventory/feet/item_vr_vulpkanin.dmi')
// All species get VR sprites
#define ALL_VR_SPRITE_SHEETS_SUIT_MOB list(\
SPECIES_HUMAN = 'icons/inventory/suit/mob_vr.dmi',\
SPECIES_TAJ = 'icons/inventory/suit/mob_vr_tajaran.dmi',\
SPECIES_TAJARAN = 'icons/inventory/suit/mob_vr_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/suit/mob_vr_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/suit/mob_vr_unathi.dmi',\
SPECIES_TESHARI = 'icons/inventory/suit/mob_vr_teshari.dmi',\
@@ -126,7 +126,7 @@ SPECIES_FENNEC = 'icons/inventory/suit/mob_vr_vulpkanin.dmi',\
SPECIES_ALTEVIAN = 'icons/inventory/suit/mob_vr_altevian.dmi')
#define ALL_VR_SPRITE_SHEETS_HEAD_MOB list(\
SPECIES_HUMAN = 'icons/inventory/head/mob_vr.dmi',\
SPECIES_TAJ = 'icons/inventory/head/mob_vr_tajaran.dmi',\
SPECIES_TAJARAN = 'icons/inventory/head/mob_vr_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/head/mob_vr_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/head/mob_vr_unathi.dmi',\
SPECIES_TESHARI = 'icons/inventory/head/mob_vr_teshari.dmi',\
@@ -140,7 +140,7 @@ SPECIES_FENNEC = 'icons/inventory/head/mob_vr_vulpkanin.dmi',\
SPECIES_ALTEVIAN = 'icons/inventory/head/mob_vr_altevian.dmi')
#define ALL_VR_SPRITE_SHEETS_HANDS_MOB list(\
SPECIES_HUMAN = 'icons/inventory/hands/mob_vr.dmi',\
SPECIES_TAJ = 'icons/inventory/hands/mob_vr_tajaran.dmi',\
SPECIES_TAJARAN = 'icons/inventory/hands/mob_vr_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/hands/mob_vr_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/hands/mob_vr_unathi.dmi',\
SPECIES_TESHARI = 'icons/inventory/hands/mob_vr_teshari.dmi',\
@@ -153,7 +153,7 @@ SPECIES_ZORREN_HIGH = 'icons/inventory/hands/mob_vr_vulpkanin.dmi',\
SPECIES_FENNEC = 'icons/inventory/hands/mob_vr_vulpkanin.dmi')
#define ALL_VR_SPRITE_SHEETS_FEET_MOB list(\
SPECIES_HUMAN = 'icons/inventory/feet/mob_vr.dmi',\
SPECIES_TAJ = 'icons/inventory/feet/mob_vr_tajaran.dmi',\
SPECIES_TAJARAN = 'icons/inventory/feet/mob_vr_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/feet/mob_vr_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/feet/mob_vr_unathi.dmi',\
SPECIES_TESHARI = 'icons/inventory/feet/mob_vr_teshari.dmi',\
@@ -167,7 +167,7 @@ SPECIES_FENNEC = 'icons/inventory/feet/mob_vr_vulpkanin.dmi')
#define ALL_VR_SPRITE_SHEETS_SUIT_ITEM list(\
SPECIES_HUMAN = 'icons/inventory/suit/item_vr.dmi',\
SPECIES_TAJ = 'icons/inventory/suit/item_vr_tajaran.dmi',\
SPECIES_TAJARAN = 'icons/inventory/suit/item_vr_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/suit/item_vr_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/suit/item_vr_unathi.dmi',\
SPECIES_TESHARI = 'icons/inventory/suit/item_vr_teshari.dmi',\
@@ -181,7 +181,7 @@ SPECIES_FENNEC = 'icons/inventory/suit/item_vr_vulpkanin.dmi',\
SPECIES_ALTEVIAN = 'icons/inventory/suit/item_vr_altevian.dmi')
#define ALL_VR_SPRITE_SHEETS_HEAD_ITEM list(\
SPECIES_HUMAN = 'icons/inventory/head/item_vr.dmi',\
SPECIES_TAJ = 'icons/inventory/head/item_vr_tajaran.dmi',\
SPECIES_TAJARAN = 'icons/inventory/head/item_vr_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/head/item_vr_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/head/item_vr_unathi.dmi',\
SPECIES_TESHARI = 'icons/inventory/head/item_vr_teshari.dmi',\
@@ -195,7 +195,7 @@ SPECIES_FENNEC = 'icons/inventory/head/item_vr_vulpkanin.dmi',\
SPECIES_ALTEVIAN = 'icons/inventory/head/item_vr_altevian.dmi')
#define ALL_VR_SPRITE_SHEETS_HANDS_ITEM list(\
SPECIES_HUMAN = 'icons/inventory/hands/item_vr.dmi',\
SPECIES_TAJ = 'icons/inventory/hands/item_vr_tajaran.dmi',\
SPECIES_TAJARAN = 'icons/inventory/hands/item_vr_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/hands/item_vr_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/hands/item_vr_unathi.dmi',\
SPECIES_TESHARI = 'icons/inventory/hands/item_vr_teshari.dmi',\
@@ -208,7 +208,7 @@ SPECIES_ZORREN_HIGH = 'icons/inventory/hands/item_vr_vulpkanin.dmi',\
SPECIES_FENNEC = 'icons/inventory/hands/item_vr_vulpkanin.dmi')
#define ALL_VR_SPRITE_SHEETS_FEET_ITEM list(\
SPECIES_HUMAN = 'icons/inventory/feet/item_vr.dmi',\
SPECIES_TAJ = 'icons/inventory/feet/item_vr_tajaran.dmi',\
SPECIES_TAJARAN = 'icons/inventory/feet/item_vr_tajaran.dmi',\
SPECIES_SKRELL = 'icons/inventory/feet/item_vr_skrell.dmi',\
SPECIES_UNATHI = 'icons/inventory/feet/item_vr_unathi.dmi',\
SPECIES_TESHARI = 'icons/inventory/feet/item_vr_teshari.dmi',\
@@ -218,4 +218,4 @@ SPECIES_SERGAL = 'icons/inventory/feet/item_vr_sergal.dmi',\
SPECIES_NEVREAN = 'icons/inventory/feet/item_vr_sergal.dmi',\
SPECIES_VULPKANIN = 'icons/inventory/feet/item_vr_vulpkanin.dmi',\
SPECIES_ZORREN_HIGH = 'icons/inventory/feet/item_vr_vulpkanin.dmi',\
SPECIES_FENNEC = 'icons/inventory/feet/item_vr_vulpkanin.dmi')
SPECIES_FENNEC = 'icons/inventory/feet/item_vr_vulpkanin.dmi')
+1 -1
View File
@@ -54,7 +54,7 @@
var/flags = 0 // Various runtime options.
// Used for setting appearance.
var/list/valid_species = list(SPECIES_UNATHI,SPECIES_TAJ,SPECIES_SKRELL,SPECIES_HUMAN,SPECIES_DIONA,SPECIES_TESHARI)
var/list/valid_species = list(SPECIES_UNATHI,SPECIES_TAJARAN,SPECIES_SKRELL,SPECIES_HUMAN,SPECIES_DIONA,SPECIES_TESHARI)
// Runtime vars.
var/datum/mind/leader // Current leader, if any.
+1 -1
View File
@@ -158,7 +158,7 @@ var/datum/antagonist/ninja/ninjas
if(13)
directive += "Some disgruntled [using_map.company_name] employees have been supportive of our operations. Be wary of any mistreatment by command staff."
if(14)
var/xenorace = pick(SPECIES_UNATHI, SPECIES_TAJ, SPECIES_SKRELL)
var/xenorace = pick(SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_SKRELL)
directive += "A group of [xenorace] radicals have been loyal supporters of the Spider Clan. Favor [xenorace] crew whenever possible."
if(15)
directive += "The Spider Clan has recently been accused of religious insensitivity. Attempt to speak with the " + JOB_CHAPLAIN + " and prove these accusations false."
+41
View File
@@ -50,6 +50,19 @@ var/global/list/datum/dna/gene/dna_genes[0]
var/base_species = "Human"
var/list/species_traits = list()
var/blood_color = "#A10808"
var/blood_reagents = "iron"
var/scale_appearance = 0
var/offset_override = 0
var/synth_markings = 0
var/custom_speech_bubble = "default"
var/species_sounds = "None"
var/gender_specific_species_sounds = FALSE
var/species_sounds_male = "None"
var/species_sounds_female = "None"
var/grad_style = 0
var/r_grad = 0
var/g_grad = 0
var/b_grad = 0
var/custom_say
var/custom_ask
var/custom_whisper
@@ -79,6 +92,19 @@ var/global/list/datum/dna/gene/dna_genes[0]
new_dna.custom_species=custom_species //VOREStaton Edit
new_dna.species_traits=species_traits.Copy() //VOREStation Edit
new_dna.blood_color=blood_color //VOREStation Edit
new_dna.blood_reagents=blood_reagents
new_dna.scale_appearance = scale_appearance
new_dna.offset_override = offset_override
new_dna.synth_markings = synth_markings
new_dna.custom_speech_bubble = custom_speech_bubble
new_dna.species_sounds = species_sounds
new_dna.gender_specific_species_sounds = gender_specific_species_sounds
new_dna.species_sounds_male = species_sounds_male
new_dna.species_sounds_female = species_sounds_female
new_dna.grad_style = grad_style
new_dna.r_grad = r_grad
new_dna.g_grad = g_grad
new_dna.b_grad = b_grad
new_dna.custom_say=custom_say //VOREStaton Edit
new_dna.custom_ask=custom_ask //VOREStaton Edit
new_dna.custom_whisper=custom_whisper //VOREStaton Edit
@@ -157,6 +183,21 @@ var/global/list/datum/dna/gene/dna_genes[0]
src.custom_species = character.custom_species
src.base_species = character.species.base_species
src.blood_color = character.species.blood_color
src.blood_reagents = character.species.blood_reagents
src.scale_appearance = character.fuzzy
src.offset_override = character.offset_override
src.synth_markings = character.synth_markings
src.custom_speech_bubble = character.custom_speech_bubble
/* Currently not implemented on virgo
src.species_sounds = character.species.species_sounds
src.gender_specific_species_sounds = character.species.gender_specific_species_sounds
src.species_sounds_male = character.species.species_sounds_male
src.species_sounds_female = character.species.species_sounds_female
*/
src.grad_style = character.grad_style
src.r_grad = character.r_grad
src.g_grad = character.g_grad
src.b_grad = character.b_grad
src.species_traits = character.species.traits.Copy()
src.custom_say = character.custom_say
src.custom_ask = character.custom_ask
+17 -1
View File
@@ -258,12 +258,28 @@
H.custom_whisper = dna.custom_whisper
H.custom_exclaim = dna.custom_exclaim
H.species.blood_color = dna.blood_color
H.fuzzy = dna.scale_appearance
H.offset_override = dna.offset_override
H.synth_markings = dna.synth_markings
H.custom_speech_bubble = dna.custom_speech_bubble
H.grad_style = dna.grad_style
H.r_grad = dna.r_grad
H.g_grad = dna.g_grad
H.b_grad = dna.b_grad
H.custom_heat = dna.custom_heat
H.custom_cold = dna.custom_cold
var/datum/species/S = H.species
S.produceCopy(dna.species_traits, H, dna.base_species)
S.produceCopy(dna.species_traits, H, dna.base_species, FALSE) // Traitgenes edit - reset_dna flag required, or genes get reset on resleeve
// VOREStation Edit End
H.species.blood_reagents = dna.blood_reagents
/* Currently not implemented on virgo
H.species.species_sounds = dna.species_sounds
H.species.gender_specific_species_sounds = dna.gender_specific_species_sounds
H.species.species_sounds_male = dna.species_sounds_male
H.species.species_sounds_female = dna.species_sounds_female
*/
H.force_update_organs() //VOREStation Add - Gotta do this too
H.force_update_limbs()
//H.update_body(0) //VOREStation Edit - Done in force_update_limbs already
+1 -1
View File
@@ -26,7 +26,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
min_age_by_species = list(SPECIES_HUMAN_VATBORN = 14)
ideal_character_age = 70 // Old geezer captains ftw
ideal_age_by_species = list(SPECIES_HUMAN_VATBORN = 55) /// Vatborn live shorter, no other race eligible for captain besides human/skrell
banned_job_species = list(SPECIES_UNATHI, SPECIES_TAJ, SPECIES_DIONA, SPECIES_PROMETHEAN, SPECIES_ZADDAT, "mechanical", "digital")
banned_job_species = list(SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_DIONA, SPECIES_PROMETHEAN, SPECIES_ZADDAT, "mechanical", "digital")
disallow_jobhop = TRUE
pto_type = PTO_CIVILIAN
@@ -337,7 +337,7 @@ GLOBAL_LIST_EMPTY(suit_cycler_emagged)
/datum/suit_cycler_choice/species/unathi
name = SPECIES_UNATHI
/datum/suit_cycler_choice/species/tajaran
name = SPECIES_TAJ
name = SPECIES_TAJARAN
/datum/suit_cycler_choice/species/teshari
name = SPECIES_TESHARI
/datum/suit_cycler_choice/species/akula
+1 -1
View File
@@ -76,7 +76,7 @@
/* Species-specific sprites, concept stolen from Paradise//vg/.
ex:
sprite_sheets = list(
SPECIES_TAJ = 'icons/cat/are/bad'
SPECIES_TAJARAN = 'icons/cat/are/bad'
)
If index term exists and icon_override is not set, this sprite sheet will be used.
*/
+1 -1
View File
@@ -76,4 +76,4 @@
/obj/item/modkit/tajaran
name = "tajaran hardsuit modification kit"
desc = "A kit containing all the needed tools and parts to modify a hardsuit for another user. This one looks like it's meant for Tajaran."
target_species = SPECIES_TAJ
target_species = SPECIES_TAJARAN
@@ -96,14 +96,14 @@
active = !active
if(active)
if(findtext(msg,"grow"))
H.resize(min(H.size_multiplier*1.5, 2))
H.resize(min(H.size_multiplier*1.5, RESIZE_MAXIMUM))
else if(findtext(msg,"shrink"))
H.resize(max(H.size_multiplier*0.5, 0.25))
H.resize(max(H.size_multiplier*0.5, RESIZE_MINIMUM))
else if(findtext(msg, "resize"))
var/static/regex/size_mult = new/regex("\\d+")
if(size_mult.Find(msg))
var/resizing_value = text2num(size_mult.match)
H.resize(CLAMP(resizing_value/100 , 0.25, 2))
H.resize(CLAMP(resizing_value/100 , RESIZE_MINIMUM, RESIZE_MAXIMUM))
+1 -1
View File
@@ -25,7 +25,7 @@
var/corpseidicon = null //For setting it to be a gold, silver, CentCom etc ID
var/species = SPECIES_HUMAN //defaults to generic-ass humans
var/random_species = FALSE //flip to TRUE to randomize species from the list below
var/list/random_species_list = list(SPECIES_HUMAN,SPECIES_TAJ,SPECIES_UNATHI,SPECIES_SKRELL) //preset list that can be overriden downstream. only includes common humanoids for voidsuit compatibility's sake.
var/list/random_species_list = list(SPECIES_HUMAN,SPECIES_TAJARAN,SPECIES_UNATHI,SPECIES_SKRELL) //preset list that can be overriden downstream. only includes common humanoids for voidsuit compatibility's sake.
// var/random_appearance = FALSE //TODO: make this work
// var/cause_of_death = null //TODO: set up a cause-of-death system. needs to support both damage types and actual wound types, so a body can have been bitten/stabbed/clawed/shot/burned/lasered/etc. to death
delete_me = TRUE
@@ -8,7 +8,7 @@
/datum/gear/head/zhan_scarf
display_name = "Zhan headscarf"
path = /obj/item/clothing/head/tajaran/scarf
whitelisted = SPECIES_TAJ
whitelisted = SPECIES_TAJARAN
/datum/gear/suit/unathi_mantle
display_name = "hide mantle (Unathi)"
@@ -59,31 +59,31 @@
/datum/gear/eyes/tajblind
display_name = "embroidered veil"
path = /obj/item/clothing/glasses/tajblind
//whitelisted = SPECIES_TAJ
//whitelisted = SPECIES_TAJARAN
sort_category = "Xenowear"
/datum/gear/eyes/medical/tajblind
display_name = "medical veil (Tajara) (Medical)"
path = /obj/item/clothing/glasses/hud/health/tajblind
//whitelisted = SPECIES_TAJ
//whitelisted = SPECIES_TAJARAN
sort_category = "Xenowear"
/datum/gear/eyes/meson/tajblind
display_name = "industrial veil (Tajara) (Engineering, Science)"
path = /obj/item/clothing/glasses/meson/prescription/tajblind
//whitelisted = SPECIES_TAJ
//whitelisted = SPECIES_TAJARAN
sort_category = "Xenowear"
/datum/gear/eyes/material/tajblind
display_name = "mining veil (Tajara) (Mining)"
path = /obj/item/clothing/glasses/material/prescription/tajblind
//whitelisted = SPECIES_TAJ
//whitelisted = SPECIES_TAJARAN
sort_category = "Xenowear"
/datum/gear/eyes/security/tajblind
display_name = "sleek veil (Tajara) (Security)"
path = /obj/item/clothing/glasses/sunglasses/sechud/tajblind
//whitelisted = SPECIES_TAJ
//whitelisted = SPECIES_TAJARAN
sort_category = "Xenowear"
/datum/gear/mask/altevian_breath
@@ -257,7 +257,7 @@ var/global/list/valid_bloodreagents = list("default",REAGENT_ID_IRON,REAGENT_ID_
pref.dirty_synth = 0
var/datum/species/S = character.species
var/datum/species/new_S = S.produceCopy(pref.pos_traits + pref.neu_traits + pref.neg_traits, character, pref.custom_base)
var/datum/species/new_S = S.produceCopy(pref.pos_traits + pref.neu_traits + pref.neg_traits, character, pref.custom_base, TRUE)
for(var/datum/trait/T in new_S.traits)
T.apply_pref(src)
+2 -2
View File
@@ -367,7 +367,7 @@
desc = "[desc]<br>They have had the fingertips cut off of them."
if("exclude" in species_restricted)
species_restricted -= SPECIES_UNATHI
species_restricted -= SPECIES_TAJ
species_restricted -= SPECIES_TAJARAN
return
*/
@@ -573,7 +573,7 @@
sprite_sheets = list(
SPECIES_TESHARI = 'icons/inventory/face/mob_teshari.dmi',
SPECIES_VOX = 'icons/inventory/face/mob_vox.dmi',
SPECIES_TAJ = 'icons/inventory/face/mob_tajaran.dmi',
SPECIES_TAJARAN = 'icons/inventory/face/mob_tajaran.dmi',
SPECIES_UNATHI = 'icons/inventory/face/mob_unathi.dmi'
)
+1 -1
View File
@@ -148,7 +148,7 @@
sprite_sheets = list(
SPECIES_TESHARI = 'icons/inventory/face/mob_teshari.dmi',
SPECIES_VOX = 'icons/inventory/face/mob_vox.dmi',
SPECIES_TAJ = 'icons/inventory/face/mob_tajaran.dmi',
SPECIES_TAJARAN = 'icons/inventory/face/mob_tajaran.dmi',
SPECIES_UNATHI = 'icons/inventory/face/mob_unathi.dmi',
SPECIES_SERGAL = 'icons/inventory/face/mob_vr_sergal.dmi',
SPECIES_NEVREAN = 'icons/inventory/face/mob_vr_nevrean.dmi',
+1 -1
View File
@@ -172,7 +172,7 @@
icon_state = "swathelm"
item_state_slots = list(slot_r_hand_str = "swat", slot_l_hand_str = "swat")
sprite_sheets = list(
SPECIES_TAJ = 'icons/inventory/head/mob_tajaran.dmi',
SPECIES_TAJARAN = 'icons/inventory/head/mob_tajaran.dmi',
SPECIES_UNATHI = 'icons/inventory/head/mob_unathi.dmi',
)
@@ -11,13 +11,13 @@
cold_protection = HEAD|FACE|EYES
light_range = 4
sprite_sheets = list(
SPECIES_TAJ = 'icons/inventory/head/mob_tajaran.dmi',
SPECIES_TAJARAN = 'icons/inventory/head/mob_tajaran.dmi',
SPECIES_SKRELL = 'icons/inventory/head/mob_skrell.dmi',
SPECIES_UNATHI = 'icons/inventory/head/mob_unathi.dmi',
SPECIES_VOX = 'icons/inventory/head/mob_vox.dmi',
SPECIES_TESHARI = 'icons/inventory/head/mob_teshari.dmi'
)
species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_PROMETHEAN, SPECIES_TESHARI) //vox, diona, and zaddat can't use hardsuits not designed for them
species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJARAN, SPECIES_UNATHI, SPECIES_PROMETHEAN, SPECIES_TESHARI) //vox, diona, and zaddat can't use hardsuits not designed for them
max_pressure_protection = null
min_pressure_protection = null
@@ -28,7 +28,7 @@
body_parts_covered = HANDS
heat_protection = HANDS
cold_protection = HANDS
species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_PROMETHEAN, SPECIES_TESHARI)
species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJARAN, SPECIES_UNATHI, SPECIES_PROMETHEAN, SPECIES_TESHARI)
gender = PLURAL
/obj/item/clothing/shoes/magboots/rig
@@ -36,7 +36,7 @@
body_parts_covered = FEET
cold_protection = FEET
heat_protection = FEET
species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_PROMETHEAN, SPECIES_TESHARI)
species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJARAN, SPECIES_UNATHI, SPECIES_PROMETHEAN, SPECIES_TESHARI)
gender = PLURAL
icon_base = null
@@ -54,13 +54,13 @@
resilience = 0.2
can_breach = 1
sprite_sheets = list(
SPECIES_TAJ = 'icons/inventory/suit/mob_tajaran.dmi',
SPECIES_TAJARAN = 'icons/inventory/suit/mob_tajaran.dmi',
SPECIES_UNATHI = 'icons/inventory/suit/mob_unathi.dmi',
SPECIES_VOX = 'icons/inventory/suit/mob_vox.dmi',
SPECIES_TESHARI = 'icons/inventory/suit/mob_teshari.dmi'
)
supporting_limbs = list()
species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_PROMETHEAN, SPECIES_TESHARI) //vox, diona, and zaddat can't use hardsuits not designed for them
species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJARAN, SPECIES_UNATHI, SPECIES_PROMETHEAN, SPECIES_TESHARI) //vox, diona, and zaddat can't use hardsuits not designed for them
var/obj/item/material/knife/tacknife
max_pressure_protection = null
min_pressure_protection = null
@@ -1,6 +1,6 @@
/obj/item/clothing/head/helmet/space/rig
sprite_sheets = list(
SPECIES_TAJ = 'icons/inventory/head/mob_tajaran.dmi',
SPECIES_TAJARAN = 'icons/inventory/head/mob_tajaran.dmi',
SPECIES_SKRELL = 'icons/inventory/head/mob_skrell.dmi',
SPECIES_UNATHI = 'icons/inventory/head/mob_unathi.dmi',
SPECIES_XENOHYBRID = 'icons/inventory/head/mob_unathi.dmi',
@@ -18,7 +18,7 @@
/obj/item/clothing/suit/space/rig
sprite_sheets = list(
SPECIES_TAJ = 'icons/inventory/suit/mob_tajaran.dmi',
SPECIES_TAJARAN = 'icons/inventory/suit/mob_tajaran.dmi',
SPECIES_SKRELL = 'icons/inventory/suit/mob_skrell.dmi',
SPECIES_UNATHI = 'icons/inventory/suit/mob_unathi.dmi',
SPECIES_XENOHYBRID = 'icons/inventory/suit/mob_unathi.dmi',
@@ -35,16 +35,16 @@
)
/obj/item/clothing/head/helmet/space/rig
species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_ALRAUNE, SPECIES_FENNEC, SPECIES_XENOHYBRID, SPECIES_ALTEVIAN)
species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJARAN, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_ALRAUNE, SPECIES_FENNEC, SPECIES_XENOHYBRID, SPECIES_ALTEVIAN)
/obj/item/clothing/gloves/gauntlets/rig
species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_ALRAUNE, SPECIES_FENNEC, SPECIES_XENOHYBRID, SPECIES_ALTEVIAN)
species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJARAN, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_ALRAUNE, SPECIES_FENNEC, SPECIES_XENOHYBRID, SPECIES_ALTEVIAN)
/obj/item/clothing/shoes/magboots/rig
species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_ALRAUNE, SPECIES_FENNEC, SPECIES_XENOHYBRID, SPECIES_ALTEVIAN)
species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJARAN, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_ALRAUNE, SPECIES_FENNEC, SPECIES_XENOHYBRID, SPECIES_ALTEVIAN)
/obj/item/clothing/suit/space/rig
species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_ALRAUNE, SPECIES_FENNEC, SPECIES_XENOHYBRID, SPECIES_ALTEVIAN)
species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJARAN, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_ALRAUNE, SPECIES_FENNEC, SPECIES_XENOHYBRID, SPECIES_ALTEVIAN)
/obj/item/clothing/shoes/magboots/rig/ce
name = "advanced boots"
@@ -54,4 +54,4 @@
else if(shoes)
slowdown = shoes.slowdown
else
slowdown = SHOES_SLOWDOWN
slowdown = SHOES_SLOWDOWN
@@ -170,7 +170,7 @@
/obj/item/clothing/suit/space/void/responseteam
sprite_sheets = list(
SPECIES_HUMAN = 'icons/inventory/suit/mob_vr.dmi',
SPECIES_TAJ = 'icons/inventory/suit/mob_vr_tajaran.dmi',
SPECIES_TAJARAN = 'icons/inventory/suit/mob_vr_tajaran.dmi',
SPECIES_LLEILL = 'icons/inventory/suit/mob_vr_tajaran.dmi',
SPECIES_SKRELL = 'icons/inventory/suit/mob_vr_skrell.dmi',
SPECIES_UNATHI = 'icons/inventory/suit/mob_vr_unathi.dmi',
@@ -188,7 +188,7 @@
SPECIES_ZADDAT = 'icons/inventory/suit/mob_vr.dmi'
)
sprite_sheets_obj = list(
SPECIES_TAJ = 'icons/inventory/suit/item_vr.dmi',
SPECIES_TAJARAN = 'icons/inventory/suit/item_vr.dmi',
SPECIES_SKRELL = 'icons/inventory/suit/item_vr.dmi',
SPECIES_UNATHI = 'icons/inventory/suit/item_vr.dmi',
SPECIES_XENOHYBRID = 'icons/inventory/suit/item_vr.dmi',
@@ -209,7 +209,7 @@
/obj/item/clothing/head/helmet/space/void/responseteam
sprite_sheets = list(
SPECIES_HUMAN = 'icons/inventory/head/mob_vr.dmi',
SPECIES_TAJ = 'icons/inventory/head/mob_vr_tajaran.dmi',
SPECIES_TAJARAN = 'icons/inventory/head/mob_vr_tajaran.dmi',
SPECIES_LLEILL = 'icons/inventory/suit/mob_vr_tajaran.dmi',
SPECIES_SKRELL = 'icons/inventory/head/mob_vr_skrell.dmi',
SPECIES_UNATHI = 'icons/inventory/head/mob_vr_unathi.dmi',
@@ -227,7 +227,7 @@
SPECIES_ZADDAT = 'icons/inventory/head/mob_vr.dmi'
)
sprite_sheets_obj = list(
SPECIES_TAJ = 'icons/inventory/head/item_vr.dmi',
SPECIES_TAJARAN = 'icons/inventory/head/item_vr.dmi',
SPECIES_SKRELL = 'icons/inventory/head/item_vr.dmi',
SPECIES_UNATHI = 'icons/inventory/head/item_vr.dmi',
SPECIES_XENOHYBRID = 'icons/inventory/head/item_vr.dmi',
@@ -208,12 +208,12 @@
/obj/item/clothing/head/helmet/space/void/medical/alt
sprite_sheets = list(
SPECIES_HUMAN = 'icons/inventory/head/mob.dmi',
SPECIES_TAJ = 'icons/inventory/head/mob_tajaran.dmi',
SPECIES_TAJARAN = 'icons/inventory/head/mob_tajaran.dmi',
SPECIES_SKRELL = 'icons/inventory/head/mob_skrell.dmi',
SPECIES_UNATHI = 'icons/inventory/head/mob_unathi.dmi'
)
sprite_sheets_obj = list(
SPECIES_TAJ = 'icons/inventory/head/item.dmi',
SPECIES_TAJARAN = 'icons/inventory/head/item.dmi',
SPECIES_SKRELL = 'icons/inventory/head/item.dmi',
SPECIES_UNATHI = 'icons/inventory/head/item.dmi'
)
@@ -244,12 +244,12 @@
/obj/item/clothing/suit/space/void/medical/alt
sprite_sheets = list(
SPECIES_HUMAN = 'icons/inventory/suit/mob.dmi',
SPECIES_TAJ = 'icons/inventory/suit/mob_tajaran.dmi',
SPECIES_TAJARAN = 'icons/inventory/suit/mob_tajaran.dmi',
SPECIES_SKRELL = 'icons/inventory/suit/mob_skrell.dmi',
SPECIES_UNATHI = 'icons/inventory/suit/mob_unathi.dmi'
)
sprite_sheets_obj = list(
SPECIES_TAJ = 'icons/inventory/suit/item.dmi',
SPECIES_TAJARAN = 'icons/inventory/suit/item.dmi',
SPECIES_SKRELL = 'icons/inventory/suit/item.dmi',
SPECIES_UNATHI = 'icons/inventory/suit/item.dmi'
)
@@ -1,7 +1,7 @@
/obj/item/clothing/head/helmet/space/void/medical/alt
sprite_sheets = list(
SPECIES_HUMAN = 'icons/inventory/head/mob.dmi',
SPECIES_TAJ = 'icons/inventory/head/mob_tajaran.dmi',
SPECIES_TAJARAN = 'icons/inventory/head/mob_tajaran.dmi',
SPECIES_SKRELL = 'icons/inventory/head/mob_skrell.dmi',
SPECIES_UNATHI = 'icons/inventory/head/mob_unathi.dmi',
SPECIES_XENOHYBRID = 'icons/inventory/head/mob_unathi.dmi',
@@ -12,7 +12,7 @@
SPECIES_FENNEC = 'icons/inventory/head/mob_vr_vulpkanin.dmi'
)
sprite_sheets_obj = list(
SPECIES_TAJ = 'icons/inventory/head/item.dmi',
SPECIES_TAJARAN = 'icons/inventory/head/item.dmi',
SPECIES_SKRELL = 'icons/inventory/head/item.dmi',
SPECIES_UNATHI = 'icons/inventory/head/item.dmi',
SPECIES_XENOHYBRID = 'icons/inventory/head/item.dmi',
@@ -26,7 +26,7 @@
/obj/item/clothing/suit/space/void/medical/alt
sprite_sheets = list(
SPECIES_HUMAN = 'icons/inventory/suit/mob.dmi',
SPECIES_TAJ = 'icons/inventory/suit/mob_tajaran.dmi',
SPECIES_TAJARAN = 'icons/inventory/suit/mob_tajaran.dmi',
SPECIES_SKRELL = 'icons/inventory/suit/mob_skrell.dmi',
SPECIES_UNATHI = 'icons/inventory/suit/mob_unathi.dmi',
SPECIES_XENOHYBRID = 'icons/inventory/suit/mob_unathi.dmi',
@@ -37,7 +37,7 @@
SPECIES_FENNEC = 'icons/inventory/suit/mob_vr_vulpkanin.dmi'
)
sprite_sheets_obj = list(
SPECIES_TAJ = 'icons/inventory/suit/item.dmi',
SPECIES_TAJARAN = 'icons/inventory/suit/item.dmi',
SPECIES_SKRELL = 'icons/inventory/suit/item.dmi',
SPECIES_UNATHI = 'icons/inventory/suit/item.dmi',
SPECIES_XENOHYBRID = 'icons/inventory/suit/item.dmi',
@@ -76,7 +76,11 @@
to_chat(H,span_warning("You must be WEARING the uniform to change your size."))
return
var/new_size = tgui_input_number(usr, "Put the desired size (25-200%), or (1-600%) in dormitory areas.", "Set Size", 200, 600, 1)
var/new_size
if(H.has_large_resize_bounds())
new_size = tgui_input_number(H, "Put the desired size (25-200%), or (1-600%) in dormitory areas.", "Set Size", H.size_multiplier * 100, RESIZE_MAXIMUM_DORMS * 100, RESIZE_MINIMUM_DORMS * 100)
else
new_size = tgui_input_number(H, "Put the desired size (25-200%), or (1-600%) in dormitory areas.", "Set Size", H.size_multiplier * 100, RESIZE_MAXIMUM * 100, RESIZE_MINIMUM * 100)
if(!new_size)
return //cancelled
+7 -6
View File
@@ -1872,6 +1872,7 @@
H.real_name = H.species.get_random_name()
H.name = H.real_name
H.low_sorting_priority = TRUE
H.species.produceCopy(H.species.traits.Copy(),H,null,FALSE)
if(ismob(loc))
var/mob/M = loc
M.unEquip(src)
@@ -1906,27 +1907,27 @@
/obj/item/reagent_containers/food/snacks/monkeycube/farwacube
name = "farwa cube"
monkey_type = "Farwa"
monkey_type = SPECIES_MONKEY_TAJ
/obj/item/reagent_containers/food/snacks/monkeycube/wrapped/farwacube
name = "farwa cube"
monkey_type = "Farwa"
monkey_type = SPECIES_MONKEY_TAJ
/obj/item/reagent_containers/food/snacks/monkeycube/stokcube
name = "stok cube"
monkey_type = "Stok"
monkey_type = SPECIES_MONKEY_UNATHI
/obj/item/reagent_containers/food/snacks/monkeycube/wrapped/stokcube
name = "stok cube"
monkey_type = "Stok"
monkey_type = SPECIES_MONKEY_UNATHI
/obj/item/reagent_containers/food/snacks/monkeycube/neaeracube
name = "neaera cube"
monkey_type = "Neaera"
monkey_type = SPECIES_MONKEY_SKRELL
/obj/item/reagent_containers/food/snacks/monkeycube/wrapped/neaeracube
name = "neaera cube"
monkey_type = "Neaera"
monkey_type = SPECIES_MONKEY_SKRELL
/obj/item/reagent_containers/food/snacks/spellburger
name = "Spell Burger"
+8 -8
View File
@@ -419,35 +419,35 @@
/obj/item/reagent_containers/food/snacks/monkeycube/sobakacube
name = "sobaka cube"
monkey_type = "Sobaka"
monkey_type = SPECIES_MONKEY_AKULA
/obj/item/reagent_containers/food/snacks/monkeycube/wrapped/sobakacube
name = "sobaka cube"
monkey_type = "Sobaka"
monkey_type = SPECIES_MONKEY_AKULA
/obj/item/reagent_containers/food/snacks/monkeycube/sarucube
name = "saru cube"
monkey_type = "Saru"
monkey_type = SPECIES_MONKEY_SERGAL
/obj/item/reagent_containers/food/snacks/monkeycube/wrapped/sarucube
name = "saru cube"
monkey_type = "Saru"
monkey_type = SPECIES_MONKEY_SERGAL
/obj/item/reagent_containers/food/snacks/monkeycube/sparracube
name = "sparra cube"
monkey_type = "Sparra"
monkey_type = SPECIES_MONKEY_NEVREAN
/obj/item/reagent_containers/food/snacks/monkeycube/wrapped/sparracube
name = "sparra cube"
monkey_type = "Sparra"
monkey_type = SPECIES_MONKEY_NEVREAN
/obj/item/reagent_containers/food/snacks/monkeycube/wolpincube
name = "wolpin cube"
monkey_type = "Wolpin"
monkey_type = SPECIES_MONKEY_VULPKANIN
/obj/item/reagent_containers/food/snacks/monkeycube/wrapped/wolpincube
name = "wolpin cube"
monkey_type = "Wolpin"
monkey_type = SPECIES_MONKEY_VULPKANIN
// food cubes
/obj/item/reagent_containers/food/snacks/cube
@@ -18,7 +18,7 @@
suspicious_people += metric.count_all_of_specific_species(SPECIES_UNATHI) * 10
suspicious_people += metric.count_all_of_specific_species(SPECIES_ZADDAT) * 10
suspicious_people += metric.count_all_of_specific_species(SPECIES_SKRELL) * 5 // Not sure why skrell are so high.
suspicious_people += metric.count_all_of_specific_species(SPECIES_TAJ) * 5
suspicious_people += metric.count_all_of_specific_species(SPECIES_TAJARAN) * 5
suspicious_people += metric.count_all_of_specific_species(SPECIES_TESHARI) * 5
suspicious_people += metric.count_all_of_specific_species(SPECIES_HUMAN_VATBORN) * 5
suspicious_people += metric.count_all_FBPs_of_kind(FBP_DRONE) * 20
@@ -34,7 +34,7 @@
SPECIES_UNATHI = 15,
SPECIES_HUMAN_VATBORN = 6,
SPECIES_TESHARI = 2,
SPECIES_TAJ = 3,
SPECIES_TAJARAN = 3,
SPECIES_DIONA = 1,
SPECIES_ZADDAT = 25,
SPECIES_PROMETHEAN = 30
+1 -1
View File
@@ -28,7 +28,7 @@
var/corpseidicon = null //For setting it to be a gold, silver, CentCom etc ID
var/species = SPECIES_HUMAN //defaults to generic-ass humans
var/random_species = FALSE //flip to TRUE to randomize species from the list below
var/list/random_species_list = list(SPECIES_HUMAN,SPECIES_TAJ,SPECIES_UNATHI,SPECIES_SKRELL)
var/list/random_species_list = list(SPECIES_HUMAN,SPECIES_TAJARAN,SPECIES_UNATHI,SPECIES_SKRELL)
var/list/tail_type = null
var/list/ear_type = null
/// list(name of ear, color of ear, color of ear, ...).
+1 -1
View File
@@ -101,7 +101,7 @@
speaker.say_signlang(message, verb_to_use, verb_to_use, src)
/datum/language/tajsign/can_speak_special(var/mob/speaker) // TODO: If ever we make external organs assist languages, convert this over to the new format
var/list/allowed_species = list(SPECIES_TAJ, SPECIES_TESHARI) // Need a tail and ears and such to use this.
var/list/allowed_species = list(SPECIES_TAJARAN, SPECIES_TESHARI) // Need a tail and ears and such to use this.
if(iscarbon(speaker))
var/obj/item/organ/external/hand/hands = locate() in speaker //you can't sign without hands
if(!hands)
@@ -43,6 +43,8 @@
..(loc, generate_species)
species.produceCopy(species.traits.Copy(),src,null,FALSE)
h_style = to_wear_hair
if(to_wear_uniform)
@@ -66,7 +66,7 @@
icon = 'icons/mob/human_races/r_tajaran.dmi'
/mob/living/carbon/human/dummy/mannequin/autoequip/tajaran/Initialize(var/new_loc)
h_style = "Tajaran Ears"
return ..(new_loc, SPECIES_TAJ)
return ..(new_loc, SPECIES_TAJARAN)
/mob/living/carbon/human/dummy/mannequin/autoequip/unathi
icon = 'icons/mob/human_races/r_lizard.dmi'
@@ -98,7 +98,7 @@
/mob/living/carbon/human/tajaran/Initialize(var/new_loc)
h_style = "Tajaran Ears"
return ..(new_loc, SPECIES_TAJ)
return ..(new_loc, SPECIES_TAJARAN)
/mob/living/carbon/human/unathi/Initialize(var/new_loc)
h_style = "Unathi Horns"
@@ -125,22 +125,26 @@
low_sorting_priority = TRUE
/mob/living/carbon/human/monkey/Initialize(var/new_loc)
return ..(new_loc, SPECIES_MONKEY)
. = ..(new_loc, SPECIES_MONKEY)
species.produceCopy(species.traits.Copy(),src,null,FALSE)
/mob/living/carbon/human/farwa
low_sorting_priority = TRUE
/mob/living/carbon/human/farwa/Initialize(var/new_loc)
return ..(new_loc, SPECIES_MONKEY_TAJ)
. = .. (new_loc, SPECIES_MONKEY_TAJ)
species.produceCopy(species.traits.Copy(),src,null,FALSE)
/mob/living/carbon/human/neaera
low_sorting_priority = TRUE
/mob/living/carbon/human/neaera/Initialize(var/new_loc)
return ..(new_loc, SPECIES_MONKEY_SKRELL)
. = ..(new_loc, SPECIES_MONKEY_SKRELL)
species.produceCopy(species.traits.Copy(),src,null,FALSE)
/mob/living/carbon/human/stok
low_sorting_priority = TRUE
/mob/living/carbon/human/stok/Initialize(var/new_loc)
return ..(new_loc, SPECIES_MONKEY_UNATHI)
. = ..(new_loc, SPECIES_MONKEY_UNATHI)
species.produceCopy(species.traits.Copy(),src,null,FALSE)
@@ -97,7 +97,7 @@
// /mob/living/carbon/human/proc/hanner_beast_form
)
valid_transform_species = list(SPECIES_HUMAN, SPECIES_HUMAN_VATBORN, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_SKRELL, SPECIES_ALTEVIAN, SPECIES_TESHARI, SPECIES_MONKEY, SPECIES_LLEILL, SPECIES_VULPKANIN, SPECIES_ZORREN_HIGH, SPECIES_RAPALA, SPECIES_NEVREAN, SPECIES_VASILISSAN, SPECIES_AKULA)
valid_transform_species = list(SPECIES_HUMAN, SPECIES_HUMAN_VATBORN, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_SKRELL, SPECIES_ALTEVIAN, SPECIES_TESHARI, SPECIES_MONKEY, SPECIES_LLEILL, SPECIES_VULPKANIN, SPECIES_ZORREN_HIGH, SPECIES_RAPALA, SPECIES_NEVREAN, SPECIES_VASILISSAN, SPECIES_AKULA)
var/list/lleill_abilities = list(/datum/power/lleill/contact,
/datum/power/lleill/alchemy,
@@ -65,12 +65,12 @@
water_breather = TRUE
var/list/valid_transform_species = list(
"Human", "Unathi", "Tajara", "Skrell",
"Diona", "Teshari", "Monkey","Sergal",
"Akula","Nevrean","Zorren",
"Fennec", "Vulpkanin", "Vasilissan",
"Rapala", "Neaera", "Stok", "Farwa", "Sobaka",
"Wolpin", "Saru", "Sparra", "Lleill")
SPECIES_HUMAN, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_SKRELL,
SPECIES_DIONA, SPECIES_TESHARI, SPECIES_MONKEY, SPECIES_SERGAL,
SPECIES_AKULA, SPECIES_NEVREAN, SPECIES_ZORREN_HIGH,
SPECIES_FENNEC, SPECIES_VULPKANIN, SPECIES_VASILISSAN,
SPECIES_RAPALA, SPECIES_MONKEY_SKRELL, SPECIES_MONKEY_UNATHI, SPECIES_MONKEY_TAJ, SPECIES_MONKEY_AKULA,
SPECIES_MONKEY_VULPKANIN, SPECIES_MONKEY_SERGAL, SPECIES_MONKEY_NEVREAN, SPECIES_LLEILL)
// Looks like a lot but the majority of these are just to change their appearance.
inherent_verbs = list(
@@ -40,7 +40,7 @@
spawn_flags = SPECIES_IS_RESTRICTED
appearance_flags = HAS_SKIN_COLOR | HAS_EYE_COLOR | HAS_HAIR_COLOR | HAS_UNDERWEAR
valid_transform_species = list(SPECIES_HUMAN, SPECIES_HUMAN_VATBORN, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_SKRELL, SPECIES_DIONA, SPECIES_TESHARI, SPECIES_MONKEY, SPECIES_VOX)
valid_transform_species = list(SPECIES_HUMAN, SPECIES_HUMAN_VATBORN, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_SKRELL, SPECIES_DIONA, SPECIES_TESHARI, SPECIES_MONKEY, SPECIES_VOX)
inherent_verbs = list(
/mob/living/carbon/human/proc/shapeshifter_select_shape,
@@ -2,7 +2,7 @@
name = SPECIES_SKELETON
name_plural = "Skeletons"
icobase = 'icons/mob/human_races/r_skeleton.dmi'
primitive_form = "Monkey"
primitive_form = SPECIES_MONKEY
language = "Sol Common"
unarmed_types = list(/datum/unarmed_attack/claws/strong, /datum/unarmed_attack/bite/sharp) //Bones are pointy, fight me.
blurb = "Spooky Scary Skeletons!"
@@ -50,4 +50,4 @@
heat_level_2 = 3000
heat_level_3 = 4000
body_temperature = T20C
body_temperature = T20C
@@ -331,7 +331,7 @@
H.health = H.maxHealth
/datum/species/shadekin/produceCopy(var/list/traits, var/mob/living/carbon/human/H, var/custom_base)
/datum/species/shadekin/produceCopy(var/list/traits, var/mob/living/carbon/human/H, var/custom_base, var/reset_dna = TRUE)
var/datum/species/shadekin/new_copy = ..()
@@ -592,3 +592,28 @@
/datum/species/proc/update_misc_tabs(var/mob/living/carbon/human/H)
return
/datum/species/proc/handle_base_eyes(var/mob/living/carbon/human/H, var/custom_base)
if(selects_bodytype && custom_base) // only bother if our src species datum allows bases and one is assigned
var/datum/species/S = GLOB.all_species[custom_base]
//extract default eye data from species datum
var/baseHeadPath = S.has_limbs[BP_HEAD]["path"] //has_limbs is a list of lists
if(!baseHeadPath)
return // exit if we couldn't find a head path from the base.
var/obj/item/organ/external/head/baseHead = new baseHeadPath()
if(!baseHead)
return // exit if we didn't create the base properly
var/obj/item/organ/external/head/targetHead = H.get_organ(BP_HEAD)
if(!targetHead)
return // don't bother if target mob has no head for whatever reason
targetHead.eye_icon = baseHead.eye_icon
targetHead.eye_icon_location = baseHead.eye_icon_location
if(!QDELETED(baseHead) && baseHead)
qdel(baseHead)
return
@@ -72,7 +72,7 @@
else
..()
/datum/species/proc/produceCopy(var/list/traits, var/mob/living/carbon/human/H, var/custom_base)
/datum/species/proc/produceCopy(var/list/traits, var/mob/living/carbon/human/H, var/custom_base, var/reset_dna = TRUE)
ASSERT(src)
ASSERT(istype(H))
var/datum/species/new_copy = new src.type()
@@ -104,9 +104,11 @@
if(new_copy.holder_type)
H.holder_type = new_copy.holder_type
if(H.dna)
if(H.dna && reset_dna)
H.dna.ready_dna(H)
handle_base_eyes(H, custom_base)
return new_copy
//We REALLY don't need to go through every variable. Doing so makes this lag like hell on 515
@@ -54,8 +54,8 @@
var/datum/species/real = GLOB.all_species[base_species]
return real.race_key
/datum/species/custom/produceCopy(var/list/traits, var/mob/living/carbon/human/H, var/custom_base)
. = ..(traits, H, custom_base)
/datum/species/custom/produceCopy(var/list/traits, var/mob/living/carbon/human/H, var/custom_base, var/reset_dna = TRUE)
. = ..(traits, H, custom_base,reset_dna)
H.maxHealth = H.species.total_health
H.hunger_rate = H.species.hunger_factor
@@ -74,7 +74,7 @@
icobase = 'icons/mob/human_races/monkeys/r_farwa.dmi'
deform = 'icons/mob/human_races/monkeys/r_farwa.dmi'
greater_form = SPECIES_TAJ
greater_form = SPECIES_TAJARAN
default_language = LANGUAGE_ANIMAL
flesh_color = "#AFA59E"
base_color = "#333333"
@@ -27,7 +27,7 @@
/* Example from Polaris code
/datum/species/monkey/tajaran
name = "Farwa"
name = SPECIES_MONKEY_TAJ
name_plural = "Farwa"
icobase = 'icons/mob/human_races/monkeys/r_farwa.dmi'
@@ -60,22 +60,26 @@
low_sorting_priority = TRUE
/mob/living/carbon/human/sharkm/New(var/new_loc)
..(new_loc, "Sobaka")
..(new_loc, SPECIES_MONKEY_AKULA)
species.produceCopy(species.traits.Copy(),src,null,FALSE)
/mob/living/carbon/human/sergallingm
low_sorting_priority = TRUE
/mob/living/carbon/human/sergallingm/New(var/new_loc)
..(new_loc, "Saru")
..(new_loc, SPECIES_MONKEY_SERGAL)
species.produceCopy(species.traits.Copy(),src,null,FALSE)
/mob/living/carbon/human/sparram
low_sorting_priority = TRUE
/mob/living/carbon/human/sparram/New(var/new_loc)
..(new_loc, "Sparra")
..(new_loc, SPECIES_MONKEY_NEVREAN)
species.produceCopy(species.traits.Copy(),src,null,FALSE)
/mob/living/carbon/human/wolpin
low_sorting_priority = TRUE
/mob/living/carbon/human/wolpin/New(var/new_loc)
..(new_loc, "Wolpin")
..(new_loc, SPECIES_MONKEY_VULPKANIN)
species.produceCopy(species.traits.Copy(),src,null,FALSE)
@@ -120,7 +120,7 @@ var/datum/species/shapeshifter/promethean/prometheans
/mob/living/carbon/human/proc/regenerate
)
valid_transform_species = list(SPECIES_HUMAN, SPECIES_HUMAN_VATBORN, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_SKRELL, SPECIES_DIONA, SPECIES_TESHARI, SPECIES_MONKEY)
valid_transform_species = list(SPECIES_HUMAN, SPECIES_HUMAN_VATBORN, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_SKRELL, SPECIES_DIONA, SPECIES_TESHARI, SPECIES_MONKEY)
var/heal_rate = 0.5 // Temp. Regen per tick.
@@ -6,12 +6,12 @@
gluttonous = 0
water_damage_mod = 0 //No water damage
valid_transform_species = list(
"Human", "Unathi", "Tajara", "Skrell",
"Diona", "Teshari", "Monkey","Sergal",
"Akula","Nevrean","Zorren",
"Fennec", "Vulpkanin", "Vasilissan",
"Rapala", "Neaera", "Stok", "Farwa", "Sobaka",
"Wolpin", "Saru", "Sparra")
SPECIES_HUMAN, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_SKRELL,
SPECIES_DIONA, SPECIES_TESHARI, SPECIES_MONKEY, SPECIES_SERGAL,
SPECIES_AKULA, SPECIES_NEVREAN, SPECIES_ZORREN_HIGH,
SPECIES_FENNEC, SPECIES_VULPKANIN, SPECIES_VASILISSAN,
SPECIES_RAPALA, SPECIES_MONKEY_SKRELL, SPECIES_MONKEY_UNATHI, SPECIES_MONKEY_TAJ, SPECIES_MONKEY_AKULA,
SPECIES_MONKEY_VULPKANIN, SPECIES_MONKEY_SERGAL, SPECIES_MONKEY_NEVREAN)
spawn_flags = SPECIES_CAN_JOIN
wikilink="https://wiki.vore-station.net/Promethean"
@@ -109,11 +109,11 @@
name = "mass"
desc = "A helmet-shaped clump of nanomachines."
light_overlay = "should not use a light overlay"
species_restricted = list(SPECIES_PROTEAN, SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN, SPECIES_XENOMORPH_HYBRID)
species_restricted = list(SPECIES_PROTEAN, SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJARAN, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN, SPECIES_XENOMORPH_HYBRID)
sprite_sheets = list(
SPECIES_PROTEAN = 'icons/mob/head.dmi',
SPECIES_HUMAN = 'icons/mob/head.dmi',
SPECIES_TAJ = 'icons/mob/species/tajaran/helmet.dmi',
SPECIES_TAJARAN = 'icons/mob/species/tajaran/helmet.dmi',
SPECIES_SKRELL = 'icons/mob/species/skrell/helmet.dmi',
SPECIES_UNATHI = 'icons/mob/species/unathi/helmet.dmi',
SPECIES_XENOHYBRID = 'icons/mob/species/unathi/helmet.dmi',
@@ -133,7 +133,7 @@
sprite_sheets_obj = list(
SPECIES_PROTEAN = 'icons/mob/head.dmi',
SPECIES_HUMAN = 'icons/mob/head.dmi',
SPECIES_TAJ = 'icons/mob/head.dmi',
SPECIES_TAJARAN = 'icons/mob/head.dmi',
SPECIES_SKRELL = 'icons/mob/head.dmi',
SPECIES_UNATHI = 'icons/mob/head.dmi',
SPECIES_XENOHYBRID = 'icons/mob/head.dmi',
@@ -156,11 +156,11 @@
name = "mass"
desc = "Glove-shaped clusters of nanomachines."
siemens_coefficient= 0
species_restricted = list(SPECIES_PROTEAN, SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN, SPECIES_XENOMORPH_HYBRID)
species_restricted = list(SPECIES_PROTEAN, SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJARAN, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN, SPECIES_XENOMORPH_HYBRID)
sprite_sheets = list(
SPECIES_PROTEAN = 'icons/mob/hands.dmi',
SPECIES_HUMAN = 'icons/mob/hands.dmi',
SPECIES_TAJ = 'icons/mob/hands.dmi',
SPECIES_TAJARAN = 'icons/mob/hands.dmi',
SPECIES_SKRELL = 'icons/mob/hands.dmi',
SPECIES_UNATHI = 'icons/mob/hands.dmi',
SPECIES_XENOHYBRID = 'icons/mob/hands.dmi',
@@ -179,7 +179,7 @@
sprite_sheets_obj = list(
SPECIES_HUMAN = 'icons/mob/hands.dmi',
SPECIES_TAJ = 'icons/mob/hands.dmi',
SPECIES_TAJARAN = 'icons/mob/hands.dmi',
SPECIES_SKRELL = 'icons/mob/hands.dmi',
SPECIES_UNATHI = 'icons/mob/hands.dmi',
SPECIES_XENOHYBRID = 'icons/mob/hands.dmi',
@@ -201,7 +201,7 @@
/obj/item/clothing/shoes/magboots/rig/protean
name = "mass"
desc = "Boot-shaped clusters of nanomachines."
species_restricted = list(SPECIES_PROTEAN, SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN, SPECIES_XENOMORPH_HYBRID)
species_restricted = list(SPECIES_PROTEAN, SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJARAN, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN, SPECIES_XENOMORPH_HYBRID)
sprite_sheets = list(
SPECIES_TESHARI = 'icons/mob/species/teshari/feet.dmi',
SPECIES_VOX = 'icons/mob/species/vox/shoes.dmi',
@@ -215,7 +215,7 @@
name = "mass"
desc = "A body-hugging mass of nanomachines."
can_breach = 0
species_restricted = list(SPECIES_PROTEAN, SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN, SPECIES_XENOMORPH_HYBRID)
species_restricted = list(SPECIES_PROTEAN, SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJARAN, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN, SPECIES_XENOMORPH_HYBRID)
allowed = list(
/obj/item/gun,
/obj/item/flashlight,
@@ -34,7 +34,7 @@
appearance_flags = HAS_SKIN_COLOR | HAS_EYE_COLOR | HAS_HAIR_COLOR | HAS_UNDERWEAR | HAS_LIPS
spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED | SPECIES_WHITELIST_SELECTABLE
color_mult = 1
valid_transform_species = list(SPECIES_HUMAN, SPECIES_HUMAN_VATBORN, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_SKRELL, SPECIES_ALTEVIAN, SPECIES_TESHARI, SPECIES_MONKEY, SPECIES_LLEILL, SPECIES_VULPKANIN, SPECIES_ZORREN_HIGH, SPECIES_RAPALA, SPECIES_NEVREAN, SPECIES_VASILISSAN, SPECIES_AKULA)
valid_transform_species = list(SPECIES_HUMAN, SPECIES_HUMAN_VATBORN, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_SKRELL, SPECIES_ALTEVIAN, SPECIES_TESHARI, SPECIES_MONKEY, SPECIES_LLEILL, SPECIES_VULPKANIN, SPECIES_ZORREN_HIGH, SPECIES_RAPALA, SPECIES_NEVREAN, SPECIES_VASILISSAN, SPECIES_AKULA)
inherent_verbs = list(
/mob/living/carbon/human/proc/shapeshifter_select_shape,
@@ -178,7 +178,7 @@
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(H),slot_shoes)
/datum/species/tajaran
name = SPECIES_TAJ
name = SPECIES_TAJARAN
name_plural = "Tajaran"
icobase = 'icons/mob/human_races/r_tajaran.dmi'
deform = 'icons/mob/human_races/r_def_tajaran.dmi'
@@ -46,7 +46,7 @@
cold_level_2 = -1
cold_level_3 = -1
//primitive_form = "Farwa"
//primitive_form = SPECIES_MONKEY_TAJ
spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED | SPECIES_WHITELIST_SELECTABLE//Whitelisted as restricted is broken.
flags = NO_SCAN | NO_INFECT // | NO_DEFIB // Dying as a chimera is, quite literally, a death sentence. Well, if it wasn't for their revive, that is. Leaving NO_DEFIB there for the future/in case reversion to old 'chimera no-defib.
@@ -368,7 +368,7 @@
cold_level_2 = -1
cold_level_3 = -1
//primitive_form = "Monkey" //I dunno. Replace this in the future.
//primitive_form = SPECIES_MONKEY //I dunno. Replace this in the future.
flags = NO_MINOR_CUT
spawn_flags = SPECIES_CAN_JOIN
@@ -424,7 +424,7 @@
secondary_langs = list(LANGUAGE_CANILUNZT)
name_language = LANGUAGE_CANILUNZT
species_language = LANGUAGE_CANILUNZT
primitive_form = "Wolpin"
primitive_form = SPECIES_MONKEY_VULPKANIN
color_mult = 1
icon_height = 64
can_climb = TRUE
@@ -35,7 +35,7 @@
catalogue_data = list(/datum/category_item/catalogue/fauna/sergal)
primitive_form = "Saru"
primitive_form = SPECIES_MONKEY_SERGAL
spawn_flags = SPECIES_CAN_JOIN
appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR
@@ -101,7 +101,7 @@
catalogue_data = list(/datum/category_item/catalogue/fauna/akula)
primitive_form = "Sobaka"
primitive_form = SPECIES_MONKEY_AKULA
genders = list(MALE, FEMALE, PLURAL, NEUTER)
@@ -153,7 +153,7 @@
catalogue_data = list(/datum/category_item/catalogue/fauna/nevrean)
primitive_form = "Sparra"
primitive_form = SPECIES_MONKEY_NEVREAN
genders = list(MALE, FEMALE, PLURAL, NEUTER)
@@ -232,7 +232,7 @@
secondary_langs = list(LANGUAGE_CANILUNZT)
name_language = LANGUAGE_CANILUNZT
species_language = LANGUAGE_CANILUNZT
primitive_form = "Wolpin"
primitive_form = SPECIES_MONKEY_VULPKANIN
tail = "vulptail"
tail_animation = 'icons/mob/species/vulpkanin/tail.dmi' // probably need more than just one of each, but w/e
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws, /datum/unarmed_attack/bite/sharp)
@@ -269,7 +269,7 @@
breath_heat_level_2 = 445 //Default 450
breath_heat_level_3 = 1125 //Default 1250
primitive_form = "Wolpin"
primitive_form = SPECIES_MONKEY_VULPKANIN
spawn_flags = SPECIES_CAN_JOIN
appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR
@@ -63,7 +63,7 @@
cost = -1
custom_only = FALSE
var_changes = list("brute_mod" = 1.15)
banned_species = list(SPECIES_TESHARI, SPECIES_TAJ, SPECIES_ZADDAT, SPECIES_SHADEKIN_CREW) //These are already this weak.
banned_species = list(SPECIES_TESHARI, SPECIES_TAJARAN, SPECIES_ZADDAT, SPECIES_SHADEKIN_CREW) //These are already this weak.
/datum/trait/negative/brute_weak
name = "Brute Weakness"
@@ -543,7 +543,7 @@
cost = 0
custom_only = FALSE
var_changes = list("chem_strength_alcohol" = 1)
allowed_species = list(SPECIES_SKRELL,SPECIES_TAJ,SPECIES_UNATHI,SPECIES_DIONA,SPECIES_PROMETHEAN)
allowed_species = list(SPECIES_SKRELL,SPECIES_TAJARAN,SPECIES_UNATHI,SPECIES_DIONA,SPECIES_PROMETHEAN)
/datum/trait/neutral/alcohol_tolerance_basic
name = "Liver of Iron"
@@ -6,7 +6,7 @@
desc = "Allows you to move faster on average than baseline."
cost = 4
var_changes = list("slowdown" = -0.5)
// banned_species = list(SPECIES_ALRAUNE, SPECIES_SHADEKIN_CREW, SPECIES_TESHARI, SPECIES_TAJ, SPECIES_DIONA, SPECIES_UNATHI) //Either not applicable or buffs ruin species flavour/balance
// banned_species = list(SPECIES_ALRAUNE, SPECIES_SHADEKIN_CREW, SPECIES_TESHARI, SPECIES_TAJARAN, SPECIES_DIONA, SPECIES_UNATHI) //Either not applicable or buffs ruin species flavour/balance
// custom_only = FALSE //Keeping these in comments in case we decide to open them up in future, so the species are already organised.
/datum/trait/positive/hardy
@@ -252,7 +252,7 @@
a climbable wall. To climbe like so, use the verb 'Climb Down Wall' in IC tab!"
cost = 1
custom_only = FALSE
banned_species = list(SPECIES_TAJ, SPECIES_VASILISSAN) // They got unique climbing delay.
banned_species = list(SPECIES_TAJARAN, SPECIES_VASILISSAN) // They got unique climbing delay.
var_changes = list("can_climb" = TRUE, "climb_mult" = 0.75)
excludes = list(/datum/trait/positive/wall_climber_pro, /datum/trait/positive/wall_climber_natural)
@@ -285,7 +285,7 @@
excludes = list(/datum/trait/positive/wall_climber,/datum/trait/positive/wall_climber_natural)
// This feels jank, but it's the cleanest way I could do TRAIT_VARCHANGE_LESS_BETTER while having a boolean var change
// Alternate would've been banned_species = list(SPECIES_TAJ, SPECIES_VASSILISIAN)
// Alternate would've been banned_species = list(SPECIES_TAJARAN, SPECIES_VASSILISIAN)
// Opted for this as it's "future proof"
/datum/trait/positive/wall_climber_pro/apply(var/datum/species/S,var/mob/living/carbon/human/H)
..()
@@ -23,7 +23,7 @@
male_sneeze_sound = 'sound/effects/mob_effects/sneeze.ogg'
female_sneeze_sound = 'sound/effects/mob_effects/f_sneeze.ogg'
valid_transform_species = list(SPECIES_HUMAN, SPECIES_HUMAN_VATBORN, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_SKRELL, SPECIES_DIONA, SPECIES_TESHARI, SPECIES_VOX, SPECIES_MONKEY, SPECIES_SKELETON)
valid_transform_species = list(SPECIES_HUMAN, SPECIES_HUMAN_VATBORN, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_SKRELL, SPECIES_DIONA, SPECIES_TESHARI, SPECIES_VOX, SPECIES_MONKEY, SPECIES_SKELETON)
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/punch, /datum/unarmed_attack/bite)
has_organ = list(O_BRAIN = /obj/item/organ/internal/brain/slime, O_EYES = /obj/item/organ/internal/eyes) // Slime core.
@@ -1655,14 +1655,14 @@ shaved
name = "Shaved"
icon_state = "bald"
gender = NEUTER
species_allowed = list(SPECIES_HUMAN, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
species_allowed = list(SPECIES_HUMAN, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
*/
/datum/sprite_accessory/facial_hair/neck_fluff
name = "Neck Fluff"
icon = 'icons/mob/human_face_or_alt.dmi'
icon_state = "facial_neckfluff"
gender = NEUTER
species_allowed = list(SPECIES_TAJ, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
species_allowed = list(SPECIES_TAJARAN, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3)
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/facial_hair/vulp_none
@@ -1754,7 +1754,7 @@ shaved
name = "Shaved"
icon_state = "bald"
gender = NEUTER
species_allowed = list(SPECIES_HUMAN,SPECIES_HUMAN_VATBORN,SPECIES_UNATHI,SPECIES_TAJ,SPECIES_SKRELL, "Machine", SPECIES_TESHARI, SPECIES_TESHARI,SPECIES_PROMETHEAN)
species_allowed = list(SPECIES_HUMAN,SPECIES_HUMAN_VATBORN,SPECIES_UNATHI,SPECIES_TAJARAN,SPECIES_SKRELL, "Machine", SPECIES_TESHARI, SPECIES_TESHARI,SPECIES_PROMETHEAN)
/datum/sprite_accessory/facial_hair/watson
name = "Watson Mustache"
@@ -1950,7 +1950,7 @@ shaved
/datum/sprite_accessory/hair/taj
name = "Tajaran Ears"
icon_state = "ears_plain"
species_allowed = list(SPECIES_TAJ)
species_allowed = list(SPECIES_TAJARAN)
/datum/sprite_accessory/hair/taj/bangs
name = "Tajaran Bangs"
@@ -2213,7 +2213,7 @@ shaved
/datum/sprite_accessory/facial_hair/taj
name = "Tajaran Sideburns"
icon_state = "facial_sideburns"
species_allowed = list(SPECIES_TAJ)
species_allowed = list(SPECIES_TAJARAN)
/datum/sprite_accessory/facial_hair/taj/mutton
name = "Tajaran Mutton"
@@ -2460,7 +2460,7 @@ shaved
name = "Color Bands (Face)"
icon_state = "bandsface"
body_parts = list(BP_HEAD)
//species_allowed = list(SPECIES_TAJ,SPECIES_UNATHI) //Removing Polaris whitelits
//species_allowed = list(SPECIES_TAJARAN,SPECIES_UNATHI) //Removing Polaris whitelits
/datum/sprite_accessory/marking/bandsface_human
name = "Color Bands (Face)"
@@ -2472,7 +2472,7 @@ shaved
name = "Tiger Stripes"
icon_state = "tiger"
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_TORSO,BP_GROIN)
//species_allowed = list(SPECIES_TAJ) //Removing Polaris whitelits //There's a tattoo for non-cats
//species_allowed = list(SPECIES_TAJARAN) //Removing Polaris whitelits //There's a tattoo for non-cats
/datum/sprite_accessory/marking/tigerhead
name = "Tiger Stripes (Head, Minor)"
@@ -2483,7 +2483,7 @@ shaved
name = "Tiger Stripes (Head, Major)"
icon_state = "tigerface"
body_parts = list(BP_HEAD)
//species_allowed = list(SPECIES_TAJ) //Removing Polaris whitelits //There's a tattoo for non-cats
//species_allowed = list(SPECIES_TAJARAN) //Removing Polaris whitelits //There's a tattoo for non-cats
/datum/sprite_accessory/marking/backstripe
name = "Back Stripe"
@@ -3001,7 +3001,7 @@ shaved
name = "Socks Coloration (Taj)"
icon_state = "taj_pawsocks"
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
//species_allowed = list(SPECIES_TAJ) //Removing Polaris whitelits
//species_allowed = list(SPECIES_TAJARAN) //Removing Polaris whitelits
/datum/sprite_accessory/marking/una_paw_socks
name = "Socks Coloration (Una)"
@@ -3013,43 +3013,43 @@ shaved
name = "Socks Coloration (Generic)"
icon_state = "pawsocks"
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND)
//species_allowed = list(SPECIES_TAJ, SPECIES_UNATHI) //Removing Polaris whitelits
//species_allowed = list(SPECIES_TAJARAN, SPECIES_UNATHI) //Removing Polaris whitelits
/datum/sprite_accessory/marking/paw_socks_belly
name = "Socks,Belly Coloration (Generic)"
icon_state = "pawsocksbelly"
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO)
//species_allowed = list(SPECIES_TAJ, SPECIES_UNATHI) //Removing Polaris whitelits
//species_allowed = list(SPECIES_TAJARAN, SPECIES_UNATHI) //Removing Polaris whitelits
/datum/sprite_accessory/marking/belly_hands_feet
name = "Hands,Feet,Belly Color (Minor)"
icon_state = "bellyhandsfeetsmall"
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO)
//species_allowed = list(SPECIES_TAJ, SPECIES_UNATHI) //Removing Polaris whitelits
//species_allowed = list(SPECIES_TAJARAN, SPECIES_UNATHI) //Removing Polaris whitelits
/datum/sprite_accessory/marking/hands_feet_belly_full
name = "Hands,Feet,Belly Color (Major)"
icon_state = "bellyhandsfeet"
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO)
//SPECIES_TAJ, SPECIES_UNATHI) //Removing Polaris whitelits
//SPECIES_TAJARAN, SPECIES_UNATHI) //Removing Polaris whitelits
/datum/sprite_accessory/marking/hands_feet_belly_full_female
name = "Hands,Feet,Belly Color (Major, Female)"
icon_state = "bellyhandsfeet_female"
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_TORSO)
//species_allowed = list(SPECIES_TAJ) //Removing Polaris whitelits
//species_allowed = list(SPECIES_TAJARAN) //Removing Polaris whitelits
/datum/sprite_accessory/marking/patches
name = "Color Patches"
icon_state = "patches"
body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_TORSO,BP_GROIN)
//species_allowed = list(SPECIES_TAJ) //Removing Polaris whitelits
//species_allowed = list(SPECIES_TAJARAN) //Removing Polaris whitelits
/datum/sprite_accessory/marking/patchesface
name = "Color Patches (Face)"
icon_state = "patchesface"
body_parts = list(BP_HEAD)
//species_allowed = list(SPECIES_TAJ) //Removing Polaris whitelits
//species_allowed = list(SPECIES_TAJARAN) //Removing Polaris whitelits
//Taj specific stuff
@@ -3057,55 +3057,55 @@ shaved
name = "Belly Fur (Taj)"
icon_state = "taj_belly"
body_parts = list(BP_TORSO)
//species_allowed = list(SPECIES_TAJ) //Removing Polaris whitelits
//species_allowed = list(SPECIES_TAJARAN) //Removing Polaris whitelits
/datum/sprite_accessory/marking/taj_bellyfull
name = "Belly Fur Wide (Taj)"
icon_state = "taj_bellyfull"
body_parts = list(BP_TORSO)
//species_allowed = list(SPECIES_TAJ) //Removing Polaris whitelits
//species_allowed = list(SPECIES_TAJARAN) //Removing Polaris whitelits
/datum/sprite_accessory/marking/taj_earsout
name = "Outer Ear (Taj)"
icon_state = "taj_earsout"
body_parts = list(BP_HEAD)
//species_allowed = list(SPECIES_TAJ) //Removing Polaris whitelits
//species_allowed = list(SPECIES_TAJARAN) //Removing Polaris whitelits
/datum/sprite_accessory/marking/taj_earsin
name = "Inner Ear (Taj)"
icon_state = "taj_earsin"
body_parts = list(BP_HEAD)
//species_allowed = list(SPECIES_TAJ) //Removing Polaris whitelits
//species_allowed = list(SPECIES_TAJARAN) //Removing Polaris whitelits
/datum/sprite_accessory/marking/taj_nose
name = "Nose Color (Taj)"
icon_state = "taj_nose"
body_parts = list(BP_HEAD)
//species_allowed = list(SPECIES_TAJ) //Removing Polaris whitelits
//species_allowed = list(SPECIES_TAJARAN) //Removing Polaris whitelits
/datum/sprite_accessory/marking/taj_crest
name = "Chest Fur Crest (Taj)"
icon_state = "taj_crest"
body_parts = list(BP_TORSO)
//species_allowed = list(SPECIES_TAJ) //Removing Polaris whitelits
//species_allowed = list(SPECIES_TAJARAN) //Removing Polaris whitelits
/datum/sprite_accessory/marking/taj_muzzle
name = "Muzzle Color (Taj)"
icon_state = "taj_muzzle"
body_parts = list(BP_HEAD)
//species_allowed = list(SPECIES_TAJ) //Removing Polaris whitelits
//species_allowed = list(SPECIES_TAJARAN) //Removing Polaris whitelits
/datum/sprite_accessory/marking/taj_face
name = "Cheeks Color (Taj)"
icon_state = "taj_face"
body_parts = list(BP_HEAD)
//species_allowed = list(SPECIES_TAJ) //Removing Polaris whitelits
//species_allowed = list(SPECIES_TAJARAN) //Removing Polaris whitelits
/datum/sprite_accessory/marking/taj_all
name = "All Taj Head (Taj)"
icon_state = "taj_all"
body_parts = list(BP_HEAD)
//species_allowed = list(SPECIES_TAJ) //Removing Polaris whitelits
//species_allowed = list(SPECIES_TAJARAN) //Removing Polaris whitelits
//Una specific stuff
/datum/sprite_accessory/marking/una_face
@@ -3694,7 +3694,7 @@ shaved
name = "Default tajaran skin"
icon_state = "default"
icon = 'icons/mob/human_races/r_tajaran.dmi'
//species_allowed = list(SPECIES_TAJ) //Removing Polaris whitelits
//species_allowed = list(SPECIES_TAJARAN) //Removing Polaris whitelits
/datum/sprite_accessory/skin/unathi
name = "Default Unathi skin"
@@ -43,7 +43,7 @@
icon_state = "ears_plain"
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
//species_allowed = list(SPECIES_TAJ, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3) //Removing Polaris whitelits, ones we need are defined in our files
//species_allowed = list(SPECIES_TAJARAN, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3) //Removing Polaris whitelits, ones we need are defined in our files
extra_overlay = "ears_plain-inner"
/datum/sprite_accessory/ears/taj_ears_tall
@@ -51,7 +51,7 @@
icon_state = "msai_plain"
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
//species_allowed = list(SPECIES_TAJ, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3) //Removing Polaris whitelits, ones we need are defined in our files
//species_allowed = list(SPECIES_TAJARAN, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3) //Removing Polaris whitelits, ones we need are defined in our files
extra_overlay = "msai_plain-inner"
/datum/sprite_accessory/ears/squirrel_orange
@@ -9,7 +9,7 @@
name = DEVELOPER_WARNING_NAME
icon = 'icons/mob/vore/ears_vr.dmi'
do_colouration = 0 // Set to 1 to blend (ICON_ADD) hair color
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER) //This lets all races use
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER) //This lets all races use
color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1
// Species-unique ears
@@ -62,11 +62,11 @@
/datum/sprite_accessory/ears/taj_ears
name = "tajaran, colorable (old)"
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN) //This lets all races use
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN) //This lets all races use
/datum/sprite_accessory/ears/taj_ears_tall
name = "tajaran tall, colorable (old)"
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN) //This lets all races use
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN) //This lets all races use
/datum/sprite_accessory/ears/alt_ram_horns
name = "Solid ram horns"
@@ -481,19 +481,19 @@
color_blend_mode = ICON_MULTIPLY
/datum/sprite_accessory/ears/elfs1
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN) //This lets all races use
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN) //This lets all races use
/datum/sprite_accessory/ears/elfs2
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN) //This lets all races use
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN) //This lets all races use
/datum/sprite_accessory/ears/elfs3
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN) //This lets all races use
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN) //This lets all races use
/datum/sprite_accessory/ears/elfs4
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN) //This lets all races use
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN) //This lets all races use
/datum/sprite_accessory/ears/elfs5
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN) //This lets all races use
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN) //This lets all races use
/datum/sprite_accessory/ears/sleek
name = "sleek ears"
@@ -44,7 +44,7 @@
icon = null
icon_state = null
//species_allowed = list(SPECIES_TAJ, SPECIES_UNATHI, SPECIES_TESHARI, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3) //Removing Polaris whitelits, ones we need are defined in our files
//species_allowed = list(SPECIES_TAJARAN, SPECIES_UNATHI, SPECIES_TESHARI, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3) //Removing Polaris whitelits, ones we need are defined in our files
/datum/sprite_accessory/tail/squirrel_orange
name = "squirel, orange"
@@ -93,7 +93,7 @@
color_blend_mode = ICON_MULTIPLY
extra_overlay = "stripeytail_mark"
//species_allowed = list(SPECIES_TAJ, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3) //Removing Polaris whitelits, ones we need are defined in our files
//species_allowed = list(SPECIES_TAJARAN, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3) //Removing Polaris whitelits, ones we need are defined in our files
/datum/sprite_accessory/tail/stripeytail_brown
name = "stripey taj, brown"
@@ -495,7 +495,7 @@
icon_state = "tajtail_s"
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
//species_allowed = list(SPECIES_TAJ, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3) //Removing Polaris whitelits, ones we need are defined in our files
//species_allowed = list(SPECIES_TAJARAN, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3) //Removing Polaris whitelits, ones we need are defined in our files
/datum/sprite_accessory/tail/special/sergal
name = "sergal tail"
@@ -579,7 +579,7 @@
icon_state = "tajtail_hc_s"
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
//species_allowed = list(SPECIES_TAJ, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3) //Removing Polaris whitelits, ones we need are defined in our files
//species_allowed = list(SPECIES_TAJARAN, SPECIES_EVENT1, SPECIES_EVENT2, SPECIES_EVENT3) //Removing Polaris whitelits, ones we need are defined in our files
/datum/sprite_accessory/tail/special/sergalhc
name = "sergal tail, colorable"
@@ -13,7 +13,7 @@
var/mob_offset_x = 0
var/mob_offset_y = 0
do_colouration = 0 //Set to 1 to enable coloration using the tail color.
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER) //This lets all races use
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER) //This lets all races use
var/list/lower_layer_dirs = list(SOUTH)
var/icon_loaf = null
@@ -6,7 +6,7 @@
/datum/sprite_accessory/hair
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER) //This lets all races use the default hairstyles.
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER) //This lets all races use the default hairstyles.
/datum/sprite_accessory/hair/astolfo
name = "Astolfo"
@@ -97,14 +97,14 @@
name = "Bald"
icon_state = "bald"
gender = MALE
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN) //Lets all the races be bald if they want.
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN) //Lets all the races be bald if they want.
/datum/sprite_accessory/hair/ponytail6_fixed
name = "Ponytail 6 but fixed"
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "hair_ponytail6"
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_NEVREAN, SPECIES_AKULA,SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW)
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_NEVREAN, SPECIES_AKULA,SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW)
/datum/sprite_accessory/hair/una_hood
name = "Cobra Hood"
@@ -174,87 +174,87 @@
/datum/sprite_accessory/hair/taj_ears
name = "Tajaran Ears"
icon_state = "ears_plain"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
/datum/sprite_accessory/hair/taj_ears_clean
name = "Tajara Clean"
icon_state = "hair_clean"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
/datum/sprite_accessory/hair/taj_ears_bangs
name = "Tajara Bangs"
icon_state = "hair_bangs"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
/datum/sprite_accessory/hair/taj_ears_braid
name = "Tajara Braid"
icon_state = "hair_tbraid"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
/datum/sprite_accessory/hair/taj_ears_shaggy
name = "Tajara Shaggy"
icon_state = "hair_shaggy"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
/datum/sprite_accessory/hair/taj_ears_mohawk
name = "Tajaran Mohawk"
icon_state = "hair_mohawk"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
/datum/sprite_accessory/hair/taj_ears_plait
name = "Tajara Plait"
icon_state = "hair_plait"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
/datum/sprite_accessory/hair/taj_ears_straight
name = "Tajara Straight"
icon_state = "hair_straight"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
/datum/sprite_accessory/hair/taj_ears_long
name = "Tajara Long"
icon_state = "hair_long"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
/datum/sprite_accessory/hair/taj_ears_rattail
name = "Tajara Rat Tail"
icon_state = "hair_rattail"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
/datum/sprite_accessory/hair/taj_ears_spiky
name = "Tajara Spiky"
icon_state = "hair_tajspiky"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
/datum/sprite_accessory/hair/taj_ears_messy
name = "Tajara Messy"
icon_state = "hair_messy"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
/datum/sprite_accessory/hair/taj_ears_curls
name = "Tajaran Curly"
icon_state = "hair_curly"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
/datum/sprite_accessory/hair/taj_ears_wife
name = "Tajaran Housewife"
icon_state = "hair_wife"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
/datum/sprite_accessory/hair/taj_ears_victory
name = "Tajaran Victory Curls"
icon_state = "hair_victory"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
/datum/sprite_accessory/hair/taj_ears_bob
name = "Tajaran Bob"
icon_state = "hair_tbob"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
/datum/sprite_accessory/hair/taj_ears_fingercurl
name = "Tajaran Finger Curls"
icon_state = "hair_fingerwave"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
//Skrell 'hairstyles' - these were requested for a chimera and screw it, if one wants to eat seafood, go nuts
@@ -293,7 +293,7 @@
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "kajam"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_keid
@@ -301,7 +301,7 @@
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "keid"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_adhara
@@ -309,7 +309,7 @@
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "adhara"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_kleeia
@@ -317,7 +317,7 @@
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "kleeia"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_mizar
@@ -325,7 +325,7 @@
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "mizar"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_apollo
@@ -333,7 +333,7 @@
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "apollo"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_belle
@@ -341,7 +341,7 @@
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "belle"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_bun
@@ -349,7 +349,7 @@
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "bun"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_jagged
@@ -357,7 +357,7 @@
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "jagged"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_curl
@@ -365,7 +365,7 @@
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "curl"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_hawk
@@ -373,7 +373,7 @@
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "hawk"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_anita
@@ -381,7 +381,7 @@
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "anita"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_short
@@ -389,7 +389,7 @@
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "short"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
gender = NEUTER
/datum/sprite_accessory/hair/vulp_hair_spike
@@ -397,7 +397,7 @@
icon = 'icons/mob/human_face_vr.dmi'
icon_add = 'icons/mob/human_face_vr_add.dmi'
icon_state = "spike"
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJ, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
species_allowed = list(SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_TAJARAN, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_PROTEAN)
gender = NEUTER
//xeno stuffs
@@ -485,20 +485,20 @@
/datum/sprite_accessory/facial_hair
icon = 'icons/mob/human_face_or_vr.dmi'
color_blend_mode = ICON_MULTIPLY
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER) //This lets all races use the facial hair styles.
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER) //This lets all races use the facial hair styles.
/datum/sprite_accessory/facial_hair/shaved
name = "Shaved"
icon_state = "bald"
gender = NEUTER
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_VOX, SPECIES_LLEILL, SPECIES_HANNER) //This needed to be manually defined, apparantly.
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_VOX, SPECIES_LLEILL, SPECIES_HANNER) //This needed to be manually defined, apparantly.
/datum/sprite_accessory/facial_hair/neck_fluff
name = "Neck Fluff"
icon = 'icons/mob/human_face_or_vr.dmi'
icon_state = "facial_neckfluff"
gender = NEUTER
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER)
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER)
/datum/sprite_accessory/facial_hair/vulp_none
name = "None"
@@ -9,7 +9,7 @@
name = DEVELOPER_WARNING_NAME
icon = 'icons/mob/vore/wings_vr.dmi'
do_colouration = 0 //Set to 1 to enable coloration using the tail color.
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER) //This lets all races use
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER) //This lets all races use
color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1
var/wing_offset = 0
var/multi_dir = FALSE // Does it use different sprites at different layers? _front will be added for sprites on low layer, _back to high layer
+14 -14
View File
@@ -64,7 +64,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
// Species in this list cannot take these prosthetics.
var/list/species_cannot_use = list(SPECIES_TESHARI, SPECIES_PROMETHEAN, SPECIES_DIONA, SPECIES_XENOCHIMERA) //VOREStation Edit
// "Species Name" = "Robolimb Company", List, when initialized, will become "Species Name" = RobolimbDatum, used for alternate species sprites.
var/list/species_alternates = list(SPECIES_TAJ = "Unbranded - Tajaran", SPECIES_UNATHI = "Unbranded - Unathi")
var/list/species_alternates = list(SPECIES_TAJARAN = "Unbranded - Tajaran", SPECIES_UNATHI = "Unbranded - Unathi")
/datum/robolimb/unbranded_monitor
company = "Unbranded Monitor"
@@ -91,7 +91,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
/datum/robolimb/unbranded_tajaran
company = "Unbranded - Tajaran"
species_cannot_use = list(SPECIES_TESHARI, SPECIES_PROMETHEAN, SPECIES_DIONA, SPECIES_HUMAN, SPECIES_VOX, SPECIES_HUMAN_VATBORN, SPECIES_UNATHI, SPECIES_SKRELL, SPECIES_ZADDAT)
suggested_species = SPECIES_TAJ
suggested_species = SPECIES_TAJARAN
desc = "A simple robotic limb with feline design. Seems rather stiff."
icon = 'icons/mob/human_races/cyberlimbs/unbranded/unbranded_tajaran.dmi'
unavailable_to_build = 1
@@ -99,7 +99,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
/datum/robolimb/unbranded_unathi
company = "Unbranded - Unathi"
species_cannot_use = list(SPECIES_TESHARI, SPECIES_PROMETHEAN, SPECIES_DIONA, SPECIES_HUMAN, SPECIES_VOX, SPECIES_HUMAN_VATBORN, SPECIES_TAJ, SPECIES_SKRELL, SPECIES_ZADDAT)
species_cannot_use = list(SPECIES_TESHARI, SPECIES_PROMETHEAN, SPECIES_DIONA, SPECIES_HUMAN, SPECIES_VOX, SPECIES_HUMAN_VATBORN, SPECIES_TAJARAN, SPECIES_SKRELL, SPECIES_ZADDAT)
suggested_species = SPECIES_UNATHI
desc = "A simple robotic limb with reptilian design. Seems rather stiff."
icon = 'icons/mob/human_races/cyberlimbs/unbranded/unbranded_unathi.dmi'
@@ -108,7 +108,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
/datum/robolimb/unbranded_teshari
company = "Unbranded - Teshari"
species_cannot_use = list(SPECIES_UNATHI, SPECIES_PROMETHEAN, SPECIES_DIONA, SPECIES_HUMAN, SPECIES_VOX, SPECIES_HUMAN_VATBORN, SPECIES_TAJ, SPECIES_SKRELL, SPECIES_ZADDAT)
species_cannot_use = list(SPECIES_UNATHI, SPECIES_PROMETHEAN, SPECIES_DIONA, SPECIES_HUMAN, SPECIES_VOX, SPECIES_HUMAN_VATBORN, SPECIES_TAJARAN, SPECIES_SKRELL, SPECIES_ZADDAT)
suggested_species = SPECIES_TESHARI
desc = "A simple robotic limb with a small, raptor-like design. Seems rather stiff."
icon = 'icons/mob/human_races/cyberlimbs/unbranded/unbranded_teshari.dmi'
@@ -125,14 +125,14 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
company = "NanoTrasen"
desc = "A simple but efficient robotic limb, created by NanoTrasen."
icon = 'icons/mob/human_races/cyberlimbs/nanotrasen/nanotrasen_main.dmi'
species_alternates = list(SPECIES_TAJ = "NanoTrasen - Tajaran", SPECIES_UNATHI = "NanoTrasen - Unathi")
species_alternates = list(SPECIES_TAJARAN = "NanoTrasen - Tajaran", SPECIES_UNATHI = "NanoTrasen - Unathi")
modular_bodyparts = MODULAR_BODYPART_PROSTHETIC //VOREStation Edit - remove the restrictions
/datum/robolimb/nanotrasen_tajaran
company = "NanoTrasen - Tajaran"
species_cannot_use = list(SPECIES_TESHARI, SPECIES_PROMETHEAN, SPECIES_DIONA, SPECIES_HUMAN, SPECIES_VOX, SPECIES_HUMAN_VATBORN, SPECIES_UNATHI, SPECIES_SKRELL, SPECIES_ZADDAT)
species_alternates = list(SPECIES_HUMAN = "NanoTrasen")
suggested_species = SPECIES_TAJ
suggested_species = SPECIES_TAJARAN
desc = "A simple but efficient robotic limb, created by NanoTrasen."
icon = 'icons/mob/human_races/cyberlimbs/nanotrasen/nanotrasen_tajaran.dmi'
unavailable_to_build = 1
@@ -140,7 +140,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
/datum/robolimb/nanotrasen_unathi
company = "NanoTrasen - Unathi"
species_cannot_use = list(SPECIES_TESHARI, SPECIES_PROMETHEAN, SPECIES_DIONA, SPECIES_HUMAN, SPECIES_VOX, SPECIES_HUMAN_VATBORN, SPECIES_TAJ, SPECIES_SKRELL, SPECIES_ZADDAT)
species_cannot_use = list(SPECIES_TESHARI, SPECIES_PROMETHEAN, SPECIES_DIONA, SPECIES_HUMAN, SPECIES_VOX, SPECIES_HUMAN_VATBORN, SPECIES_TAJARAN, SPECIES_SKRELL, SPECIES_ZADDAT)
species_alternates = list(SPECIES_HUMAN = "NanoTrasen")
suggested_species = SPECIES_UNATHI
desc = "A simple but efficient robotic limb, created by NanoTrasen."
@@ -150,7 +150,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
/datum/robolimb/cenilimicybernetics_teshari
company = "Cenilimi Cybernetics"
species_cannot_use = list(SPECIES_UNATHI, SPECIES_PROMETHEAN, SPECIES_DIONA, SPECIES_HUMAN, SPECIES_VOX, SPECIES_HUMAN_VATBORN, SPECIES_TAJ, SPECIES_SKRELL, SPECIES_ZADDAT)
species_cannot_use = list(SPECIES_UNATHI, SPECIES_PROMETHEAN, SPECIES_DIONA, SPECIES_HUMAN, SPECIES_VOX, SPECIES_HUMAN_VATBORN, SPECIES_TAJARAN, SPECIES_SKRELL, SPECIES_ZADDAT)
species_alternates = list(SPECIES_HUMAN = "NanoTrasen")
suggested_species = SPECIES_TESHARI
desc = "Made by a Teshari-owned company, for Teshari."
@@ -197,7 +197,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
blood_name = "synthetic ichor"
speech_bubble_appearance = "machine"
unavailable_to_build = 1
species_cannot_use = list(SPECIES_TESHARI, SPECIES_PROMETHEAN, SPECIES_TAJ, SPECIES_HUMAN, SPECIES_VOX, SPECIES_HUMAN_VATBORN, SPECIES_UNATHI, SPECIES_SKRELL, SPECIES_ZADDAT)
species_cannot_use = list(SPECIES_TESHARI, SPECIES_PROMETHEAN, SPECIES_TAJARAN, SPECIES_HUMAN, SPECIES_VOX, SPECIES_HUMAN_VATBORN, SPECIES_UNATHI, SPECIES_SKRELL, SPECIES_ZADDAT)
suggested_species = SPECIES_DIONA
// Dionaea are naturally very tanky, so the robotic limbs are actually far weaker than their normal bodies.
robo_brute_mod = 1.3
@@ -360,7 +360,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
unavailable_to_build = 1
lifelike = 1
skin_color = TRUE
species_cannot_use = list(SPECIES_TESHARI, SPECIES_PROMETHEAN, SPECIES_TAJ, SPECIES_HUMAN, SPECIES_VOX, SPECIES_HUMAN_VATBORN, SPECIES_UNATHI, SPECIES_DIONA, SPECIES_ZADDAT)
species_cannot_use = list(SPECIES_TESHARI, SPECIES_PROMETHEAN, SPECIES_TAJARAN, SPECIES_HUMAN, SPECIES_VOX, SPECIES_HUMAN_VATBORN, SPECIES_UNATHI, SPECIES_DIONA, SPECIES_ZADDAT)
blood_color = "#4451cf"
blood_name = "coolant"
speech_bubble_appearance = "normal"
@@ -455,7 +455,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
company = "Zeng-Hu"
desc = "This limb has a rubbery fleshtone covering with visible seams."
icon = 'icons/mob/human_races/cyberlimbs/zenghu/zenghu_main.dmi'
species_alternates = list(SPECIES_TAJ = "Zeng-Hu - Tajaran")
species_alternates = list(SPECIES_TAJARAN = "Zeng-Hu - Tajaran")
unavailable_to_build = 1
skin_tone = 1
modular_bodyparts = MODULAR_BODYPART_PROSTHETIC //VOREStation Edit - remove the restrictions
@@ -478,7 +478,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
/datum/robolimb/wooden/teshari
company = "Morgan Trading Co - Teshari"
icon = 'icons/mob/human_races/cyberlimbs/prosthesis/wooden_teshari.dmi'
species_cannot_use = list(SPECIES_UNATHI, SPECIES_PROMETHEAN, SPECIES_DIONA, SPECIES_HUMAN, SPECIES_VOX, SPECIES_HUMAN_VATBORN, SPECIES_TAJ, SPECIES_SKRELL, SPECIES_ZADDAT)
species_cannot_use = list(SPECIES_UNATHI, SPECIES_PROMETHEAN, SPECIES_DIONA, SPECIES_HUMAN, SPECIES_VOX, SPECIES_HUMAN_VATBORN, SPECIES_TAJARAN, SPECIES_SKRELL, SPECIES_ZADDAT)
species_alternates = list(SPECIES_HUMAN = "Morgan Trading Co")
suggested_species = SPECIES_TESHARI
@@ -490,7 +490,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
/datum/robolimb/wooden/sif/teshari
company = "Morgan Trading Co - Sif wood - Teshari"
icon = 'icons/mob/human_races/cyberlimbs/prosthesis/wooden_sif_teshari.dmi'
species_cannot_use = list(SPECIES_UNATHI, SPECIES_PROMETHEAN, SPECIES_DIONA, SPECIES_HUMAN, SPECIES_VOX, SPECIES_HUMAN_VATBORN, SPECIES_TAJ, SPECIES_SKRELL, SPECIES_ZADDAT)
species_cannot_use = list(SPECIES_UNATHI, SPECIES_PROMETHEAN, SPECIES_DIONA, SPECIES_HUMAN, SPECIES_VOX, SPECIES_HUMAN_VATBORN, SPECIES_TAJARAN, SPECIES_SKRELL, SPECIES_ZADDAT)
species_alternates = list(SPECIES_HUMAN = "Morgan Trading Co")
suggested_species = SPECIES_TESHARI
@@ -588,7 +588,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
species = SPECIES_UNATHI
/obj/item/disk/species/tajaran
species = SPECIES_TAJ
species = SPECIES_TAJARAN
/obj/item/disk/species/teshari
species = SPECIES_TESHARI
+1 -1
View File
@@ -64,7 +64,7 @@
/*/datum/robolimb/dsi_tajaran/New()
species_cannot_use = GLOB.all_species.Copy()
species_cannot_use -= SPECIES_TAJ
species_cannot_use -= SPECIES_TAJARAN
VS Edit - anyone can select these. */
/obj/item/disk/limb/dsi_tajaran
+1 -1
View File
@@ -91,7 +91,7 @@ var/const/cyberbeast_monitor_styles = "blank=cyber_blank;\
company = "Zeng-Hu Glacier"
desc = "This limb has a rubbery white covering with visible seams."
icon = 'icons/mob/human_races/cyberlimbs/zenghu/zenghu_glacier_main.dmi'
species_alternates = list(SPECIES_TAJ = "Zeng-Hu - Tajaran")
species_alternates = list(SPECIES_TAJARAN = "Zeng-Hu - Tajaran")
unavailable_to_build = 1
skin_tone = 1
modular_bodyparts = MODULAR_BODYPART_PROSTHETIC
+1 -1
View File
@@ -272,7 +272,7 @@
switch(species_to_check)
if(SPECIES_HUMAN)
temp_img = icon('icons/obj/butts_vr.dmi', "human")
if(SPECIES_TAJ)
if(SPECIES_TAJARAN)
temp_img = icon('icons/obj/butts_vr.dmi', "tajaran")
if(SPECIES_UNATHI)
temp_img = icon('icons/obj/butts_vr.dmi', "unathi")
@@ -938,7 +938,8 @@
/datum/reagent/drink/coffee/nukie/mega/shrink/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
M.resize((M.size_multiplier - 0.01), uncapped = M.has_large_resize_bounds(), aura_animation = FALSE)
var/new_size = clamp((M.size_multiplier - 0.01), RESIZE_MINIMUM_DORMS, RESIZE_MAXIMUM_DORMS)
M.resize(new_size, uncapped = M.has_large_resize_bounds(), aura_animation = FALSE)
/datum/reagent/drink/coffee/nukie/mega/grow //Basically macrocillin but for ingesting
name = REAGENT_NUKIEMEGAGROWTH
@@ -948,4 +949,5 @@
/datum/reagent/drink/coffee/nukie/mega/grow/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
M.resize((M.size_multiplier + 0.01), uncapped = M.has_large_resize_bounds(), aura_animation = FALSE)
var/new_size = clamp((M.size_multiplier + 0.01), RESIZE_MINIMUM_DORMS, RESIZE_MAXIMUM_DORMS)
M.resize(new_size, uncapped = M.has_large_resize_bounds(), aura_animation = FALSE)
+4 -2
View File
@@ -13,7 +13,8 @@
mrate_static = TRUE
/datum/reagent/macrocillin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
M.resize(M.size_multiplier+0.01, uncapped = M.has_large_resize_bounds()) //Incrrease 1% per tick.
var/new_size = clamp((M.size_multiplier + 0.01), RESIZE_MINIMUM_DORMS, RESIZE_MAXIMUM_DORMS)
M.resize(new_size, uncapped = M.has_large_resize_bounds()) //Incrrease 1% per tick.
return
/datum/reagent/microcillin
@@ -26,7 +27,8 @@
mrate_static = TRUE
/datum/reagent/microcillin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
M.resize(M.size_multiplier-0.01, uncapped = M.has_large_resize_bounds()) //Decrease 1% per tick.
var/new_size = clamp((M.size_multiplier - 0.01), RESIZE_MINIMUM_DORMS, RESIZE_MAXIMUM_DORMS)
M.resize(new_size, uncapped = M.has_large_resize_bounds()) //Decrease 1% per tick.
return
@@ -25,7 +25,7 @@
sort_string = "DBAAA"
/datum/design/circuit/disk/tajprint
name = SPECIES_TAJ
name = SPECIES_TAJARAN
id = "prosthetic_tajaran"
req_tech = list(TECH_DATA = 3, TECH_BIO = 3)
build_path = /obj/item/disk/species/tajaran
+128 -23
View File
@@ -24,6 +24,7 @@
var/obj/screen/south_preview = null
var/obj/screen/east_preview = null
var/obj/screen/west_preview = null
var/obj/screen/north_preview = null
// Mannequins are somewhat expensive to create, so cache it
var/mob/living/carbon/human/dummy/mannequin/mannequin = null
var/obj/item/disk/body_record/disk = null
@@ -41,13 +42,13 @@
south_preview.name = ""
south_preview.assigned_map = map_name
south_preview.del_on_map_removal = FALSE
south_preview.screen_loc = "[map_name]:1,1"
south_preview.screen_loc = "[map_name]:2,1"
east_preview = new
east_preview.name = ""
east_preview.assigned_map = map_name
east_preview.del_on_map_removal = FALSE
east_preview.screen_loc = "[map_name]:2,1"
east_preview.screen_loc = "[map_name]:4,1"
west_preview = new
west_preview.name = ""
@@ -55,6 +56,12 @@
west_preview.del_on_map_removal = FALSE
west_preview.screen_loc = "[map_name]:0,1"
north_preview = new
north_preview.name = ""
north_preview.assigned_map = map_name
north_preview.del_on_map_removal = FALSE
north_preview.screen_loc = "[map_name]:6,1"
our_db = SStranscore.db_by_key(db_key)
/obj/machinery/computer/transhuman/designer/Destroy()
@@ -125,17 +132,33 @@
data["activeBodyRecord"] = list(
"real_name" = active_br.mydna.name,
"speciesname" = active_br.speciesname ? active_br.speciesname : active_br.mydna.dna.species,
"blood_type" = active_br.mydna.dna.b_type,
"blood_color" = active_br.mydna.dna.blood_color,
"blood_reagents" = active_br.mydna.dna.blood_reagents,
"weight" = !isnull(active_br.weight) ? active_br.weight : 137, // 137 id default in code\modules\client\preference_setup\vore\02_size.dm
"flavors" = list(),
"scale_appearance" = active_br.mydna.dna.scale_appearance ? "Fuzzy" : "Sharp",
"offset_override" = active_br.mydna.dna.offset_override ? "Odd" : "Even",
"species_sound" = active_br.mydna.dna.species_sounds,
"gender" = active_br.bodygender,
"synthetic" = active_br.synthetic ? "Yes" : "No",
"locked" = active_br.locked ? "Low" : "High",
"locked" = active_br.locked,
"scale" = player_size_name(active_br.sizemult),
"booc" = active_br.body_oocnotes,
"styles" = list()
)
var/list/flavors = data["activeBodyRecord"]["flavors"]
flavors += active_br.mydna.flavor.Copy()
var/list/styles = data["activeBodyRecord"]["styles"]
var/list/temp
if (mannequin.species && mannequin.species.selects_bodytype)
if (!mannequin.species.base_species)
mannequin.species.base_species = mannequin.species.name
styles["Bodytype"] = list("styleHref" = "custom_base", "style" = mannequin.species.base_species)
temp = list("styleHref" = "ear_style", "style" = "Normal")
if(mannequin.ear_style)
temp["style"] = mannequin.ear_style.name
@@ -145,6 +168,9 @@
if(mannequin.ear_style.extra_overlay)
temp["color2"] = MOB_HEX_COLOR(mannequin, ears2)
temp["colorHref2"] = "ear_color2"
if(mannequin.ear_style.extra_overlay2)
temp["color3"] = MOB_HEX_COLOR(mannequin, ears3)
temp["colorHref3"] = "ear_color3"
styles["Ears"] = temp
temp = list("styleHref" = "ear_style", "style" = "Normal")
@@ -167,6 +193,9 @@
if(mannequin.tail_style.extra_overlay)
temp["color2"] = MOB_HEX_COLOR(mannequin, tail2)
temp["colorHref2"] = "tail_color2"
if(mannequin.tail_style.extra_overlay2)
temp["color3"] = MOB_HEX_COLOR(mannequin, tail3)
temp["colorHref3"] = "tail_color3"
styles["Tail"] = temp
temp = list("styleHref" = "wing_style", "style" = "Normal")
@@ -178,6 +207,9 @@
if(mannequin.wing_style.extra_overlay)
temp["color2"] = MOB_HEX_COLOR(mannequin, wing2)
temp["colorHref2"] = "wing_color2"
if(mannequin.wing_style.extra_overlay2)
temp["color3"] = MOB_HEX_COLOR(mannequin, wing3)
temp["colorHref3"] = "wing_color3"
styles["Wing"] = temp
temp = list("styleHref" = "hair_style", "style" = mannequin.h_style)
@@ -198,11 +230,6 @@
if(mannequin.species && (mannequin.species.appearance_flags & HAS_SKIN_COLOR))
styles["Body Color"] = list("colorHref" = "skin_color", "color" = MOB_HEX_COLOR(mannequin, skin))
if (mannequin.species && mannequin.species.selects_bodytype)
if (!mannequin.species.base_species)
mannequin.species.base_species = mannequin.species.name
styles["Bodytype"] = list("styleHref" = "custom_base", "style" = mannequin.species.base_species)
var/datum/preferences/designer/P = new()
apply_markings_to_prefs(mannequin, P)
data["activeBodyRecord"]["markings"] = P.body_markings
@@ -266,11 +293,19 @@
menu = MENU_SPECIFICRECORD
if("savetodisk")
if(active_br.locked)
var/answer = tgui_alert(ui.user,"This body record will be written to a disk and allow any mind to inhabit it. This is against the current body owner's configured OOC preferences for body impersonation. Please confirm that you have permission to do this, and are sure! Admins will be notified.","Mind Compatability",list("No","Yes"))
if(!answer)
return
if(answer == "No")
to_chat(ui.user, span_warning("ERROR: This body record is restricted."))
return
else
message_admins("[ui.user] wrote an unlocked version of [active_br.mydna.name]'s bodyrecord to a disk. Their preferences do not allow body impersonation, but may be allowed with OOC consent.")
if(disk && active_br)
active_br.locked = FALSE // remove lock
disk.stored = new /datum/transhuman/body_record(active_br) // Saves a COPY!
disk.name = "[initial(disk.name)] ([active_br.mydna.name])"
disk.forceMove(get_turf(src))
disk = null
if("ejectdisk")
disk.forceMove(get_turf(src))
@@ -284,7 +319,7 @@
PrefHrefMiddleware(params, ui.user)
add_fingerprint(ui.user)
return 1 // Return 1 to refresh UI
return TRUE // Return 1 to refresh UI
//
// Code below is for generating preview icons based on a body_record
@@ -301,21 +336,26 @@
var/mutable_appearance/MA = new(mannequin)
south_preview.appearance = MA
south_preview.dir = SOUTH
south_preview.screen_loc = "[map_name]:1,1"
south_preview.screen_loc = "[map_name]:2,1"
south_preview.name = ""
east_preview.appearance = MA
east_preview.dir = EAST
east_preview.screen_loc = "[map_name]:2,1"
east_preview.screen_loc = "[map_name]:4,1"
east_preview.name = ""
west_preview.appearance = MA
west_preview.dir = WEST
west_preview.screen_loc = "[map_name]:0,1"
west_preview.name = ""
north_preview.appearance = MA
north_preview.dir = NORTH
north_preview.screen_loc = "[map_name]:6,1"
north_preview.name = ""
/obj/machinery/computer/transhuman/designer/proc/give_client_previews(client/C)
C.register_map_obj(south_preview)
C.register_map_obj(east_preview)
C.register_map_obj(west_preview)
C.register_map_obj(north_preview)
/obj/machinery/computer/transhuman/designer/proc/update_preview_mob(var/mob/living/carbon/human/H)
@@ -364,6 +404,7 @@
// Apply DNA
H.dna = R.dna.Clone()
H.UpdateAppearance() // Update all appearance stuff from the DNA record
// H.sync_dna_traits(FALSE) // Traitgenes edit - Sync traits to genetics if needed // Currently not implemented
H.sync_organ_dna() // Do this because sprites depend on DNA-gender of organs (chest etc)
H.resize(active_br.sizemult, FALSE)
@@ -375,6 +416,13 @@
if(H.wing_style)
H.wing_style.em_block = FALSE
for(var/key in R.flavor)
H.flavor_texts[key] = R.flavor[key]
H.weight = active_br.weight
// stupid dupe vars
H.b_type = active_br.mydna.dna.b_type
H.blood_color = active_br.mydna.dna.blood_color
// And as for clothing...
// We don't actually dress them! This is a medical machine, handle the nakedness DOCTOR!
@@ -408,24 +456,28 @@
apply_markings_to_prefs(mannequin, P)
apply_ears_to_prefs(mannequin, P)
for(var/key in active_br.mydna.flavor)
P.flavor_texts[key] = active_br.mydna.flavor[key]
P.fuzzy = active_br.mydna.dna.scale_appearance
P.offset_override = active_br.mydna.dna.offset_override
// P.species_sound = active_br.mydna.dna.species_sounds // Currently not implemented on virgo
// Now we start using the player_setup objects to do stuff!
var/datum/category_collection/CC = P.player_setup
var/datum/category_group/CG = CC.categories_by_name["General"]
var/datum/category_item/player_setup_item/general/body/B = CG.items_by_name["Body"]
ASSERT(istype(B))
var/datum/category_item/player_setup_item/general/basic/G = CG.items_by_name["Basic"]
ASSERT(istype(G))
var/datum/category_item/player_setup_item/general/flavor/F = CG.items_by_name["Flavor"]
ASSERT(istype(F))
var/datum/category_item/player_setup_item/vore/size/S = CC.categories_by_name["VORE"].items_by_name["Size"]
ASSERT(istype(S))
var/datum/category_item/player_setup_item/vore/traits/V = CC.categories_by_name["VORE"].items_by_name["Traits"]
ASSERT(istype(V))
var/list/use_different_category = list("custom_base" = V) //add more here if needed
var/list/use_different_category = list("rename" = G, "bio_gender" = G, "blood_reagents" = V, "custom_species" = V, "blood_color" = V, "custom_base" = V, "species_sound_options" = S, "toggle_fuzzy" = S, "toggle_offset_override" = S, "weight" = S, "flavor_text" = F) //add more here if needed
if(params["target_href"] == "bio_gender")
var/new_gender = tgui_input_list(user, "Choose your character's biological gender:", "Character Preference", G.get_genders())
if(new_gender)
active_br.bodygender = new_gender
active_br.mydna.dna.SetUIState(DNA_UI_GENDER, new_gender!=MALE, 1)
update_preview_icon()
return 1
var/href_list = list()
href_list["src"] = "\ref[src]"
@@ -442,11 +494,64 @@
var/action = 0
action = to_use.OnTopic(list2params(href_list), href_list, user)
if(action & TOPIC_UPDATE_PREVIEW && mannequin && active_br)
if((action & TOPIC_UPDATE_PREVIEW || action & TOPIC_REFRESH_UPDATE_PREVIEW || action & TOPIC_HANDLED || action & TOPIC_REFRESH) && mannequin && active_br) // Outpost 21 edit - Handled and Refreshes also count for check!
switch(params["target_href"])
if("rename")
active_br.mydna.name = P.real_name
active_br.mydna.dna.real_name = P.real_name
update_preview_icon()
return TRUE
if("bio_gender")
active_br.bodygender = P.biological_gender
active_br.mydna.dna.SetUIState(DNA_UI_GENDER, P.biological_gender!=MALE, 1)
update_preview_icon()
return TRUE
if("custom_species")
active_br.mydna.dna.custom_species = P.custom_species
active_br.speciesname = P.custom_species
update_preview_icon()
return TRUE
if("blood_color")
active_br.mydna.dna.blood_color = P.blood_color
update_preview_icon()
return TRUE
if("blood_type")
active_br.mydna.dna.b_type = P.b_type
update_preview_icon()
return TRUE
if("blood_reagents")
active_br.mydna.dna.blood_reagents = P.blood_reagents
update_preview_icon()
return TRUE
if("weight")
active_br.weight = P.weight_vr
update_preview_icon()
return TRUE
if("flavor_text")
to_use.copy_to_mob(mannequin)
for(var/key in mannequin.flavor_texts) // Get the flavors from the mob, which we just got from pref!
active_br.mydna.flavor[key] = mannequin.flavor_texts[key]
update_preview_icon()
return TRUE
if("toggle_fuzzy")
active_br.mydna.dna.scale_appearance = P.fuzzy
update_preview_icon()
return TRUE
if("toggle_offset_override")
active_br.mydna.dna.offset_override = P.offset_override
update_preview_icon()
return TRUE
if("species_sound_options")
/* Currently not implemented on virgo
active_br.mydna.dna.species_sounds = P.species_sound
update_preview_icon() */
return TRUE
to_use.copy_to_mob(mannequin)
mannequin.species.blood_color = active_br.mydna.dna.blood_color
mannequin.species.blood_reagents = active_br.mydna.dna.blood_reagents
active_br.mydna.dna.ResetUIFrom(mannequin)
update_preview_icon()
return 1
return TRUE
// Fake subtype of preferences we can use to steal code from player_setup
/datum/preferences/designer/New()
@@ -139,9 +139,9 @@ GLOBAL_LIST_INIT(digest_modes, list())
id = DM_SIZE_STEAL
/datum/digest_mode/drain/sizesteal/process_mob(obj/belly/B, mob/living/L)
if(L.size_multiplier > B.shrink_grow_size && B.owner.size_multiplier < 2) //Grow until either pred is large or prey is small.
if(L.size_multiplier > B.shrink_grow_size && B.owner.size_multiplier < RESIZE_MAXIMUM) //Grow until either pred is large or prey is small.
B.owner.resize(B.owner.size_multiplier + 0.01) //Grow by 1% per tick.
if(B.owner.size_multiplier >= 2) // Adds some feedback so the pred knows they can't grow anymore.
if(B.owner.size_multiplier >= RESIZE_MAXIMUM) // Adds some feedback so the pred knows they can't grow anymore.
to_chat(B.owner, span_vnotice("You feel you have grown as much as you can."))
L.resize(L.size_multiplier - 0.01) //Shrink by 1% per tick
if(L.size_multiplier <= B.shrink_grow_size) // Adds some feedback so the pred knows their prey has stopped shrinking.
@@ -20,224 +20,407 @@ export const BodyDesignerSpecificRecord = (props: {
const { activeBodyRecord, mapRef } = props;
return activeBodyRecord ? (
<Flex direction="column">
<Flex.Item basis="165px">
<Section
title="Specific Record"
buttons={
<Button
icon="arrow-left"
onClick={() => act('menu', { menu: 'Main' })}
>
Back
</Button>
}
>
<LabeledList>
<LabeledList.Item label="Name">
{activeBodyRecord.real_name}
</LabeledList.Item>
<LabeledList.Item label="Species">
{activeBodyRecord.speciesname}
</LabeledList.Item>
<LabeledList.Item label="Bio. Sex">
<Button
icon="pen"
onClick={() =>
act('href_conversion', {
target_href: 'bio_gender',
target_value: 1,
})
}
>
{capitalize(activeBodyRecord.gender)}
</Button>
</LabeledList.Item>
<LabeledList.Item label="Synthetic">
{activeBodyRecord.synthetic}
</LabeledList.Item>
<LabeledList.Item label="Mind Compat">
{activeBodyRecord.locked}
<Button
ml={1}
icon="eye"
disabled={!activeBodyRecord.booc}
onClick={() => act('boocnotes')}
>
View OOC Notes
</Button>
</LabeledList.Item>
</LabeledList>
</Section>
</Flex.Item>
<Flex.Item basis="130px">
<ByondUi
style={{
width: '100%',
height: '128px',
}}
params={{
id: mapRef,
type: 'map',
}}
/>
</Flex.Item>
<Flex.Item basis="300px">
<Section title="Customize" height="300px" style={{ overflow: 'auto' }}>
<LabeledList>
<LabeledList.Item label="Scale">
<Button
icon="pen"
onClick={() =>
act('href_conversion', {
target_href: 'size_multiplier',
target_value: 1,
})
}
>
{activeBodyRecord.scale}
</Button>
</LabeledList.Item>
{Object.keys(activeBodyRecord.styles).map((key) => {
const style = activeBodyRecord.styles[key];
return (
<LabeledList.Item key={key} label={key}>
{style.styleHref ? (
<Button
icon="pen"
onClick={() =>
act('href_conversion', {
target_href: style.styleHref,
target_value: 1,
})
}
>
{style.style}
</Button>
) : (
''
)}
{style.colorHref ? (
<Box>
<Button
icon="pen"
onClick={() =>
act('href_conversion', {
target_href: style.colorHref,
target_value: 1,
})
}
>
{style.color}
</Button>
<ColorBox
verticalAlign="top"
width="32px"
height="20px"
color={style.color}
style={{
border: '1px solid #fff',
}}
/>
</Box>
) : (
''
)}
{style.colorHref2 ? (
<Box>
<Button
icon="pen"
onClick={() =>
act('href_conversion', {
target_href: style.colorHref2,
target_value: 1,
})
}
>
{style.color2}
</Button>
<ColorBox
verticalAlign="top"
width="32px"
height="20px"
color={style.color2}
style={{
border: '1px solid #fff',
}}
/>
</Box>
) : (
''
)}
<Section
title="Specific Record"
buttons={
<Button
icon="arrow-left"
onClick={() => act('menu', { menu: 'Main' })}
>
Back
</Button>
}
>
<Flex.Item basis="175px">
<Flex.Item basis="130px">
<ByondUi
style={{
width: '100%',
height: '128px',
}}
params={{
id: mapRef,
type: 'map',
}}
/>
</Flex.Item>
</Flex.Item>
</Section>
<Flex.Item basis="600px">
<Flex direction="row">
<Flex.Item basis="48%">
<Section title="General">
<LabeledList>
<LabeledList.Item label="Name">
<Button
icon="pen"
disabled={activeBodyRecord.locked === 1}
onClick={() =>
act('href_conversion', {
target_href: 'rename',
target_value: 1,
})
}
>
{activeBodyRecord.real_name}
</Button>
</LabeledList.Item>
);
})}
<LabeledList.Item label="Digitigrade">
<Button
icon="pen"
onClick={() =>
act('href_conversion', {
target_href: 'digitigrade',
target_value: 1,
})
}
>
{activeBodyRecord.digitigrade ? 'Yes' : 'No'}
</Button>
</LabeledList.Item>
<LabeledList.Item label="Body Markings">
<Button
icon="plus"
onClick={() =>
act('href_conversion', {
target_href: 'marking_style',
target_value: 1,
})
}
>
Add Marking
</Button>
<Flex wrap="wrap" justify="center" align="center">
{Object.keys(activeBodyRecord.markings).map((key) => {
const marking = activeBodyRecord.markings[key];
<LabeledList.Item label="Species">
<Button
icon="pen"
disabled={activeBodyRecord.locked === 1}
onClick={() =>
act('href_conversion', {
target_href: 'custom_species',
target_value: 1,
})
}
>
{activeBodyRecord.speciesname}
</Button>
</LabeledList.Item>
<LabeledList.Item label="Bio. Sex">
<Button
icon="pen"
disabled={activeBodyRecord.locked === 1}
onClick={() =>
act('href_conversion', {
target_href: 'bio_gender',
target_value: 1,
})
}
>
{capitalize(activeBodyRecord.gender)}
</Button>
</LabeledList.Item>
<LabeledList.Item label="Synthetic">
{activeBodyRecord.synthetic}
</LabeledList.Item>
<LabeledList.Item label="Weight">
<Button
icon="pen"
disabled={activeBodyRecord.locked === 1}
onClick={() =>
act('href_conversion', {
target_href: 'weight',
target_value: 1,
})
}
>
{activeBodyRecord.weight}
</Button>
</LabeledList.Item>
<LabeledList.Item label="Blood">
<Button
icon="pen"
disabled={activeBodyRecord.locked === 1}
onClick={() =>
act('href_conversion', {
target_href: 'blood_type',
target_value: 1,
})
}
>
{capitalize(activeBodyRecord.blood_type)}
</Button>
<Button
icon="pen"
disabled={activeBodyRecord.locked === 1}
onClick={() =>
act('href_conversion', {
target_href: 'blood_reagents',
target_value: 1,
})
}
>
{activeBodyRecord.blood_reagents}
</Button>
<Button
icon="pen"
backgroundColor={activeBodyRecord.blood_color}
disabled={activeBodyRecord.locked === 1}
onClick={() =>
act('href_conversion', {
target_href: 'blood_color',
target_value: 1,
})
}
>
Color
</Button>
</LabeledList.Item>
<LabeledList.Item label="Species Sound">
<Button
icon="pen"
disabled={activeBodyRecord.locked === 1}
onClick={() =>
act('href_conversion', {
target_href: 'species_sound_options',
target_value: 1,
})
}
>
{activeBodyRecord.species_sound}
</Button>
</LabeledList.Item>
<LabeledList.Item label="Mind Compat">
{activeBodyRecord.locked ? 'Low' : 'High'}
<Button
ml={1}
icon="eye"
disabled={!activeBodyRecord.booc}
onClick={() => act('boocnotes')}
>
View OOC Notes
</Button>
</LabeledList.Item>
</LabeledList>
</Section>
<Section title="Flavor Text">
<LabeledList>
{Object.keys(activeBodyRecord.flavors).map((key) => {
return (
<Flex.Item basis="100%" key={key}>
<Flex>
<Flex.Item>
<Button
mr={0.2}
fluid
icon="times"
color="red"
onClick={() =>
act('href_conversion', {
target_href: 'marking_remove',
target_value: key,
})
}
/>
</Flex.Item>
<Flex.Item grow={1}>
<Button
fluid
backgroundColor={marking}
onClick={() =>
act('href_conversion', {
target_href: 'marking_color',
target_value: key,
})
}
>
{key}
</Button>
</Flex.Item>
</Flex>
</Flex.Item>
<LabeledList.Item key={key} label={capitalize(key)}>
<Button
icon="pen"
disabled={activeBodyRecord.locked === 1}
onClick={() =>
act('href_conversion', {
target_href: 'flavor_text',
target_value: key,
})
}
>
Edit
</Button>
<br />
{activeBodyRecord.flavors[key]}
</LabeledList.Item>
);
})}
</Flex>
</LabeledList.Item>
</LabeledList>
</Section>
</LabeledList>
</Section>
</Flex.Item>
<Flex.Item basis="50%">
<Section title="Unique Identifiers">
<LabeledList.Item label="Scale">
<Button
icon="pen"
disabled={activeBodyRecord.locked === 1}
onClick={() =>
act('href_conversion', {
target_href: 'size_multiplier',
target_value: 1,
})
}
>
{activeBodyRecord.scale}
</Button>
</LabeledList.Item>
<LabeledList.Item label="Scaled Appearance">
<Button
icon="pen"
disabled={activeBodyRecord.locked === 1}
onClick={() =>
act('href_conversion', {
target_href: 'toggle_fuzzy',
target_value: 1,
})
}
>
{activeBodyRecord.scale_appearance}
</Button>
</LabeledList.Item>
<LabeledList.Item label="Scaling Center">
<Button
icon="pen"
disabled={activeBodyRecord.locked === 1}
onClick={() =>
act('href_conversion', {
target_href: 'toggle_offset_override',
target_value: 1,
})
}
>
{activeBodyRecord.offset_override}
</Button>
</LabeledList.Item>
<LabeledList.Item label="Digitigrade">
<Button
icon="pen"
disabled={activeBodyRecord.locked === 1}
onClick={() =>
act('href_conversion', {
target_href: 'digitigrade',
target_value: 1,
})
}
>
{activeBodyRecord.digitigrade ? 'Yes' : 'No'}
</Button>
</LabeledList.Item>
{Object.keys(activeBodyRecord.styles).map((key) => {
const style = activeBodyRecord.styles[key];
return (
<LabeledList.Item key={key} label={key}>
{style.styleHref ? (
<Button
icon="pen"
disabled={activeBodyRecord.locked === 1}
onClick={() =>
act('href_conversion', {
target_href: style.styleHref,
target_value: 1,
})
}
>
{style.style}
</Button>
) : (
''
)}
{style.colorHref ? (
<Box>
<Button
icon="pen"
disabled={activeBodyRecord.locked === 1}
onClick={() =>
act('href_conversion', {
target_href: style.colorHref,
target_value: 1,
})
}
>
{style.color}
</Button>
<ColorBox
verticalAlign="top"
width="32px"
height="20px"
color={style.color}
style={{
border: '1px solid #fff',
}}
/>
</Box>
) : (
''
)}
{style.colorHref2 ? (
<Box>
<Button
icon="pen"
disabled={activeBodyRecord.locked === 1}
onClick={() =>
act('href_conversion', {
target_href: style.colorHref2,
target_value: 1,
})
}
>
{style.color2}
</Button>
<ColorBox
verticalAlign="top"
width="32px"
height="20px"
color={style.color2}
style={{
border: '1px solid #fff',
}}
/>
</Box>
) : (
''
)}
{style.colorHref3 ? (
<Box>
<Button
icon="pen"
disabled={activeBodyRecord.locked === 1}
onClick={() =>
act('href_conversion', {
target_href: style.colorHref3,
target_value: 1,
})
}
>
{style.color3}
</Button>
<ColorBox
verticalAlign="top"
width="32px"
height="20px"
color={style.color3}
style={{
border: '1px solid #fff',
}}
/>
</Box>
) : (
''
)}
</LabeledList.Item>
);
})}
<LabeledList.Item label="Body Markings">
<Button
icon="plus"
disabled={activeBodyRecord.locked === 1}
onClick={() =>
act('href_conversion', {
target_href: 'marking_style',
target_value: 1,
})
}
>
Add Marking
</Button>
<Flex wrap="wrap" justify="center" align="center">
{Object.keys(activeBodyRecord.markings).map((key) => {
const marking = activeBodyRecord.markings[key];
return (
<Flex.Item basis="100%" key={key}>
<Flex>
<Flex.Item>
<Button
mr={0.2}
fluid
icon="times"
color="red"
disabled={activeBodyRecord.locked === 1}
onClick={() =>
act('href_conversion', {
target_href: 'marking_remove',
target_value: key,
})
}
/>
</Flex.Item>
<Flex.Item grow={1}>
<Button
fluid
backgroundColor={marking}
disabled={activeBodyRecord.locked === 1}
onClick={() =>
act('href_conversion', {
target_href: 'marking_color',
target_value: key,
})
}
>
{key}
</Button>
</Flex.Item>
</Flex>
</Flex.Item>
);
})}
</Flex>
</LabeledList.Item>
</Section>
</Flex.Item>
</Flex>
</Flex.Item>
</Flex>
) : (
@@ -39,31 +39,31 @@ export const BodyDesigner = (props) => {
let body = MenuToTemplate[menu];
return (
<Window width={400} height={650}>
<Window width={750} height={850}>
<Window.Content>
{disk ? (
<Box>
<Button
icon="save"
onClick={() => act('savetodisk')}
disabled={!activeBodyRecord}
>
Save To Disk
</Button>
<Button
icon="save"
onClick={() => act('loadfromdisk')}
disabled={!diskStored}
>
Load From Disk
</Button>
<Button icon="eject" onClick={() => act('ejectdisk')}>
Eject
</Button>
</Box>
) : (
''
)}
<Box>
<Button
icon="save"
onClick={() => act('savetodisk')}
disabled={!disk || !activeBodyRecord}
>
Save To Disk
</Button>
<Button
icon="save"
onClick={() => act('loadfromdisk')}
disabled={!disk || !diskStored}
>
Load From Disk
</Button>
<Button
icon="eject"
onClick={() => act('ejectdisk')}
disabled={!disk}
>
Eject
</Button>
</Box>
{body}
</Window.Content>
</Window>
@@ -25,7 +25,7 @@ export type activeBodyRecord = {
speciesname: string;
gender: string;
synthetic: string;
locked: string;
locked: BooleanLike;
scale: string;
booc: string;
digitigrade: BooleanLike;
@@ -41,6 +41,23 @@ export type activeBodyRecord = {
Bodytype: { styleHref: string; style: string };
};
markings: { name: Record<string, { on: BooleanLike; color: string }> }; // Record entries match BP regions
scale_appearance: string;
offset_override: string;
species_sound: string;
weight: string;
blood_type: string;
blood_color: string;
blood_reagents: string;
flavors: {
general: string;
head: string;
face: string;
eyes: string;
arms: string;
hands: string;
legs: string;
feet: string;
};
};
type colourableStyle = {
-1
View File
@@ -95,7 +95,6 @@
#include "code\__defines\mecha.dm"
#include "code\__defines\misc.dm"
#include "code\__defines\mobs.dm"
#include "code\__defines\mobs_vr.dm"
#include "code\__defines\nifsoft.dm"
#include "code\__defines\objects.dm"
#include "code\__defines\observer.dm"