From bc87e5204ab64aaf4875d1caa4f214a4d6a65c4d Mon Sep 17 00:00:00 2001
From: SatinIsle <98125273+SatinIsle@users.noreply.github.com>
Date: Sat, 27 Jul 2024 21:14:47 +0100
Subject: [PATCH] Lleill Species - Part 2 (#16127)
* [WIP] Lleill Species - Part 2
This PR is primarily to bring the lleill species to a point where players could reasonably request to play as them, having some semblance.
* Major update
Includes breathing changes to the Lleill, Two new glamour items to spawn (a flavoured nudity permit and a gasmask that supplies infinite air for outdoor gimmicks), 2 new tails, 2 new ears and a bunch of fixes.
* Added alchemy ability
---
code/__defines/flags.dm | 1 +
.../mob/living/carbon/human/human_defines.dm | 2 +
code/modules/mob/living/carbon/human/life.dm | 17 +-
.../mob/living/carbon/human/life_vr.dm | 9 +-
.../carbon/human/species/lleill/lleill.dm | 11 +-
.../human/species/lleill/lleill_abilities.dm | 219 ++++++++++++++++--
.../human/species/lleill/lleill_items.dm | 92 ++++++++
.../new_player/sprite_accessories_ear_vr.dm | 9 +
.../mob/new_player/sprite_accessories_tail.dm | 10 +
code/modules/reagents/machinery/alembic.dm | 2 +-
icons/inventory/face/mob.dmi | Bin 44421 -> 44579 bytes
icons/inventory/face/mob_vr.dmi | Bin 46680 -> 46890 bytes
icons/mob/species/lleill/tail.dmi | Bin 395 -> 677 bytes
icons/mob/vore/ears_32x64.dmi | Bin 11446 -> 12784 bytes
icons/obj/glamour.dmi | Bin 9754 -> 10057 bytes
15 files changed, 354 insertions(+), 18 deletions(-)
diff --git a/code/__defines/flags.dm b/code/__defines/flags.dm
index 0d06544a7e4..eccfb7d30a1 100644
--- a/code/__defines/flags.dm
+++ b/code/__defines/flags.dm
@@ -43,6 +43,7 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
#define BLOCK_GAS_SMOKE_EFFECT (1<<3) // Blocks the effect that chemical clouds would have on a mob -- glasses, mask and helmets ONLY! (NOTE: flag shared with ONESIZEFITSALL)
#define FLEXIBLEMATERIAL (1<<4) // At the moment, masks with this flag will not prevent eating even if they are covering your face.
#define ALLOW_SURVIVALFOOD (1<<5) // Allows special survival food items to be eaten through it
+#define INFINITE_AIR (1<<6) // Provides an infinite air supply.
// Flags for pass_flags. - Used in /atom/var/pass_flags
#define PASSTABLE (1<<0)
diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index f2e09405ee4..2a0bf0dc140 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -161,3 +161,5 @@
// Custom Species Name
var/custom_species
+
+ var/block_hud
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 115c9defdc3..12e7fa470ce 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -537,6 +537,11 @@
suiciding--
return 0
+ if(wear_mask && (wear_mask.item_flags & INFINITE_AIR))
+ failed_last_breath = 0
+ adjustOxyLoss(-5)
+ return
+
if(does_not_breathe)
failed_last_breath = 0
adjustOxyLoss(-5)
@@ -1972,6 +1977,8 @@
holder.icon_state = "-100" // X_X
else
holder.icon_state = RoundHealth((health-config.health_threshold_crit)/(getMaxHealth()-config.health_threshold_crit)*100)
+ if(block_hud)
+ holder.icon_state = "hudblank"
apply_hud(HEALTH_HUD, holder)
if (BITTEST(hud_updateflag, LIFE_HUD))
@@ -1982,6 +1989,8 @@
holder.icon_state = "huddead"
else
holder.icon_state = "hudhealthy"
+ if(block_hud)
+ holder.icon_state = "hudblank"
apply_hud(LIFE_HUD, holder)
if (BITTEST(hud_updateflag, STATUS_HUD))
@@ -2013,6 +2022,9 @@
holder2.icon_state = "hudill"
else
holder2.icon_state = "hudhealthy"
+ if(block_hud)
+ holder.icon_state = "hudblank"
+ holder2.icon_state = "hudblank"
apply_hud(STATUS_HUD, holder)
apply_hud(STATUS_HUD_OOC, holder2)
@@ -2028,6 +2040,8 @@
else
holder.icon_state = "hudunknown"
+ if(block_hud)
+ holder.icon_state = "hudblank"
apply_hud(ID_HUD, holder)
if (BITTEST(hud_updateflag, WANTED_HUD))
@@ -2054,7 +2068,8 @@
else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Released"))
holder.icon_state = "hudreleased"
break
-
+ if(block_hud)
+ holder.icon_state = "hudblank"
apply_hud(WANTED_HUD, holder)
if ( BITTEST(hud_updateflag, IMPLOYAL_HUD) \
diff --git a/code/modules/mob/living/carbon/human/life_vr.dm b/code/modules/mob/living/carbon/human/life_vr.dm
index 8e52e3daafa..126fb01012f 100644
--- a/code/modules/mob/living/carbon/human/life_vr.dm
+++ b/code/modules/mob/living/carbon/human/life_vr.dm
@@ -21,6 +21,8 @@
var/image/other_status = hud_list[STATUS_HUD]
var/image/status_r = grab_hud(STATUS_R_HUD)
status_r.icon_state = other_status.icon_state
+ if(block_hud)
+ status_r.icon_state = "hudblank"
apply_hud(STATUS_R_HUD, status_r)
//Our custom health bar HUD
@@ -28,6 +30,8 @@
var/image/other_health = hud_list[HEALTH_HUD]
var/image/health_us = grab_hud(HEALTH_VR_HUD)
health_us.icon_state = other_health.icon_state
+ if(block_hud)
+ health_us.icon_state = "hudblank"
apply_hud(HEALTH_VR_HUD, health_us)
//Backup implant hud status
@@ -46,7 +50,8 @@
holder.icon_state = "hud_backup_nobody"
else
holder.icon_state = "hud_backup_norm"
-
+ if(block_hud)
+ holder.icon_state = "hudblank"
apply_hud(BACKUP_HUD, holder)
//VOREStation Antag Hud
@@ -56,6 +61,8 @@
vantag.icon_state = vantag_pref
else
vantag.icon_state = "hudblank"
+ if(block_hud)
+ vantag.icon_state = "hudblank"
apply_hud(VANTAG_HUD, vantag)
//Our call for the NIF to do whatever
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 48146df8e8a..5ead8ebb51d 100644
--- a/code/modules/mob/living/carbon/human/species/lleill/lleill.dm
+++ b/code/modules/mob/living/carbon/human/species/lleill/lleill.dm
@@ -33,6 +33,11 @@
//Specific abilities
+ var/lleill_energy = 200
+ var/lleill_energy_max = 200
+
+ var/ring_cooldown = 0
+
darksight = 10 //Can see in dark
burn_mod = 0.25 //Very resistant to fire
@@ -43,6 +48,8 @@
warning_high_pressure = 300
hazard_high_pressure = 10000 //Can be killed by pressure but you're going to need a hell of a lot
+ minimum_breath_pressure = 0 //Doesn't gasp and lungs shouldn't pop
+
cold_level_1 = -1 //Safe in space
cold_level_2 = -1
cold_level_3 = -1
@@ -81,7 +88,9 @@
/mob/living/proc/set_size,
/mob/living/carbon/human/proc/lleill_invisibility,
/mob/living/carbon/human/proc/lleill_transmute,
- /mob/living/carbon/human/proc/lleill_rings)
+ /mob/living/carbon/human/proc/lleill_rings,
+ /mob/living/carbon/human/proc/lleill_contact,
+ /mob/living/carbon/human/proc/lleill_alchemy)
//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 97ee036c8a7..e428f331a56 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
@@ -9,19 +9,35 @@
verbpath = /mob/living/carbon/human/proc/lleill_invisibility
/mob/living/carbon/human/proc/lleill_invisibility()
- set name = "Invisibility"
+ set name = "Invisibility (75)"
set desc = "Change your appearance to match your surroundings, becoming completely invisible to the naked eye."
set category = "Abilities"
+ 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)
+ 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
else
uncloak()
+ block_hud = 0
+ hud_updateflag = 1
to_chat(src, "The brustling of your fur settles down and you become visible once again.")
/mob/living/carbon/human/proc/lleill_select_shape()
@@ -81,20 +97,34 @@
regenerate_icons()
/mob/living/carbon/human/proc/lleill_transmute()
- set name = "Transmute Object"
+ set name = "Transmute Object (50)"
set desc = "Convert an object into a piece of glamour."
set category = "Abilities"
var/list/transmute_list = list(
- /obj/item/weapon/potion_material/glamour_transparent,
- /obj/item/weapon/potion_material/glamour_shrinking,
- /obj/item/weapon/potion_material/glamour_twinkling,
- /obj/item/weapon/potion_material/glamour_shard,
- /obj/item/capture_crystal/glamour,
- /obj/item/glamour_face,
- /obj/item/device/universal_translator/glamour
+ "Transparent Glamour" = /obj/item/weapon/potion_material/glamour_transparent,
+ "Shrinking Glamour" = /obj/item/weapon/potion_material/glamour_shrinking,
+ "Twinkling Glamour" = /obj/item/weapon/potion_material/glamour_twinkling,
+ "Glamour Shard" = /obj/item/weapon/potion_material/glamour_shard,
+ "Glamour Cell" = /obj/item/capture_crystal/glamour,
+ "Face of Glamour" = /obj/item/glamour_face,
+ "Speaking Glamour" = /obj/item/device/universal_translator/glamour,
+ "Glamour Bubble" = /obj/item/clothing/mask/gas/glamour,
+ "Pocket of Glamour" = /obj/item/clothing/under/permit/glamour
)
+ 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)
+ to_chat(src, "You do not have enough energy to do that!")
+ return
+
if(stat)
to_chat(src, "You can't go do that when weakened like this.")
return
@@ -104,7 +134,13 @@
to_chat(src, "You have no item in your active hand.")
return
- var/obj/item/transmute_product = tgui_input_list(src, "Choose an glamour to transmute the item into:", "Transmutation", transmute_list)
+ var/choice = tgui_input_list(src, "Choose a glamour to transmute the item into:", "Transmutation", transmute_list)
+
+ if(!choice)
+ return
+ var/obj/item/transmute_product = transmute_list[choice]
+
+
if(!get_active_hand(I))
to_chat(src, "The item is no longer in your hands.")
return
@@ -113,36 +149,54 @@
if(!do_after(usr, 10 SECONDS, I, exclusive = TASK_USER_EXCLUSIVE))
visible_message("\The [src] leaves \the [I] in its original form.")
return 0
- visible_message("\The [src] transmutes \the [I] into a \the [transmute_product.name].")
+ visible_message("\The [src] transmutes \the [I] into \the [transmute_product.name].")
drop_item(I)
qdel(I)
var/spawnloc = get_turf(usr)
var/obj/item/N = new transmute_product(spawnloc)
put_in_active_hand(N)
+ LL.lleill_energy -= energy_cost
/mob/living/carbon/human/proc/lleill_rings()
set name = "Place/Use Rings"
set desc = "Place or teleport to a glamour ring."
set category = "Abilities"
+ var/energy_cost_multi = src.teleporters.len
+ 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?", "Actions", list("Spawn New Ring", "Teleport to Ring", "Cancel"))
+ 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"))
if(r_action == "Cancel")
return
- if(r_action == "Spawn New Ring")
+ if(findtext(r_action,"Spawn New Ring"))
+ if(LL.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))
src.visible_message("\The [src] begins to form white rings on the ground.")
return 0
to_chat(src, "You place a new glamour ring at your feet.")
var/spawnloc = get_turf(src)
var/obj/structure/glamour_ring/R = new(spawnloc)
+ R.connected_mob = src
src.teleporters |= R
- if(r_action == "Teleport to Ring")
+ LL.lleill_energy -= energy_cost_spawn
+ if(findtext(r_action,"Teleport to Ring"))
+ if(LL.lleill_energy < energy_cost_tele)
+ to_chat(src, "You do not have enough energy to do that!")
+ return
if(!src.teleporters.len)
to_chat(src, "You need to place rings to teleport to them.")
return
@@ -160,6 +214,7 @@
var/S = get_turf(R)
src.forceMove(S)
+ LL.lleill_energy -= energy_cost_tele
spk.start()
playsound(S, 'sound/effects/phasein.ogg', 25, 1)
@@ -177,3 +232,139 @@
M.forceMove(vore_selected)
to_chat(M,"In a bright flash of white light, you suddenly find yourself trapped in \the [src]'s [vore_selected.name]!")
+/mob/living/carbon/human/proc/lleill_contact()
+ set name = "Energy Transfer"
+ set desc = "Take the energy of another creature by making physical contact with them, the other party must consent. This will make them feel drained."
+ 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)",
+ "Kiss (neck)",
+ "Bite (neck)",
+ "Bite (wrist)",
+ "Hold Hand",
+ "Embrace",
+ "Boop (nose)",
+ "Stroke (hair)",
+ "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
+
+ var/list/targets = list()
+ for(var/mob/living/carbon/human/M in mob_list)
+ if(M.z != src.z || get_dist(src,M) > 1)
+ continue
+ if(src == M)
+ continue
+ targets |= M
+
+ if(!targets)
+ to_chat(src, "There is nobody next to you.")
+ return
+ var/mob/living/carbon/human/chosen_target = tgui_input_list(src, "Who do you wish to take energy from?", "Make contact", targets)
+ if(!chosen_target)
+ return
+
+ var/contact_type = tgui_input_list(src, "How do you wish to make contact with \the [chosen_target]?", "Contact type", contact_options)
+ if(!contact_type)
+ return
+
+ var/custom_text
+ if(contact_type == "Custom")
+ custom_text = tgui_input_text(src, "Write a description of how you make contact with \the [chosen_target], from a third person perspective.", "Custom contact")
+
+ var/accepted = tgui_alert(chosen_target, "Do you accept the [contact_type] physical contact from \the [src]?", "Actions", list("Yes", "No"))
+ if(get_dist(src,chosen_target) > 1)
+ to_chat(src, "You need to be standing next to [chosen_target].")
+ return
+ if(accepted == "No")
+ to_chat(src, "\The [chosen_target] refuses the contact.")
+ return
+ if(accepted == "Yes")
+ if(contact_type == "Kiss (lips)")
+ src.visible_message("\The [src] presses their lips up against [chosen_target]'s own.")
+ if(contact_type == "Kiss (neck)")
+ src.visible_message("\The [src] presses their lips up against [chosen_target]'s neck.")
+ if(contact_type == "Bite (neck)")
+ src.visible_message("\The [src] bites down on [chosen_target]'s neck.")
+ if(contact_type == "Bite (wrist)")
+ src.visible_message("\The [src] bites down on [chosen_target]'s wrist.")
+ if(contact_type == "Hold Hand")
+ src.visible_message("\The [src] takes [chosen_target]'s hand into their own.")
+ if(contact_type == "Embrace")
+ src.visible_message("\The [src] embraces [chosen_target].")
+ if(contact_type == "Stroke (hair)")
+ src.visible_message("\The [src] runs their hand through [chosen_target]'s hair.")
+ if(contact_type == "Boop (nose)")
+ src.visible_message("\The [src] boops [chosen_target] on the nose.")
+ if(contact_type == "Custom")
+ src.visible_message("[custom_text]")
+ if(!do_after(src, 10 SECONDS, chosen_target, exclusive = TASK_USER_EXCLUSIVE))
+ return
+ 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
+ nutrition += (chosen_target.nutrition / 2)
+ to_chat(src, "You feel revitalised.")
+ chosen_target.tiredness += 70
+ chosen_target.nutrition = max((chosen_target.nutrition / 2),75)
+ chosen_target.remove_blood(40) //removes enough blood to make them feel a bit woozy, mostly just for flavour
+ chosen_target.eye_blurry += 20
+ to_chat(chosen_target, "You feel considerably weakened for the moment.")
+
+/mob/living/carbon/human/proc/lleill_alchemy()
+ set name = "Alchemy (25)"
+ set desc = "Convert a potion material into a potion without the use of a base or alembic."
+ set category = "Abilities"
+
+ 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)
+ to_chat(src, "You do not have enough energy to do that!")
+ return
+
+ if(stat)
+ to_chat(src, "You can't go do that when weakened like this.")
+ return
+
+ var/obj/item/weapon/potion_material/I = get_active_hand()
+ if(!I)
+ to_chat(src, "You have no item in your active hand.")
+ return
+
+ if(!istype(I))
+ to_chat(src, "\The [I] is not a potion material.")
+ return
+ var/obj/item/weapon/reagent_containers/glass/bottle/potion/transmute_product = I.product_potion
+
+ if(!get_active_hand(I))
+ to_chat(src, "The item is no longer in your hands.")
+ return
+ else
+ visible_message("\The [src] begins to change the form of \the [I].")
+ if(!do_after(usr, 10 SECONDS, I, exclusive = TASK_USER_EXCLUSIVE))
+ visible_message("\The [src] leaves \the [I] in its original form.")
+ return 0
+ visible_message("\The [src] transmutes \the [I] into \the [transmute_product.name].")
+ drop_item(I)
+ qdel(I)
+ var/spawnloc = get_turf(usr)
+ var/obj/item/N = new transmute_product(spawnloc)
+ put_in_active_hand(N)
+ LL.lleill_energy -= energy_cost
diff --git a/code/modules/mob/living/carbon/human/species/lleill/lleill_items.dm b/code/modules/mob/living/carbon/human/species/lleill/lleill_items.dm
index 8b724fe8b6b..2a1603e8b88 100644
--- a/code/modules/mob/living/carbon/human/species/lleill/lleill_items.dm
+++ b/code/modules/mob/living/carbon/human/species/lleill/lleill_items.dm
@@ -139,6 +139,8 @@
return
var/mob/living/carbon/human/chosen_target = tgui_input_list(user, "Which target do you wish to create a homunculus of?", "homunculus", targets)
+ if(!chosen_target)
+ return
var/spawnloc = get_turf(user)
var/mob/living/simple_mob/homunculus/H = new(spawnloc)
@@ -175,6 +177,43 @@
icon = 'icons/obj/glamour.dmi'
icon_state = "translator"
+/obj/item/device/universal_translator/glamour/hear_talk(mob/M, list/message_pieces, verb)
+ if(!listening || !istype(M))
+ return
+
+ //Show the "I heard something" animation.
+ if(mult_icons)
+ flick("[initial(icon_state)]2",src)
+
+ //Handheld or pocket only.
+ if(!isliving(loc))
+ return
+
+ var/mob/living/L = loc
+ if(visual && ((L.sdisabilities & BLIND) || L.eye_blind))
+ return
+ if(audio && ((L.sdisabilities & DEAF) || L.ear_deaf))
+ return
+
+ // Using two for loops kinda sucks, but I think it's more efficient
+ // to shortcut past string building if we're just going to discard the string
+ // anyways.
+ if(user_understands(M, L, message_pieces))
+ return
+
+ var/new_message = ""
+
+ for(var/datum/multilingual_say_piece/S in message_pieces)
+ if(S.speaking.flags & NONVERBAL)
+ continue
+
+ new_message += (S.message + " ")
+
+ if(!L.say_understands(null, langset))
+ new_message = langset.scramble(new_message)
+
+ to_chat(L, "[src] translates, \"[new_message]\"")
+
//Teleporter ring
/obj/structure/glamour_ring
@@ -194,5 +233,58 @@
area_name = A.name
name = "[area_name] glamour ring"
+/obj/structure/glamour_ring/attack_hand(mob/living/M as mob)
+
+ var/mob/living/carbon/human/L = connected_mob
+ var/datum/species/lleill/LL = L.species
+
+ var/m_action
+ if(M == L)
+ m_action= tgui_alert(M, "Do you want to destroy the ring, or restore energy?", "Destroy ring", list("Yes", "No", "Restore Energy"))
+ else
+ m_action= tgui_alert(M, "Do you want to destroy the ring, the owner of it may be aware that you have done this?", "Destroy ring", list("Yes", "No"))
+
+ if(m_action == "No")
+ return
+
+ if(m_action == "Yes")
+ to_chat(M, "You begin to break the lines of the glamour ring.")
+ if(!do_after(M, 10 SECONDS, src, exclusive = TASK_USER_EXCLUSIVE))
+ to_chat(M, "You leave the glamour ring alone.")
+ return
+ to_chat(M, "You have destroyed \the [src].")
+ src.visible_message("\The [M] has broken apart \the [src].")
+ if(M != connected_mob && connected_mob)
+ to_chat(connected_mob, "\The [src] has been destroyed by \the [M].")
+ if(istype(LL))
+ L.teleporters -= src
+ qdel(src)
+
+ if(m_action == "Restore Energy")
+ if(LL.ring_cooldown + 10 MINUTES > world.time)
+ to_chat(M, "You must wait a while before drawing energy from the glamour again.")
+ return
+ if(!do_after(M, 10 SECONDS, src, exclusive = TASK_USER_EXCLUSIVE))
+ to_chat(M, "You stop drawing energy.")
+ return
+ LL.lleill_energy = min((LL.lleill_energy + 75),LL.lleill_energy_max)
+
+//Glamour Helm
+
+/obj/item/clothing/mask/gas/glamour
+ desc = "A bubble-like helmet of glamour that can protect your face from the atmosphere, or lack thereof, outside."
+ name = "glamour bubble"
+ icon = 'icons/obj/glamour.dmi'
+ icon_state = "bubble"
+ item_flags = BLOCK_GAS_SMOKE_EFFECT | AIRTIGHT | ALLOW_SURVIVALFOOD | INFINITE_AIR
+
+//Glamour Pockets
+
+/obj/item/clothing/under/permit/glamour
+ name = "pocket of glamour"
+ desc = "A small crystal of glamour that is capable of storing small items inside of it."
+ icon = 'icons/obj/glamour.dmi'
+ icon_state = "pocket"
+
//Glamour Floor
//Glamour Wall
\ No newline at end of file
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 d2932c0b258..afb8652050a 100644
--- a/code/modules/mob/new_player/sprite_accessories_ear_vr.dm
+++ b/code/modules/mob/new_player/sprite_accessories_ear_vr.dm
@@ -40,6 +40,15 @@
extra_overlay = "lleill-antlers"
species_allowed = list(SPECIES_LLEILL)
+/datum/sprite_accessory/ears/lleill/curled
+ name = "Lleill Ears Curled, colorable"
+ icon_state = "lleill2"
+ extra_overlay = "lleill2-antlers"
+
+/datum/sprite_accessory/ears/lleill/tall
+ name = "Lleill Ears Tall, colorable"
+ icon_state = "lleill3"
+ extra_overlay = "lleill3-antlers"
// Ears avaliable to anyone
diff --git a/code/modules/mob/new_player/sprite_accessories_tail.dm b/code/modules/mob/new_player/sprite_accessories_tail.dm
index b1f6a930a73..fd9ad113829 100644
--- a/code/modules/mob/new_player/sprite_accessories_tail.dm
+++ b/code/modules/mob/new_player/sprite_accessories_tail.dm
@@ -1067,3 +1067,13 @@
do_colouration = 1
color_blend_mode = ICON_MULTIPLY
extra_overlay = "tail_marking"
+
+/datum/sprite_accessory/tail/lleill/large
+ name = "Lleill tail, Large"
+ icon_state = "tail2"
+ extra_overlay = "tail2_marking"
+
+/datum/sprite_accessory/tail/lleill/small
+ name = "Lleill tail, Small"
+ icon_state = "tail3"
+ extra_overlay = "tail3_marking"
diff --git a/code/modules/reagents/machinery/alembic.dm b/code/modules/reagents/machinery/alembic.dm
index 99f38aa049c..78e9c7feb6a 100644
--- a/code/modules/reagents/machinery/alembic.dm
+++ b/code/modules/reagents/machinery/alembic.dm
@@ -292,7 +292,7 @@
product_potion = /obj/item/weapon/reagent_containers/glass/bottle/potion/truepolymorph
/obj/item/weapon/potion_material/glamour_shard
- name = "glamour_shard"
+ name = "glamour shard"
desc = "A shard of hardened white crystal that seems to change shapes as you hold it."
icon = 'icons/obj/chemical_potionreagents.dmi'
icon_state = "glamour_shard"
diff --git a/icons/inventory/face/mob.dmi b/icons/inventory/face/mob.dmi
index 25b3466e07b6c30f202322961403e01755b42320..98a73bc7888a0644d5160c1e4fcb961aa2de7098 100644
GIT binary patch
delta 6831
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
delta 6619
zcmYkA2RIzt`^U9J*-H{+7qAji1Y
z@d3=U#~rPuFP_Jo!B~d`&<}((f9~%c^#`-F6W~Df4DX?@`@v3bPa$;g)@4;&(GekDfj&=>A6^bu5Z1)uWjDXQ=4!1
zSonA;yD)KMu`U3tm
zuVi6|{ta(rhNHTr&trm9|ERDpMkZ?&$GTMTjFhvd+Kw(?UEwT>3#fd4I3;)naIyX?
za?S(!5Va>3C*)B{{@0&9$$Y3TRp&CLtC3!p
z-ahP@kbNZp*(i*;_@QPb-pZR?)cD)-WwBkC)7ed@iD4<$SPA#Tla;b(M(Aj&gRsb$
z^SQ4I=Szy-MB>you_<4ky1QLwa6CcjcLmQa=Tnk>h!b)IAt6e1Zl`%;$LTveY1`+$
z#m21o;^+@?2rq}A$GMKy-~*PqV)yzXAJW6l)Qm`uB%ti~@-e{${@fVNP9MRiHm3))
zlKM}exTZe7CK{2B9~(9ZjM4GXEcevBQJycbqDK4c`i5p`!J)RW{1MNY#zXFHr=MIB
z;Mg$}w2tQgZqGrFdlI#&Mi>dLk>sqtr8{hHCtB(jq!_(AHuv#Rea@Yvb4gZzN-0v{qS#HW*slKimJo?}xBNN8yBkbTGKF9m{G-m&}LQ8#rN%glv=ie4o?{A^t<%*VD$oXgw
z#e&`E3&Jpzj|o_^#q2kL#o8<7^RdvEH5e(4z!@L4jNx?7)944Q;A&Wng`M3v^2-lI
z2gL>5xQ-b9bZ03;R0EN8fy59X%nQ^gOqVm`?csw>gwQFGBrmWKKhv|^OP=#yi+u6c
zp2Vw5YU*xW&ro6Hu3O!3+p+&`2!#6kZkf)Uqk&l)u>CNchG(+0@VxJTY^h*@>|mQ2
zyVi%Wn`~@;Zti^ZUwkYij_<8MI8#o9-L%5jA^*I)7e3eV$S|l>#}80GxwwTOEK*gb
z(y0z`=m04^J
zt8X#)<0NJ+navT01ettIAk^De;wmLeCL?P#OqWcjJ}fLaBHjq_$FS7umDARjojI9d
z&SWP3Wtk2qTR`!p8JS0%{5H~qO>EJOiN?tR|Bmx6D%
zT`i>;T!CyhUyC~B#S;zCS?i};`lq70T1-Fb{&(CyX{_mQ)gFS%ykK4
zZe>4feHpn|8z8q$oP4}QJBJ_Tbd63e~UNN&~}2ZgwiwPfnoX)TY4Q!o0ZL>mHwYN7E|kkv1)83v+U2^-MO
z1%Gh#eXfSq{y3_Ia@o-CYkz8tw018WpRGHWC<1sA9TVMrkc4mhE4P%0WrUw
zF88va_XpvY4R0~7-GZ0zEv6k|j&j-(xg86@N|?WorKC%(r=Alv@l6UYLZ_Cs08sCW
z?cb~4uIbI~5wh+Uv_Ai(LQ#FzQM1rtg0D$+Be-A?Bb;wPcoJTzsa~15p(_R;7kP-T
z3BKCj<{Lu&G9*8W_-9E9dT4*$`7AF&FQ~nNlxP4w6JQ9Zif|<6c5?I57xabqyV_TYUF3M9N;zi;&}@-O=Fu|1tuO}lVUUUlNCFz>4gC&@WakIF$V`glVx>Ei<@34w0TuKItrB;GBI#HQA|3A@mO9k9mLwu7Y)utdAKnNgmIX+M&zYH2VTPD9
zc2Dyy+Uwx)W5S4&;k|3(G9rocb+=0;D?Yx%-DO%Tz;)Wf|c5f@K!UlX#4GCd7EeXO~)SCMf=yo5Qop9-qjBf{(XgF0%8!0DHywWL;bxNq}yv(%rjncP#~Wk}y%
zhuJVB%iaTRF7*U(e`KPkW%|J|Az#%nQ>KUOYXWFuLaTbF9yY?n|Iq9xFjAI<3=*=g
zBjSsra~mg3#3f#<#rFg^cm_~P4(gj#mZ?|l+vf<+dXfG?#IgAWC{HZR!Yn!U#-M_l
zr^46{mVqwS@uPT$z&fklZc5PXybG}Z-EIR!{{)UzaDtq?RP1A_In~vT=r}eMl{Yi`
z=)>{|A;;oY==D-3-Jl3scJCP{M~~}}lKY9VRT(-p`Mg1m9R+mim{d5KLn#4?sT9Jv
z_S0dfR}__J*C;>z4Jtk&FTq`_p)8U|!%4poj!8n!z~>^p``ZAp^O?Nwl2F?GRJxf&
z!uGBsJ}e^y&1e-@)GMQym-HL7q4F-O-TlK_k5-}kJx;Pu{~
z3V>}EMkO1(H(7GNSFl-HE&A>@=UVO7tuGHDkt-nmm$d0<2TL!=Mji6mB&MkjCL0;g
z_y9*Q|fhR;B}Mv^F$xDXJC@)_QWBMYeJe
z88gOhB_+r5V)jjyWU68VyiBE|)Js~-`nc}V>vOnJt8d$=lM35#G?{)uVtiu3U{DWe
zb;hG+LaJu;Ti<}_;igkZ_gE9-2|m&tqAIk5gTSTx7h&3DfnfsI7j@)u)nEfOM+5I`f2A$0B%@)0}%dut{R}>q__dt%hhen
zXty$Vgej6Kfzfk<@WXT49+!BGo82!{5>%wRXw0Xp+T$|@mb3-(;D?>Ue`cyotoaWT
z^j+0c9@QpW|p_edFHfMJCoe{3Cc-9pL#
z&>m|IsDt3guM;>d$@qf;THRU!s9H`F3BUV7wY!s{wTQ$||4yMZYwdY-nyFJTgPo0<
z`>eKi-@qm0n14KCoNsCWzO1ewgCC>wB7Euok4kK0JJcgBcdz
z2ulA8WA|{}%I{L=w8CIIrzzS2w^s2y+PcSe1cMi;kIx15chnt4Nzq#J*u1^DXRedL
z7t$SQ^+a#S^zZUF=1e7h6JDS2jvN5Z;_JYSg-TgzD*Z3w@_h{KRcwvDGkARwe8CBU
z9dwLl$ZH)C*>A-xAI&JtKJhQ0{XeW71%_RE!QG;Kvn%^X^)PQ(ysNzQTXA+7P`wa}
zESq;Y_o{UoD-T|mxx=YuA#M%X*sdj^IZ~&QUf?|ALw@4vt8eL?7y%y)z?tgn*Y6Rs
zJEH-yX>jH6f;_etU9#qemGqKTFC$XSyvVNkulKaVSK<$P+&%kJiW(Rq11yhZJss7?
z23{pbDK7M=iANQ^-R(KID$+N)KdL_HfQe8NZiKUPYLgjS*3x2cVq)_6+9`C&y_V{n
z9APXon;W9K>HV9HjW%e3)J`dQ{8ioA+1b5yvMGdFlT98NSn~D8V3Os>*}y+f9Zi1n
zWRb=v0YP2!s{Jw$92#2bbiT@5*7Mda-BQc0{a4fP#H~^&6i@2Xh_|O_n&i)Ws$%M)
z#=vt>0f#>#Ax3Yi51hRYx4f8>DS5ZvUQ8q0+^mV|T1AePcpla5<>O;5$!~En$68M>
z)&)tmVW#Hce)g!L!q?7tEE6!@Kks$B*UM%1%
zBSMoce#|`7)DoML;w}Xr`uL)8++*SJ!svIFYSg`}cDwcj!Lin;mLM~IOyzrW0IrWV
z4!qxOJ!<>g6E-%U8}Mto)>{%9!w6Yl+_Ep$duL9nRZ0@!KRbLGRGwRI~Y3PdU%#&Yfb^
z6?*0+4UKBxv&Jla8JK!b?MqJ}ww3q&6sHxVPKn#$%+0CbcsY?8{3*R;#veF>ddaG>
zUupGz+*ZR#AgrpB1J|Cg5>N4}kRX7QtdPngKweM%6y{2yzVm@_(8FqoDKva;p^tN;if0bk*DuMMB^%=woDi3<4V;VbMPexgGUve&w4}2PP#n+ksY-7u-a5l
zz0D_*XU5P++&C72gW4qXCfoRy*JSq36CiKbr7SktmZD&y!I%SxADnRd1$MPGWp6mL
zeK6L|XuMls+_(c9(%&aYsbbj^=|pIyy?lK~hKDmN%VMmotZ-&C#_O`jlDz#w$sDp-
zhL5io%Vil7t_DnGz&%KVrH?<}MweVWb@VgWS1vqoyRJMw{s56Ptr@JlQO(aLrIKlC
zVgh{_2n6C6&pA3eLLbkdAs>HYT-KR}oS3NP^JmX`Mn_N5Siqh2qYEkOYhOD$VxZu$
zv9Z5`KYjYt+{`RhQYBnTS=l=@l;CiP_38WRzRjOKS*B%Da41{ScnWz?Fc=I_L+&;F
zdi7v6XPy|es3G^kgVj`E_ET~ekLT}9{A`N4K;ktyO@mTP+m~P6Io2?a=d-DO>f{?d
z9bv5KBr7px6ItYP|MV;V!zS1pXJ6i~^E}5e^!r*}mE?(H4Ncy#TflMqU~WOFkW!LF
zP}FwC{a|Y^@2@^Wj>OCZkcc*Y`BqS=|I50S-@x~Zs;Wf=LY^UFv@|VJ`$-q?6IrC#0MKZK(ld+7z_h6lz$S86}7wBn@O^;ht}lyug))w;L07g9`4
z;4owo(9gCk0J@T!n>z?;451nJzyYXg(Cm<-O{!?cs=PJ0f^XAyGW0?k$a<%M^#$;dMq3db>#PYH-{rdWP
z$d>la>E}HtqNb*%$RB^~3u{@CXIMvVl#D?cX=%Bkez%Jx)0lH45^3OVEH@NYo!njw8Md{YO$6_^+mZh248uxer?%&P
zSAga1>af=5eb&;in~q29U~?--XOhi~J-s8l9o91^d6pT`_8}qZ-L=;=YOZOx@VrD_
zoY6j->iX*8$2eE7blA=J#t+)ih>#Z=o)CYEcX?ik8us4F(#rqeT^-g-!0;b<8V!}C
zMuLwdcX1M1bwVP?0eEX$vlUdhY~QE;0u;SX<3+kZLgIA`YpQEcXU|{S-2KNw{)6${
zn254esIH&|KJV`keH$JwsjIsH-$ZK9`$iGe(8C16OQ<6KgL48&AOE{Ml-fCapF%V)
z{IU;DjY{lWrV@PO8nW>FlPn);;C_`|En((;!Y>BX)}UpchBp&YZ7E{v?n(>;A(|_C
zkQDsiC+c#$n8q?HFx53#clOz7O|PD)pRNlO`_hQFEdnb!UIpJe#2VSLvgKGGb;JuA
z>?l>zX2!MR7Fiy4)>>XXk;GaRF6J!mjxEPmfQVB|Tb~8?x0fK4_vmTz?XEM)}U?wQn7RDM@0iQSkILj1FFfiqk^@$_F*3deFrf%uHNLSaCmo||xe
zCw+2Zjki#@2&{RvO^hozais9D8YTRkE6(W`bs^VMaVrP^-og?jux396jKFSo<#&%C
z!t0JwE;hf|6g<0a+Hs`SJp}pdNqRBm(Fc;Sf5TD1J|qG`@^Y?kZL5JiHv2;$$!qH{NAxHY!3t{gn1%)_Iuns0Lyrk
ztq8m-uhm_ORGT%hbauYBwRIOhxURyDsF`Wis;BNJd3I&ULVxp>-K)CLO(J0ssy!7|
zNwP;%moeH=voA!l9Yudlca;4b^hc%c>En+tHsc>Ot_ubu;SS9n*gFrJ=MHWVf*sJ8
ze@0C5%}2O;^X?Cb>8U!i*1GB0G0$6sGSk#vredLSDH@FDwaYi4aX}TWN!WvR`CK0R
zy=PvPI~FG3Rc{PI@w!(Y<^k*w6x#DhaE`{wVDG^rf$>F1aF9q$KH^&oE
w?)@!THnv-D&wS08!YKUDdhD;u(PJ!ayM9^l%&ke&{ci9-O|R8lz4_q(00v>hivR!s
diff --git a/icons/inventory/face/mob_vr.dmi b/icons/inventory/face/mob_vr.dmi
index 6596062c57fa646829d03712b95a9652fcee813e..f15317e9d5f33c25c8922ee0474afb5c159d2324 100644
GIT binary patch
delta 9836
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
M`|hn$HQQ(Z4WbDt?*IS*
diff --git a/icons/mob/species/lleill/tail.dmi b/icons/mob/species/lleill/tail.dmi
index 3ff900389045ac7e9a9187b9f20ae31127a82996..d534d35fec31d702db03d5ebb43a298ff7f1bdab 100644
GIT binary patch
delta 542
zcmV+(0^$9O1EmEaiBL{Q4GJ0x0000DNk~Le0001>0001>1Oos70D0kh9+4p~0f3QE
zX@5?XVk6>Ikz}SZajFQJsjT4Y=K>BY0F~ia(MlCWt^fc5wMj%lRA_#%XLP`dgus-0TFG
z4Nk_|FEg3Q<$Yw2ts<`n0000$HCwmcSEO?FE1W|(^oZ0fU4i&wN#s5}d#_96183=*
z+I*+up8I9synq@XY^Tdl;3#9}ib+O=4;F!v%jZEKyszqJj;$gS%=qvJzwD!e3V#3q
z0MuabFPl!w<~-ZP&S6I)v1wuy!ioV|c;;}?)#DttoWDKk#+dk_^}NNr-a6fyHu`SJ
zdxV+u#s@BT7{_mI>`d0rRY#ytb2af|xSItEOXs?fJVhG$Vx
zPtga}$4HcF%?Hc+qdvIr^M?-t0B-;QpuoNK!Qy5n-}~>jVg8Oix7N)(P44Q^^34Cc
zbWPltEJ4kRl_R#KFYPHb_&cyDUQ?=t9Fe}{vK2}N00000P{-o`_Ts>C!WGK8mbc3X
g*VyNS0Q^_J0MLFjpLKVH0{{R307*qoM6N<$f(~2(4FCWD
delta 258
zcmV+d0sa1^1&aeAiBL{Q4GJ0x0000DNk~Le0001B0001B1Oos701&on3y~o%0d$d2
zX@8DOv9f}zp9|Ot02zfROUvS{#sB~Sr%6OXR9J=WmrD-AAPhufi31do3#2_kLJyEA
zbN@3{>Vi;Y^I25NV&2Li8v~0Od720zf5kt>lH|3v^X0juIKI%s
zPXW%DuiuJ?j*(z=g4q4M+*S+PNi6X_k5=D
zCAz0%8ej2?zAMl#2q9z)r%SW3ZO;d$U+D8e#V>60q{iQu57H(M@o}x~B>(^b07*qo
IM6N<$f>sA;xc~qF
diff --git a/icons/mob/vore/ears_32x64.dmi b/icons/mob/vore/ears_32x64.dmi
index 1e73072d946722c3cc3121bb51b93a6715dcd651..97165c67d1235b4715d79a220fa11c9d897956d8 100644
GIT binary patch
literal 12784
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
z