mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-28 14:37:27 +01:00
Hanner Whitelist Species
Added a new whitelist species, the Hanner. These are the half-offspring of Lleill and share a small number of their abilities. Notably, they are shapeshifters, can drain energy from consenting people, can do basic alchemy and can transform into beasts. Added the beast form ability to Lleill and Hanner, allowing them to turn into a small selection of simple mobs. Changed lleill_energy and lleill_energy_max to be a base species variable rather than lleill species, allowing those abilities to be granted to other characters by GMs. Added a small chance of finding potion materials in maint loot (pretty rare), to allow a little more consistent use of the alchemy ability for lleill, rather than relying on redgates alone.
This commit is contained in:
@@ -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)
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -15,25 +15,19 @@
|
||||
|
||||
var/energy_cost = 75
|
||||
|
||||
var/datum/species/lleill/LL = species
|
||||
|
||||
if(!istype(LL))
|
||||
to_chat(src, "<span class='warning'>Only a lleill can use that!</span>")
|
||||
return
|
||||
|
||||
if(stat)
|
||||
to_chat(src, "<span class='warning'>You can't go invisible when weakened like this.</span>")
|
||||
return
|
||||
|
||||
if(!cloaked)
|
||||
if(LL.lleill_energy < energy_cost)
|
||||
if(species.lleill_energy < energy_cost)
|
||||
to_chat(src, "<span class='warning'>You do not have enough energy to do that!</span>")
|
||||
return
|
||||
cloak()
|
||||
block_hud = 1
|
||||
hud_updateflag = 1
|
||||
to_chat(src, "<span class='warning'>Your fur shimmers and shifts around you, hiding you from the naked eye.</span>")
|
||||
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, "<span class='warning'>Only a lleill can use that!</span>")
|
||||
return
|
||||
|
||||
if(LL.lleill_energy < energy_cost)
|
||||
if(species.lleill_energy < energy_cost)
|
||||
to_chat(src, "<span class='warning'>You do not have enough energy to do that!</span>")
|
||||
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, "<span class='warning'>Only a lleill can use that!</span>")
|
||||
return
|
||||
if(stat)
|
||||
to_chat(src, "<span class='warning'>You can't go do that when weakened like this.</span>")
|
||||
return
|
||||
if(buckled)
|
||||
to_chat(src,"<span class='warning'>You can't do that when restrained.</span>")
|
||||
|
||||
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, "<span class='warning'>You do not have enough energy to do that!</span>")
|
||||
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, "<span class='warning'>You do not have enough energy to do that!</span>")
|
||||
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, "<span class='warning'>Only a lleill can use that!</span>")
|
||||
return
|
||||
if(stat)
|
||||
to_chat(src, "<span class='warning'>You can't go do that when weakened like this.</span>")
|
||||
return
|
||||
@@ -313,7 +292,7 @@
|
||||
else
|
||||
src.visible_message("<b>\The [src]</b> and \the [chosen_target] break contact before energy has been transferred.")
|
||||
src.visible_message("<b>\The [src]</b> 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, "<span class='warning'>You feel revitalised.</span>")
|
||||
chosen_target.tiredness += 70
|
||||
@@ -329,13 +308,8 @@
|
||||
|
||||
var/energy_cost = 25
|
||||
|
||||
var/datum/species/lleill/LL = species
|
||||
|
||||
if(!istype(LL))
|
||||
to_chat(src, "<span class='warning'>Only a lleill can use that!</span>")
|
||||
return
|
||||
|
||||
if(LL.lleill_energy < energy_cost)
|
||||
if(species.lleill_energy < energy_cost)
|
||||
to_chat(src, "<span class='warning'>You do not have enough energy to do that!</span>")
|
||||
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, "<span class='warning'>You do not have enough energy to do that!</span>")
|
||||
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, "<span class='warning'>You do not have enough energy to do that!</span>")
|
||||
return
|
||||
|
||||
var/mob/living/M = src
|
||||
log_debug("polymorph start")
|
||||
if(!istype(M))
|
||||
log_debug("polymorph istype")
|
||||
return
|
||||
|
||||
visible_message("<b>\The [src]</b> begins significantly shifting their form.")
|
||||
if(!do_after(src, 10 SECONDS, src, exclusive = TASK_USER_EXCLUSIVE))
|
||||
visible_message("<b>\The [src]</b> 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("<b>\The [src]</b> 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("<b>\The [src]</b> begins significantly shifting their form.")
|
||||
if(!do_after(src, 10 SECONDS, src, exclusive = TASK_USER_EXCLUSIVE))
|
||||
visible_message("<b>\The [src]</b> ceases shifting their form.")
|
||||
return 0
|
||||
visible_message("<b>\The [src]</b> has reverted to their original form.")
|
||||
revert_mob_tf()
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user