Skip to content

Commit

Permalink
Новая раса для TG SS220 Вульпочки (#267)
Browse files Browse the repository at this point in the history
## About The Pull Request

ПР добавляют новую [расу
вульпканинов](https://wiki.ss220.club/index.php/%D0%92%D1%83%D0%BB%D1%8C%D0%BF%D0%BA%D0%B0%D0%BD%D0%B8%D0%BD),
доступную при создании персонажа


![image](https://github.com/ss220club/Bandastation/assets/62209572/cf80ffd1-0143-4dea-a000-79b8c8b5fa3e)

Игровые механики:

- Возможность вынюхивать запахи людей, курение временно блокирует
способность
- Более высокий диапазон комфортных температур 
- Чувствительные ушки, получают больше урона но позволяют слышать шёпот
- Белковая диета, может есть только мясо и некоторые молочные продукты
- Быстрый метаболизм (модификатор голода х1.3)
- Модификатор опьянения x2.5
- Модификатор зарплаты 0.8

Спрайты взяты с https://github.com/Alecksohs/ParadiseSpriteEdits, c
некоторыми доработками и исправлениями

Добавлен мутационный токсин, для превращения в вульпу: Делается в ксено,
вколов в зелёный экстракт 5u Love

## Why It's Good For The Game

На TG маленькое разнообразие рас, поэтому необходимо перенести расы с
парадайза. Вульпкане одна из самых популярных и интересных рас с
развитым лором и хорошим отыгрышем игроков. Добавление этой расы
разнообразит игровой геймплей, создаст множество РП ситуаций и привлечет
новых игроков.


![image](https://github.com/ss220club/Bandastation/assets/62209572/31e5822a-6823-4a90-962d-bc86d340d155)

## Changelog

:cl:
add: Новая раунд-стартовая раса "Вульпканин"
tweak: ДНК для вульп
add: Адаптивная одежда для расы  "Вульпканин"
add: Мутационный токсин для превращения в вульпу
tweak: Печать хвоста и языка вульпы в limbgrower
sound: Некоторые звуки которые издают вульпы
/:cl:

---------

Co-authored-by: Gaxeer <[email protected]>
Co-authored-by: larentoun <[email protected]>
Co-authored-by: dj-34 <[email protected]>
  • Loading branch information
4 people authored Dec 25, 2024
1 parent 1ec46dc commit ce81e79
Show file tree
Hide file tree
Showing 59 changed files with 2,812 additions and 4 deletions.
13 changes: 13 additions & 0 deletions code/modules/mob/living/carbon/human/dummy.dm
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,19 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy)
target.dna.features["tail_monkey"] = get_consistent_feature_entry(SSaccessories.tails_list_monkey)
target.dna.features["pod_hair"] = get_consistent_feature_entry(SSaccessories.pod_hair_list)
target.dna.features["caps"] = get_consistent_feature_entry(SSaccessories.caps_list)
// BANDA STATION EDIT START
target.dna.features["vulpkanin_body_markings"] = get_consistent_feature_entry(SSaccessories.vulpkanin_body_markings_list)
target.dna.features["vulpkanin_head_markings"] = get_consistent_feature_entry(SSaccessories.vulpkanin_head_markings_list)
target.dna.features["vulpkanin_head_accessories"] = get_consistent_feature_entry(SSaccessories.vulpkanin_head_accessories_list)
target.dna.features["tail_vulpkanin"] = get_consistent_feature_entry(SSaccessories.tails_list_vulpkanin)
target.dna.features["tail_markings"] = get_consistent_feature_entry(SSaccessories.vulpkanin_tail_markings_list)
target.dna.features["vulpkanin_facial_hair"] = get_consistent_feature_entry(SSaccessories.vulpkanin_facial_hair_list)
target.dna.features["furcolor_first"] = COLOR_WHITE
target.dna.features["furcolor_second"] = COLOR_WHITE
target.dna.features["furcolor_third"] = COLOR_WHITE
target.dna.features["furcolor_fourth"] = COLOR_WHITE
target.dna.features["furcolor_fifth"] = COLOR_WHITE
// BANDA STATION EDIT STOP
target.dna.initialize_dna(create_mutation_blocks = FALSE, randomize_features = FALSE)
// UF and UI are nondeterministic, even though the features are the same some blocks will randomize slightly
// In practice this doesn't matter, but this is for the sake of 100%(ish) consistency
Expand Down
64 changes: 61 additions & 3 deletions code/modules/mob/living/carbon/human/human_update_icons.dm
Original file line number Diff line number Diff line change
Expand Up @@ -391,8 +391,27 @@ There are several things that need to be remembered:
return

var/icon_file = 'icons/mob/clothing/head/default.dmi'
// BANDASTATION EDIT START - SPECIES CLOTHING ICONS
var/list/icon_files_species = list(
"vulpkanin" = 'modular_bandastation/species/icons/mob/species/clothing/head.dmi',
)

var/mutant_override = FALSE

var/obj/item/bodypart/head/bodypart_head = src.get_bodypart(BODY_ZONE_HEAD)
if(worn_item.worn_icon_species && worn_item.worn_icon_species[bodypart_head.species_bodytype])

Check warning on line 402 in code/modules/mob/living/carbon/human/human_update_icons.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD2304: Invalid index operation. datum[] index operations are not valid starting in BYOND 515.1641
icon_file = worn_item.worn_icon_species[bodypart_head.species_bodytype]

Check warning on line 403 in code/modules/mob/living/carbon/human/human_update_icons.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD2304: Invalid index operation. datum[] index operations are not valid starting in BYOND 515.1641
mutant_override = TRUE
else if(bodypart_head.species_bodytype in icon_files_species)
icon_file = icon_files_species[bodypart_head.species_bodytype]
mutant_override = FALSE

var/mutable_appearance/head_overlay = head.build_worn_icon(default_layer = HEAD_LAYER, default_icon_file = icon_file)
if(!(icon_exists(icon_file, RESOLVE_ICON_STATE(worn_item))))
icon_file = 'icons/mob/clothing/head/default.dmi'
mutant_override = FALSE

var/mutable_appearance/head_overlay = head.build_worn_icon(default_layer = HEAD_LAYER, default_icon_file = icon_file, override_file = mutant_override ? icon_file : null)
// BANDASTATION EDIT STOP - SPECIES CLOTHING ICONS
var/obj/item/bodypart/head/my_head = get_bodypart(BODY_ZONE_HEAD)
my_head?.worn_head_offset?.apply_offset(head_overlay)
overlays_standing[HEAD_LAYER] = head_overlay
Expand Down Expand Up @@ -441,8 +460,27 @@ There are several things that need to be remembered:
update_obscured_slots(worn_item.flags_inv)

var/icon_file = DEFAULT_SUIT_FILE
// BANDASTATION EDIT START - SPECIES CLOTHING ICONS
var/list/icon_files_species = list(
"vulpkanin" = 'modular_bandastation/species/icons/mob/species/clothing/suit.dmi',
)

var/mutant_override = FALSE

var/mutable_appearance/suit_overlay = wear_suit.build_worn_icon(default_layer = SUIT_LAYER, default_icon_file = icon_file)
var/obj/item/bodypart/chest/bodypart_chest = src.get_bodypart(BODY_ZONE_CHEST)
if(worn_item.worn_icon_species && worn_item.worn_icon_species[bodypart_chest.species_bodytype])

Check warning on line 471 in code/modules/mob/living/carbon/human/human_update_icons.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD2304: Invalid index operation. datum[] index operations are not valid starting in BYOND 515.1641
icon_file = worn_item.worn_icon_species[bodypart_chest.species_bodytype]

Check warning on line 472 in code/modules/mob/living/carbon/human/human_update_icons.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD2304: Invalid index operation. datum[] index operations are not valid starting in BYOND 515.1641
mutant_override = TRUE
else if(bodypart_chest.species_bodytype in icon_files_species)
icon_file = icon_files_species[bodypart_chest.species_bodytype]
mutant_override = FALSE

if(!(icon_exists(icon_file, RESOLVE_ICON_STATE(worn_item))))
icon_file = DEFAULT_SUIT_FILE
mutant_override = FALSE

var/mutable_appearance/suit_overlay = wear_suit.build_worn_icon(default_layer = SUIT_LAYER, default_icon_file = icon_file, override_file = mutant_override ? icon_file : null)
// BANDASTATION EDIT STOP - SPECIES CLOTHING ICONS
var/obj/item/bodypart/chest/my_chest = get_bodypart(BODY_ZONE_CHEST)
my_chest?.worn_suit_offset?.apply_offset(suit_overlay)
overlays_standing[SUIT_LAYER] = suit_overlay
Expand Down Expand Up @@ -493,13 +531,33 @@ There are several things that need to be remembered:
return

var/icon_file = 'icons/mob/clothing/mask.dmi'
var/list/icon_files_species = list(
"vulpkanin" = 'modular_bandastation/species/icons/mob/species/clothing/mask.dmi',
)

var/mutant_override = FALSE

var/obj/item/bodypart/head/bodypart_head = src.get_bodypart(BODY_ZONE_HEAD)
if(worn_item.worn_icon_species && worn_item.worn_icon_species[bodypart_head.species_bodytype])

Check warning on line 541 in code/modules/mob/living/carbon/human/human_update_icons.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD2304: Invalid index operation. datum[] index operations are not valid starting in BYOND 515.1641
icon_file = worn_item.worn_icon_species[bodypart_head.species_bodytype]

Check warning on line 542 in code/modules/mob/living/carbon/human/human_update_icons.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD2304: Invalid index operation. datum[] index operations are not valid starting in BYOND 515.1641
mutant_override = TRUE
else if(bodypart_head.species_bodytype in icon_files_species)
icon_file = icon_files_species[bodypart_head.species_bodytype]
mutant_override = FALSE

if(!(icon_exists(icon_file, RESOLVE_ICON_STATE(worn_item))))
icon_file = 'icons/mob/clothing/mask.dmi'
mutant_override = FALSE

var/mutable_appearance/mask_overlay = wear_mask.build_worn_icon(default_layer = FACEMASK_LAYER, default_icon_file = icon_file)
var/mutable_appearance/mask_overlay = wear_mask.build_worn_icon(default_layer = FACEMASK_LAYER, default_icon_file = icon_file, override_file = mutant_override ? icon_file : null)
my_head.worn_mask_offset?.apply_offset(mask_overlay)
overlays_standing[FACEMASK_LAYER] = mask_overlay

apply_overlay(FACEMASK_LAYER)
check_body_shape(BODYSHAPE_SNOUTED, ITEM_SLOT_MASK)
// BANDASTATION EDIT START - SPECIES CLOTHING ICONS
update_body_parts()
// BANDASTATION EDIT STOP - SPECIES CLOTHING ICONS

/mob/living/carbon/human/update_worn_back(update_obscured = TRUE)
remove_overlay(BACK_LAYER)
Expand Down
3 changes: 3 additions & 0 deletions code/modules/surgery/bodyparts/_bodyparts.dm
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,9 @@
var/robotic_emp_paralyze_damage_percent_threshold = 0.3
/// A potential texturing overlay to put on the limb
var/datum/bodypart_overlay/texture/texture_bodypart_overlay
// BANDASTATION EDIT START
var/species_bodytype
// BANDASTATION EDIT STOP

/obj/item/bodypart/apply_fantasy_bonuses(bonus)
. = ..()
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions config/bandastation/bandastation_config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@

#INTERVIEW_WEBHOOK_URL

## Bandastation Races
ROUNDSTART_RACES vulpkanin

#MIN_THREAT_TO_ROUNDSTART_PERCENT 30
#MAX_THREAT_TO_ROUNDSTART_PERCENT 60
#MIN_THREAT_LEVEL 20
Expand Down
Binary file modified icons/mob/human/species/lizard/bodyparts.dmi
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
// Signals for /mob/living/carbon

// \modular_bandastation\species\code\human\species\species.dm
#define COMSIG_CARBON_VULPKANIN_SNIFF "carbon_vulpkanin_sniff"
1 change: 1 addition & 0 deletions modular_bandastation/emote_panel/_emote_panel.dme
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@

#include "code/_emote_defines.dm"
#include "code/emote_verbs.dm"
#include "code/emotes.dm"
Binary file added modular_bandastation/emote_panel/audio/bark.ogg
Binary file not shown.
Binary file not shown.
Binary file added modular_bandastation/emote_panel/audio/growl1.ogg
Binary file not shown.
Binary file added modular_bandastation/emote_panel/audio/growl2.ogg
Binary file not shown.
Binary file added modular_bandastation/emote_panel/audio/growl3.ogg
Binary file not shown.
Binary file added modular_bandastation/emote_panel/audio/howl.ogg
Binary file not shown.
Binary file not shown.
Binary file added modular_bandastation/emote_panel/audio/purr.ogg
Binary file not shown.
Binary file added modular_bandastation/emote_panel/audio/wbark.ogg
Binary file not shown.
3 changes: 3 additions & 0 deletions modular_bandastation/emote_panel/code/_emote_defines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
#define EMOTE_HUMAN_SIGNAL "Показать пальцы"
#define EMOTE_HUMAN_SHRUG "Пожать плечами"
#define EMOTE_HUMAN_SNIFF "Шмыгать носом"
#define EMOTE_HUMAN_SNIFFLE "Нюхать"
#define EMOTE_HUMAN_JOHNNY "Курить стильно"
#define EMOTE_HUMAN_SNEEZE "Чихнуть"
#define EMOTE_HUMAN_SLAP "Дать пощёчину"
Expand Down Expand Up @@ -118,6 +119,8 @@
#define EMOTE_HUMAN_WIGGLES "Шевелить усиками"
#define EMOTE_HUMAN_WHIPS "Хлестать хвостом"
#define EMOTE_HUMAN_WHIP "Ударить хвостом"
#define EMOTE_HUMAN_BARK "Гавкнуть"
#define EMOTE_HUMAN_WBARK "Дважды гавкнуть"

/// Carbon Emotes
#define EMOTE_CARBON_BLINK "Моргать"
Expand Down
30 changes: 30 additions & 0 deletions modular_bandastation/emote_panel/code/emote_verbs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,31 @@
set category = "Эмоции"
emote("clap", intentional = TRUE)

/mob/living/carbon/human/species/vulpkanin/proc/emote_howl()
set name = "" + EMOTE_HUMAN_HOWL + " "
set category = "Эмоции"
emote("howl", intentional = TRUE)

/mob/living/carbon/human/species/vulpkanin/proc/emote_growl()
set name = "" + EMOTE_HUMAN_GROWL + " "
set category = "Эмоции"
emote("growl", intentional = TRUE)

/mob/living/carbon/human/species/vulpkanin/proc/emote_purr()
set name = "" + EMOTE_HUMAN_RUMBLE + " "
set category = "Эмоции"
emote("purr", intentional = TRUE)

/mob/living/carbon/human/species/vulpkanin/proc/emote_bark()
set name = "" + EMOTE_HUMAN_BARK + " "
set category = "Эмоции"
emote("bark", intentional = TRUE)

/mob/living/carbon/human/species/vulpkanin/proc/emote_wbark()
set name = "" + EMOTE_HUMAN_WBARK + " "
set category = "Эмоции"
emote("wbark", intentional = TRUE)

/// Action Emotes ///
/mob/living/carbon/human/verb/emote_collapse()
set name = "" + EMOTE_COLLAPSE + " "
Expand Down Expand Up @@ -276,6 +301,11 @@
set category = "Эмоции"
emote("aflap", intentional = TRUE)

/mob/living/carbon/human/proc/emote_wag()
set name = "" + EMOTE_HUMAN_WAG + " "
set category = "Эмоции"
emote("wag", intentional = TRUE)

/// Racial Emotes ///
/mob/living/carbon/human/proc/emote_ping()
set name = "< " + EMOTE_SILICON_PING + " >"
Expand Down
81 changes: 81 additions & 0 deletions modular_bandastation/emote_panel/code/emotes.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
/datum/emote/living/sniffle
key = "sniffle"
key_third_person = "sniffles"
name = "нюхать"
message = "нюхает."
message_mime = "бесшумно нюхает."
message_param = "нюхает %t."

/datum/emote/living/sniffle/get_sound(mob/living/user)
if(user.gender == FEMALE)
return 'modular_bandastation/emote_panel/audio/female/sniff_female.ogg'
else
return 'modular_bandastation/emote_panel/audio/male/sniff_male.ogg'

// Vulpkanin

/datum/emote/living/carbon/human/vulpkanin/can_run_emote(mob/user, status_check = TRUE, intentional = FALSE)
var/organ = user.get_organ_slot(ORGAN_SLOT_TONGUE)
if(istype(organ, /obj/item/organ/tongue/vulpkanin))
return ..()

/datum/emote/living/carbon/human/vulpkanin/howl
name = "Выть"
key = "howl"
key_third_person = "howls"
message = "воет."
message_mime = "делает вид, что воет."
message_param = "воет на %t."
emote_type = EMOTE_AUDIBLE | EMOTE_VISIBLE
cooldown = 6 SECONDS
sound = 'modular_bandastation/emote_panel/audio/howl.ogg'

/datum/emote/living/carbon/human/vulpkanin/growl
name = "Рычать"
key = "growl"
key_third_person = "growls"
message = "рычит."
message_mime = "бусшумно рычит."
message_param = "рычит на %t."
cooldown = 2 SECONDS
emote_type = EMOTE_AUDIBLE | EMOTE_VISIBLE

/datum/emote/living/carbon/human/vulpkanin/growl/get_sound(mob/living/user)
return pick(
'modular_bandastation/emote_panel/audio/growl1.ogg',
'modular_bandastation/emote_panel/audio/growl2.ogg',
'modular_bandastation/emote_panel/audio/growl3.ogg',
)

/datum/emote/living/carbon/human/vulpkanin/purr
name = "Урчать"
key = "purr"
key_third_person = "purrs"
message = "урчит."
message_param = "урчит на %t."
emote_type = EMOTE_AUDIBLE
vary = TRUE
cooldown = 2 SECONDS
sound = 'modular_bandastation/emote_panel/audio/purr.ogg'

/datum/emote/living/carbon/human/vulpkanin/bark
name = "Гавкнуть"
key = "bark"
key_third_person = "bark"
message = "гавкает."
message_param = "гавкает на %t."
emote_type = EMOTE_AUDIBLE | EMOTE_VISIBLE
vary = TRUE
cooldown = 2 SECONDS
sound = 'modular_bandastation/emote_panel/audio/bark.ogg'

/datum/emote/living/carbon/human/vulpkanin/wbark
name = "Гавкнуть дважды"
key = "wbark"
key_third_person = "wbark"
message = "дважды гавкает."
message_param = "дважды гавкает на %t."
emote_type = EMOTE_AUDIBLE | EMOTE_VISIBLE
vary = TRUE
cooldown = 2 SECONDS
sound = 'modular_bandastation/emote_panel/audio/wbark.ogg'
1 change: 1 addition & 0 deletions modular_bandastation/modular_bandastation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
#include "pixel_shift/_pixel_shift.dme"
#include "ru_jobs/_ru_jobs.dme"
#include "security_levels/_security_levels.dme"
#include "species/_species.dme"
#include "translations/_translations.dme"
#include "tts/_tts.dme"
#include "whitelist220/_whitelist220.dme"
Expand Down
2 changes: 1 addition & 1 deletion modular_bandastation/species/_species.dm
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/datum/modpack/species
name = "Species"
desc = "Добавление архитектуры для новых видов и конфигурирования существующих."
author = "Podvaldeda"
author = "nlaysi, Podvaldeda"
18 changes: 18 additions & 0 deletions modular_bandastation/species/_species.dme
Original file line number Diff line number Diff line change
@@ -1,3 +1,21 @@
#include "_species.dm"

#include "code/_defines.dm"
#include "code/language.dm"
#include "code/dna.dm"

#include "code/lizardperson/sprite_accesories/hair.dm"
#include "code/human/carbon.dm"
#include "code/human/sprite_accessories/vulpkanin.dm"
#include "code/human/species_type/vulpkanin.dm"
#include "code/human/sprite_accessories/hair.dm"
#include "code/human/species/species.dm"
#include "code/surgery/organs/external/vulpkanin_external.dm"
#include "code/surgery/organs/internal/vulpkanin_internal.dm"
#include "code/surgery/organs/limbgrower_designs.dm"
#include "code/preferences/species_features/vulpkanin.dm"
#include "code/surgery/bodyparts/vulpkanin_bodyparts.dm"
#include "code/reagents/mutation.dm"

#include "code/clothing/items.dm"
#include "code/clothing/mod.dm"
44 changes: 44 additions & 0 deletions modular_bandastation/species/code/_defines.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#define SPECIES_VULPKANIN "vulpkanin"
#define BUTT_SPRITE_VULPKANIN "vulpkanin"

#define DEFAULT_SPRITE_LIST "default_sprites"

#define DNA_VULPKANIN_BODY_MARKINGS DNA_FEATURE_BLOCKS + 1
#define DNA_VULPKANIN_HEAD_MARKINGS DNA_FEATURE_BLOCKS + 2
#define DNA_VULPKANIN_HEAD_ACCESSORIES DNA_FEATURE_BLOCKS + 3
#define DNA_VULPKANIN_TAIL DNA_FEATURE_BLOCKS + 4
#define DNA_VULPKANIN_TAIL_MARKINGS DNA_FEATURE_BLOCKS + 5
#define DNA_VULPKANIN_FACIAL_HAIR DNA_FEATURE_BLOCKS + 6
#define DNA_FURCOLOR_1 DNA_FEATURE_BLOCKS + 7
#define DNA_FURCOLOR_2 DNA_FEATURE_BLOCKS + 8
#define DNA_FURCOLOR_3 DNA_FEATURE_BLOCKS + 9
#define DNA_FURCOLOR_4 DNA_FEATURE_BLOCKS + 10
#define DNA_FURCOLOR_5 DNA_FEATURE_BLOCKS + 11

#define DNA_MODULAR_BLOCKS_COUNT 11

#define HEAD_VULPKANIN (1<<16)

GLOBAL_LIST_INIT(first_names_female_vulp, world.file2list("strings/names/first_female_vulp.txt"))
GLOBAL_LIST_INIT(first_names_male_vulp, world.file2list("strings/names/first_male_vulp.txt"))
GLOBAL_LIST_INIT(last_names_vulp, world.file2list("strings/names/last_vulp.txt"))

/datum/controller/subsystem/accessories
var/list/vulpkanin_body_markings_list
var/list/vulpkanin_head_markings_list
var/list/vulpkanin_head_accessories_list
var/list/tails_list_vulpkanin
var/list/vulpkanin_tail_markings_list
var/list/vulpkanin_facial_hair_list

/datum/controller/subsystem/accessories/proc/init_modular_lists()
vulpkanin_body_markings_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/vulpkanin_body_markings, add_blank = TRUE)[DEFAULT_SPRITE_LIST]
vulpkanin_head_markings_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/vulpkanin_head_markings, add_blank = TRUE)[DEFAULT_SPRITE_LIST]
vulpkanin_head_accessories_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/vulpkanin_head_accessories, add_blank = TRUE)[DEFAULT_SPRITE_LIST]
tails_list_vulpkanin = init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/vulpkanin, add_blank = FALSE)[DEFAULT_SPRITE_LIST]
vulpkanin_tail_markings_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/vulpkanin_tail_markings, add_blank = TRUE)[DEFAULT_SPRITE_LIST]
vulpkanin_facial_hair_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/vulpkanin_facial_hair, add_blank = TRUE)[DEFAULT_SPRITE_LIST]

/datum/controller/subsystem/accessories/PreInit()
..()
init_modular_lists()
27 changes: 27 additions & 0 deletions modular_bandastation/species/code/clothing/items.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/obj/item
var/icon/worn_icon_species

/obj/item/clothing/head/mod
worn_icon_species = list(
SPECIES_VULPKANIN = 'modular_bandastation/species/icons/mob/species/clothing/vulp_modsuits.dmi',
)

/obj/item/clothing/suit/mod
worn_icon_species = list(
SPECIES_VULPKANIN = 'modular_bandastation/species/icons/mob/species/clothing/vulp_modsuits.dmi',
)

/obj/item/mod/module
worn_icon_species = list(
SPECIES_VULPKANIN = 'modular_bandastation/species/icons/mob/species/clothing/modules_vulp.dmi',
)

/obj/item/clothing/suit
worn_icon_species = list(
SPECIES_VULPKANIN = 'modular_bandastation/species/icons/mob/species/clothing/suit.dmi',
)

/obj/item/clothing/head
worn_icon_species = list(
SPECIES_VULPKANIN = 'modular_bandastation/species/icons/mob/species/clothing/head.dmi',
)
Loading

0 comments on commit ce81e79

Please sign in to comment.