mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
vox tails, except no wag emote and no code supporting tailwags (#36032)
* mob part bitflags in proper format, added tail part bitflag, hidetail clothing cover flag, reordered tail layer, added tail_underlimbs_layer for overlapping tails, limbs_layer for limbs placed under, tail_wagging + has_icon_skin_tone + tail_overlapped species anatomical flags, mutable_appearance() helper, made many suits cover tail, added tail wagging emote for species that can wag, made a species folder for species files, rewrote update_tail_showing(), character preview can show tails, vox tails are now separate from the body instead of being baked into the chest, vox tails will show slightly in north dir instead of being invisible * added color defines, undid bitfield format change, wag emote is shorter and doesnt show text on stopping wag, vox tails have their own file and have better names, removed icon manipulation from tail updating, species can have own tail icon, made vox tail north sprites full/complete sprites * remove the ability to wag tail --------- Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com> Co-authored-by: nervere <sage@lulz>
This commit is contained in:
@@ -42,7 +42,8 @@ var/global/list/playable_species = list("Human")
|
||||
var/eyes = "eyes_s" // Icon for eyes.
|
||||
|
||||
var/primitive // Lesser form, if any (ie. monkey for humans)
|
||||
var/tail // Name of tail image in species effects icon file.
|
||||
var/tail // Name of tail icon state
|
||||
var/tail_icon = 'icons/effects/species.dmi'
|
||||
var/list/known_languages = list(LANGUAGE_GALACTIC_COMMON) // Languages that this species innately knows.
|
||||
var/default_language = LANGUAGE_GALACTIC_COMMON // Default language is used when 'say' is used without modifiers.
|
||||
var/attack_verb = "punches" // Empty hand hurt intent verb.
|
||||
@@ -467,55 +468,6 @@ var/global/list/playable_species = list("Human")
|
||||
H.drop_all()
|
||||
qdel(src)
|
||||
|
||||
|
||||
/datum/species/skellington/skelevox // Science never goes too far, it's the public that's too conservative
|
||||
name = "Skeletal Vox"
|
||||
icobase = 'icons/mob/human_races/vox/r_voxboney.dmi'
|
||||
deform = 'icons/mob/human_races/vox/r_voxboney.dmi' //Do bones deform noticeably?
|
||||
known_languages = list(LANGUAGE_VOX, LANGUAGE_CLATTER)
|
||||
|
||||
survival_gear = /obj/item/weapon/storage/box/survival/vox
|
||||
|
||||
primitive = /mob/living/carbon/monkey/vox/skeletal
|
||||
|
||||
warning_low_pressure = 50
|
||||
hazard_low_pressure = 0
|
||||
|
||||
cold_level_1 = 80
|
||||
cold_level_2 = 50
|
||||
cold_level_3 = 0
|
||||
|
||||
eyes = "vox_eyes_s"
|
||||
|
||||
default_mutations = list(M_BEAK, M_TALONS)
|
||||
|
||||
footprint_type = /obj/effect/decal/cleanable/blood/tracks/footprints/vox
|
||||
|
||||
uniform_icons = 'icons/mob/species/vox/uniform.dmi'
|
||||
// fat_uniform_icons = 'icons/mob/uniform_fat.dmi'
|
||||
gloves_icons = 'icons/mob/species/vox/gloves.dmi'
|
||||
glasses_icons = 'icons/mob/species/vox/eyes.dmi'
|
||||
// ears_icons = 'icons/mob/ears.dmi'
|
||||
shoes_icons = 'icons/mob/species/vox/shoes.dmi'
|
||||
head_icons = 'icons/mob/species/vox/head.dmi'
|
||||
// belt_icons = 'icons/mob/belt.dmi'
|
||||
wear_suit_icons = 'icons/mob/species/vox/suit.dmi'
|
||||
wear_mask_icons = 'icons/mob/species/vox/masks.dmi'
|
||||
// back_icons = 'icons/mob/back.dmi'
|
||||
|
||||
has_organ = list(
|
||||
"brain" = /datum/organ/internal/brain,
|
||||
"eyes" = /datum/organ/internal/eyes/vox
|
||||
)
|
||||
|
||||
/datum/species/skellington/skelevox/makeName(var/gender,var/mob/living/carbon/human/H=null)
|
||||
var/sounds = rand(3,8)
|
||||
var/newname = ""
|
||||
|
||||
for(var/i = 1 to sounds)
|
||||
newname += pick(vox_name_syllables)
|
||||
return capitalize(newname)
|
||||
|
||||
/datum/species/tajaran
|
||||
name = "Tajaran"
|
||||
icobase = 'icons/mob/human_races/r_tajaran.dmi'
|
||||
@@ -610,7 +562,7 @@ var/global/list/playable_species = list("Human")
|
||||
primitive = /mob/living/carbon/monkey/grey
|
||||
|
||||
flags = PLAYABLE | WHITELISTED
|
||||
anatomy_flags = HAS_LIPS | HAS_SWEAT_GLANDS | ACID4WATER
|
||||
anatomy_flags = HAS_LIPS | HAS_SWEAT_GLANDS | ACID4WATER | HAS_ICON_SKIN_TONE
|
||||
|
||||
spells = list(/spell/targeted/telepathy)
|
||||
|
||||
@@ -736,114 +688,6 @@ var/global/list/playable_species = list("Human")
|
||||
head_icons = 'icons/mob/species/skrell/head.dmi'
|
||||
wear_suit_icons = 'icons/mob/species/skrell/suit.dmi'
|
||||
|
||||
/datum/species/vox
|
||||
name = "Vox"
|
||||
icobase = 'icons/mob/human_races/vox/r_vox.dmi'
|
||||
deform = 'icons/mob/human_races/vox/r_def_vox.dmi'
|
||||
known_languages = list(LANGUAGE_VOX)
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/rawchicken/vox
|
||||
tacklePower = 40
|
||||
anatomy_flags = HAS_SWEAT_GLANDS
|
||||
|
||||
survival_gear = /obj/item/weapon/storage/box/survival/vox
|
||||
|
||||
primitive = /mob/living/carbon/monkey/vox
|
||||
|
||||
cold_level_1 = 80
|
||||
cold_level_2 = 50
|
||||
cold_level_3 = 0
|
||||
|
||||
eyes = "vox_eyes_s"
|
||||
breath_type = GAS_NITROGEN
|
||||
|
||||
default_mutations = list(M_BEAK, M_TALONS)
|
||||
flags = PLAYABLE | WHITELISTED
|
||||
|
||||
blood_color = VOX_BLOOD
|
||||
flesh_color = "#808D11"
|
||||
max_skin_tone = 6
|
||||
|
||||
footprint_type = /obj/effect/decal/cleanable/blood/tracks/footprints/vox //Bird claws
|
||||
|
||||
uniform_icons = 'icons/mob/species/vox/uniform.dmi'
|
||||
// fat_uniform_icons = 'icons/mob/uniform_fat.dmi'
|
||||
gloves_icons = 'icons/mob/species/vox/gloves.dmi'
|
||||
glasses_icons = 'icons/mob/species/vox/eyes.dmi'
|
||||
// ears_icons = 'icons/mob/ears.dmi'
|
||||
shoes_icons = 'icons/mob/species/vox/shoes.dmi'
|
||||
head_icons = 'icons/mob/species/vox/head.dmi'
|
||||
// belt_icons = 'icons/mob/belt.dmi'
|
||||
wear_suit_icons = 'icons/mob/species/vox/suit.dmi'
|
||||
wear_mask_icons = 'icons/mob/species/vox/masks.dmi'
|
||||
back_icons = 'icons/mob/species/vox/back.dmi'
|
||||
|
||||
has_mutant_race = 0
|
||||
has_organ = list(
|
||||
"heart" = /datum/organ/internal/heart/vox,
|
||||
"lungs" = /datum/organ/internal/lungs/vox,
|
||||
"liver" = /datum/organ/internal/liver,
|
||||
"kidneys" = /datum/organ/internal/kidney,
|
||||
"brain" = /datum/organ/internal/brain,
|
||||
"appendix" = /datum/organ/internal/appendix,
|
||||
"eyes" = /datum/organ/internal/eyes/vox
|
||||
)
|
||||
|
||||
species_intro = "You are a Vox.<br>\
|
||||
You are somewhat more adept at handling the lower pressures of space and colder temperatures.<br>\
|
||||
You have talons with which you can slice others in a fist fight, and a beak which can be used to butcher corpses without the need for finer tools.<br>\
|
||||
However, Oxygen is incredibly toxic to you, in breathing it or consuming it. You can only breathe nitrogen."
|
||||
|
||||
// -- Outfit datums --
|
||||
/datum/species/vox/final_equip(var/mob/living/carbon/human/H)
|
||||
var/tank_slot = slot_s_store
|
||||
var/tank_slot_name = "suit storage"
|
||||
if(tank_slot)
|
||||
H.equip_or_collect(new/obj/item/weapon/tank/nitrogen(H), tank_slot)
|
||||
else
|
||||
H.put_in_hands(new/obj/item/weapon/tank/nitrogen(H))
|
||||
to_chat(H, "<span class='info'>You are now running on nitrogen internals from the [H.s_store] in your [tank_slot_name].</span>")
|
||||
var/obj/item/weapon/tank/nitrogen/N = H.get_item_by_slot(tank_slot)
|
||||
if(!N)
|
||||
N = H.get_item_by_slot(slot_back)
|
||||
H.internal = N
|
||||
if (H.internals)
|
||||
H.internals.icon_state = "internal1"
|
||||
|
||||
/datum/species/vox/makeName(var/gender,var/mob/living/carbon/human/H=null)
|
||||
var/sounds = rand(3,8)
|
||||
var/newname = ""
|
||||
|
||||
for(var/i = 1 to sounds)
|
||||
newname += pick(vox_name_syllables)
|
||||
return capitalize(newname)
|
||||
|
||||
/datum/species/vox/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||
if(myhuman != H)
|
||||
return
|
||||
updatespeciescolor(H)
|
||||
H.update_icon()
|
||||
|
||||
/datum/species/vox/updatespeciescolor(var/mob/living/carbon/human/H)
|
||||
switch(H.my_appearance.s_tone)
|
||||
if(6)
|
||||
icobase = 'icons/mob/human_races/vox/r_voxemrl.dmi'
|
||||
deform = 'icons/mob/human_races/vox/r_def_voxemrl.dmi'
|
||||
if(5)
|
||||
icobase = 'icons/mob/human_races/vox/r_voxazu.dmi'
|
||||
deform = 'icons/mob/human_races/vox/r_def_voxazu.dmi'
|
||||
if(4)
|
||||
icobase = 'icons/mob/human_races/vox/r_voxlgrn.dmi'
|
||||
deform = 'icons/mob/human_races/vox/r_def_voxlgrn.dmi'
|
||||
if(3)
|
||||
icobase = 'icons/mob/human_races/vox/r_voxgry.dmi'
|
||||
deform = 'icons/mob/human_races/vox/r_def_voxgry.dmi'
|
||||
if(2)
|
||||
icobase = 'icons/mob/human_races/vox/r_voxbrn.dmi'
|
||||
deform = 'icons/mob/human_races/vox/r_def_voxbrn.dmi'
|
||||
else
|
||||
icobase = 'icons/mob/human_races/vox/r_vox.dmi'
|
||||
deform = 'icons/mob/human_races/vox/r_def_vox.dmi'
|
||||
|
||||
/datum/species/diona
|
||||
name = "Diona"
|
||||
icobase = 'icons/mob/human_races/r_plant.dmi'
|
||||
@@ -1421,4 +1265,4 @@ var/list/has_died_as_golem = list()
|
||||
head_organ.droplimb(1,1)
|
||||
|
||||
H.drop_all()
|
||||
qdel(src)
|
||||
qdel(src)
|
||||
|
||||
Reference in New Issue
Block a user