diff --git a/code/__defines/dna.dm b/code/__defines/dna.dm index b958466201..bcf5f15e3c 100644 --- a/code/__defines/dna.dm +++ b/code/__defines/dna.dm @@ -160,3 +160,4 @@ var/SMALLSIZEBLOCK = 0 // Gene flags #define GENE_ALWAYS_ACTIVATE 1 +#define MUTCHK_HIDEMSG 2 diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index 790d8dcf4a..3f2c71d834 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -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 diff --git a/code/__defines/mobs_vr.dm b/code/__defines/mobs_vr.dm deleted file mode 100644 index af0eddf426..0000000000 --- a/code/__defines/mobs_vr.dm +++ /dev/null @@ -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 diff --git a/code/__defines/sprite_sheets.dm b/code/__defines/sprite_sheets.dm index 2194efca23..5cd4ce9f38 100644 --- a/code/__defines/sprite_sheets.dm +++ b/code/__defines/sprite_sheets.dm @@ -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') \ No newline at end of file +SPECIES_FENNEC = 'icons/inventory/feet/item_vr_vulpkanin.dmi') diff --git a/code/_helpers/text.dm b/code/_helpers/text.dm index 725335f267..8d7ed229e4 100644 --- a/code/_helpers/text.dm +++ b/code/_helpers/text.dm @@ -349,7 +349,7 @@ GLOBAL_LIST_EMPTY(text_tag_cache) if(!(C && C.prefs?.read_preference(/datum/preference/toggle/chat_tags))) return tagdesc if(!GLOB.text_tag_cache[tagname]) - var/datum/asset/spritesheet/chatassets = get_asset_datum(/datum/asset/spritesheet/chat) + var/datum/asset/spritesheet_batched/chatassets = get_asset_datum(/datum/asset/spritesheet_batched/chat) GLOB.text_tag_cache[tagname] = chatassets.icon_tag(tagname) if(!C.tgui_panel.is_ready() || C.tgui_panel.oldchat) return "[tagdesc]" diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 4d221c9c4f..d8781ef799 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -390,7 +390,7 @@ contents.Add(0) // No races breath this, but never know about downstream servers. - if ("carbon dioxide") + if (GAS_CO2) if(t.air_contents.gas[GAS_CO2] && !t.air_contents.gas[GAS_PHORON]) contents.Add(t.air_contents.gas[GAS_CO2]) else diff --git a/code/datums/chat_message.dm b/code/datums/chat_message.dm index f216ae01cf..b5c41302ba 100644 --- a/code/datums/chat_message.dm +++ b/code/datums/chat_message.dm @@ -368,10 +368,10 @@ var/list/runechat_image_cache = list() return world.icon_size * 0.95 /atom/movable/runechat_x_offset(width, height) - return (width - bound_width) * -0.5 + return (width - bound_width) * -0.5 + get_oversized_icon_offsets()["x"] /atom/movable/runechat_y_offset(width, height) - return bound_height * 0.95 + return bound_height * 0.95 + get_oversized_icon_offsets()["y"] /* Nothing special /mob/runechat_x_offset(width, height) diff --git a/code/game/antagonist/antagonist.dm b/code/game/antagonist/antagonist.dm index d9d11999f3..dd67c61851 100644 --- a/code/game/antagonist/antagonist.dm +++ b/code/game/antagonist/antagonist.dm @@ -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. diff --git a/code/game/antagonist/outsider/ninja.dm b/code/game/antagonist/outsider/ninja.dm index 7df32b76aa..4dd40c508e 100644 --- a/code/game/antagonist/outsider/ninja.dm +++ b/code/game/antagonist/outsider/ninja.dm @@ -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." diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 80580031d6..cd1081051c 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -818,3 +818,29 @@ var/mouseparams = list2params(paramslist) usr_client.Click(src, loc, null, mouseparams) return TRUE + +GLOBAL_LIST_EMPTY(icon_dimensions) + +/atom/proc/get_oversized_icon_offsets() + if (pixel_x == 0 && pixel_y == 0) + return list("x" = 0, "y" = 0) + var/list/icon_dimensions = get_icon_dimensions(icon) + var/icon_width = icon_dimensions["width"] + var/icon_height = icon_dimensions["height"] + return list( + "x" = icon_width > world.icon_size && pixel_x != 0 ? (icon_width - world.icon_size) * 0.5 : 0, + "y" = icon_height > world.icon_size /*&& pixel_y != 0*/ ? (icon_height - world.icon_size) * 0.5 : 0, // we don't have pixel_y in use + ) + +/// Returns a list containing the width and height of an icon file +/proc/get_icon_dimensions(icon_path) + // Icons can be a real file(), a rsc backed file(), a dynamic rsc (dyn.rsc) reference (known as a cache reference in byond docs), or an /icon which is pointing to one of those. + // Runtime generated dynamic icons are an unbounded concept cache identity wise, the same icon can exist millions of ways and holding them in a list as a key can lead to unbounded memory usage if called often by consumers. + // Check distinctly that this is something that has this unspecified concept, and thus that we should not cache. + if (!isfile(icon_path) || !length("[icon_path]")) + var/icon/my_icon = icon(icon_path) + return list("width" = my_icon.Width(), "height" = my_icon.Height()) + if (isnull(GLOB.icon_dimensions[icon_path])) + var/icon/my_icon = icon(icon_path) + GLOB.icon_dimensions[icon_path] = list("width" = my_icon.Width(), "height" = my_icon.Height()) + return GLOB.icon_dimensions[icon_path] diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm index 099e5c4d18..63b8a4a4de 100644 --- a/code/game/dna/dna2.dm +++ b/code/game/dna/dna2.dm @@ -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 diff --git a/code/game/dna/dna2_helpers.dm b/code/game/dna/dna2_helpers.dm index e7b68fdfe5..9d1060db1c 100644 --- a/code/game/dna/dna2_helpers.dm +++ b/code/game/dna/dna2_helpers.dm @@ -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 diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index 767ac32923..6dbc6d56a8 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -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 diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 1619659f04..6d24d496ea 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -339,6 +339,9 @@ //Lifted from Unity stasis.dm and refactored. ~Zuhayr /obj/machinery/cryopod/process() if(occupant) + if(occupant.loc != src) + go_out(TRUE) + return //Allow a ten minute gap between entering the pod and actually despawning. if(world.time - time_entered < time_till_despawn) return @@ -654,12 +657,12 @@ for(var/obj/machinery/gateway/G in range(1,src)) G.icon_state = "on" -/obj/machinery/cryopod/robot/door/gateway/go_out() - ..() +/obj/machinery/cryopod/robot/door/gateway/go_out(var/skip_move = FALSE) + ..(skip_move) for(var/obj/machinery/gateway/G in range(1,src)) G.icon_state = "off" -/obj/machinery/cryopod/proc/go_out() +/obj/machinery/cryopod/proc/go_out(var/skip_move = FALSE) if(!occupant) return @@ -667,8 +670,8 @@ if(occupant.client) occupant.client.eye = occupant.client.mob occupant.client.perspective = MOB_PERSPECTIVE - - occupant.forceMove(get_turf(src)) + if(!skip_move) + occupant.forceMove(get_turf(src)) if(ishuman(occupant) && applies_stasis) var/mob/living/carbon/human/H = occupant H.Stasis(0) diff --git a/code/game/machinery/suit_storage/suit_cycler_datums.dm b/code/game/machinery/suit_storage/suit_cycler_datums.dm index 1a9d0d9bce..88e10f79dd 100644 --- a/code/game/machinery/suit_storage/suit_cycler_datums.dm +++ b/code/game/machinery/suit_storage/suit_cycler_datums.dm @@ -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 diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 553d08c343..d7e6d55aed 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -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. */ diff --git a/code/game/objects/items/devices/modkit.dm b/code/game/objects/items/devices/modkit.dm index 68a2c4eab2..2864040fe1 100644 --- a/code/game/objects/items/devices/modkit.dm +++ b/code/game/objects/items/devices/modkit.dm @@ -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 diff --git a/code/game/objects/items/weapons/implants/implant_vr.dm b/code/game/objects/items/weapons/implants/implant_vr.dm index 8f82fb42f7..0ed3726191 100644 --- a/code/game/objects/items/weapons/implants/implant_vr.dm +++ b/code/game/objects/items/weapons/implants/implant_vr.dm @@ -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)) diff --git a/code/modules/admin/modify_robot.dm b/code/modules/admin/modify_robot.dm index e8afa5e6c5..6d6ddb94ab 100644 --- a/code/modules/admin/modify_robot.dm +++ b/code/modules/admin/modify_robot.dm @@ -45,13 +45,13 @@ /datum/eventkit/modify_robot/ui_assets(mob/user) return list( - get_asset_datum(/datum/asset/spritesheet/robot_icons) + get_asset_datum(/datum/asset/spritesheet_batched/robot_icons) ) /datum/eventkit/modify_robot/tgui_data(mob/user) . = list() // Target section for general data - var/datum/asset/spritesheet/robot_icons/spritesheet = get_asset_datum(/datum/asset/spritesheet/robot_icons) + var/datum/asset/spritesheet_batched/robot_icons/spritesheet = get_asset_datum(/datum/asset/spritesheet_batched/robot_icons) if(target) .["target"] = list() @@ -589,7 +589,7 @@ target_items += list(list("name" = item.name, "ref" = "\ref[item]", "icon" = icon2html(item, user, sourceonly=TRUE), "desc" = item.desc)) return target_items -/datum/eventkit/modify_robot/proc/get_module_source(var/mob/user, var/datum/asset/spritesheet/robot_icons/spritesheet) +/datum/eventkit/modify_robot/proc/get_module_source(var/mob/user, var/datum/asset/spritesheet_batched/robot_icons/spritesheet) var/list/source_list = list() source_list["model"] = source.module source_list["sprite"] = sanitize_css_class_name("[source.sprite_datum.type]") diff --git a/code/modules/asset_cache/assets/spritesheets/chat.dm b/code/modules/asset_cache/assets/spritesheets/chat.dm index cbaf4ac35b..7f3922e613 100644 --- a/code/modules/asset_cache/assets/spritesheets/chat.dm +++ b/code/modules/asset_cache/assets/spritesheets/chat.dm @@ -1,5 +1,5 @@ -/datum/asset/spritesheet/chat +/datum/asset/spritesheet_batched/chat name = "chat" -/datum/asset/spritesheet/chat/create_spritesheets() - InsertAll("", text_tag_icons) // OOC, LOOC ect icons +/datum/asset/spritesheet_batched/chat/create_spritesheets() + insert_all_icons("", text_tag_icons, prefix_with_dirs = FALSE) // OOC, LOOC ect icons diff --git a/code/modules/asset_cache/assets/spritesheets/robot_icons.dm b/code/modules/asset_cache/assets/spritesheets/robot_icons.dm index 7935c5af7e..bcba8ccfba 100644 --- a/code/modules/asset_cache/assets/spritesheets/robot_icons.dm +++ b/code/modules/asset_cache/assets/spritesheets/robot_icons.dm @@ -1,36 +1,52 @@ -/datum/asset/spritesheet/robot_icons +/datum/asset/spritesheet_batched/robot_icons name = "robot_icons" -/datum/asset/spritesheet/robot_icons/create_spritesheets() +/datum/asset/spritesheet_batched/robot_icons/create_spritesheets() for(var/datum/robot_sprite/S as anything in typesof(/datum/robot_sprite)) if(!S.name || !S.sprite_icon_state) // snowflake out those customs... they suck continue - var/icon/I_N = icon(S.sprite_icon, S.sprite_icon_state, NORTH) - var/icon/I_S = icon(S.sprite_icon, S.sprite_icon_state, SOUTH) - var/icon/I_W = icon(S.sprite_icon, S.sprite_icon_state, WEST) - var/icon/I_E = icon(S.sprite_icon, S.sprite_icon_state, EAST) + + var/datum/universal_icon/I_N = uni_icon(S.sprite_icon, S.sprite_icon_state, NORTH) + var/datum/universal_icon/I_S = uni_icon(S.sprite_icon, S.sprite_icon_state, SOUTH) + var/datum/universal_icon/I_W = uni_icon(S.sprite_icon, S.sprite_icon_state, WEST) + var/datum/universal_icon/I_E = uni_icon(S.sprite_icon, S.sprite_icon_state, EAST) + if(S.has_eye_sprites) - var/icon/I_NE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", NORTH) + var/datum/universal_icon/I_NE = uni_icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", NORTH) if(I_NE) - I_N.Blend(I_NE, ICON_OVERLAY) + I_N.blend_icon(I_NE, ICON_OVERLAY) if(S.has_eye_sprites) - var/icon/I_SE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", SOUTH) + var/datum/universal_icon/I_SE = uni_icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", SOUTH) if(I_SE) - I_S.Blend(I_SE, ICON_OVERLAY) + I_S.blend_icon(I_SE, ICON_OVERLAY) if(S.has_eye_sprites) - var/icon/I_WE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", WEST) + var/datum/universal_icon/I_WE = uni_icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", WEST) if(I_WE) - I_W.Blend(I_WE, ICON_OVERLAY) + I_W.blend_icon(I_WE, ICON_OVERLAY) if(S.has_eye_sprites) - var/icon/I_EE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", EAST) + var/datum/universal_icon/I_EE = uni_icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", EAST) if(I_EE) - I_E.Blend(I_EE, ICON_OVERLAY) + I_E.blend_icon(I_EE, ICON_OVERLAY) + var/imgid = sanitize_css_class_name("[S.type]") - I_N.Scale(120, 120) - I_S.Scale(120, 120) - I_W.Scale(120, 120) - I_E.Scale(120, 120) - Insert(imgid + "N", I_N) - Insert(imgid + "S", I_S) - Insert(imgid + "W", I_W) - Insert(imgid + "E", I_E) + if(S.icon_x > S.icon_y) + var/buffer = (S.icon_x - S.icon_y) / 2 + I_N.crop(0, -buffer, S.icon_x, S.icon_y + buffer) + I_S.crop(0, -buffer, S.icon_x, S.icon_y + buffer) + I_W.crop(0, -buffer, S.icon_x, S.icon_y + buffer) + I_E.crop(0, -buffer, S.icon_x, S.icon_y + buffer) + else if (S.icon_x < S.icon_y) + var/buffer = (S.icon_y - S.icon_x) / 2 + I_N.crop(-buffer, 0, S.icon_x + buffer, S.icon_y) + I_S.crop(-buffer, 0, S.icon_x + buffer, S.icon_y) + I_W.crop(-buffer, 0, S.icon_x + buffer, S.icon_y) + I_E.crop(-buffer, 0, S.icon_x + buffer, S.icon_y) + I_N.scale(120, 120) + I_S.scale(120, 120) + I_W.scale(120, 120) + I_E.scale(120, 120) + + insert_icon(imgid + "N", I_N) + insert_icon(imgid + "S", I_S) + insert_icon(imgid + "W", I_W) + insert_icon(imgid + "E", I_E) diff --git a/code/modules/asset_cache/iconforge/batched_spritesheet.dm b/code/modules/asset_cache/iconforge/batched_spritesheet.dm index c49248f417..ead99a2f8a 100644 --- a/code/modules/asset_cache/iconforge/batched_spritesheet.dm +++ b/code/modules/asset_cache/iconforge/batched_spritesheet.dm @@ -180,6 +180,10 @@ // Remove the cache, since it's invalid if we get to this point. fdel("[ASSET_CROSS_ROUND_SMART_CACHE_DIRECTORY]/spritesheet_cache.[name].json") + if(!fexists(ASSET_CROSS_ROUND_SMART_CACHE_DIRECTORY)) + rustg_file_write("stub", "[ASSET_CROSS_ROUND_SMART_CACHE_DIRECTORY]/stub.txt") + fdel("[ASSET_CROSS_ROUND_SMART_CACHE_DIRECTORY]/stub.txt") + var/do_cache = CONFIG_GET(flag/smart_cache_assets) || force_cache var/data_out if(yield || !isnull(job_id)) diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 95a17a4f71..821dde398e 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -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 diff --git a/code/modules/client/preference_setup/loadout/loadout_xeno.dm b/code/modules/client/preference_setup/loadout/loadout_xeno.dm index 1d6a204a63..042d193e17 100644 --- a/code/modules/client/preference_setup/loadout/loadout_xeno.dm +++ b/code/modules/client/preference_setup/loadout/loadout_xeno.dm @@ -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)" diff --git a/code/modules/client/preference_setup/loadout/loadout_xeno_vr.dm b/code/modules/client/preference_setup/loadout/loadout_xeno_vr.dm index 3fdf1ec61f..e11e126b8a 100644 --- a/code/modules/client/preference_setup/loadout/loadout_xeno_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_xeno_vr.dm @@ -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 diff --git a/code/modules/client/preference_setup/vore/07_traits.dm b/code/modules/client/preference_setup/vore/07_traits.dm index 2184a30f92..92909532de 100644 --- a/code/modules/client/preference_setup/vore/07_traits.dm +++ b/code/modules/client/preference_setup/vore/07_traits.dm @@ -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) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 1b161ad311..32b39ec9fe 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -721,6 +721,9 @@ var/list/preferences_datums = list() character.digitigrade = selected_species.digi_allowed ? digitigrade : 0 + for(var/obj/item/clothing/O in character.contents) + O.handle_digitigrade(character) + character.dna.ResetUIFrom(character) character.force_update_limbs() character.regenerate_icons() diff --git a/code/modules/client/record_updater.dm b/code/modules/client/record_updater.dm index 28a3de6a7d..e96e77bd84 100644 --- a/code/modules/client/record_updater.dm +++ b/code/modules/client/record_updater.dm @@ -77,7 +77,7 @@ var/global/client_record_update_lock = FALSE return "Update syncronization failed (OOC: Record's owner is offline)" var/choice = tgui_alert(M, "Your [record_string] record has been updated from the a records console by [user]. Please review the changes made to your [record_string] record. Accepting these changes will SAVE your CURRENT character slot! If your new [record_string] record has errors, it is recomended to have it corrected IC instead of editing it yourself.", "Record Updated", list("Review Changes","DENY")) - if(choice == "DENY") + if(!choice || choice == "DENY") message_admins("[active.fields["name"]] refused [record_string] record update from [user] without review.") if(COM && !QDELETED(COM)) COM.visible_message(span_notice("\The [COM] buzzes!")) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 9f8d9e9db2..87bfe187fe 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -367,7 +367,7 @@ desc = "[desc]
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' ) diff --git a/code/modules/clothing/clothing_vr.dm b/code/modules/clothing/clothing_vr.dm index e588b2767a..41bd5f212f 100644 --- a/code/modules/clothing/clothing_vr.dm +++ b/code/modules/clothing/clothing_vr.dm @@ -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', diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 4106d577af..29caa0d81a 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -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', ) diff --git a/code/modules/clothing/spacesuits/rig/rig_pieces.dm b/code/modules/clothing/spacesuits/rig/rig_pieces.dm index 056a1092ab..b6d68241ac 100644 --- a/code/modules/clothing/spacesuits/rig/rig_pieces.dm +++ b/code/modules/clothing/spacesuits/rig/rig_pieces.dm @@ -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 diff --git a/code/modules/clothing/spacesuits/rig/rig_pieces_vr.dm b/code/modules/clothing/spacesuits/rig/rig_pieces_vr.dm index ac918a4bc8..ec3ccd9a30 100644 --- a/code/modules/clothing/spacesuits/rig/rig_pieces_vr.dm +++ b/code/modules/clothing/spacesuits/rig/rig_pieces_vr.dm @@ -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 \ No newline at end of file + slowdown = SHOES_SLOWDOWN diff --git a/code/modules/clothing/spacesuits/void/ert_vr.dm b/code/modules/clothing/spacesuits/void/ert_vr.dm index f165f11f82..e88fc6e3bd 100644 --- a/code/modules/clothing/spacesuits/void/ert_vr.dm +++ b/code/modules/clothing/spacesuits/void/ert_vr.dm @@ -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', diff --git a/code/modules/clothing/spacesuits/void/station.dm b/code/modules/clothing/spacesuits/void/station.dm index ab724b894c..953cba8b99 100644 --- a/code/modules/clothing/spacesuits/void/station.dm +++ b/code/modules/clothing/spacesuits/void/station.dm @@ -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' ) diff --git a/code/modules/clothing/spacesuits/void/station_vr.dm b/code/modules/clothing/spacesuits/void/station_vr.dm index 852863e0ba..f6db107674 100644 --- a/code/modules/clothing/spacesuits/void/station_vr.dm +++ b/code/modules/clothing/spacesuits/void/station_vr.dm @@ -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', diff --git a/code/modules/clothing/under/miscellaneous_vr.dm b/code/modules/clothing/under/miscellaneous_vr.dm index c216ca4579..e101dee28e 100644 --- a/code/modules/clothing/under/miscellaneous_vr.dm +++ b/code/modules/clothing/under/miscellaneous_vr.dm @@ -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 diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm index 60d3ae2867..02f25faf13 100644 --- a/code/modules/food/food/snacks.dm +++ b/code/modules/food/food/snacks.dm @@ -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" diff --git a/code/modules/food/food/snacks_vr.dm b/code/modules/food/food/snacks_vr.dm index 3437b29ee9..d799c2b0d4 100644 --- a/code/modules/food/food/snacks_vr.dm +++ b/code/modules/food/food/snacks_vr.dm @@ -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 diff --git a/code/modules/gamemaster/event2/events/security/security_advisement.dm b/code/modules/gamemaster/event2/events/security/security_advisement.dm index 009d64c0ff..df16418e9f 100644 --- a/code/modules/gamemaster/event2/events/security/security_advisement.dm +++ b/code/modules/gamemaster/event2/events/security/security_advisement.dm @@ -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 diff --git a/code/modules/mob/_modifiers/feysight.dm b/code/modules/mob/_modifiers/feysight.dm index 0cf07c935f..aac6d286d3 100644 --- a/code/modules/mob/_modifiers/feysight.dm +++ b/code/modules/mob/_modifiers/feysight.dm @@ -13,12 +13,14 @@ /datum/modifier/feysight/on_applied() holder.see_invisible = 60 holder.see_invisible_default = 60 - holder.plane_holder.set_vis(VIS_GHOSTS,TRUE) + holder.vis_enabled += VIS_GHOSTS + holder.recalculate_vis() /datum/modifier/feysight/on_expire() holder.see_invisible_default = initial(holder.see_invisible_default) holder.see_invisible = holder.see_invisible_default - holder.plane_holder.set_vis(VIS_GHOSTS,FALSE) + holder.vis_enabled -= VIS_GHOSTS + holder.recalculate_vis() /datum/modifier/feysight/can_apply(var/mob/living/L) if(L.stat) diff --git a/code/modules/mob/_modifiers/modifiers_vr.dm b/code/modules/mob/_modifiers/modifiers_vr.dm index 18eb5fb0c9..21bf74436d 100644 --- a/code/modules/mob/_modifiers/modifiers_vr.dm +++ b/code/modules/mob/_modifiers/modifiers_vr.dm @@ -242,7 +242,7 @@ effective_brute_resistance = 1 max_fire_resistance = 0.70 - min_brute_resistance = 0.85 + min_fire_resistance = 0.85 effective_fire_resistance = 1 max_hal_resistance = 1.5 // No mobs should be shooting you with halloss. If this happens, it means you're using it wrong!!! diff --git a/code/modules/mob/dead/corpse.dm b/code/modules/mob/dead/corpse.dm index cab2a71147..abe0d4deb2 100644 --- a/code/modules/mob/dead/corpse.dm +++ b/code/modules/mob/dead/corpse.dm @@ -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, ...). diff --git a/code/modules/mob/language/station.dm b/code/modules/mob/language/station.dm index 13413d9646..e38e1a8d37 100644 --- a/code/modules/mob/language/station.dm +++ b/code/modules/mob/language/station.dm @@ -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) diff --git a/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm b/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm index 54df0bdb0b..4119c2e8ed 100644 --- a/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm +++ b/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm @@ -43,6 +43,8 @@ ..(loc, generate_species) + species.produceCopy(species.traits.Copy(),src,null,FALSE) + h_style = to_wear_hair if(to_wear_uniform) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index cfc772616d..f90accb88f 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1814,8 +1814,6 @@ rig.visor.deactivate() to_chat(src, span_warning("\The [rig]'s visor has shuddenly deactivated!")) - ..() - /mob/living/carbon/human/get_mob_riding_slots() return list(back, head, wear_suit) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 2cc6a561ea..d5ccd8a26b 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -20,22 +20,21 @@ . += M.slowdown var/health_deficiency = (getMaxHealth() - health) - if(istype(src, /mob/living/carbon/human)) //VOREStation Edit Start + if(istype(src, /mob/living/carbon/human)) var/mob/living/carbon/human/H = src health_deficiency *= H.species.trauma_mod //Species pain sensitivity does not apply to painkillers, so we apply it before if(health_deficiency >= 40) if(chem_effects[CE_PAINKILLER]) //On painkillers? Reduce pain! On anti-painkillers? Increase pain! health_deficiency = max(0, health_deficiency - src.chem_effects[CE_PAINKILLER]) if(health_deficiency >= 40) //Still in enough pain for it to be significant? - . += (health_deficiency / 25) //VOREStation Edit End + . += (health_deficiency / 25) if(can_feel_pain()) if(halloss >= 10) . += (halloss / 10) //halloss shouldn't slow you down if you can't even feel it - var/hungry = (500 - nutrition) / 5 //VOREStation Edit - Fixed 500 here instead of our huge MAX_NUTRITION + var/hungry = (500 - nutrition) / 5 //Fixed 500 here instead of our huge MAX_NUTRITION if (hungry >= 70) . += hungry/50 - //VOREstation start if (feral >= 10) //crazy feral animals give less and less of a shit about pain and hunger as they get crazier . = max(species.slowdown, species.slowdown+((.-species.slowdown)/(feral/10))) // As feral scales to damage, this amounts to an effective +1 slowdown cap if(shock_stage >= 10) . -= 1.5 //this gets a +3 later, feral critters take reduced penalty @@ -49,7 +48,6 @@ . += 1 //if(H.weight > L.weight) weight should not have mechanical impact //. += 1 - //VOREstation end if(istype(buckled, /obj/structure/bed/chair/wheelchair)) for(var/organ_name in list(BP_L_HAND, BP_R_HAND, BP_L_ARM, BP_R_ARM)) @@ -102,7 +100,8 @@ var/their_slowdown = max(H.calculate_item_encumbrance(), 1) item_tally = max(item_tally, their_slowdown) // If our slowdown is less than theirs, then we become as slow as them (before species modifires). - item_tally *= species.item_slowdown_mod + if(item_tally > 0) //ALT-ENCUMBERANCE + item_tally *= species.item_slowdown_mod //ALT-ENCUMBERANCE . += item_tally @@ -127,7 +126,49 @@ // This calculates the amount of slowdown to receive from items worn. This does NOT include species modifiers. // It is in a seperate place to avoid an infinite loop situation with dragging mobs dragging each other. // Also its nice to have these things seperated. + /mob/living/carbon/human/proc/calculate_item_encumbrance() + /// We check for all the items the wearer has that cause slowdown (positive or negative) + /// We then multiply the postive ones by our species.item_slowdown_mod to slow us down more, while we leave negative ones untouched. + /// Heavy things in your hands are affected by this change, UNLESS the thing in your hand speeds you up, in which case it doesn't. + /// Before you look at the below for(), yes, I know. It looks ugly. However, it is REQUIRED to be done this way instead of using get_equipped_items() as that makes a new list and does a LOT. This proc is called once (or up to 3 times if someone is being dragged) every time someone moves. Making hundreds of new lists() every second is a good way to destroy you CPU. + + /// If this is STILL proving to be too resource intensive, I have left the old code commented out underneath this. + /// Just search this file for lines labled as "ALT-ENCUMBERANCE" that are commented out. + /// Just comment out the below code, uncomment out the version labeled 'ALT-ENCUMBERANCE', and you'll be back to the old system. + + var/total_item_slowdown = 0 + var/slowdown_mod = species.item_slowdown_mod //HIGHER = MAKES YOU SLOWER + for(var/slot in list(back, belt, l_ear, r_ear, glasses, gloves, head, shoes, wear_id, wear_mask, wear_suit, w_uniform)) //Two things to note here. ONE: If you add a new inventory slot, ADD IT HERE. Two: If we ever get a global list on human of all the inventory slots (MINUS HANDS) add it here. + if(!slot) //ZOOM + continue + var/obj/item/I = slot + if(istype(I)) + var/item_slowdown = I.slowdown //Positive == Slows you down. Negative == Speeds you up. + if(item_slowdown != 0) //If it's a positive number, we multiply it by out slowdown mod. Otherwise, don't do anything special. + if(item_slowdown > 0 && slowdown_mod > 0) + item_slowdown = item_slowdown * (slowdown_mod) + + /// Adminbus / future proofing. These should NEVER get called unless someone down the line does something crazy + else if(slowdown_mod < 0 && item_slowdown < 0) + item_slowdown = -(item_slowdown * slowdown_mod) + else if(slowdown_mod < 0 && item_slowdown > 0) + item_slowdown = item_slowdown + slowdown_mod //Yes, this is + (Adding a negative), not multiplied. You are not making the 5 slowdown rigsuit give you 5*X speed. You're getting 5-X slowdown instead. + total_item_slowdown += item_slowdown + for(var/hands in list(l_hand, r_hand)) //Hands get special treatment. We want slowdown_mod + if(!hands) + continue + var/obj/item/H = hands + var/item_slowdown = H.slowdown + if(item_slowdown > 0) + total_item_slowdown += item_slowdown * slowdown_mod + else + continue + + . += total_item_slowdown + + //ALT-ENCUMBERANCE below here + /* if(shoes) // Shoes can make you go faster. if(!buckled || (buckled && istype(buckled, /obj/machinery/power/rtg/reg))) . += shoes.slowdown @@ -141,13 +182,15 @@ // This is done seperately to disallow negative numbers (so you can't hold shoes in your hands to go faster). for(var/obj/item/I in list(r_hand, l_hand) ) . += max(I.slowdown, 0) + */ + //ALT-ENCUMBERANCE end // Similar to above, but for turf slowdown. /mob/living/carbon/human/proc/calculate_turf_slowdown(turf/T, direct) if(!T) return 0 - if(T.movement_cost && !flying) //VOREStation Add: If you are flying you are probably not affected by the terrain on the ground. + if(T.movement_cost && !flying) //If you are flying you are probably not affected by the terrain on the ground. var/turf_move_cost = T.movement_cost if(istype(T, /turf/simulated/floor/water)) if(species.water_movement) @@ -171,7 +214,6 @@ // Wind makes it easier or harder to move, depending on if you're with or against the wind. // I don't like that so I'm commenting it out :) - // VOREstation Edit Start /* if((T.is_outdoors()) && (T.z <= SSplanets.z_to_planet.len)) var/datum/planet/P = SSplanets.z_to_planet[z] @@ -186,7 +228,6 @@ . += WH.wind_speed */ -// VOREstation Edit End. #undef HUMAN_LOWEST_SLOWDOWN /mob/living/carbon/human/get_jetpack() @@ -205,11 +246,11 @@ if(..()) //Can move due to other reasons, don't use jetpack fuel return TRUE - if(species.can_space_freemove || (species.can_zero_g_move && !istype(get_turf(src), /turf/space))) //VOREStation Edit. - return TRUE //VOREStation Edit. + if(species.can_space_freemove || (species.can_zero_g_move && !istype(get_turf(src), /turf/space))) + return TRUE - if(flying) //VOREStation Edit. If you're flying, you glide around! - return TRUE //VOREStation Edit. + if(flying) //If you're flying, you glide around! + return TRUE //Do we have a working jetpack? var/obj/item/tank/jetpack/thrust = get_jetpack() diff --git a/code/modules/mob/living/carbon/human/human_powers_vr.dm b/code/modules/mob/living/carbon/human/human_powers_vr.dm index acc53a7d49..f9cb232e5c 100644 --- a/code/modules/mob/living/carbon/human/human_powers_vr.dm +++ b/code/modules/mob/living/carbon/human/human_powers_vr.dm @@ -36,3 +36,224 @@ to_chat(src, span_notice("You reconfigure the rendering order of your facial display.")) return TRUE + +//////////// Hand games that can be played by people next to each other, or over a small table. + +/mob/living/carbon/human/verb/hand_games() + set name = "Play Hand Games" + set desc = "Choose from a variety of hand games to play with someone next to you or across a small table." + set category = "IC.Game" + + if(stat) + return + + var/obj/item/organ/external/l_hand = get_organ("l_hand") + var/obj/item/organ/external/r_hand = get_organ("r_hand") + if((!l_hand || l_hand.is_stump()) && (!r_hand || r_hand.is_stump())) + to_chat(src, span_warning("You have no hands to play games with!")) + return + + var/list/nearby = list() + for(var/mob/living/carbon/human/H in range(src,1)) + if(H.stat) + continue + if(H == src) + continue + var/obj/item/organ/external/l_hand2 = H.get_organ("l_hand") + var/obj/item/organ/external/r_hand2 = H.get_organ("r_hand") + if((!l_hand2 || l_hand2.is_stump()) && (!r_hand2 || r_hand2.is_stump())) + continue + nearby |= H + for(var/obj/structure/table/T in range(src, 1)) + for(var/mob/living/carbon/human/H in range(T,1)) + if(H.stat) + continue + if(H == src) + continue + var/obj/item/organ/external/l_hand2 = H.get_organ("l_hand") + var/obj/item/organ/external/r_hand2 = H.get_organ("r_hand") + if((!l_hand2 || l_hand2.is_stump()) && (!r_hand2 || r_hand2.is_stump())) + continue + nearby |= H + + if(!nearby.len) + to_chat(src, span_warning("There is nobody nearby to play games with!")) + + var/partner = tgui_input_list(src, "Choose a game partner:", "Hand games", nearby) + if(!partner) + return + var/choose_game = tgui_alert(src, "Choose a game to play with [partner]?", "Hand games", list("Rock, Paper, Scissors", "Arm Wrestling", "Slap Hands", "Thumb Wars", "Cancel")) + + if(!choose_game || (choose_game == "Cancel")) + return + + if(choose_game == "Rock, Paper, Scissors") + game_rps(src,partner) + + if(choose_game == "Arm Wrestling") + game_armwrestle(src,partner) + + if(choose_game == "Slap Hands") + game_slaphands(src,partner) + + if(choose_game == "Thumb Wars") + game_thumbwars(src,partner) + +// Checks to make sure everything is fine to continue playing. + +/mob/living/carbon/human/proc/hand_games_check(var/mob/living/carbon/human/player1, var/mob/living/carbon/human/player2) + if(!istype(player1) || !istype(player2)) + return 0 + if(player1.stat || player2.stat) //Make sure they're still standing + return 0 + if(!(player2 in range(player1,2))) //Just make sure they're within 2 spaces still. + return 0 + + return 1 + +///// A simple game of rock paper scissors, each player chooses an option and the choices are declared simultaneously. + +/mob/living/carbon/human/proc/game_rps(var/mob/living/carbon/human/player1, var/mob/living/carbon/human/player2) + if(!hand_games_check(player1,player2)) + return + to_chat(player1, span_notice("Asking [player2] if they want to play Rock, Paper, Scissors!")) + var/playgame = tgui_alert(player2, "[player1] wants to play Rock, Paper, Scissors.", "Rock, Paper, Scissors", list("Play", "Refuse")) + if(!playgame || (playgame == "Refuse")) + to_chat(player1, span_warning("[player2] declines to play the game.")) + return + else + player1.visible_message(span_notice("[player1] challenges [player2] to Rock, Paper, Scissors!")) + to_chat(player2, span_warning("[player1] is deciding.")) + var/choice1 = tgui_alert(player1, "Choose your attack!", "Rock, Paper, Scissors", list("Rock", "Paper", "Scissors", "Cancel")) + if(choice1 == "Cancel") + player1.visible_message(span_notice("[player1] chickens out!")) + if(!hand_games_check(player1,player2)) + return + to_chat(player1, span_warning("[player2] is deciding.")) + var/choice2 = tgui_alert(player2, "Choose your attack!", "Rock, Paper, Scissors", list("Rock", "Paper", "Scissors", "Cancel")) + if(choice2 == "Cancel") + player2.visible_message(span_notice("[player2] chickens out!")) + if(!hand_games_check(player1,player2)) + return + if(choice1 == choice2) + player1.visible_message(span_notice("[player1] and [player2] both choose [choice1], it's a draw!")) + else + player1.visible_message(span_notice("[player1] chooses [choice1]!")) + player2.visible_message(span_notice("[player2] chooses [choice2]!")) + +/////// Arm wrestling! Each player gets a modifier based on their size and can choose the strength of their character, then a weighted roll is made. + +/mob/living/carbon/human/proc/game_armwrestle(var/mob/living/carbon/human/player1, var/mob/living/carbon/human/player2) + if(!hand_games_check(player1,player2)) + return + to_chat(player1, span_notice("Asking [player2] if they want to play Arm Wrestling!")) + var/playgame = tgui_alert(player2, "[player1] wants to play Arm Wrestling.", "Arm Wrestling", list("Play", "Refuse")) + if(!playgame || (playgame == "Refuse")) + to_chat(player1, span_warning("[player2] declines to play the game.")) + return + else + if(!hand_games_check(player1,player2)) + return + player1.visible_message(span_notice("[player1] challenges [player2] to Arm Wrestling!")) + var/scale1 = player1.size_multiplier + var/scale2 = player2.size_multiplier + to_chat(player2, span_warning("[player1] is getting ready.")) + var/strength1 = tgui_input_number(player1, "How strong is your character on a scale of 1 to 10 (1 being a weakling, 10 being very strong).", "Strength") + strength1 = clamp(strength1, 1, 10) + if(!strength1) + player1.visible_message(span_notice("[player1] chickens out!")) + if(!hand_games_check(player1,player2)) + return + to_chat(player1, span_warning("[player2] is getting ready.")) + var/strength2 = tgui_input_number(player2, "How strong is your character on a scale of 1 to 10 (1 being a weakling, 10 being very strong).", "Strength") + strength2 = clamp(strength2, 1, 10) + if(!strength2) + player2.visible_message(span_notice("[player2] chickens out!")) + if(!hand_games_check(player1,player2)) + return + + var/score1 = (scale1 * strength1) + var/score2 = (scale2 * strength2) + + var/competition = pick(score1;player1, score2;player2) + if(!do_after(player1, 50, player2, exclusive = TASK_USER_EXCLUSIVE)) + player2.visible_message(span_notice("The players cancelled their competition!")) + return 0 + if(!hand_games_check(player1,player2)) + return + if(competition == player1) + player1.visible_message(span_notice("[player1] manages to overpower [player2] and pin their arm down!")) + else + player2.visible_message(span_notice("[player2] manages to overpower [player1] and pin their arm down!")) + +/////// Slap Hands! Each player gets a modifier based on their size and can choose the reaction time of their character, then a weighted roll is made. This one gives the advantage to smaller players. + +/mob/living/carbon/human/proc/game_slaphands(var/mob/living/carbon/human/player1, var/mob/living/carbon/human/player2) + if(!hand_games_check(player1,player2)) + return + to_chat(player1, span_notice("Asking [player2] if they want to play Slap Hands!")) + var/playgame = tgui_alert(player2, "[player1] wants to play Slap Hands.", "Slap Hands", list("Play", "Refuse")) + if(!playgame || (playgame == "Refuse")) + to_chat(player1, span_warning("[player2] declines to play the game.")) + return + else + if(!hand_games_check(player1,player2)) + return + player1.visible_message(span_notice("[player1] challenges [player2] to Slap Hands!")) + var/scale1 = (2.25 - player1.size_multiplier) + scale1 = clamp(scale1, 0.1, 3) + var/scale2 = (2.25 - player2.size_multiplier) + scale2 = clamp(scale2, 0.1, 3) + to_chat(player2, span_warning("[player1] is getting ready.")) + var/strength1 = tgui_input_number(player1, "How fast are your character's reaction times on a scale of 1 to 10 (1 being slow, 10 being very fast).", "Speed") + strength1 = clamp(strength1, 1, 10) + if(!strength1) + player1.visible_message(span_notice("[player1] chickens out!")) + if(!hand_games_check(player1,player2)) + return + to_chat(player1, span_warning("[player2] is getting ready.")) + var/strength2 = tgui_input_number(player2, "How fast are your character's reaction times on a scale of 1 to 10 (1 being slow, 10 being very fast).", "Speed") + strength2 = clamp(strength2, 1, 10) + if(!strength2) + player2.visible_message(span_notice("[player2] chickens out!")) + if(!hand_games_check(player1,player2)) + return + + var/score1 = (scale1 * strength1) + var/score2 = (scale2 * strength2) + + var/competition = pick(score1;player1, score2;player2) + if(!do_after(player1, 10, player2, exclusive = TASK_USER_EXCLUSIVE)) + player2.visible_message(span_notice("The players cancelled their competition!")) + return 0 + if(!hand_games_check(player1,player2)) + return + playsound(player1, 'sound/effects/snap.ogg', 30, 1) + if(competition == player1) + player1.visible_message(span_notice("[player1] manages to slap [player2]'s hand before they can react!")) + else + player2.visible_message(span_notice("[player2] manages to slap [player1]'s hand before they can react!")) + +///// Thumb wars! This one is just pure chance to allow people to do just quick RNG. + +/mob/living/carbon/human/proc/game_thumbwars(var/mob/living/carbon/human/player1, var/mob/living/carbon/human/player2) + if(!hand_games_check(player1,player2)) + return + to_chat(player1, span_notice("Asking [player2] if they want to play Thumb Wars!")) + var/playgame = tgui_alert(player2, "[player1] wants to play Thumb Wars.", "Thumb Wars", list("Play", "Refuse")) + if(!playgame || (playgame == "Refuse")) + to_chat(player1, span_warning("[player2] declines to play the game.")) + return + else + if(!hand_games_check(player1,player2)) + return + player1.visible_message(span_notice("[player1] challenges [player2] to a thumb war!")) + if(!do_after(player1, 50, player2, exclusive = TASK_USER_EXCLUSIVE)) + player2.visible_message(span_notice("The players cancelled their thumb war!")) + return 0 + if(!hand_games_check(player1,player2)) + return + if(prob(50)) + player1.visible_message(span_notice("After a gruelling battle, [player1] eventually manages to subdue the thumb of [player2]!")) + else + player2.visible_message(span_notice("After a gruelling battle, [player2] eventually manages to subdue the thumb of [player1]!")) diff --git a/code/modules/mob/living/carbon/human/human_species.dm b/code/modules/mob/living/carbon/human/human_species.dm index 8b3673289e..260f685768 100644 --- a/code/modules/mob/living/carbon/human/human_species.dm +++ b/code/modules/mob/living/carbon/human/human_species.dm @@ -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) diff --git a/code/modules/mob/living/carbon/human/species/lleill/hanner.dm b/code/modules/mob/living/carbon/human/species/lleill/hanner.dm index 276be69091..c8eb09b829 100644 --- a/code/modules/mob/living/carbon/human/species/lleill/hanner.dm +++ b/code/modules/mob/living/carbon/human/species/lleill/hanner.dm @@ -20,6 +20,8 @@ min_age = 18 max_age = 200 + digi_allowed = TRUE + //Specific abilities burn_mod = 0.8 //Slightly resistant to fire @@ -97,7 +99,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, diff --git a/code/modules/mob/living/carbon/human/species/lleill/lleill.dm b/code/modules/mob/living/carbon/human/species/lleill/lleill.dm index 55663e30b6..51cc7a8e3b 100644 --- a/code/modules/mob/living/carbon/human/species/lleill/lleill.dm +++ b/code/modules/mob/living/carbon/human/species/lleill/lleill.dm @@ -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( diff --git a/code/modules/mob/living/carbon/human/species/outsider/replicant.dm b/code/modules/mob/living/carbon/human/species/outsider/replicant.dm index 7e8bf25f6e..e93a62f636 100644 --- a/code/modules/mob/living/carbon/human/species/outsider/replicant.dm +++ b/code/modules/mob/living/carbon/human/species/outsider/replicant.dm @@ -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, diff --git a/code/modules/mob/living/carbon/human/species/outsider/skeleton.dm b/code/modules/mob/living/carbon/human/species/outsider/skeleton.dm index d8a5577e37..73168b8e83 100644 --- a/code/modules/mob/living/carbon/human/species/outsider/skeleton.dm +++ b/code/modules/mob/living/carbon/human/species/outsider/skeleton.dm @@ -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 \ No newline at end of file + body_temperature = T20C diff --git a/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm b/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm index c1de18c498..2e02cc4a02 100644 --- a/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm +++ b/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm @@ -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 = ..() diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 7a04d2da3b..e8bcb5c029 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -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 diff --git a/code/modules/mob/living/carbon/human/species/species_vr.dm b/code/modules/mob/living/carbon/human/species/species_vr.dm index 9a994bc97d..c32c2a6182 100644 --- a/code/modules/mob/living/carbon/human/species/species_vr.dm +++ b/code/modules/mob/living/carbon/human/species/species_vr.dm @@ -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 diff --git a/code/modules/mob/living/carbon/human/species/station/blank_vr.dm b/code/modules/mob/living/carbon/human/species/station/blank_vr.dm index 29bd68ff32..aba05c0591 100644 --- a/code/modules/mob/living/carbon/human/species/station/blank_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/blank_vr.dm @@ -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 diff --git a/code/modules/mob/living/carbon/human/species/station/monkey.dm b/code/modules/mob/living/carbon/human/species/station/monkey.dm index c24ff5a123..c555f4f1dc 100644 --- a/code/modules/mob/living/carbon/human/species/station/monkey.dm +++ b/code/modules/mob/living/carbon/human/species/station/monkey.dm @@ -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" diff --git a/code/modules/mob/living/carbon/human/species/station/monkey_vr.dm b/code/modules/mob/living/carbon/human/species/station/monkey_vr.dm index 1b82f78101..f8df9cd220 100644 --- a/code/modules/mob/living/carbon/human/species/station/monkey_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/monkey_vr.dm @@ -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") \ No newline at end of file + ..(new_loc, SPECIES_MONKEY_VULPKANIN) + species.produceCopy(species.traits.Copy(),src,null,FALSE) diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans.dm b/code/modules/mob/living/carbon/human/species/station/prometheans.dm index 25a6064ee9..4334d89fab 100644 --- a/code/modules/mob/living/carbon/human/species/station/prometheans.dm +++ b/code/modules/mob/living/carbon/human/species/station/prometheans.dm @@ -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. diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans_vr.dm b/code/modules/mob/living/carbon/human/species/station/prometheans_vr.dm index de24de4936..699a79e11c 100644 --- a/code/modules/mob/living/carbon/human/species/station/prometheans_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/prometheans_vr.dm @@ -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" diff --git a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_rig.dm b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_rig.dm index 4a77377260..7b281c39e9 100644 --- a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_rig.dm +++ b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_rig.dm @@ -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, diff --git a/code/modules/mob/living/carbon/human/species/station/replicant_crew.dm b/code/modules/mob/living/carbon/human/species/station/replicant_crew.dm index c841ae4109..5d6a4e1d6a 100644 --- a/code/modules/mob/living/carbon/human/species/station/replicant_crew.dm +++ b/code/modules/mob/living/carbon/human/species/station/replicant_crew.dm @@ -14,6 +14,7 @@ siemens_coefficient = 1.5 //Don't get electrocuted secondary_langs = list() // None by default + digi_allowed = TRUE has_organ = list( O_HEART = /obj/item/organ/internal/heart/replicant/rage/crew, @@ -34,7 +35,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, diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm index eb4e6a8f5b..4b00ed832b 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -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' diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm index 997aac129f..7f90c692a5 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm @@ -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 diff --git a/code/modules/mob/living/carbon/human/species/station/station_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_vr.dm index ad66fdeefd..9fbbb3face 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_vr.dm @@ -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 diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm index f59313f92d..6d3c506938 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm @@ -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" diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm index 5933c53a57..ccc43426a8 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm @@ -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" diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm index d3df8f312a..11db4fa422 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm @@ -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) ..() diff --git a/code/modules/mob/living/carbon/human/species/virtual_reality/avatar.dm b/code/modules/mob/living/carbon/human/species/virtual_reality/avatar.dm index c8d044330b..e314a8217a 100644 --- a/code/modules/mob/living/carbon/human/species/virtual_reality/avatar.dm +++ b/code/modules/mob/living/carbon/human/species/virtual_reality/avatar.dm @@ -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. diff --git a/code/modules/mob/living/silicon/pai/software_modules.dm b/code/modules/mob/living/silicon/pai/software_modules.dm index 3928b0b324..d52951a8cd 100644 --- a/code/modules/mob/living/silicon/pai/software_modules.dm +++ b/code/modules/mob/living/silicon/pai/software_modules.dm @@ -420,9 +420,9 @@ user.add_language(LANGUAGE_ALAI) user.add_language(LANGUAGE_PROMETHEAN) user.add_language(LANGUAGE_GIBBERISH) - user.add_language("Mouse") - user.add_language("Animal") - user.add_language("Teppi") + user.add_language(LANGUAGE_MOUSE) + user.add_language(LANGUAGE_ANIMAL) + user.add_language(LANGUAGE_TEPPI) else user.remove_language(LANGUAGE_UNATHI) user.remove_language(LANGUAGE_SIIK) @@ -447,9 +447,9 @@ user.remove_language(LANGUAGE_ALAI) user.remove_language(LANGUAGE_PROMETHEAN) user.remove_language(LANGUAGE_GIBBERISH) - user.remove_language("Mouse") - user.remove_language("Animal") - user.remove_language("Teppi") + user.remove_language(LANGUAGE_MOUSE) + user.remove_language(LANGUAGE_ANIMAL) + user.remove_language(LANGUAGE_TEPPI) /datum/pai_software/translator/is_active(mob/living/silicon/pai/user) return user.translator_on diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 032fe3ed43..1c07efe363 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -354,6 +354,8 @@ sprite_datum = module_sprites[1] sprite_datum.do_equipment_glamour(module) return + if(mind) + sprite_name = mind.name if(!selecting_module) var/datum/tgui_module/robot_ui_module/ui = new(src) ui.tgui_interact(src) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index ef1545831c..6fbda3189b 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -23,7 +23,7 @@ /datum/tgui_module/robot_ui_module/ui_assets(mob/user) return list( - get_asset_datum(/datum/asset/spritesheet/robot_icons) + get_asset_datum(/datum/asset/spritesheet_batched/robot_icons) ) /datum/tgui_module/robot_ui_module/tgui_static_data() @@ -49,6 +49,7 @@ if(is_borg_whitelisted(R, module_name)) modules |= module_name data["possible_modules"] = modules + data["mind_name"] = R.mind.name if(R.emagged) data["theme"] = "syndicate" else if (R.ui_theme) @@ -60,7 +61,7 @@ var/list/data = ..() var/mob/living/silicon/robot/R = host - var/datum/asset/spritesheet/robot_icons/spritesheet = get_asset_datum(/datum/asset/spritesheet/robot_icons) + var/datum/asset/spritesheet_batched/robot_icons/spritesheet = get_asset_datum(/datum/asset/spritesheet_batched/robot_icons) data["currentName"] = new_name ? new_name : R.name data["isDefaultName"] = !new_name @@ -136,6 +137,7 @@ var/name = params["value"] if(name) new_name = sanitizeSafe(name, MAX_NAME_LEN) + R.sprite_name = new_name . = TRUE if("confirm") R.apply_name(new_name) diff --git a/code/modules/mob/living/silicon/robot/sprites/_sprite_datum.dm b/code/modules/mob/living/silicon/robot/sprites/_sprite_datum.dm index 8fe2277b0f..704c7bb7f6 100644 --- a/code/modules/mob/living/silicon/robot/sprites/_sprite_datum.dm +++ b/code/modules/mob/living/silicon/robot/sprites/_sprite_datum.dm @@ -24,6 +24,8 @@ var/has_custom_equipment_sprites = FALSE var/vis_height = 32 var/pixel_x = 0 + var/icon_x = 32 + var/icon_y = 32 var/is_whitelisted = FALSE var/whitelist_ckey @@ -188,6 +190,8 @@ has_dead_sprite_overlay = TRUE has_custom_equipment_sprites = TRUE pixel_x = -16 + icon_x = 64 + icon_y = 32 /datum/robot_sprite/dogborg/do_equipment_glamour(var/obj/item/robot_module/module) if(!has_custom_equipment_sprites) @@ -207,6 +211,8 @@ has_dead_sprite_overlay = FALSE has_custom_equipment_sprites = FALSE vis_height = 64 + icon_x = 64 + icon_y = 64 // Default module sprite diff --git a/code/modules/mob/living/silicon/robot/sprites/civilian.dm b/code/modules/mob/living/silicon/robot/sprites/civilian.dm index 05a0333d7d..e5d0ee1275 100644 --- a/code/modules/mob/living/silicon/robot/sprites/civilian.dm +++ b/code/modules/mob/living/silicon/robot/sprites/civilian.dm @@ -308,15 +308,13 @@ has_vore_belly_sprites = FALSE rest_sprite_options = list("Default", "Bellyup") -/datum/robot_sprite/dogborg/tall/service/dullahan +/datum/robot_sprite/dogborg/tall/service/dullahanv3 sprite_icon = 'icons/mob/tallborg/dullahans64x64.dmi' //named v3 to avoid conflicts with downstream -/datum/robot_sprite/dogborg/tall/service/dullahan/basic +/datum/robot_sprite/dogborg/tall/service/dullahanv3/basic name = "Dullahan service v3" sprite_icon_state = "dullahanservice" - has_eye_light_sprites = TRUE - has_custom_open_sprites = TRUE has_vore_belly_sprites = TRUE has_robotdecal_sprites = TRUE rest_sprite_options = list("Default", "sit") @@ -324,8 +322,6 @@ /datum/robot_sprite/dogborg/tall/service/dullahanv3/barista name = "Dullahan matcha v3" sprite_icon_state = "dullahanbarista" - has_eye_light_sprites = TRUE - has_custom_open_sprites = TRUE has_vore_belly_sprites = TRUE has_robotdecal_sprites = TRUE rest_sprite_options = list("Default", "sit") diff --git a/code/modules/mob/living/silicon/robot/sprites/combat.dm b/code/modules/mob/living/silicon/robot/sprites/combat.dm index a0b8140cb7..8613f4f5ff 100644 --- a/code/modules/mob/living/silicon/robot/sprites/combat.dm +++ b/code/modules/mob/living/silicon/robot/sprites/combat.dm @@ -92,10 +92,23 @@ BCS.dogborg = TRUE /datum/robot_sprite/dogborg/tall/combat/derg - name = "ERT" + name = "ERT Dragon" sprite_icon_state = "derg" - rest_sprite_options = list("Default") - sprite_flags = ROBOT_HAS_GUN_SPRITE + sprite_hud_icon_state = "ert" + rest_sprite_options = list("Default", "Sit") + sprite_flags = ROBOT_HAS_GUN_SPRITE | ROBOT_HAS_SHIELD_SPRITE +/datum/robot_sprite/dogborg/tall/combat/derg/handle_extra_icon_updates(var/mob/living/silicon/robot/ourborg) + ..() + if(ourborg.resting) + return + if(ourborg.has_active_type(/obj/item/borg/combat/mobility)) + ourborg.add_overlay("[sprite_icon_state]-roll") + +/datum/robot_sprite/dogborg/tall/combat/derg/get_eyes_overlay(var/mob/living/silicon/robot/ourborg) + if(ourborg.has_active_type(/obj/item/borg/combat/mobility)) + return + else + return ..() /datum/robot_sprite/dogborg/tall/combat/hound name = "Hound" diff --git a/code/modules/mob/living/silicon/robot/sprites/engineering.dm b/code/modules/mob/living/silicon/robot/sprites/engineering.dm index 9ffaa658de..96017cfe95 100644 --- a/code/modules/mob/living/silicon/robot/sprites/engineering.dm +++ b/code/modules/mob/living/silicon/robot/sprites/engineering.dm @@ -221,8 +221,6 @@ /datum/robot_sprite/dogborg/tall/engineering/dullahanv3/engineerdully name = "Dullahan engineer v3" sprite_icon_state = "dullahanengineer" - has_eye_light_sprites = TRUE - has_custom_open_sprites = TRUE has_vore_belly_sprites = TRUE has_robotdecal_sprites = TRUE rest_sprite_options = list("Default", "sit") diff --git a/code/modules/mob/living/silicon/robot/sprites/fluff.dm b/code/modules/mob/living/silicon/robot/sprites/fluff.dm index 6312a73b03..b28bf461bf 100644 --- a/code/modules/mob/living/silicon/robot/sprites/fluff.dm +++ b/code/modules/mob/living/silicon/robot/sprites/fluff.dm @@ -19,6 +19,8 @@ has_dead_sprite = TRUE has_dead_sprite_overlay = TRUE pixel_x = -16 + icon_x = 64 + icon_y = 32 whitelist_ckey = "argonne" whitelist_charname = "RUSS" @@ -80,6 +82,8 @@ has_dead_sprite = TRUE has_dead_sprite_overlay = TRUE pixel_x = -16 + icon_x = 64 + icon_y = 32 whitelist_ckey = "jademanique" whitelist_charname = "B.A.U-Kingside" @@ -101,6 +105,8 @@ has_dead_sprite = TRUE has_dead_sprite_overlay = TRUE pixel_x = -16 + icon_x = 64 + icon_y = 32 whitelist_ckey = "lunarfleet" whitelist_charname = "Clea-Nor" diff --git a/code/modules/mob/living/silicon/robot/sprites/janitor.dm b/code/modules/mob/living/silicon/robot/sprites/janitor.dm index cdc5f817ce..4283153dc3 100644 --- a/code/modules/mob/living/silicon/robot/sprites/janitor.dm +++ b/code/modules/mob/living/silicon/robot/sprites/janitor.dm @@ -206,8 +206,6 @@ /datum/robot_sprite/dogborg/tall/janitor/dullahanv3/janitordully name = "Dullahan janitor v3" sprite_icon_state = "dullahanjanitor" - has_eye_light_sprites = TRUE - has_custom_open_sprites = TRUE has_vore_belly_sprites = TRUE has_robotdecal_sprites = TRUE rest_sprite_options = list("Default", "sit") diff --git a/code/modules/mob/living/silicon/robot/sprites/medical.dm b/code/modules/mob/living/silicon/robot/sprites/medical.dm index f53b9894a2..2d5ec9f1f3 100644 --- a/code/modules/mob/living/silicon/robot/sprites/medical.dm +++ b/code/modules/mob/living/silicon/robot/sprites/medical.dm @@ -144,8 +144,6 @@ /datum/robot_sprite/dogborg/tall/medical/dullahanv3/medicaldully name = "Dullahan medical v3" sprite_icon_state = "dullahanmedical" - has_eye_light_sprites = TRUE - has_custom_open_sprites = TRUE has_vore_belly_sprites = TRUE has_robotdecal_sprites = TRUE rest_sprite_options = list("Default", "sit") diff --git a/code/modules/mob/living/silicon/robot/sprites/mining.dm b/code/modules/mob/living/silicon/robot/sprites/mining.dm index d074a510a6..2eeae517c4 100644 --- a/code/modules/mob/living/silicon/robot/sprites/mining.dm +++ b/code/modules/mob/living/silicon/robot/sprites/mining.dm @@ -191,8 +191,6 @@ /datum/robot_sprite/dogborg/tall/mining/dullahanv3/miningdully name = "Dullahan mining v3" sprite_icon_state = "dullahanmining" - has_eye_light_sprites = TRUE - has_custom_open_sprites = TRUE has_vore_belly_sprites = TRUE has_robotdecal_sprites = TRUE rest_sprite_options = list("Default", "sit") diff --git a/code/modules/mob/living/silicon/robot/sprites/science.dm b/code/modules/mob/living/silicon/robot/sprites/science.dm index 51159d9cb3..93b3bc2b61 100644 --- a/code/modules/mob/living/silicon/robot/sprites/science.dm +++ b/code/modules/mob/living/silicon/robot/sprites/science.dm @@ -213,8 +213,6 @@ /datum/robot_sprite/dogborg/tall/science/dullahanv3/sciencedully name = "Dullahan science v3" sprite_icon_state = "dullahanscience" - has_eye_light_sprites = TRUE - has_custom_open_sprites = TRUE has_vore_belly_sprites = TRUE has_robotdecal_sprites = TRUE rest_sprite_options = list("Default", "sit") diff --git a/code/modules/mob/living/silicon/robot/sprites/security.dm b/code/modules/mob/living/silicon/robot/sprites/security.dm index 8ddd148260..67c215ab01 100644 --- a/code/modules/mob/living/silicon/robot/sprites/security.dm +++ b/code/modules/mob/living/silicon/robot/sprites/security.dm @@ -219,8 +219,6 @@ /datum/robot_sprite/dogborg/tall/security/dullahanv3/securitydully name = "Dullahan security v3" sprite_icon_state = "dullahansecurity" - has_eye_light_sprites = TRUE - has_custom_open_sprites = TRUE has_vore_belly_sprites = TRUE has_robotdecal_sprites = TRUE rest_sprite_options = list("Default", "sit") diff --git a/code/modules/mob/living/silicon/robot/sprites/standard.dm b/code/modules/mob/living/silicon/robot/sprites/standard.dm index 0190d40a67..e32490f3e3 100644 --- a/code/modules/mob/living/silicon/robot/sprites/standard.dm +++ b/code/modules/mob/living/silicon/robot/sprites/standard.dm @@ -139,8 +139,6 @@ /datum/robot_sprite/dogborg/tall/standard/dullahanv3/standarddully name = "Dullahan standard v3" sprite_icon_state = "dullahanstandard" - has_eye_light_sprites = TRUE - has_custom_open_sprites = TRUE has_vore_belly_sprites = TRUE has_robotdecal_sprites = TRUE rest_sprite_options = list("Default", "sit") diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index ffc6dcd1e0..868910fc9f 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -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" diff --git a/code/modules/mob/new_player/sprite_accessories_ear.dm b/code/modules/mob/new_player/sprite_accessories_ear.dm index 2b5f60c892..8607e0f118 100644 --- a/code/modules/mob/new_player/sprite_accessories_ear.dm +++ b/code/modules/mob/new_player/sprite_accessories_ear.dm @@ -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 diff --git a/code/modules/mob/new_player/sprite_accessories_ear_vr.dm b/code/modules/mob/new_player/sprite_accessories_ear_vr.dm index 7b7d264498..106bb12bf5 100644 --- a/code/modules/mob/new_player/sprite_accessories_ear_vr.dm +++ b/code/modules/mob/new_player/sprite_accessories_ear_vr.dm @@ -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" diff --git a/code/modules/mob/new_player/sprite_accessories_tail.dm b/code/modules/mob/new_player/sprite_accessories_tail.dm index 858fe01b10..dbc233ceb8 100644 --- a/code/modules/mob/new_player/sprite_accessories_tail.dm +++ b/code/modules/mob/new_player/sprite_accessories_tail.dm @@ -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" diff --git a/code/modules/mob/new_player/sprite_accessories_tail_vr.dm b/code/modules/mob/new_player/sprite_accessories_tail_vr.dm index 8b510e6502..37d8481c33 100644 --- a/code/modules/mob/new_player/sprite_accessories_tail_vr.dm +++ b/code/modules/mob/new_player/sprite_accessories_tail_vr.dm @@ -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 diff --git a/code/modules/mob/new_player/sprite_accessories_vr.dm b/code/modules/mob/new_player/sprite_accessories_vr.dm index 0a440d4a23..a20d2932ea 100644 --- a/code/modules/mob/new_player/sprite_accessories_vr.dm +++ b/code/modules/mob/new_player/sprite_accessories_vr.dm @@ -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" diff --git a/code/modules/mob/new_player/sprite_accessories_wing_vr.dm b/code/modules/mob/new_player/sprite_accessories_wing_vr.dm index 6610a2e8ea..4e697dff6b 100644 --- a/code/modules/mob/new_player/sprite_accessories_wing_vr.dm +++ b/code/modules/mob/new_player/sprite_accessories_wing_vr.dm @@ -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 diff --git a/code/modules/organs/robolimbs.dm b/code/modules/organs/robolimbs.dm index 7a0311ad93..6f48f2bce0 100644 --- a/code/modules/organs/robolimbs.dm +++ b/code/modules/organs/robolimbs.dm @@ -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 diff --git a/code/modules/organs/robolimbs_custom.dm b/code/modules/organs/robolimbs_custom.dm index 55d6e68ee4..af025b39a4 100644 --- a/code/modules/organs/robolimbs_custom.dm +++ b/code/modules/organs/robolimbs_custom.dm @@ -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 diff --git a/code/modules/organs/robolimbs_vr.dm b/code/modules/organs/robolimbs_vr.dm index a3956a2bf9..9f21ba8421 100644 --- a/code/modules/organs/robolimbs_vr.dm +++ b/code/modules/organs/robolimbs_vr.dm @@ -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 diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 0794fecf38..c867fa71a8 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -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") diff --git a/code/modules/reagents/reagents/food_drinks_vr.dm b/code/modules/reagents/reagents/food_drinks_vr.dm index 388031b2fe..e8892246f7 100644 --- a/code/modules/reagents/reagents/food_drinks_vr.dm +++ b/code/modules/reagents/reagents/food_drinks_vr.dm @@ -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) diff --git a/code/modules/reagents/reagents/vore_vr.dm b/code/modules/reagents/reagents/vore_vr.dm index 2b0ac6706d..f7581850db 100644 --- a/code/modules/reagents/reagents/vore_vr.dm +++ b/code/modules/reagents/reagents/vore_vr.dm @@ -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 diff --git a/code/modules/research/designs/circuits/disks.dm b/code/modules/research/designs/circuits/disks.dm index 21a17f5fcd..42532486fc 100644 --- a/code/modules/research/designs/circuits/disks.dm +++ b/code/modules/research/designs/circuits/disks.dm @@ -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 diff --git a/code/modules/resleeving/designer.dm b/code/modules/resleeving/designer.dm index 544021adda..6161cf08fe 100644 --- a/code/modules/resleeving/designer.dm +++ b/code/modules/resleeving/designer.dm @@ -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() diff --git a/code/modules/tgui_input/say_modal/typing.dm b/code/modules/tgui_input/say_modal/typing.dm index f4f3a63b87..333632e3ce 100644 --- a/code/modules/tgui_input/say_modal/typing.dm +++ b/code/modules/tgui_input/say_modal/typing.dm @@ -13,6 +13,8 @@ cur_bubble_appearance = speech_bubble_appearance() active_thinking_indicator = mutable_appearance('icons/mob/talk_vr.dmi', "[cur_bubble_appearance]_thinking", FLOAT_LAYER) active_thinking_indicator.appearance_flags |= (RESET_COLOR|PIXEL_SCALE) + active_thinking_indicator.pixel_x = get_oversized_icon_offsets()["x"] + active_thinking_indicator.pixel_y = get_oversized_icon_offsets()["y"] add_overlay(active_thinking_indicator) /** Removes the thinking indicator over the mob. */ @@ -31,6 +33,8 @@ cur_bubble_appearance = speech_bubble_appearance() active_typing_indicator = mutable_appearance('icons/mob/talk_vr.dmi', "[cur_bubble_appearance]_typing", ABOVE_MOB_LAYER) active_typing_indicator.appearance_flags |= (RESET_COLOR|PIXEL_SCALE) + active_typing_indicator.pixel_x = get_oversized_icon_offsets()["x"] + active_typing_indicator.pixel_y = get_oversized_icon_offsets()["y"] add_overlay(active_typing_indicator) /** Removes the typing indicator over the mob. */ diff --git a/code/modules/tgui_panel/tgui_panel.dm b/code/modules/tgui_panel/tgui_panel.dm index 6bd4b09613..0e63c38c42 100644 --- a/code/modules/tgui_panel/tgui_panel.dm +++ b/code/modules/tgui_panel/tgui_panel.dm @@ -50,7 +50,7 @@ )) window.send_asset(get_asset_datum(/datum/asset/simple/namespaced/fontawesome)) window.send_asset(get_asset_datum(/datum/asset/simple/namespaced/tgfont)) - window.send_asset(get_asset_datum(/datum/asset/spritesheet/chat)) + window.send_asset(get_asset_datum(/datum/asset/spritesheet_batched/chat)) // Other setup request_telemetry() addtimer(CALLBACK(src, PROC_REF(on_initialize_timed_out)), 5 SECONDS) diff --git a/code/modules/vore/eating/bellymodes_datum_vr.dm b/code/modules/vore/eating/bellymodes_datum_vr.dm index 3fd14c2ec6..c74403a995 100644 --- a/code/modules/vore/eating/bellymodes_datum_vr.dm +++ b/code/modules/vore/eating/bellymodes_datum_vr.dm @@ -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. diff --git a/config/alienwhitelist.txt b/config/alienwhitelist.txt index e604fe5f39..2a55a0353b 100644 --- a/config/alienwhitelist.txt +++ b/config/alienwhitelist.txt @@ -111,6 +111,7 @@ magpiemayhem - Xenochimera makkinindorn - Protean marcobarko - Black-Eyed Shadekin marcobarko - Protean +maxine64 - Xenochimera mewchild - Diona mewchild - Vox milu - Xenochimera diff --git a/icons/mob/robot/combat_large.dmi b/icons/mob/robot/combat_large.dmi index 7f654ef73e..7b38e7b584 100644 Binary files a/icons/mob/robot/combat_large.dmi and b/icons/mob/robot/combat_large.dmi differ diff --git a/icons/mob/robot/lost_large.dmi b/icons/mob/robot/lost_large.dmi index 981b301c38..aefc3fe5a1 100644 Binary files a/icons/mob/robot/lost_large.dmi and b/icons/mob/robot/lost_large.dmi differ diff --git a/icons/mob/robot/syndie_large.dmi b/icons/mob/robot/syndie_large.dmi index 90edf7aa89..12b34658d0 100644 Binary files a/icons/mob/robot/syndie_large.dmi and b/icons/mob/robot/syndie_large.dmi differ diff --git a/icons/mob/tallborg/dullahans64x64.dmi b/icons/mob/tallborg/dullahans64x64.dmi index fe06ae0645..b78f4d543b 100644 Binary files a/icons/mob/tallborg/dullahans64x64.dmi and b/icons/mob/tallborg/dullahans64x64.dmi differ diff --git a/librust_g.so b/librust_g.so index c7810fbf80..496d566ac2 100755 Binary files a/librust_g.so and b/librust_g.so differ diff --git a/rust_g.dll b/rust_g.dll index 9b400774fa..c377fd575e 100644 Binary files a/rust_g.dll and b/rust_g.dll differ diff --git a/tgui/packages/tgui/interfaces/BodyDesigner/BodyDesignerSpecificRecord.tsx b/tgui/packages/tgui/interfaces/BodyDesigner/BodyDesignerSpecificRecord.tsx index 2b020257a0..b6a76770ab 100644 --- a/tgui/packages/tgui/interfaces/BodyDesigner/BodyDesignerSpecificRecord.tsx +++ b/tgui/packages/tgui/interfaces/BodyDesigner/BodyDesignerSpecificRecord.tsx @@ -20,224 +20,407 @@ export const BodyDesignerSpecificRecord = (props: { const { activeBodyRecord, mapRef } = props; return activeBodyRecord ? ( - -
act('menu', { menu: 'Main' })} - > - Back - - } - > - - - {activeBodyRecord.real_name} - - - {activeBodyRecord.speciesname} - - - - - - {activeBodyRecord.synthetic} - - - {activeBodyRecord.locked} - - - -
-
- - - - -
- - - - - {Object.keys(activeBodyRecord.styles).map((key) => { - const style = activeBodyRecord.styles[key]; - return ( - - {style.styleHref ? ( - - ) : ( - '' - )} - {style.colorHref ? ( - - - - - ) : ( - '' - )} - {style.colorHref2 ? ( - - - - - ) : ( - '' - )} +
act('menu', { menu: 'Main' })} + > + Back + + } + > + + + + + +
+ + + +
+ + + - ); - })} - - - - - - - {Object.keys(activeBodyRecord.markings).map((key) => { - const marking = activeBodyRecord.markings[key]; + + + + + + + + {activeBodyRecord.synthetic} + + + + + + + + + + + + + + {activeBodyRecord.locked ? 'Low' : 'High'} + + + +
+
+ + {Object.keys(activeBodyRecord.flavors).map((key) => { return ( - - - - - - - + + +
+ {activeBodyRecord.flavors[key]} +
); })} - - -
-
+
+
+
+ +
+ + + + + + + + + + + + + {Object.keys(activeBodyRecord.styles).map((key) => { + const style = activeBodyRecord.styles[key]; + return ( + + {style.styleHref ? ( + + ) : ( + '' + )} + {style.colorHref ? ( + + + + + ) : ( + '' + )} + {style.colorHref2 ? ( + + + + + ) : ( + '' + )} + {style.colorHref3 ? ( + + + + + ) : ( + '' + )} + + ); + })} + + + + {Object.keys(activeBodyRecord.markings).map((key) => { + const marking = activeBodyRecord.markings[key]; + return ( + + + + + + + + ); + })} + + +
+
+
) : ( diff --git a/tgui/packages/tgui/interfaces/BodyDesigner/index.tsx b/tgui/packages/tgui/interfaces/BodyDesigner/index.tsx index be2178696f..4486cb7fe0 100644 --- a/tgui/packages/tgui/interfaces/BodyDesigner/index.tsx +++ b/tgui/packages/tgui/interfaces/BodyDesigner/index.tsx @@ -39,31 +39,31 @@ export const BodyDesigner = (props) => { let body = MenuToTemplate[menu]; return ( - + - {disk ? ( - - - - - - ) : ( - '' - )} + + + + + {body} diff --git a/tgui/packages/tgui/interfaces/BodyDesigner/types.ts b/tgui/packages/tgui/interfaces/BodyDesigner/types.ts index 56f1eae39d..bf4dc9d6cb 100644 --- a/tgui/packages/tgui/interfaces/BodyDesigner/types.ts +++ b/tgui/packages/tgui/interfaces/BodyDesigner/types.ts @@ -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 }; // 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 = { diff --git a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx index 3fd39c36e1..cd1b1088b9 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx @@ -1,3 +1,4 @@ +import { useState } from 'react'; import { useBackend } from 'tgui/backend'; import { Box, Button, Flex, Input, Section, Stack } from 'tgui-core/components'; import { classes } from 'tgui-core/react'; @@ -6,12 +7,14 @@ import { Tooltip } from '../../components'; export const IconSection = (props: { currentName: string; + mindName: string; isDefaultName: boolean; sprite?: string | null; size?: string | null; }) => { const { act } = useBackend(); - const { currentName, isDefaultName, sprite, size } = props; + const { currentName, mindName, isDefaultName, sprite, size } = props; + const [robotName, setRobotName] = useState(currentName); return (
Name: - + act('rename', { value })} + value={robotName} + onChange={(e, value) => { + act('rename', { value }); + setRobotName(value); + }} maxLength={52} textColor={isDefaultName ? 'red' : undefined} /> + +