diff --git a/code/__defines/mobs_vr.dm b/code/__defines/mobs_vr.dm index ae87b1c624e..1d6ecb049d5 100644 --- a/code/__defines/mobs_vr.dm +++ b/code/__defines/mobs_vr.dm @@ -36,6 +36,7 @@ #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" diff --git a/code/game/objects/random/maintenance.dm b/code/game/objects/random/maintenance.dm index 5f8c18a0af3..1d52205ed0e 100644 --- a/code/game/objects/random/maintenance.dm +++ b/code/game/objects/random/maintenance.dm @@ -116,7 +116,8 @@ something, make sure it's not in one of the other lists.*/ prob(1);/obj/item/pizzavoucher, prob(5);/obj/item/weapon/material/fishing_net/butterfly_net, prob(2);/obj/item/weapon/cracker, - prob(5);/obj/random/mega_nukies + prob(5);/obj/random/mega_nukies, + prob(1);/obj/random/potion_ingredient/plus /* VOREStation Edit End */ ) diff --git a/code/game/objects/random/misc_vr.dm b/code/game/objects/random/misc_vr.dm index b1781eb66ef..f8554a4f4ff 100644 --- a/code/game/objects/random/misc_vr.dm +++ b/code/game/objects/random/misc_vr.dm @@ -298,6 +298,41 @@ prob(1);/obj/item/weapon/potion_material/folded_dark ) +/obj/random/potion_ingredient/plus + name = "random better potion ingredient" + desc = "A random potion." + icon_state = "ingredient_plus" + spawn_nothing_percentage = 0 + +/obj/random/potion_ingredient/plus/item_to_spawn() + return pick(prob(20);/obj/item/weapon/potion_material/blood_ruby, + prob(4);/obj/item/weapon/potion_material/ruby_eye, + prob(20);/obj/item/weapon/potion_material/golden_scale, + prob(20);/obj/item/weapon/potion_material/frozen_dew, + prob(20);/obj/item/weapon/potion_material/living_coral, + prob(8);/obj/item/weapon/potion_material/rare_horn, + prob(10);/obj/item/weapon/potion_material/moldy_bread, + prob(10);/obj/item/weapon/potion_material/glowing_gem, + prob(10);/obj/item/weapon/potion_material/giant_toe, + prob(4);/obj/item/weapon/potion_material/flesh_of_the_stars, + prob(4);/obj/item/weapon/potion_material/spinning_poppy, + prob(4);/obj/item/weapon/potion_material/salt_mage, + prob(20);/obj/item/weapon/potion_material/golden_grapes, + prob(10);/obj/item/weapon/potion_material/fairy_house, + prob(10);/obj/item/weapon/potion_material/thorny_bulb, + prob(10);/obj/item/weapon/potion_material/ancient_egg, + prob(10);/obj/item/weapon/potion_material/crown_stem, + prob(4);/obj/item/weapon/potion_material/red_ingot, + prob(4);/obj/item/weapon/potion_material/soft_diamond, + prob(4);/obj/item/weapon/potion_material/solid_mist, + prob(2);/obj/item/weapon/potion_material/spider_leg, + prob(2);/obj/item/weapon/potion_material/folded_dark, + prob(1);/obj/item/weapon/potion_material/glamour_transparent, + prob(1);/obj/item/weapon/potion_material/glamour_shrinking, + prob(1);/obj/item/weapon/potion_material/glamour_twinkling, + prob(1);/obj/item/weapon/potion_material/glamour_shard + ) + /obj/random/potion_base name = "random potion base" desc = "A random potion base." diff --git a/code/modules/mob/living/carbon/human/human_species_vr.dm b/code/modules/mob/living/carbon/human/human_species_vr.dm index dd3134420a6..d1d5bdab118 100644 --- a/code/modules/mob/living/carbon/human/human_species_vr.dm +++ b/code/modules/mob/living/carbon/human/human_species_vr.dm @@ -34,3 +34,6 @@ /mob/living/carbon/human/lleill/New(var/new_loc) ..(new_loc, SPECIES_LLEILL) + +/mob/living/carbon/human/hanner/New(var/new_loc) + ..(new_loc, SPECIES_HANNER) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/lleill/hanner.dm b/code/modules/mob/living/carbon/human/species/lleill/hanner.dm new file mode 100644 index 00000000000..40d0f89cd20 --- /dev/null +++ b/code/modules/mob/living/carbon/human/species/lleill/hanner.dm @@ -0,0 +1,98 @@ +/datum/species/shapeshifter/hanner + + name = SPECIES_HANNER + name_plural = "Hanner" + blurb = "Hanner are a sub-species of almost any other sapient species, \ + they are the offspring of one Lleill and any other non-lleill species. They are natural born fleshy \ + shapeshifters, able to take the appearance of almost any humanoid form. Hanner also have some limited \ + transmutation and energy sharing abilities not unlike they lleill, but considerably more limited. Unlike \ + other shapeshifter species, such as proteans or prometheans, Hanner have a typical humanoid set of organs and can not regenerate." + + flags = NO_SCAN + color_mult = 1 + 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 + health_hud_intensity = 2 + num_alternate_languages = 3 + language = LANGUAGE_LLEILL + species_language = LANGUAGE_LLEILL + secondary_langs = list(LANGUAGE_LLEILL, LANGUAGE_SOL_COMMON) // For some reason, having this as their species language does not allow it to be chosen. + + min_age = 18 + max_age = 200 + + //Specific abilities + + burn_mod = 0.8 //Slightly resistant to fire + pain_mod = 0.8 //Whilst not resistant to brute or stunning, they are slightly resistant to pain. + + hazard_high_pressure = HAZARD_HIGH_PRESSURE + 700 // Dangerously high pressure. + warning_high_pressure = WARNING_HIGH_PRESSURE + 700 // High pressure warning. + warning_low_pressure = 100 // Low pressure warning. + hazard_low_pressure = 50 // Dangerously low pressure. + + minimum_breath_pressure = 0 //Doesn't gasp and lungs shouldn't pop + + cold_level_1 = 150 //Adapt well to temperature changes + cold_level_2 = 100 + cold_level_3 = 50 + + heat_level_1 = 500 //quite resiliant to heat + heat_level_2 = 600 + heat_level_3 = 700 + + chem_strength_alcohol = 0.8 //Handle alcohol slightly better + + metabolic_rate = 0.4 //Major downside of the Hanner, they metabolise drugs much slower, meaning that they are difficult to treat with medicine alone. + bloodloss_rate = 1.2 //They bleed out faster too + + lleill_energy = 100 + lleill_energy_max = 100 + + genders = list(MALE, FEMALE, NEUTER, PLURAL) + + has_organ = list( + O_HEART = /obj/item/organ/internal/heart, + O_LUNGS = /obj/item/organ/internal/lungs, + O_VOICE = /obj/item/organ/internal/voicebox, + O_LIVER = /obj/item/organ/internal/liver, + O_KIDNEYS = /obj/item/organ/internal/kidneys, + O_BRAIN = /obj/item/organ/internal/brain, + O_APPENDIX = /obj/item/organ/internal/appendix, + O_SPLEEN = /obj/item/organ/internal/spleen, + O_EYES = /obj/item/organ/internal/eyes, + O_STOMACH = /obj/item/organ/internal/stomach, + O_INTESTINE = /obj/item/organ/internal/intestine + ) + + has_limbs = list( + BP_TORSO = list("path" = /obj/item/organ/external/chest), + BP_GROIN = list("path" = /obj/item/organ/external/groin), + BP_HEAD = list("path" = /obj/item/organ/external/head), + BP_L_ARM = list("path" = /obj/item/organ/external/arm), + BP_R_ARM = list("path" = /obj/item/organ/external/arm/right), + BP_L_LEG = list("path" = /obj/item/organ/external/leg), + BP_R_LEG = list("path" = /obj/item/organ/external/leg/right), + BP_L_HAND = list("path" = /obj/item/organ/external/hand), + BP_R_HAND = list("path" = /obj/item/organ/external/hand/right), + BP_L_FOOT = list("path" = /obj/item/organ/external/foot), + BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right) + ) + + inherent_verbs = list( + /mob/living/carbon/human/proc/shapeshifter_select_shape, + /mob/living/carbon/human/proc/shapeshifter_select_colour, + /mob/living/carbon/human/proc/shapeshifter_select_hair, + /mob/living/carbon/human/proc/shapeshifter_select_hair_colors, + /mob/living/carbon/human/proc/shapeshifter_select_gender, + /mob/living/carbon/human/proc/shapeshifter_select_wings, + /mob/living/carbon/human/proc/shapeshifter_select_tail, + /mob/living/carbon/human/proc/shapeshifter_select_ears, + /mob/living/proc/set_size, + /mob/living/carbon/human/proc/lleill_contact, + /mob/living/carbon/human/proc/lleill_alchemy, + /mob/living/carbon/human/proc/lleill_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) + 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 5ead8ebb51d..b03c32d00f9 100644 --- a/code/modules/mob/living/carbon/human/species/lleill/lleill.dm +++ b/code/modules/mob/living/carbon/human/species/lleill/lleill.dm @@ -33,9 +33,6 @@ //Specific abilities - var/lleill_energy = 200 - var/lleill_energy_max = 200 - var/ring_cooldown = 0 darksight = 10 //Can see in dark @@ -90,7 +87,8 @@ /mob/living/carbon/human/proc/lleill_transmute, /mob/living/carbon/human/proc/lleill_rings, /mob/living/carbon/human/proc/lleill_contact, - /mob/living/carbon/human/proc/lleill_alchemy) + /mob/living/carbon/human/proc/lleill_alchemy, + /mob/living/carbon/human/proc/lleill_beast_form) //organs, going with just the basics for now diff --git a/code/modules/mob/living/carbon/human/species/lleill/lleill_abilities.dm b/code/modules/mob/living/carbon/human/species/lleill/lleill_abilities.dm index c2f816e9dab..833f19b0182 100644 --- a/code/modules/mob/living/carbon/human/species/lleill/lleill_abilities.dm +++ b/code/modules/mob/living/carbon/human/species/lleill/lleill_abilities.dm @@ -15,25 +15,19 @@ var/energy_cost = 75 - var/datum/species/lleill/LL = species - - if(!istype(LL)) - to_chat(src, "Only a lleill can use that!") - return - if(stat) to_chat(src, "You can't go invisible when weakened like this.") return if(!cloaked) - if(LL.lleill_energy < energy_cost) + if(species.lleill_energy < energy_cost) to_chat(src, "You do not have enough energy to do that!") return cloak() block_hud = 1 hud_updateflag = 1 to_chat(src, "Your fur shimmers and shifts around you, hiding you from the naked eye.") - LL.lleill_energy -= energy_cost + species.lleill_energy -= energy_cost else uncloak() block_hud = 0 @@ -115,13 +109,7 @@ var/energy_cost = 50 - var/datum/species/lleill/LL = species - - if(!istype(LL)) - to_chat(src, "Only a lleill can use that!") - return - - if(LL.lleill_energy < energy_cost) + if(species.lleill_energy < energy_cost) to_chat(src, "You do not have enough energy to do that!") return @@ -155,7 +143,7 @@ var/spawnloc = get_turf(usr) var/obj/item/N = new transmute_product(spawnloc) put_in_active_hand(N) - LL.lleill_energy -= energy_cost + species.lleill_energy -= energy_cost /mob/living/carbon/human/proc/lleill_rings() set name = "Place/Use Rings" @@ -166,22 +154,17 @@ var/energy_cost_spawn = (25 * energy_cost_multi) var/energy_cost_tele = 50 - var/datum/species/lleill/LL = species - - if(!istype(LL)) - to_chat(src, "Only a lleill can use that!") - return if(stat) to_chat(src, "You can't go do that when weakened like this.") return if(buckled) to_chat(src,"You can't do that when restrained.") - var/r_action = tgui_alert(src, "What would you like to do with your rings? You currently have [LL.lleill_energy] energy remaining.", "Actions", list("Spawn New Ring ([energy_cost_spawn])", "Teleport to Ring ([energy_cost_tele])", "Cancel")) + var/r_action = tgui_alert(src, "What would you like to do with your rings? You currently have [species.lleill_energy] energy remaining.", "Actions", list("Spawn New Ring ([energy_cost_spawn])", "Teleport to Ring ([energy_cost_tele])", "Cancel")) if(!r_action || r_action == "Cancel") return if(findtext(r_action,"Spawn New Ring")) - if(LL.lleill_energy < energy_cost_spawn) + if(species.lleill_energy < energy_cost_spawn) to_chat(src, "You do not have enough energy to do that!") return if(!do_after(src, 10 SECONDS, src, exclusive = TASK_USER_EXCLUSIVE)) @@ -192,9 +175,9 @@ var/obj/structure/glamour_ring/R = new(spawnloc) R.connected_mob = src src.teleporters |= R - LL.lleill_energy -= energy_cost_spawn + species.lleill_energy -= energy_cost_spawn if(findtext(r_action,"Teleport to Ring")) - if(LL.lleill_energy < energy_cost_tele) + if(species.lleill_energy < energy_cost_tele) to_chat(src, "You do not have enough energy to do that!") return if(!src.teleporters.len) @@ -214,7 +197,7 @@ var/S = get_turf(R) src.forceMove(S) - LL.lleill_energy -= energy_cost_tele + species.lleill_energy -= energy_cost_tele spk.start() playsound(S, 'sound/effects/phasein.ogg', 25, 1) @@ -238,7 +221,6 @@ set category = "Abilities" if(!ishuman(src)) return //If you're not a human you don't have permission to do this. - var/datum/species/lleill/LL = species var/list/contact_options = list( "Kiss (lips)", @@ -252,9 +234,6 @@ "Custom" ) - if(!istype(LL)) - to_chat(src, "Only a lleill can use that!") - return if(stat) to_chat(src, "You can't go do that when weakened like this.") return @@ -313,7 +292,7 @@ else src.visible_message("\The [src] and \the [chosen_target] break contact before energy has been transferred.") src.visible_message("\The [src] and \the [chosen_target] complete their contact.") - LL.lleill_energy = LL.lleill_energy_max + species.lleill_energy = species.lleill_energy_max nutrition += (chosen_target.nutrition / 2) to_chat(src, "You feel revitalised.") chosen_target.tiredness += 70 @@ -329,13 +308,8 @@ var/energy_cost = 25 - var/datum/species/lleill/LL = species - if(!istype(LL)) - to_chat(src, "Only a lleill can use that!") - return - - if(LL.lleill_energy < energy_cost) + if(species.lleill_energy < energy_cost) to_chat(src, "You do not have enough energy to do that!") return @@ -367,4 +341,147 @@ var/spawnloc = get_turf(usr) var/obj/item/N = new transmute_product(spawnloc) put_in_active_hand(N) - LL.lleill_energy -= energy_cost + species.lleill_energy -= energy_cost + +/mob/living/carbon/human/proc/lleill_beast_form() + set name = "Beast Form (100)" + set desc = "Take the form of a non-humanoid creature." + set category = "Abilities" + if(!ishuman(src)) + return //If you're not a human you don't have permission to do this. + + var/energy_cost = 100 + + if(species.lleill_energy < energy_cost) + to_chat(src, "You do not have enough energy to do that!") + return + + var/list/beast_options = list("Rabbit" = /mob/living/simple_mob/vore/rabbit, + "Red Panda" = /mob/living/simple_mob/vore/redpanda, + "Fennec" = /mob/living/simple_mob/vore/fennec, + "Giant Frog" = /mob/living/simple_mob/vore/aggressive/frog, + "Giant Rat" = /mob/living/simple_mob/vore/aggressive/rat, + "Wolf" = /mob/living/simple_mob/vore/wolf, + "Panther" = /mob/living/simple_mob/vore/aggressive/panther, + "Giant Snake" = /mob/living/simple_mob/vore/aggressive/giant_snake, + "Otie" = /mob/living/simple_mob/vore/otie, + "Squirrel" = /mob/living/simple_mob/vore/squirrel, + "Raptor" = /mob/living/simple_mob/vore/raptor, + "Giant Bat" = /mob/living/simple_mob/vore/bat, + "Horse" = /mob/living/simple_mob/vore/horse, + "Horse (Big)" = /mob/living/simple_mob/vore/horse/big, + "Kelpie" = /mob/living/simple_mob/vore/horse/kelpie + ) + + var/chosen_beast = tgui_input_list(src, "Which form would you like to take?", "Choose Beast Form", beast_options) + + if(!chosen_beast) + return + + if(species.lleill_energy < energy_cost) + to_chat(src, "You do not have enough energy to do that!") + return + + var/mob/living/M = src + log_debug("polymorph start") + if(!istype(M)) + log_debug("polymorph istype") + return + + visible_message("\The [src] begins significantly shifting their form.") + if(!do_after(src, 10 SECONDS, src, exclusive = TASK_USER_EXCLUSIVE)) + visible_message("\The [src] ceases shifting their form.") + return 0 + + + + log_debug("polymorph else") + if(M.stat == DEAD) //We can let it undo the TF, because the person will be dead, but otherwise things get weird. + log_debug("polymorph dead") + return + + var/image/coolanimation = image('icons/obj/glamour.dmi', null, "animation") + coolanimation.plane = PLANE_LIGHTING_ABOVE + src.overlays += coolanimation + spawn(14) + src.overlays -= coolanimation + + log_debug("polymorph not dead") + var/mob/living/new_mob = spawn_beast_mob(beast_options[chosen_beast]) + new_mob.faction = M.faction + + if(new_mob && isliving(new_mob)) + species.lleill_energy -= energy_cost + log_debug("polymorph new_mob") + for(var/obj/belly/B as anything in new_mob.vore_organs) + log_debug("polymorph new_mob belly") + new_mob.vore_organs -= B + qdel(B) + new_mob.vore_organs = list() + new_mob.name = M.name + new_mob.real_name = M.real_name + new_mob.verbs |= /mob/living/proc/revert_beast_form + for(var/lang in M.languages) + new_mob.languages |= lang + M.copy_vore_prefs_to_mob(new_mob) + new_mob.vore_selected = M.vore_selected + if(ishuman(M)) + log_debug("polymorph ishuman part2") + var/mob/living/carbon/human/H = M + if(ishuman(new_mob)) + log_debug("polymorph ishuman(newmob)") + var/mob/living/carbon/human/N = new_mob + N.gender = H.gender + N.identifying_gender = H.identifying_gender + else + log_debug("polymorph gender else") + new_mob.gender = H.gender + else + log_debug("polymorph gender else 2") + new_mob.gender = M.gender + if(ishuman(new_mob)) + var/mob/living/carbon/human/N = new_mob + N.identifying_gender = M.gender + + for(var/obj/belly/B as anything in M.vore_organs) + B.loc = new_mob + B.forceMove(new_mob) + B.owner = new_mob + M.vore_organs -= B + new_mob.vore_organs += B + + new_mob.ckey = M.ckey + if(M.ai_holder && new_mob.ai_holder) + var/datum/ai_holder/old_AI = M.ai_holder + old_AI.set_stance(STANCE_SLEEP) + var/datum/ai_holder/new_AI = new_mob.ai_holder + new_AI.hostile = old_AI.hostile + new_AI.retaliate = old_AI.retaliate + M.loc = new_mob + M.forceMove(new_mob) + new_mob.tf_mob_holder = M + new_mob.visible_message("\The [src] has transformed into \the [new_mob]!") + + +/mob/living/carbon/human/proc/spawn_beast_mob(var/chosen_beast) + log_debug("polymorph proc spawn mob") + var/tf_type = chosen_beast + log_debug("polymorph [tf_type]") + if(!ispath(tf_type)) + log_debug("polymorph tf_type fail") + return + log_debug("polymorph tf_type pass") + var/new_mob = new tf_type(get_turf(src)) + return new_mob + +/mob/living/proc/revert_beast_form() + set name = "Revert Beast Form" + set desc = "Return to your humanoid form." + set category = "Abilities" + + visible_message("\The [src] begins significantly shifting their form.") + if(!do_after(src, 10 SECONDS, src, exclusive = TASK_USER_EXCLUSIVE)) + visible_message("\The [src] ceases shifting their form.") + return 0 + visible_message("\The [src] has reverted to their original form.") + revert_mob_tf() 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 f6bf1a7a88b..0cdd2713362 100644 --- a/code/modules/mob/living/carbon/human/species/species_vr.dm +++ b/code/modules/mob/living/carbon/human/species/species_vr.dm @@ -45,6 +45,11 @@ var/list/food_preference = list() //RS edit var/food_preference_bonus = 0 + + // For Lleill and Hanner + var/lleill_energy = 200 + var/lleill_energy_max = 200 + /datum/species/unathi vore_belly_default_variant = "L" 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 afb8652050a..67cfbed5eb1 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 = "You should not see this..." 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) //This lets all races use + 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 color_blend_mode = ICON_ADD // Only appliciable if do_coloration = 1 // Species-unique ears @@ -38,7 +38,7 @@ do_colouration = 1 color_blend_mode = ICON_MULTIPLY extra_overlay = "lleill-antlers" - species_allowed = list(SPECIES_LLEILL) + species_allowed = list(SPECIES_LLEILL, SPECIES_HANNER) /datum/sprite_accessory/ears/lleill/curled name = "Lleill Ears Curled, 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 e38e7a501db..3b6dd83b6cb 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) //This lets all races use + 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 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 ac03b0692d4..51a87583843 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) //This lets all races use the default hairstyles. + 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. /datum/sprite_accessory/hair/astolfo name = "Astolfo" @@ -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) //This lets all races use the facial hair styles. + 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. /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_LLEILL) //This needed to be manually defined, apparantly. + 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 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_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) /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 2ee4d148d74..61195e04879 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 = "You should not see this..." 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) //This lets all races use + 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 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/vorestation.dme b/vorestation.dme index 097e8d717d1..99fbc8e8d50 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2964,6 +2964,7 @@ #include "code\modules\mob\living\carbon\human\species\species_shapeshift.dm" #include "code\modules\mob\living\carbon\human\species\species_shapeshift_vr.dm" #include "code\modules\mob\living\carbon\human\species\species_vr.dm" +#include "code\modules\mob\living\carbon\human\species\lleill\hanner.dm" #include "code\modules\mob\living\carbon\human\species\lleill\lleill.dm" #include "code\modules\mob\living\carbon\human\species\lleill\lleill_abilities.dm" #include "code\modules\mob\living\carbon\human\species\lleill\lleill_items.dm"