diff --git a/maps/torch_fd/fd_torch.dm b/maps/torch_fd/fd_torch.dm index ff96becc11604..30aa25809a28d 100644 --- a/maps/torch_fd/fd_torch.dm +++ b/maps/torch_fd/fd_torch.dm @@ -228,6 +228,7 @@ #include "../../mods/legalese_language/_legalese.dme" #include "../../mods/petting_zoo/_petting_zoo.dme" // #include "../../mods/resomi/_resomi.dme" + // #include "../../mods/resomi_fd/_resomi.dme" #include "../../mods/screentips/_screentips.dme" #include "../../mods/tajara/_tajara.dme" #include "../../mods/sauna_props/_sauna_props.dme" diff --git a/mods/resomi_fd/README.md b/mods/resomi_fd/README.md new file mode 100644 index 0000000000000..203424426d902 --- /dev/null +++ b/mods/resomi_fd/README.md @@ -0,0 +1,119 @@ + +#### Список PRов: + +- https://github.com/SierraBay/SierraBay12/pull/2054 + + + +## Резоми + +ID мода: RESOMI + + +### Описание мода + +Ря! +- Портирует расу резоми с Infinity. + + +### Изменения *кор кода* + +- `code/modules/client/preference_setup/loadout/lists/misc.dm` + - `/datum/gear/plush_toy/New()` +- `code/modules/organs/external/_external_icons.dm` + - `/obj/item/organ/external/on_update_icon()` +- `mods/resomi/code/overrides.dm` + - `/mob/living/carbon/human/get_pulse_as_number()` +- `code/modules/clothing/head/jobs.dm` + - `/obj/item/clothing/head/beret` + - `/obj/item/clothing/head/beret/Initialize()` + - `/obj/item/clothing/head/beret/equipped()` +- `code/modules/clothing/masks/miscellaneous.dm` + - `/obj/item/clothing/mask/bandana/equipped()` + + + +### Оверрайды + +- `Отсутствуют` + + + +### Дефайны + +- `code/__defines/~mods/~master_defines.dm`: + - `SPECIES_RESOMI` + - `LANGUAGE_RESOMI` +- `mods/resomi/code/datum/_defines.dm`: + - `CULTURE_RESOMI_EREMUS` + - `CULTURE_RESOMI_ASRANDA` + - `CULTURE_RESOMI_REFUGEE` + - `CULTURE_RESOMI_NEWGENERATION` + - `CULTURE_RESOMI_LOSTCOLONYRICH` + - `CULTURE_RESOMI_LOSTCOLONYPOOR` + - `CULTURE_RESOMI_SKRELL` + - `HOME_SYSTEM_RESOMI_BIRDCAGE` + - `HOME_SYSTEM_RESOMI_EREMUS` + - `HOME_SYSTEM_RESOMI_ASRANDA` + - `HOME_SYSTEM_RESOMI_SAVEEL` + - `HOME_SYSTEM_RESOMI_LOST_COLONY` + - `HOME_SYSTEM_RESOMI_REFUGEE_COLONY` + - `HOME_SYSTEM_RESOMI_HOMELESS` + - `HOME_SYSTEM_RESOMI_IMPER_COLONY` + - `HOME_SYSTEM_RESOMI_RESOBALAK` + - `RELIGION_RESOMI_CHOSEN` + - `RELIGION_RESOMI_EMPEROR` + - `RELIGION_RESOMI_MOUNTAIN` + - `RELIGION_RESOMI_SKIES` + + +### Используемые файлы, не содержащиеся в модпаке + +- `Отсутствуют` + + +### Авторы: + +LordNest +SurEugene +Daeberdir +UEDHighCommand + +При крайне необходимой моральной поддержке ксеномодераторов Imony и TheGrimArcadia + diff --git a/mods/resomi_fd/_resomi.dm b/mods/resomi_fd/_resomi.dm new file mode 100644 index 0000000000000..6004765f2ca58 --- /dev/null +++ b/mods/resomi_fd/_resomi.dm @@ -0,0 +1,2 @@ +/singleton/modpack/resomi + name = "Resomi Content" diff --git a/mods/resomi_fd/_resomi.dme b/mods/resomi_fd/_resomi.dme new file mode 100644 index 0000000000000..4a22886122505 --- /dev/null +++ b/mods/resomi_fd/_resomi.dme @@ -0,0 +1,52 @@ +#ifndef MODPACK_RESOMI +#define MODPACK_RESOMI + +#include "_resomi.dm" +#include "code/unit_tests.dm" +#include "code/body/abilities.dm" +#include "code/body/emotes.dm" +#include "code/body/organs.dm" +#include "code/clothing/void/rigs.dm" +#include "code/clothing/clothing.dm" +#include "code/clothing/glasses.dm" +#include "code/clothing/misc.dm" +#include "code/clothing/shoes.dm" +#include "code/clothing/suits.dm" +#include "code/clothing/under.dm" +#include "code/datum/_defines.dm" +#include "code/datum/body.dm" +#include "code/datum/gear.dm" +#include "code/datum/language.dm" +#include "code/datum/misc.dm" +#include "code/datum/resomi_culture.dm" +#include "code/datum/species.dm" + +#endif +// BEGIN_INTERNALS +// END_INTERNALS +// BEGIN_FILE_DIR +#define FILE_DIR . +// END_FILE_DIR +// BEGIN_PREFERENCES +// END_PREFERENCES +// BEGIN_INCLUDE +#include "_resomi.dm" +#include "code\unit_tests.dm" +#include "code\body\abilities.dm" +#include "code\body\emotes.dm" +#include "code\body\organs.dm" +#include "code\clothing\clothing.dm" +#include "code\clothing\glasses.dm" +#include "code\clothing\misc.dm" +#include "code\clothing\shoes.dm" +#include "code\clothing\suits.dm" +#include "code\clothing\under.dm" +#include "code\clothing\void\rigs.dm" +#include "code\datum\_defines.dm" +#include "code\datum\body.dm" +#include "code\datum\gear.dm" +#include "code\datum\language.dm" +#include "code\datum\misc.dm" +#include "code\datum\resomi_culture.dm" +#include "code\datum\species.dm" +// END_INCLUDE diff --git a/mods/resomi_fd/code/body/abilities.dm b/mods/resomi_fd/code/body/abilities.dm new file mode 100644 index 0000000000000..94a84564924b9 --- /dev/null +++ b/mods/resomi_fd/code/body/abilities.dm @@ -0,0 +1,62 @@ +/mob/living/proc/toggle_pass_table() + set category = "Abilities" + set name = "Toggle Agility" //Dunno a better name for this. You have to be pretty agile to hop over stuff!!! + set desc = "Allows you to start/stop hopping over things such as hydroponics trays, tables, and railings." + pass_flags ^= PASS_FLAG_TABLE //I dunno what this fancy ^= is but Aronai gave it to me. + to_chat(src, "You [pass_flags&PASS_FLAG_TABLE ? "will" : "will NOT"] move over tables/railings/trays!") + + +/mob/living/carbon/human/proc/resomi_sonar_ping() + set name = "Listen In" + set desc = "Allows you to listen in to movement and noises around you." + set category = "Abilities" + + if(incapacitated()) + to_chat(src, SPAN_WARNING("You need to recover before you can use this ability.")) + return + if(is_deaf() || is_below_sound_pressure(get_turf(src))) + to_chat(src, SPAN_WARNING("You are for all intents and purposes currently deaf!")) + return + to_chat(src, SPAN_NOTICE("You take a moment to listen in to your environment...")) + if(do_after(src, delay = 5, do_flags = DO_DEFAULT & ~DO_USER_SAME_HAND)) + var/heard_something = FALSE + for(var/mob/living/L in range(client.view, src)) + var/turf/T = get_turf(L) + if(!T || L == src || L.stat == DEAD || is_below_sound_pressure(T)) + continue + heard_something = TRUE + var/image/ping_image = image(icon = 'icons/effects/effects.dmi', icon_state = "sonar_ping", loc = src) + ping_image.plane = HUD_PLANE + ping_image.layer = UNDER_HUD_LAYER + ping_image.pixel_x = (T.x - src.x) * WORLD_ICON_SIZE + ping_image.pixel_y = (T.y - src.y) * WORLD_ICON_SIZE + image_to(src, ping_image) + addtimer(new Callback(src, PROC_REF(clear_sonar_effect), src.client, ping_image), 8) + var/feedback = list("There are noises of movement ") + var/direction = get_dir(src, L) + if(direction) + feedback += "towards the [dir2text(direction)], " + switch(get_dist(src, L) / client.view) + if(0 to 0.2) + feedback += "very close by." + if(0.2 to 0.4) + feedback += "close by." + if(0.4 to 0.6) + feedback += "some distance away." + if(0.6 to 0.8) + feedback += "further away." + else + feedback += "far away." + else // No need to check distance if they're standing right on-top of us + feedback += "right on top of you." + to_chat(src, SPAN_NOTICE(jointext(feedback,null))) + if(!heard_something) + to_chat(src, SPAN_NOTICE("You hear no movement but your own.")) + else + to_chat(src, SPAN_NOTICE("You need to stand still while you listen.")) + + +/mob/living/carbon/human/proc/clear_sonar_effect(client/C, image/I) + if(C && I) + C.images -= I + qdel(I) diff --git a/mods/resomi_fd/code/body/emotes.dm b/mods/resomi_fd/code/body/emotes.dm new file mode 100644 index 0000000000000..bf5a17e370cbd --- /dev/null +++ b/mods/resomi_fd/code/body/emotes.dm @@ -0,0 +1,51 @@ +// RESOMI EMOTIONS + +/singleton/emote/audible/chuckle/resomi + emote_sound = 'mods/resomi/sound/resomilaugh.ogg' + sounded_species = null + +/singleton/emote/audible/cough/resomi + emote_sound = 'mods/resomi/sound/resomicough.ogg' + sounded_species = null + +/singleton/emote/audible/laugh/resomi + emote_sound = 'mods/resomi/sound/resomilaugh.ogg' + sounded_species = null + +/singleton/emote/audible/scream/resomi + emote_sound = 'mods/resomi/sound/resomiscream.ogg' + sounded_species = null + +/singleton/emote/audible/sneeze/resomi + emote_sound = 'mods/resomi/sound/resomisneeze.ogg' + sounded_species = null + +/singleton/emote/audible/peep/resomi + key = "peep" + emote_message_3p = "USER пищит" + emote_sound = 'mods/resomi/sound/peep.ogg' + sounded_species = null + +/singleton/emote/audible/rustle/resomi + key = "rustle" + emote_message_3p = "USER шелестит крыльями" + emote_sound = 'mods/resomi/sound/rustle.ogg' + sounded_species = null + +/singleton/emote/audible/trill/resomi + key = "trill" + emote_message_3p = "USER издаёт трель" + emote_sound = 'mods/resomi/sound/trill.ogg' + sounded_species = null + +/singleton/emote/audible/warble/resomi + key = "warble" + emote_message_3p = "USER издаёт трель" + emote_sound = 'mods/resomi/sound/warble.ogg' + sounded_species = null + +/singleton/emote/audible/wurble/resomi + key = "wurble" + emote_message_3p = "USER урчит" + emote_sound = 'mods/resomi/sound/wurble.ogg' + sounded_species = null \ No newline at end of file diff --git a/mods/resomi_fd/code/body/organs.dm b/mods/resomi_fd/code/body/organs.dm new file mode 100644 index 0000000000000..deaa4e5bdf95a --- /dev/null +++ b/mods/resomi_fd/code/body/organs.dm @@ -0,0 +1,30 @@ + + // // + //EXTERNAL RESOMI ORGANS// + // // + +/obj/item/organ/external/foot/resomi + body_hair = "feathers" + +/obj/item/organ/external/foot/right/resomi + body_hair = "feathers" + +/obj/item/organ/external/hand/resomi + body_hair = "feathers" + +/obj/item/organ/external/hand/right/resomi + body_hair = "feathers" + + // // + //INTERNAL RESOMI ORGANS// + // // + +/obj/item/organ/internal/kidneys/resomi + parent_organ = BP_CHEST + +/obj/item/organ/internal/liver/resomi + parent_organ = BP_CHEST + +/obj/item/organ/internal/eyes/resomi + icon = 'mods/resomi/icons/human_races/eyes.dmi' + eye_icon = 'mods/resomi/icons/human_races/eyes.dmi' diff --git a/mods/resomi_fd/code/clothing/clothing.dm b/mods/resomi_fd/code/clothing/clothing.dm new file mode 100644 index 0000000000000..2c324706c5f78 --- /dev/null +++ b/mods/resomi_fd/code/clothing/clothing.dm @@ -0,0 +1,165 @@ + + +//Shoes + +/obj/item/clothing/shoes/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_feet_resomi.dmi') + LAZYSET(sprite_sheets_obj, SPECIES_RESOMI, 'packs/infinity/icons/obj/clothing/species/resomi/obj_feet_resomi.dmi') + +//Gloves +/obj/item/clothing/gloves/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_hands_resomi.dmi') + + +//suit +/obj/item/clothing/suit/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_suit_resomi.dmi') + LAZYSET(sprite_sheets_obj, SPECIES_RESOMI, 'packs/infinity/icons/obj/clothing/species/resomi/obj_suit_resomi.dmi') + +//rig +/obj/item/rig/eva/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_rig_back_resomi.dmi') + +/obj/item/rig/light/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_rig_back_resomi.dmi') + +/obj/item/rig/medical/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_rig_back_resomi.dmi') + +/obj/item/rig/hazard/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_rig_back_resomi.dmi') + +/obj/item/rig/combat/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_rig_back_resomi.dmi') + +/obj/item/rig/merc/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_rig_back_resomi.dmi') + +/obj/item/rig/zero/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_rig_back_resomi.dmi') + +/obj/item/rig/ce/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_rig_back_resomi.dmi') + +/obj/item/rig/industrial/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_rig_back_resomi.dmi') + +/obj/item/rig/hazmat/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_rig_back_resomi.dmi') + +/obj/item/rig/ert/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_rig_back_resomi.dmi') + +/obj/item/rig/command/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_rig_back_resomi.dmi') + + +/* +/obj/item/clothing/head/helmet/space/rig/Initialize() + . = ..() + LAZYADD(species_restricted, list(SPECIES_RESOMI)) + +/obj/item/clothing/gloves/rig/Initialize() + . = ..() + LAZYADD(species_restricted, list(SPECIES_RESOMI)) + +/obj/item/clothing/shoes/magboots/rig/Initialize() + . = ..() + LAZYADD(species_restricted, list(SPECIES_RESOMI)) + +/obj/item/clothing/suit/space/rig/Initialize() + . = ..() + LAZYADD(species_restricted, list(SPECIES_RESOMI)) +*/ + + +/obj/item/storage/belt/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_belt_resomi.dmi') + +/obj/item/clothing/accessory/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_accessories_resomi.dmi') + LAZYSET(sprite_sheets_obj, SPECIES_RESOMI, 'packs/infinity/icons/obj/clothing/species/resomi/obj_accessories_resomi.dmi') +// back +/obj/item/storage/backpack/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_back_resomi.dmi') + +// under +/obj/item/clothing/under/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_under_resomi.dmi') + LAZYSET(sprite_sheets_obj, SPECIES_RESOMI, 'packs/infinity/icons/obj/clothing/species/resomi/obj_under_resomi.dmi') +//ears +/obj/item/clothing/ears/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_ears_resomi.dmi') + +//mask +/obj/item/clothing/mask/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_mask_resomi.dmi') + +//head +/obj/item/clothing/head/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_head_resomi.dmi') + LAZYSET(sprite_sheets_obj, SPECIES_RESOMI, 'packs/infinity/icons/obj/clothing/species/resomi/obj_head_resomi.dmi') +//glasses +/obj/item/clothing/glasses/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_eyes_resomi.dmi') + LAZYSET(sprite_sheets_obj, SPECIES_RESOMI, 'packs/infinity/icons/obj/clothing/species/resomi/obj_eyes_resomi.dmi') + +//devices and machines +/obj/machinery/suit_cycler/Initialize() + . = ..() + species += SPECIES_RESOMI + +/obj/item/auto_cpr/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_suit_resomi.dmi') + +/obj/item/device/radio/headset/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_ears_resomi.dmi') + +/obj/item/clothing/mask/plunger/equipped(M, slot) + ..() + sprite_sheets[SPECIES_RESOMI] = (slot == slot_head ? 'mods/resomi/icons/clothing/onmob_head_resomi.dmi' : 'mods/resomi/icons/clothing/onmob_mask_resomi.dmi') + +/obj/item/card/id/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_id_resomi.dmi') + +/obj/item/handcuffs/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/misc.dmi') + +/obj/item/storage/belt/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_belt_resomi.dmi') + +/obj/item/tank/Initialize() + . = ..() + LAZYSET(sprite_sheets, SPECIES_RESOMI, 'mods/resomi/icons/clothing/onmob_back_resomi.dmi') + +/obj/item/towel/equipped(M, slot) + ..() + sprite_sheets = list(SPECIES_RESOMI = (slot == slot_head ? 'mods/resomi/icons/clothing/onmob_head_resomi.dmi' : 'mods/resomi/icons/clothing/onmob_suit_resomi.dmi')) diff --git a/mods/resomi_fd/code/clothing/glasses.dm b/mods/resomi_fd/code/clothing/glasses.dm new file mode 100644 index 0000000000000..ee53db0044a1d --- /dev/null +++ b/mods/resomi_fd/code/clothing/glasses.dm @@ -0,0 +1,30 @@ +/obj/item/clothing/glasses/sunglasses/lenses + name = "small sun lenses" + desc = "It looks fitted to nonhuman proportions. Usually, you can(?) see them in resomis' or monkeys' eyes." + item_icons = list(slot_glasses_str = 'mods/resomi/icons/clothing/onmob_eyes_resomi.dmi') + icon = 'packs/infinity/icons/obj/clothing/species/resomi/obj_eyes_resomi.dmi' + icon_state = "sun_lenses" + item_state = null + species_restricted = list(SPECIES_RESOMI) + flash_protection = FLASH_PROTECTION_MODERATE + body_parts_covered = 0 + +/obj/item/clothing/glasses/sunglasses/sechud/lenses + name = "small sechud lenses" + desc = "Lenses with a HUD. This one has a sechud." + item_icons = list(slot_glasses_str = 'mods/resomi/icons/clothing/onmob_eyes_resomi.dmi') + icon = 'packs/infinity/icons/obj/clothing/species/resomi/obj_eyes_resomi.dmi' + icon_state = "sec_lenses" + item_state = null + species_restricted = list(SPECIES_RESOMI) + flash_protection = FLASH_PROTECTION_MODERATE + +/obj/item/clothing/glasses/hud/health/lenses + name = "small medhud lenses" + desc = "A small lenses that scans the creatures in view and provides accurate data about their health status." + item_icons = list(slot_glasses_str = 'mods/resomi/icons/clothing/onmob_eyes_resomi.dmi') + icon = 'packs/infinity/icons/obj/clothing/species/resomi/obj_eyes_resomi.dmi' + icon_state = "med_lenses" + item_state = null + flash_protection = FLASH_PROTECTION_MODERATE + species_restricted = list(SPECIES_RESOMI) diff --git a/mods/resomi_fd/code/clothing/misc.dm b/mods/resomi_fd/code/clothing/misc.dm new file mode 100644 index 0000000000000..443a990b7aa62 --- /dev/null +++ b/mods/resomi_fd/code/clothing/misc.dm @@ -0,0 +1,47 @@ + +/* +/obj/item/clothing/mask/gas/explorer_resomi + name = "exploratory mask" + desc = "It looks like a tracker's mask. Too small for tall humanoids." + icon = CUSTOM_ITEM_OBJ + item_icons = list(slot_wear_mask_str = CUSTOM_ITEM_MOB) + icon_state = "explorer_mask" + item_state = "explorer_mask" + species_restricted = list(SPECIES_RESOMI) + sprite_sheets = list(SPECIES_RESOMI = CUSTOM_ITEM_MOB) +*/ + +/obj/item/clothing/accessory/necklace/collar/New() + sprite_sheets += list(SPECIES_RESOMI = 'mods/resomi/icons/clothing/misc.dmi') + . = ..() + +/obj/item/clothing/accessory/scarf/resomi + name = "small mantle" + desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks." + icon = 'packs/infinity/icons/obj/clothing/species/resomi/obj_accessories_resomi.dmi' + icon_state = "small_mantle" + species_restricted = list(SPECIES_RESOMI) + +/obj/item/toy/plushie/resomi + name = "resomi plush" + desc = "This is a plush resomi. Very soft, with a pompom on the tail. The toy is made well, as if alive. Looks like she is sleeping. Shhh!" + icon = 'packs/infinity/icons/obj/toy.dmi' + icon_state = "resomiplushie" + + +/obj/item/device/suit_cooling_unit/mini // Cool sprite needed here. + name = "small portable cooling unit" + desc = "A small portable heat sink with liquid cooled radiator packaged into a modified pack." + w_class = ITEM_SIZE_NORMAL + slot_flags = SLOT_BELT + matter = list(MATERIAL_ALUMINIUM = 11500, MATERIAL_GLASS = 2700) + throwforce = 5 + melee_accuracy_bonus = -10 + max_cooling = 6 + +/obj/item/device/suit_cooling_unit/mini/is_in_slot() + var/mob/living/carbon/human/H = loc + if(!istype(H)) + return FALSE + + return (H.belt == src) || (H.s_store == src) diff --git a/mods/resomi_fd/code/clothing/shoes.dm b/mods/resomi_fd/code/clothing/shoes.dm new file mode 100644 index 0000000000000..b4b63059d2519 --- /dev/null +++ b/mods/resomi_fd/code/clothing/shoes.dm @@ -0,0 +1,35 @@ +/obj/item/clothing/shoes/workboots/resomi + icon_state = "resomi_workboots" + icon = 'packs/infinity/icons/obj/clothing/species/resomi/obj_feet_resomi.dmi' + item_state = "workboots" + name = "small workboots" + desc = "Small and tight shoes with an iron sole for those who work in dangerous area or hate their paws" + + w_class = ITEM_SIZE_SMALL + species_restricted = list(SPECIES_RESOMI) + +/obj/item/clothing/shoes/workboots/resomi/New() + ..() + slowdown_per_slot[slot_shoes] = 0.3 + + +/obj/item/clothing/shoes/footwraps + name = "cloth footwraps" + desc = "A roll of treated canvas used for wrapping paws" + icon_state = "clothwrap" + icon = 'packs/infinity/icons/obj/clothing/species/resomi/obj_feet_resomi.dmi' + item_state = "clothwrap" + force = 0 + item_flags = ITEM_FLAG_SILENT + w_class = ITEM_SIZE_SMALL + species_restricted = list(SPECIES_RESOMI) + // SIERRA TODO: port to Bay12 drop sounds + //drop_sound = 'sound/items/drop/cloth.ogg' + //pickup_sound = 'sound/items/pickup/cloth.ogg' + +/obj/item/clothing/shoes/footwraps/socks_resomi + name = "koishi" + desc = "Looks like socks but with toe holes and thick sole." + icon_state = "socks" + icon = 'packs/infinity/icons/obj/clothing/species/resomi/obj_feet_resomi.dmi' + item_state = "socks" diff --git a/mods/resomi_fd/code/clothing/suits.dm b/mods/resomi_fd/code/clothing/suits.dm new file mode 100644 index 0000000000000..1e9630fc29279 --- /dev/null +++ b/mods/resomi_fd/code/clothing/suits.dm @@ -0,0 +1,882 @@ +/obj/item/clothing/suit/storage/toggle/resomicoat + name = "small coat" + icon = 'packs/infinity/icons/obj/clothing/species/resomi/obj_suit_resomi.dmi' + desc = "A cloak that seems too small to fit a human." + icon_state = "resomicoat" + //icon_open = "resomicoat_open" + //icon_closed = "resomicoat" + body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO|LEGS + species_restricted = list(SPECIES_RESOMI) + +/obj/item/clothing/suit/storage/toggle/resomicoat/New() + ..() + allowed += /obj/item/device/suit_cooling_unit/mini + + +/obj/item/clothing/suit/storage/toggle/resomicoat/white + icon_state = "white_resomicoat" + //icon_open = "white_resomicoat_open" + //icon_closed = "white_resomicoat" + +/obj/item/clothing/suit/storage/toggle/resomilabcoat + name = "small labcoat" + icon = 'packs/infinity/icons/obj/clothing/species/resomi/obj_suit_resomi.dmi' + desc = "A labcoat that seems too small to fit a human." + icon_state = "resomi_labcoat" + //icon_open = "resomi_labcoat_open" + //icon_closed = "resomi_labcoat" + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS + species_restricted = list(SPECIES_RESOMI) + allowed = list(/obj/item/device/scanner/gas,/obj/item/stack/medical,/obj/item/reagent_containers/dropper,/obj/item/reagent_containers/syringe,/obj/item/reagent_containers/hypospray,/obj/item/device/scanner/health,/obj/item/device/flashlight/pen,/obj/item/reagent_containers/glass/bottle,/obj/item/reagent_containers/glass/beaker,/obj/item/reagent_containers/pill,/obj/item/storage/pill_bottle,/obj/item/paper) + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0) + +//standart resomicloak + +/obj/item/clothing/suit/storage/resomicloak + name = "black and orange cloak" + desc = "It drapes over a Resomes's shoulders and closes at the neck with pockets convienently placed inside." + icon = 'packs/infinity/icons/obj/clothing/species/resomi/obj_suit_resomi.dmi' + icon_state = "tesh_cloak_bo" + slots = 2 + species_restricted = list(SPECIES_RESOMI) + body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO + +/obj/item/clothing/suit/storage/resomicloak/Initialize() + . = ..() + if(pockets) + qdel(pockets) + pockets = new/obj/item/storage/internal/pouch(src, slots*BASE_STORAGE_COST(ITEM_SIZE_SMALL)) + +/obj/item/clothing/suit/storage/resomicloak/New() + ..() + allowed += /obj/item/device/suit_cooling_unit/mini + + +/obj/item/clothing/suit/storage/resomicloak/standard/black_grey + name = "black and grey cloak" + icon_state = "tesh_cloak_bg" + item_state = "tesh_cloak_bg" + +/obj/item/clothing/suit/storage/resomicloak/standard/black_midgrey + name = "black and medium grey cloak" + icon_state = "tesh_cloak_bmg" + item_state = "tesh_cloak_bmg" + +/obj/item/clothing/suit/storage/resomicloak/standard/black_lightgrey + name = "black and light grey cloak" + icon_state = "tesh_cloak_blg" + item_state = "tesh_cloak_blg" + +/obj/item/clothing/suit/storage/resomicloak/standard/black_white + name = "black and white cloak" + icon_state = "tesh_cloak_bw" + item_state = "tesh_cloak_bw" + +/obj/item/clothing/suit/storage/resomicloak/standard/black_red + name = "black and red cloak" + icon_state = "tesh_cloak_br" + item_state = "tesh_cloak_br" + +/obj/item/clothing/suit/storage/resomicloak/standard/black + name = "black cloak" + icon_state = "tesh_cloak_bn" + item_state = "tesh_cloak_bn" + +/obj/item/clothing/suit/storage/resomicloak/standard/black_yellow + name = "black and yellow cloak" + icon_state = "tesh_cloak_by" + item_state = "tesh_cloak_by" + +/obj/item/clothing/suit/storage/resomicloak/standard/black_green + name = "black and green cloak" + icon_state = "tesh_cloak_bgr" + item_state = "tesh_cloak_bgr" + +/obj/item/clothing/suit/storage/resomicloak/standard/black_blue + name = "black and blue cloak" + icon_state = "tesh_cloak_bbl" + item_state = "tesh_cloak_bbl" + +/obj/item/clothing/suit/storage/resomicloak/standard/black_purple + name = "black and purple cloak" + icon_state = "tesh_cloak_bp" + item_state = "tesh_cloak_bp" + +/obj/item/clothing/suit/storage/resomicloak/standard/black_pink + name = "black and pink cloak" + icon_state = "tesh_cloak_bpi" + item_state = "tesh_cloak_bpi" + +/obj/item/clothing/suit/storage/resomicloak/standard/black_brown + name = "black and brown cloak" + icon_state = "tesh_cloak_bbr" + item_state = "tesh_cloak_bbr" + +/obj/item/clothing/suit/storage/resomicloak/standard/orange_grey + name = "orange and grey cloak" + icon_state = "tesh_cloak_og" + item_state = "tesh_cloak_og" + +/obj/item/clothing/suit/storage/resomicloak/standard/rainbow + name = "rainbow cloak" + icon_state = "tesh_cloak_rainbow" + item_state = "tesh_cloak_rainbow" + +/obj/item/clothing/suit/storage/resomicloak/standard/lightgrey_grey + name = "light grey and grey cloak" + icon_state = "tesh_cloak_lgg" + item_state = "tesh_cloak_lgg" + +/obj/item/clothing/suit/storage/resomicloak/standard/white_grey + name = "white and grey cloak" + icon_state = "tesh_cloak_wg" + item_state = "tesh_cloak_wg" + +/obj/item/clothing/suit/storage/resomicloak/standard/red_grey + name = "red and grey cloak" + icon_state = "tesh_cloak_rg" + item_state = "tesh_cloak_rg" + +/obj/item/clothing/suit/storage/resomicloak/standard/orange + name = "orange cloak" + icon_state = "tesh_cloak_on" + item_state = "tesh_cloak_on" + +/obj/item/clothing/suit/storage/resomicloak/standard/yellow_grey + name = "yellow and grey cloak" + icon_state = "tesh_cloak_yg" + item_state = "tesh_cloak_yg" + +/obj/item/clothing/suit/storage/resomicloak/standard/green_grey + name = "green and grey cloak" + icon_state = "tesh_cloak_gg" + item_state = "tesh_cloak_gg" + +/obj/item/clothing/suit/storage/resomicloak/standard/blue_grey + name = "blue and grey cloak" + icon_state = "tesh_cloak_blug" + item_state = "tesh_cloak_blug" + +/obj/item/clothing/suit/storage/resomicloak/standard/purple_grey + name = "purple and grey cloak" + icon_state = "tesh_cloak_pg" + item_state = "tesh_cloak_pg" + +/obj/item/clothing/suit/storage/resomicloak/standard/pink_grey + name = "pink and grey cloak" + icon_state = "tesh_cloak_pig" + item_state = "tesh_cloak_pig" + +/obj/item/clothing/suit/storage/resomicloak/standard/brown_grey + name = "brown and grey cloak" + icon_state = "tesh_cloak_brg" + item_state = "tesh_cloak_brg" + +//job resomicloak + +/obj/item/clothing/suit/storage/resomicloak/jobs/cargo + name = "cargo cloak" + desc = "A soft Resomi cloak made for the Cargo department" + icon_state = "tesh_cloak_car" + item_state = "tesh_cloak_car" + +/obj/item/clothing/suit/storage/resomicloak/jobs/mining + name = "mining cloak" + desc = "A soft Resomi cloak made for Mining" + icon_state = "tesh_cloak_mine" + item_state = "tesh_cloak_mine" + +/obj/item/clothing/suit/storage/resomicloak/jobs/command + name = "command cloak" + desc = "A soft Resomi cloak made for the Command department" + icon_state = "tesh_cloak_comm" + item_state = "tesh_cloak_comm" + +/obj/item/clothing/suit/storage/resomicloak/jobs/ce + name = "cheif engineer cloak" + desc = "A soft Resomi cloak made the Chief Engineer" + icon_state = "tesh_cloak_ce" + item_state = "tesh_cloak_ce" + +/obj/item/clothing/suit/storage/resomicloak/jobs/eningeer + name = "engineering cloak" + desc = "A soft Resomi cloak made for the Engineering department" + icon_state = "tesh_cloak_engie" + item_state = "tesh_cloak_engie" + +/obj/item/clothing/suit/storage/resomicloak/jobs/atmos + name = "atmospherics cloak" + desc = "A soft Resomi cloak made for the Atmospheric Technician" + icon_state = "tesh_cloak_atmos" + item_state = "tesh_cloak_atmos" + +/obj/item/clothing/suit/storage/resomicloak/jobs/cmo + name = "chief medical officer cloak" + desc = "A soft Resomi cloak made the Cheif Medical Officer" + icon_state = "tesh_cloak_cmo" + item_state = "tesh_cloak_cmo" + +/obj/item/clothing/suit/storage/resomicloak/jobs/medical + name = "medical cloak" + desc = "A soft Resomi cloak made for the Medical department" + icon_state = "tesh_cloak_doc" + item_state = "tesh_cloak_doc" + +/obj/item/clothing/suit/storage/resomicloak/jobs/chemistry + name = "chemist cloak" + desc = "A soft Resomi cloak made for the Chemist" + icon_state = "tesh_cloak_chem" + item_state = "tesh_cloak_chem" + +/obj/item/clothing/suit/storage/resomicloak/jobs/viro + name = "virologist cloak" + desc = "A soft Resomi cloak made for the Virologist" + icon_state = "tesh_cloak_viro" + item_state = "tesh_cloak_viro" + +/obj/item/clothing/suit/storage/resomicloak/jobs/para + name = "paramedic cloak" + desc = "A soft Resomi cloak made for the Paramedic" + icon_state = "tesh_cloak_para" + item_state = "tesh_cloak_para" + +/obj/item/clothing/suit/storage/resomicloak/jobs/sci + name = "scientist cloak" + desc = "A soft Resomi cloak made for the Science department" + icon_state = "tesh_cloak_sci" + item_state = "tesh_cloak_sci" + +/obj/item/clothing/suit/storage/resomicloak/jobs/robo + name = "roboticist cloak" + desc = "A soft Resomi cloak made for the roboticist" + icon_state = "tesh_cloak_robo" + item_state = "tesh_cloak_robo" + +/obj/item/clothing/suit/storage/resomicloak/jobs/sec + name = "security cloak" + desc = "A soft Resomi cloak made for the Security department" + icon_state = "tesh_cloak_sec" + item_state = "tesh_cloak_sec" + +/obj/item/clothing/suit/storage/resomicloak/jobs/qm + name = "quartermaster cloak" + desc = "A soft Resomi cloak made for the Quartermaster" + icon_state = "tesh_cloak_qm" + item_state = "tesh_cloak_qm" + +/obj/item/clothing/suit/storage/resomicloak/jobs/service + name = "service cloak" + desc = "A soft Resomi cloak made for the Service department" + icon_state = "tesh_cloak_serv" + item_state = "tesh_cloak_serv" + +/obj/item/clothing/suit/storage/resomicloak/jobs/iaa + name = "internal affairs cloak" + desc = "A soft Resomi cloak made for the Internal Affairs Agent" + icon_state = "tesh_cloak_iaa" + item_state = "tesh_cloak_iaa" + +/obj/item/clothing/suit/storage/resomicloak_alt + icon = 'packs/infinity/icons/obj/clothing/species/resomi/obj_suit_resomi.dmi' + name = "resomi cloak dretrowave" + desc = "A soft Resomi cloak" + icon_state = "tesh_cloak_dretrowave" + body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO + +/obj/item/clothing/suit/storage/resomicloak_alt/New() + ..() + allowed += /obj/item/device/suit_cooling_unit/mini + + +/obj/item/clothing/suit/storage/resomicloak_alt/tesh_cloak_dretrowave + name = "resomi cloak dretrowave" + icon_state = "tesh_cloak_dretrowave" + +/obj/item/clothing/suit/storage/resomicloak_alt/green_grey + name = "green and grey cloak" + icon_state = "tesh_cloak_gg_alt" + +/obj/item/clothing/suit/storage/resomicloak_alt/blue_grey + name = "blue and grey cloak" + icon_state = "tesh_cloak_blug_alt" + +/obj/item/clothing/suit/storage/resomicloak_alt/purple_grey + name = "purple and grey cloak" + icon_state = "tesh_cloak_pg_alt" + +/obj/item/clothing/suit/storage/resomicloak_alt/cmo + name = "chief medical officer cloak" + desc = "A soft Resomi cloak made the Cheif Medical Officer" + icon_state = "tesh_cloak_cmo_alt" + +/obj/item/clothing/suit/storage/resomicloak_alt/medical + name = "medical cloak" + desc = "A soft Resomi cloak made for the Medical department" + icon_state = "tesh_cloak_doc_alt" + +/obj/item/clothing/suit/storage/resomicloak_alt/chemistry + name = "chemist cloak" + desc = "A soft Resomi cloak made for the Chemist" + icon_state = "tesh_cloak_chem_alt" + +/obj/item/clothing/suit/storage/resomicloak_alt/psych + name = "psychiatrist cloak" + desc = "A soft Resomi cloak made for the Psychiatrist" + icon_state = "tesh_cloak_psych" + +/obj/item/clothing/suit/storage/resomicloak_alt/ce + name = "cheif engineer cloak" + desc = "A soft Resomi cloak made the Chief Engineer" + icon_state = "tesh_cloak_ce_alt" + +/obj/item/clothing/suit/storage/resomicloak_alt/engineer + name = "engineering cloak" + desc = "A soft Resomi cloak made for the Engineering department" + icon_state = "tesh_cloak_engie_alt" + +/obj/item/clothing/suit/storage/resomicloak_alt/atmos + name = "atmospherics cloak" + desc = "A soft Resomi cloak made for the Atmospheric Technician" + icon_state = "tesh_cloak_atmos_alt" + +/obj/item/clothing/suit/storage/resomicloak_alt/hos + name = "head of security cloak" + desc = "A soft Resomi cloak made for the Head of Security" + icon_state = "tesh_cloak_hos" +/obj/item/clothing/suit/storage/resomicloak_alt/qm + name = "quartermaster cloak" + desc = "A soft Resomi cloak made for the Quartermaster" + icon_state = "tesh_cloak_qm_alt" + +/obj/item/clothing/suit/storage/resomicloak_alt/cargo + name = "cargo cloak" + desc = "A soft Resomi cloak made for the Cargo department" + icon_state = "tesh_cloak_car_alt" + +/obj/item/clothing/suit/storage/resomicloak_alt/mining + name = "mining cloak" + desc = "A soft Resomi cloak made for Mining" + icon_state = "tesh_cloak_mine_alt" + +/obj/item/clothing/suit/storage/resomicloak_alt/hop + name = "head of personnel cloak" + desc = "A soft Resomi cloak made for the Head of Personnel" + icon_state = "tesh_cloak_hop" + +/obj/item/clothing/suit/storage/resomicloak_alt/service + name = "service cloak" + desc = "A soft Resomi cloak made for the Service department" + icon_state = "tesh_cloak_serv_alt" + +/obj/item/clothing/suit/storage/resomicloak_alt/sec + name = "security cloak" + desc = "A soft Resomi cloak made for the Security department" + icon_state = "tesh_cloak_sec_alt" + +/obj/item/clothing/suit/storage/resomicloak_alt/iaa + name = "internal affairs cloak" + desc = "A soft Resomi cloak made for the Internal Affairs Agent" + icon_state = "tesh_cloak_iaa" + +/obj/item/clothing/suit/storage/resomicloak_alt/robo + name = "roboticist cloak" + desc = "A soft Resomi cloak made for the Roboticist" + icon_state = "tesh_cloak_robo_alt" + +/obj/item/clothing/suit/storage/resomicloak_alt/rd + name = "research director cloak" + desc = "A soft Resomi cloak made for the Research Director" + icon_state = "tesh_cloak_rd" + +/obj/item/clothing/suit/storage/resomicloak_alt/sci + name = "scientist cloak" + desc = "A soft Resomi cloak made for the Science department" + icon_state = "tesh_cloak_sci_alt" + +/obj/item/clothing/suit/storage/resomicloak_alt/iaa + name = "internal affairs cloak" + desc = "A soft Resomi cloak made for the Internal Affairs Agent" + icon_state = "tesh_cloak_iaa" + item_state = "tesh_cloak_iaa" + +//Belted cloaks +/obj/item/clothing/suit/storage/resomicloak_belted + name = "belted cloak" + desc = "A more ridged and stylized Resomi cloak." + icon = 'packs/infinity/icons/obj/clothing/species/resomi/obj_suit_resomi.dmi' + icon_state = "tesh_beltcloak_bo" + body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO + species_restricted = list(SPECIES_RESOMI) + +/obj/item/clothing/suit/storage/resomicloak_belted/New() + ..() + allowed += /obj/item/device/suit_cooling_unit/mini + + +/obj/item/clothing/suit/storage/resomicloak_belted/standard/black_orange + name = "black belted cloak (orange)" + icon_state = "tesh_beltcloak_bo" + +/obj/item/clothing/suit/storage/resomicloak_belted/standard/black_grey + name = "black belted cloak" + icon_state = "tesh_beltcloak_bg" + +/obj/item/clothing/suit/storage/resomicloak_belted/standard/black_midgrey + name = "black belted cloak (medium grey)" + icon_state = "tesh_beltcloak_bmg" + +/obj/item/clothing/suit/storage/resomicloak_belted/standard/black_lightgrey + name = "black belted cloak (light grey)" + icon_state = "tesh_beltcloak_blg" + +/obj/item/clothing/suit/storage/resomicloak_belted/standard/black_white + name = "black belted cloak (white)" + icon_state = "tesh_beltcloak_bw" + +/obj/item/clothing/suit/storage/resomicloak_belted/standard/black_red + name = "black belted cloak (red)" + icon_state = "tesh_beltcloak_br" + +/obj/item/clothing/suit/storage/resomicloak_belted/standard/black + name = "black simple belted cloak" + icon_state = "tesh_beltcloak_bn" + +/obj/item/clothing/suit/storage/resomicloak_belted/standard/black_yellow + name = "black belted cloak (yellow)" + icon_state = "tesh_beltcloak_by" + +/obj/item/clothing/suit/storage/resomicloak_belted/standard/black_green + name = "black belted cloak (green)" + icon_state = "tesh_beltcloak_bgr" + +/obj/item/clothing/suit/storage/resomicloak_belted/standard/black_blue + name = "black belted cloak (blue)" + icon_state = "tesh_beltcloak_bbl" + +/obj/item/clothing/suit/storage/resomicloak_belted/standard/black_purple + name = "black belted cloak (purple)" + icon_state = "tesh_beltcloak_bp" + +/obj/item/clothing/suit/storage/resomicloak_belted/standard/black_pink + name = "black belted cloak (pink)" + icon_state = "tesh_beltcloak_bpi" + +/obj/item/clothing/suit/storage/resomicloak_belted/standard/black_brown + name = "black belted cloak (brown)" + icon_state = "tesh_beltcloak_bbr" + +/obj/item/clothing/suit/storage/resomicloak_belted/standard/orange_grey + name = "orange belted cloak" + icon_state = "tesh_beltcloak_og" + +/obj/item/clothing/suit/storage/resomicloak_belted/standard/rainbow + name = "rainbow belted cloak" + icon_state = "tesh_beltcloak_rainbow" + +/obj/item/clothing/suit/storage/resomicloak_belted/standard/lightgrey_grey + name = "light grey belted cloak" + icon_state = "tesh_beltcloak_lgg" + +/obj/item/clothing/suit/storage/resomicloak_belted/standard/white_grey + name = "white belted cloak" + icon_state = "tesh_beltcloak_wg" + +/obj/item/clothing/suit/storage/resomicloak_belted/standard/brown_grey + name = "brown belted cloak" + icon_state = "tesh_beltcloak_brg" + +//Belted job cloaks +/obj/item/clothing/suit/storage/resomicloak_belted/jobs/cargo + name = "cargo belted cloak" + desc = "A soft Resomi cloak made for the Cargo department" + icon_state = "tesh_beltcloak_car" + +/obj/item/clothing/suit/storage/resomicloak_belted/jobs/mining + name = "mining belted cloak" + desc = "A soft Resomi cloak made for Mining" + icon_state = "tesh_beltcloak_mine" + +/obj/item/clothing/suit/storage/resomicloak_belted/jobs/command + name = "command belted cloak" + desc = "A soft Resomi cloak made for the Command department" + icon_state = "tesh_beltcloak_comm" + +/obj/item/clothing/suit/storage/resomicloak_belted/jobs/ce + name = "chief engineer belted cloak" + desc = "A soft Resomi cloak made the Chief Engineer" + icon_state = "tesh_beltcloak_ce" + +/obj/item/clothing/suit/storage/resomicloak_belted/jobs/engineer + name = "engineering belted cloak" + desc = "A soft Resomi cloak made for the Engineering department" + icon_state = "tesh_beltcloak_engie" + +/obj/item/clothing/suit/storage/resomicloak_belted/jobs/atmos + name = "atmospherics belted cloak" + desc = "A soft Resomi cloak made for the Atmospheric Technician" + icon_state = "tesh_beltcloak_atmos" + +/obj/item/clothing/suit/storage/resomicloak_belted/jobs/cmo + name = "chief medical officer belted cloak" + desc = "A soft Resomi cloak made the Chief Medical Officer" + icon_state = "tesh_beltcloak_cmo" + +/obj/item/clothing/suit/storage/resomicloak_belted/jobs/medical + name = "medical belted cloak" + desc = "A soft Resomi cloak made for the Medical department" + icon_state = "tesh_beltcloak_doc" + +/obj/item/clothing/suit/storage/resomicloak_belted/jobs/chemistry + name = "chemist belted cloak" + desc = "A soft Resomi cloak made for the Chemist" + icon_state = "tesh_beltcloak_chem" + +/obj/item/clothing/suit/storage/resomicloak_belted/jobs/viro + name = "virologist belted cloak" + desc = "A soft Resomi cloak made for the Virologist" + icon_state = "tesh_beltcloak_viro" + +/obj/item/clothing/suit/storage/resomicloak_belted/jobs/sci + name = "scientist belted cloak" + desc = "A soft Resomi cloak made for the Science department" + icon_state = "tesh_beltcloak_sci" + +/obj/item/clothing/suit/storage/resomicloak_belted/jobs/robo + name = "roboticist belted cloak" + desc = "A soft Resomi cloak made for the Roboticist" + icon_state = "tesh_beltcloak_robo" + +/obj/item/clothing/suit/storage/resomicloak_belted/jobs/sec + name = "security belted cloak" + desc = "A soft Resomi cloak made for the Security department" + icon_state = "tesh_beltcloak_sec" + +/obj/item/clothing/suit/storage/resomicloak_belted/jobs/qm + name = "quartermaster belted cloak" + desc = "A soft Resomi cloak made for the Quartermaster" + icon_state = "tesh_beltcloak_qm" + +/obj/item/clothing/suit/storage/resomicloak_belted/jobs/service + name = "service belted cloak" + desc = "A soft Resomi cloak made for the Service department" + icon_state = "tesh_beltcloak_serv" + +/obj/item/clothing/suit/storage/resomicloak_belted/jobs/iaa + name = "internal affairs belted cloak" + desc = "A soft Resomi cloak made for the Internal Affairs Agent" + icon_state = "tesh_beltcloak_iaa" + +/obj/item/clothing/suit/storage/resomicloak_belted/jobs/wrdn + name = "warden belted cloak" + desc = "A soft Resomi cloak made for the Warden" + icon_state = "tesh_beltcloak_wrdn" + +/obj/item/clothing/suit/storage/resomicloak_belted/jobs/hos + name = "security chief belted cloak" + desc = "A soft Resomi cloak made for the Head of Security" + icon_state = "tesh_beltcloak_hos" + +/obj/item/clothing/suit/storage/resomicloak_belted/jobs/jani + name = "janitor belted cloak" + desc = "A soft Resomi cloak made for the Janitor" + icon_state = "tesh_beltcloak_jani" + +//Hooded Resomi cloaks +/obj/item/clothing/suit/storage/hooded/resomi + name = "Hooded Resomi Cloak" + desc = "A soft resomi cloak with an added hood." + icon = 'packs/infinity/icons/obj/clothing/species/resomi/obj_suit_resomi.dmi' + icon_state = "tesh_hcloak_bo" + //item_state_slots = list(slot_r_hand_str = "tesh_hcloak_bo", slot_l_hand_str = "tesh_hcloak_bo") + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS + //flags_inv = HIDEHOLSTER|HIDETIE + action_button_name = "Toggle Cloak Hood" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood + //allowed = list (/obj/item/weapon/pen, /obj/item/weapon/paper, /obj/item/device/flashlight,/obj/item/weapon/tank/emergency/oxygen, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/storage/box/matches, /obj/item/weapon/reagent_containers/food/drinks/flask) + species_restricted = list(SPECIES_RESOMI) + sprite_sheets = list(SPECIES_RESOMI = 'mods/resomi/icons/clothing/onmob_suit_resomi.dmi') + +/obj/item/clothing/suit/storage/hooded/resomi/New() + ..() + if(pockets) + qdel(pockets) + pockets = new/obj/item/storage/internal/pouch(src, slots*BASE_STORAGE_COST(ITEM_SIZE_SMALL)) + +/obj/item/clothing/suit/storage/hooded/resomi/New() + ..() + allowed += /obj/item/device/suit_cooling_unit/mini + + +/obj/item/clothing/suit/storage/hooded/resomi/on_update_icon() + ..() + update_clothing_icon() + +/obj/item/clothing/suit/storage/hooded/resomi/polychromic + name = "polychromic cloak" + desc = "Resomi cloak. Seems to be coated with polychrome paint. There is also a sewn hood. DO NOT MIX WITH EMP!" + icon_state = "polychromic" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/polychromic_hood + +/obj/item/clothing/suit/storage/hooded/resomi/polychromic/verb/change_color() + set name = "Change Cloak Color" + set category = "Object" + set desc = "Change the color of the cloak." + set src in usr + + if(usr.incapacitated()) + return + + var/new_color = input(usr, "Pick a new color", "Cloak Color", color) as color|null + if(!new_color || new_color == color || usr.incapacitated()) + return + color = new_color + hood.color = color + hood.update_icon() + update_icon() + +/obj/item/clothing/suit/storage/hooded/resomi/polychromic/on_update_icon() + ..() + update_clothing_icon() + hood.color = color + hood.update_clothing_icon() + +/obj/item/clothing/suit/storage/hooded/resomi/polychromic/emp_act(severity) + color = null + hood.color = null + update_icon() + ..() + +/obj/item/clothing/suit/storage/hooded/resomi/black_orange + name = "black and orange hooded cloak" + icon_state = "tesh_hcloak_bo" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/black_orange + +/obj/item/clothing/suit/storage/hooded/resomi/black_grey + name = "black and grey hooded cloak" + icon_state = "tesh_hcloak_bg" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/black_grey + +/obj/item/clothing/suit/storage/hooded/resomi/black_midgrey + name = "black and medium grey hooded cloak" + icon_state = "tesh_hcloak_bmg" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/black_midgrey + +/obj/item/clothing/suit/storage/hooded/resomi/black_lightgrey + name = "black and light grey hooded cloak" + icon_state = "tesh_hcloak_blg" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/black_lightgrey + +/obj/item/clothing/suit/storage/hooded/resomi/black_white + name = "black and white hooded cloak" + icon_state = "tesh_hcloak_bw" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/black_white + +/obj/item/clothing/suit/storage/hooded/resomi/black_red + name = "black and red hooded cloak" + icon_state = "tesh_hcloak_br" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/black_red + +/obj/item/clothing/suit/storage/hooded/resomi/black + name = "black hooded cloak" + icon_state = "tesh_hcloak_bn" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/black + +/obj/item/clothing/suit/storage/hooded/resomi/black_yellow + name = "black and yellow hooded cloak" + icon_state = "tesh_hcloak_by" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/black_yellow + +/obj/item/clothing/suit/storage/hooded/resomi/black_green + name = "black and green hooded cloak" + icon_state = "tesh_hcloak_bgr" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/black_green + +/obj/item/clothing/suit/storage/hooded/resomi/black_blue + name = "black and blue hooded cloak" + icon_state = "tesh_hcloak_bbl" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/black_blue + +/obj/item/clothing/suit/storage/hooded/resomi/black_purple + name = "black and purple hooded cloak" + icon_state = "tesh_hcloak_bp" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/black_purple + +/obj/item/clothing/suit/storage/hooded/resomi/black_pink + name = "black and pink hooded cloak" + icon_state = "tesh_hcloak_bpi" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/black_pink + +/obj/item/clothing/suit/storage/hooded/resomi/black_brown + name = "black and brown hooded cloak" + icon_state = "tesh_hcloak_bbr" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/black_brown + +/obj/item/clothing/suit/storage/hooded/resomi/orange_grey + name = "orange and grey hooded cloak" + icon_state = "tesh_hcloak_og" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/orange_grey + +/obj/item/clothing/suit/storage/hooded/resomi/lightgrey_grey + name = "light grey and grey hooded cloak" + icon_state = "tesh_hcloak_lgg" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/lightgrey_grey + +/obj/item/clothing/suit/storage/hooded/resomi/white_grey + name = "white and grey hooded cloak" + icon_state = "tesh_hcloak_wg" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/white_grey + +/obj/item/clothing/suit/storage/hooded/resomi/red_grey + name = "red and grey hooded cloak" + icon_state = "tesh_hcloak_rg" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/red_grey + +/obj/item/clothing/suit/storage/hooded/resomi/orange + name = "orange hooded cloak" + icon_state = "tesh_hcloak_on" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/orange + +/obj/item/clothing/suit/storage/hooded/resomi/yellow_grey + name = "yellow and grey hooded cloak" + icon_state = "tesh_hcloak_yg" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/yellow_grey + +/obj/item/clothing/suit/storage/hooded/resomi/green_grey + name = "green and grey hooded cloak" + icon_state = "tesh_hcloak_gg" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/green_grey + +/obj/item/clothing/suit/storage/hooded/resomi/blue_grey + name = "blue and grey hooded cloak" + icon_state = "tesh_hcloak_blug" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/blue_grey + +/obj/item/clothing/suit/storage/hooded/resomi/purple_grey + name = "purple and grey hooded cloak" + icon_state = "tesh_hcloak_pg" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/purple_grey + +/obj/item/clothing/suit/storage/hooded/resomi/pink_grey + name = "pink and grey hooded cloak" + icon_state = "tesh_hcloak_pig" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/pink_grey + +/obj/item/clothing/suit/storage/hooded/resomi/brown_grey + name = "brown and grey hooded cloak" + icon_state = "tesh_hcloak_brg" + hoodtype = /obj/item/clothing/head/resomi/resomi_hood/brown_grey + +//The actual hoods +/obj/item/clothing/head/resomi/resomi_hood + name = "Cloak Hood" + desc = "A hood attached to a resomi cloak." + icon = 'packs/infinity/icons/obj/clothing/species/resomi/obj_head_resomi.dmi' + icon_state = "tesh_hcloak_bo_hood" + flags_inv = BLOCKHAIR | HIDEEARS + body_parts_covered = HEAD + species_restricted = list(SPECIES_RESOMI) + sprite_sheets = list(SPECIES_RESOMI = 'mods/resomi/icons/clothing/onmob_head_resomi.dmi') + +/obj/item/clothing/head/resomi/resomi_hood/polychromic_hood + name = "polychromic hood" + icon_state = "polychromic_hood" + desc = "It's hood that covers the head." + +/obj/item/clothing/head/resomi/resomi_hood/black_orange + name = "black and orange cloak hood" + icon_state = "tesh_hcloak_bo_hood" +/obj/item/clothing/head/resomi/resomi_hood/black_grey + name = "black and grey cloak hood" + icon_state = "tesh_hcloak_bg_hood" + +/obj/item/clothing/head/resomi/resomi_hood/black_midgrey + name = "black and medium grey cloak hood" + icon_state = "tesh_hcloak_bmg_hood" + +/obj/item/clothing/head/resomi/resomi_hood/black_lightgrey + name = "black and light grey cloak hood" + icon_state = "tesh_hcloak_blg_hood" + +/obj/item/clothing/head/resomi/resomi_hood/black_white + name = "black and white cloak hood" + icon_state = "tesh_hcloak_bw_hood" + +/obj/item/clothing/head/resomi/resomi_hood/black_red + name = "black and red cloak hood" + icon_state = "tesh_hcloak_br_hood" + +/obj/item/clothing/head/resomi/resomi_hood/black + name = "black cloak hood" + icon_state = "tesh_hcloak_bn_hood" + +/obj/item/clothing/head/resomi/resomi_hood/black_yellow + name = "black and yellow cloak hood" + icon_state = "tesh_hcloak_by_hood" + +/obj/item/clothing/head/resomi/resomi_hood/black_green + name = "black and green cloak hood" + icon_state = "tesh_hcloak_bgr_hood" + +/obj/item/clothing/head/resomi/resomi_hood/black_blue + name = "black and blue cloak hood" + icon_state = "tesh_hcloak_bbl_hood" + +/obj/item/clothing/head/resomi/resomi_hood/black_purple + name = "black and purple cloak hood" + icon_state = "tesh_hcloak_bp_hood" + +/obj/item/clothing/head/resomi/resomi_hood/black_pink + name = "black and pink cloak hood" + icon_state = "tesh_hcloak_bpi_hood" + +/obj/item/clothing/head/resomi/resomi_hood/black_brown + name = "black and brown cloak hood" + icon_state = "tesh_hcloak_bbr_hood" + +/obj/item/clothing/head/resomi/resomi_hood/orange_grey + name = "orange and grey cloak hood" + icon_state = "tesh_hcloak_og_hood" + +/obj/item/clothing/head/resomi/resomi_hood/rainbow + name = "rainbow cloak hood" + icon_state = "tesh_hood_rainbow" + +/obj/item/clothing/head/resomi/resomi_hood/lightgrey_grey + name = "light grey and grey cloak hood" + icon_state = "tesh_hcloak_lgg_hood" + +/obj/item/clothing/head/resomi/resomi_hood/white_grey + name = "white and grey cloak hood" + icon_state = "tesh_hcloak_wg_hood" + +/obj/item/clothing/head/resomi/resomi_hood/red_grey + name = "red and grey cloak hood" + icon_state = "tesh_hcloak_rg_hood" + +/obj/item/clothing/head/resomi/resomi_hood/orange + name = "orange cloak hood" + icon_state = "tesh_hcloak_on_hood" + +/obj/item/clothing/head/resomi/resomi_hood/yellow_grey + name = "yellow and grey cloak hood" + icon_state = "tesh_hcloak_yg_hood" + +/obj/item/clothing/head/resomi/resomi_hood/green_grey + name = "green and grey cloak hood" + icon_state = "tesh_hcloak_gg_hood" + +/obj/item/clothing/head/resomi/resomi_hood/blue_grey + name = "blue and grey cloak hood" + icon_state = "tesh_hcloak_blug_hood" + +/obj/item/clothing/head/resomi/resomi_hood/purple_grey + name = "purple and grey cloak hood" + icon_state = "tesh_hcloak_pg_hood" + +/obj/item/clothing/head/resomi/resomi_hood/pink_grey + name = "pink and grey cloak hood" + icon_state = "tesh_hcloak_pig_hood" + +/obj/item/clothing/head/resomi/resomi_hood/brown_grey + name = "brown and grey cloak hood" + icon_state = "tesh_hcloak_brg_hood" diff --git a/mods/resomi_fd/code/clothing/under.dm b/mods/resomi_fd/code/clothing/under.dm new file mode 100644 index 0000000000000..650f25a7f5bba --- /dev/null +++ b/mods/resomi_fd/code/clothing/under.dm @@ -0,0 +1,459 @@ +/obj/item/clothing/under/resomi + name = "small grey smock" + desc = "It looks fitted to nonhuman proportions." + icon = 'packs/infinity/icons/obj/clothing/species/resomi/obj_under_resomi.dmi' + icon_state = "resomi_grey" + item_state = "resomi_grey" + species_restricted = list(SPECIES_RESOMI) + +/obj/item/clothing/under/resomi/white + name = "small smock" + icon_state = "resomi_white" + item_state = "resomi_white" + +/obj/item/clothing/under/resomi/red + name = "small Security smock" + icon_state = "resomi_red" + item_state = "resomi_red" + +/obj/item/clothing/under/resomi/yellow + name = "small Engineering smock" + icon_state = "resomi_yellow" + item_state = "resomi_yellow" + +/obj/item/clothing/under/resomi/medical + name = "small Medical uniform" + icon_state = "resomi_medical" + item_state = "resomi_medical" + +/obj/item/clothing/under/resomi/rainbow + name = "small rainbow smock" + icon_state = "resomi_rainbow" + item_state = "resomi_rainbow" + +/obj/item/clothing/under/resomi/science + name = "small Science uniform" + icon_state = "resomi_science" + item_state = "resomi_science" + +/obj/item/clothing/under/resomi/dress + name = "small dress" + icon_state = "resomi_dress_cap" + item_state = "resomi_dress_cap" + +/obj/item/clothing/under/resomi/dress/formal + name = "small formal dress" + icon_state = "resomi_captain" + item_state = "resomi_captain" + +/obj/item/clothing/under/resomi/dress/stylish + name = "small stylish dress" + icon_state = "resomi_captain_formal" + item_state = "resomi_captain_formal" + +/obj/item/clothing/under/resomi/dress/white + name = "small black dress" + icon_state = "resomi_blackutility_com" + worn_state = "resomi_blackutility_com" + +/obj/item/clothing/under/resomi/robotics + name = "small robotics uniform" + icon_state = "resomi_robotics" + item_state = "resomi_robotics" + +/obj/item/clothing/under/resomi/work + name = "small darkorange work smock" + desc = "A small black working suit of non-human proportions with colored lines on it and a black steel belt.\ + On a small label reads: 'Twinne Corp. - feathers and style'. Don't forget about hardhat." + icon_state = "resomi_black_orange_worksuit" + +/obj/item/clothing/under/resomi/work/black_red + name = "small darkred work smock" + desc = "A small black working suit of non-human proportions with colored lines on it and a black steel belt.\ + On a small label reads: 'Twinne Corp. - feathers and style'. Looks like you're on duty of forces of evil." + icon_state = "resomi_black_red_worksuit" + +/obj/item/clothing/under/resomi/work/black_purple + name = "small darkpurple work smock" + desc = "A small black working suit of non-human proportions with colored lines on it and a black steel belt.\ + On a small label reads: 'Twinne Corp. - feathers and style'. So, where is your labcoat, doctor?" + icon_state = "resomi_black_purple_worksuit" + +/obj/item/clothing/under/resomi/work/black_green + name = "small darkgreen work smock" + desc = "A small black working suit of non-human proportions with colored lines on it and a black steel belt.\ + On a small label reads: 'Twinne Corp. - feathers and style'. Flowers will love you, whether they want it or not." + icon_state = "resomi_black_green_worksuit" + +/obj/item/clothing/under/resomi/work/black_blue + name = "small darkblue work smock" + desc = "A small black working suit of non-human proportions with colored lines on it and a black steel belt.\ + On a small label reads: 'Twinne Corp. - feathers and style'. So... Relaxing." + icon_state = "resomi_black_blue_worksuit" + +/obj/item/clothing/under/resomi/work/white + name = "small lightblue work smock" + desc = "A small white working suit of non-human proportions with colored lines on it and a white steel belt.\ + On a small label reads: 'Twinne Corp. - feathers and style'. Really relaxing" + icon_state = "resomi_white_blue_worksuit" + +/obj/item/clothing/under/resomi/work/white_red + name = "small lightred work smock" + desc = "A small white working suit of non-human proportions with colored lines on it and a white steel belt.\ + On a small label reads: 'Twinne Corp. - feathers and style'. For maximum civilian security." + icon_state = "resomi_white_red_worksuit" + +/obj/item/clothing/under/resomi/work/white_purple + name = "small lightpurple work smock" + desc = "A small white working suit of non-human proportions with colored lines on it and a white steel belt.\ + On a small label reads: 'Twinne Corp. - feathers and style'. So, where is your labcoat, assistant?" + icon_state = "resomi_white_purple_worksuit" + +/obj/item/clothing/under/resomi/work/white_green + name = "small lightgreen work smock" + desc = "A small white working suit of non-human proportions with colored lines on it and a white steel belt.\ + On a small label reads: 'Twinne Corp. - feathers and style'. Flowers will love you... You guess." + icon_state = "resomi_white_green_worksuit" + +/obj/item/clothing/under/resomi/work/white_orange + name = "small lightorange work smock" + desc = "A small white working suit of non-human proportions with colored lines on it and a white steel belt.\ + On a small label reads: 'Twinne Corp. - feathers and style'. Don't forget about hardhat and gloves." + icon_state = "resomi_white_orange_worksuit" + +/obj/item/clothing/under/resomi/sport + name = "small sport uniform" + icon_state = "resomi_expeditionpt" + worn_state = "resomi_expeditionpt" + +/obj/item/clothing/under/resomi/utility + name = "small black utility uniform" + icon_state = "resomi_blackutility" + worn_state = "resomi_blackutility" + +/obj/item/clothing/under/resomi/utility/black + name = "small grey utility uniform" + icon_state = "resomi_greydress" + worn_state = "resomi_greydress" + +//Undercoat + +/obj/item/clothing/under/resomi/undercoat + name = "black and orange undercoat" + desc = "Once developed by Xen'Corp clothing for refugees of the Resomi race.\ + Made of micro and nanofibres to make it light and billowy, perfect for going fast and stylishly!" + icon_state = "tesh_uniform_bo" + item_state = "tesh_uniform_bo" + +/obj/item/clothing/under/resomi/undercoat/standard/black_grey + name = "black and grey undercoat" + icon_state = "tesh_uniform_bg" + item_state = "tesh_uniform_bg" + +/obj/item/clothing/under/resomi/undercoat/standard/black_midgrey + name = "black and medium grey undercoat" + icon_state = "tesh_uniform_bmg" + item_state = "tesh_uniform_bmg" + +/obj/item/clothing/under/resomi/undercoat/standard/black_lightgrey + name = "black and light grey undercoat" + icon_state = "tesh_uniform_blg" + item_state = "tesh_uniform_blg" + +/obj/item/clothing/under/resomi/undercoat/standard/black_white + name = "black and white undercoat" + icon_state = "tesh_uniform_bw" + item_state = "tesh_uniform_bw" + +/obj/item/clothing/under/resomi/undercoat/standard/black_red + name = "black and red undercoat" + icon_state = "tesh_uniform_br" + item_state = "tesh_uniform_br" + +/obj/item/clothing/under/resomi/undercoat/standard/black + name = "black undercoat" + icon_state = "tesh_uniform_bn" + item_state = "tesh_uniform_bn" + +/obj/item/clothing/under/resomi/undercoat/standard/black_yellow + name = "black and yellow undercoat" + icon_state = "tesh_uniform_by" + item_state = "tesh_uniform_by" + +/obj/item/clothing/under/resomi/undercoat/standard/black_green + name = "black and green undercoat" + icon_state = "tesh_uniform_bgr" + item_state = "tesh_uniform_bgr" + +/obj/item/clothing/under/resomi/undercoat/standard/black_blue + name = "black and blue undercoat" + icon_state = "tesh_uniform_bbl" + item_state = "tesh_uniform_bbl" + +/obj/item/clothing/under/resomi/undercoat/standard/black_purple + name = "black and purple undercoat" + icon_state = "tesh_uniform_bp" + item_state = "tesh_uniform_bp" + +/obj/item/clothing/under/resomi/undercoat/standard/black_pink + name = "black and pink undercoat" + icon_state = "tesh_uniform_bpi" + item_state = "tesh_uniform_bpi" + +/obj/item/clothing/under/resomi/undercoat/standard/black_brown + name = "black and brown undercoat" + icon_state = "tesh_uniform_bbr" + item_state = "tesh_uniform_bbr" + +/obj/item/clothing/under/resomi/undercoat/standard/orange_grey + name = "orange and grey undercoat" + icon_state = "tesh_uniform_og" + item_state = "tesh_uniform_og" + +/obj/item/clothing/under/resomi/undercoat/standard/rainbow + name = "rainbow undercoat" + icon_state = "tesh_uniform_rainbow" + item_state = "tesh_uniform_rainbow" + +/obj/item/clothing/under/resomi/undercoat/standard/lightgrey_grey + name = "light grey and grey undercoat" + icon_state = "tesh_uniform_lgg" + item_state = "tesh_uniform_lgg" + +/obj/item/clothing/under/resomi/undercoat/standard/white_grey + name = "white and grey undercoat" + icon_state = "tesh_uniform_wg" + item_state = "tesh_uniform_wg" + +/obj/item/clothing/under/resomi/undercoat/standard/red_grey + name = "red and grey undercoat" + icon_state = "tesh_uniform_rg" + item_state = "tesh_uniform_rg" + +/obj/item/clothing/under/resomi/undercoat/standard/orange + name = "orange undercoat" + icon_state = "tesh_uniform_on" + item_state = "tesh_uniform_on" + +/obj/item/clothing/under/resomi/undercoat/standard/yellow_grey + name = "yellow and grey undercoat" + icon_state = "tesh_uniform_yg" + item_state = "tesh_uniform_yg" + +/obj/item/clothing/under/resomi/undercoat/standard/green_grey + name = "green and grey undercoat" + icon_state = "tesh_uniform_gg" + item_state = "tesh_uniform_gg" + +/obj/item/clothing/under/resomi/undercoat/standard/blue_grey + name = "blue and grey undercoat" + icon_state = "tesh_uniform_blug" + item_state = "tesh_uniform_blug" + +/obj/item/clothing/under/resomi/undercoat/standard/purple_grey + name = "purple and grey undercoat" + icon_state = "tesh_uniform_pg" + item_state = "tesh_uniform_pg" + +/obj/item/clothing/under/resomi/undercoat/standard/pink_grey + name = "pink and grey undercoat" + icon_state = "tesh_uniform_pig" + item_state = "tesh_uniform_pig" + +/obj/item/clothing/under/resomi/undercoat/standard/brown_grey + name = "brown and grey undercoat" + icon_state = "tesh_uniform_brg" + item_state = "tesh_uniform_brg" + +/obj/item/clothing/under/resomi/undercoat/jobs/cargo + name = "cargo undercoat" + desc = "Resomi job clothing for the Cargo department" + icon_state = "tesh_uniform_car" + item_state = "tesh_uniform_car" + +/obj/item/clothing/under/resomi/undercoat/jobs/mining + name = "mining undercoat" + desc = "Resomi job clothing for Mining" + icon_state = "tesh_uniform_mine" + item_state = "tesh_uniform_mine" + +/obj/item/clothing/under/resomi/undercoat/jobs/command + name = "command undercoat" + desc = "Resomi job clothing for the Command department" + icon_state = "tesh_uniform_comm" + item_state = "tesh_uniform_comm" + +/obj/item/clothing/under/resomi/undercoat/jobs/command_g + name = "command undercoat" + desc = "Resomi job clothing for the Command department. This one has fancier gold buttons" + icon_state = "tesh_uniform_comm_g" + item_state = "tesh_uniform_comm_g" + +/obj/item/clothing/under/resomi/undercoat/jobs/ce + name = "cheif engineer undercoat" + desc = "Resomi job clothing for the Chief Engineer" + icon_state = "tesh_uniform_ce" + item_state = "tesh_uniform_ce" + +/obj/item/clothing/under/resomi/undercoat/jobs/ce_w + name = "cheif engineer undercoat" + desc = "Resomi job clothing for the Chief Engineer. This one is white" + icon_state = "tesh_uniform_ce_w" + item_state = "tesh_uniform_ce_w" + +/obj/item/clothing/under/resomi/undercoat/jobs/engineer + name = "engineering undercoat" + desc = "Resomi job clothing for the Engineering department" + icon_state = "tesh_uniform_engie" + item_state = "tesh_uniform_engie" + +/obj/item/clothing/under/resomi/undercoat/jobs/atmos + name = "atmospherics undercoat" + desc = "Resomi job clothing for the Atmospheric Technician" + icon_state = "tesh_uniform_atmos" + item_state = "tesh_uniform_atmos" + +/obj/item/clothing/under/resomi/undercoat/jobs/cmo + name = "chief medical officer undercoat" + desc = "Resomi job clothing for the Cheif Medical Officer" + icon_state = "tesh_uniform_cmo" + item_state = "tesh_uniform_cmo" + +/obj/item/clothing/under/resomi/undercoat/jobs/medical + name = "medical undercoat" + desc = "Resomi job clothing for the Medical department" + icon_state = "tesh_uniform_doc" + item_state = "tesh_uniform_doc" + +/obj/item/clothing/under/resomi/undercoat/jobs/chemistry + name = "chemist undercoat" + desc = "Resomi job clothing for the Chemist" + icon_state = "tesh_uniform_chem" + item_state = "tesh_uniform_chem" + +/obj/item/clothing/under/resomi/undercoat/jobs/viro + name = "virologist undercoat" + desc = "Resomi job clothing for the Virologist" + icon_state = "tesh_uniform_viro" + item_state = "tesh_uniform_viro" + +/obj/item/clothing/under/resomi/undercoat/jobs/para + name = "paramedic undercoat" + desc = "Resomi job clothing for the Paramedic" + icon_state = "tesh_uniform_para" + item_state = "tesh_uniform_para" + +/obj/item/clothing/under/resomi/undercoat/jobs/sci + name = "scientist undercoat" + desc = "Resomi job clothing for the Science department" + icon_state = "tesh_uniform_sci" + item_state = "tesh_uniform_sci" + +/obj/item/clothing/under/resomi/undercoat/jobs/robo + name = "roboticist undercoat" + desc = "Resomi job clothing for the Roboticist" + icon_state = "tesh_uniform_robo" + item_state = "tesh_uniform_robo" + +/obj/item/clothing/under/resomi/undercoat/jobs/sec + name = "security undercoat" + desc = "Resomi job clothing for the Security department" + icon_state = "tesh_uniform_sec" + item_state = "tesh_uniform_sec" + +/obj/item/clothing/under/resomi/undercoat/jobs/qm + name = "quartermaster undercoat" + desc = "Resomi job clothing for the Quartermaster" + icon_state = "tesh_uniform_qm" + item_state = "tesh_uniform_qm" + +/obj/item/clothing/under/resomi/undercoat/jobs/service + name = "service undercoat" + desc = "Resomi job clothing for the Service department" + icon_state = "tesh_uniform_serv" + item_state = "tesh_uniform_serv" + +/obj/item/clothing/under/resomi/undercoat/jobs/iaa + name = "internal affairs undercoat" + desc = "Resomi job clothing for the Internal Affairs Agent" + icon_state = "tesh_uniform_iaa" + item_state = "tesh_uniform_iaa" + +/* + * RESOMI SOL GOV UNDER + */ + +/obj/item/clothing/under/solgov/pt/expeditionary/resomi + name = "small expeditionary pt smock" + desc = "It looks fitted to nonhuman proportions." + icon = 'packs/infinity/icons/obj/clothing/species/resomi/obj_under_resomi.dmi' + item_icons = list('mods/resomi/icons/clothing/onmob_under_resomi.dmi') + icon_state = "resomi_expeditionpt" + worn_state = "resomi_expeditionpt" + species_restricted = list(SPECIES_RESOMI) + sprite_sheets = list(SPECIES_RESOMI = 'mods/resomi/icons/clothing/onmob_under_resomi.dmi') + +/obj/item/clothing/under/solgov/utility/expeditionary/resomi + name = "small expeditionary uniform" + desc = "It looks fitted to nonhuman proportions." + icon = 'packs/infinity/icons/obj/clothing/species/resomi/obj_under_resomi.dmi' + item_icons = list('mods/resomi/icons/clothing/onmob_under_resomi.dmi') + icon_state = "resomi_blackutility" + worn_state = "resomi_blackutility" + species_restricted = list(SPECIES_RESOMI) + sprite_sheets = list(SPECIES_RESOMI = 'mods/resomi/icons/clothing/onmob_under_resomi.dmi') + +/obj/item/clothing/under/solgov/utility/expeditionary/officer/resomi + name = "small expeditionary officer's uniform" + desc = "It looks fitted to nonhuman proportions." + icon = 'packs/infinity/icons/obj/clothing/species/resomi/obj_under_resomi.dmi' + item_icons = list('mods/resomi/icons/clothing/onmob_under_resomi.dmi') + icon_state = "resomi_blackutility_com" + worn_state = "resomi_blackutility_com" + species_restricted = list(SPECIES_RESOMI) + sprite_sheets = list(SPECIES_RESOMI = 'mods/resomi/icons/clothing/onmob_under_resomi.dmi') + accessories = list(/obj/item/clothing/accessory/solgov/department/command) + +/obj/item/clothing/under/solgov/mildress/expeditionary/resomi + name = "small expeditionary dress uniform" + desc = "It looks fitted to nonhuman proportions." + icon = 'packs/infinity/icons/obj/clothing/species/resomi/obj_under_resomi.dmi' + item_icons = list('mods/resomi/icons/clothing/onmob_under_resomi.dmi') + icon_state = "resomi_greydress" + worn_state = "resomi_greydress" + species_restricted = list(SPECIES_RESOMI) + sprite_sheets = list(SPECIES_RESOMI = 'mods/resomi/icons/clothing/onmob_under_resomi.dmi') + +/* We don't use this suits in actual build, right? +/obj/item/clothing/under/thermal + name = "thermal suit" + desc = "Gray thermal suit. Nothing interesting." + icon = 'packs/infinity/icons/obj/clothing/obj_under.dmi' + item_icons = list(slot_w_uniform_str = 'packs/infinity/icons/mob/onmob/onmob_under.dmi') + icon_state = "gray_camo" + item_state = "gray_camo" + item_flags = ITEM_FLAG_THICKMATERIAL + body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS + cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS + min_cold_protection_temperature = T0C - 75 + max_heat_protection_temperature = T0C + 50 + var/max_cooling = 1.2 // in degrees per second - probably don't need to mess with heat capacity here + var/thermostat = T0C + 10 + + +/obj/item/clothing/under/thermal/resomi + name = "small thermal suit" + desc = "Looks like very small suit. For children or resomi? This thermal suit is black." + icon_state = "thermores_1" + item_state = "thermores_1" + thermostat = T0C + species_restricted = list(SPECIES_RESOMI) + sprite_sheets = list( + SPECIES_RESOMI = 'packs/infinity/icons/mob/onmob/onmob_under.dmi', + ) + +/obj/item/clothing/under/thermal/resomi/white + desc = "Looks like very small suit. For children or resomi? This thermal suit is white. " + icon_state = "thermores_2" + item_state = "thermores_2" +*/ diff --git a/mods/resomi_fd/code/clothing/void/rigs.dm b/mods/resomi_fd/code/clothing/void/rigs.dm new file mode 100644 index 0000000000000..758bb887855d0 --- /dev/null +++ b/mods/resomi_fd/code/clothing/void/rigs.dm @@ -0,0 +1,23 @@ +/obj/item/clothing/head/helmet/space/rig/industrial/New() + . = ..() + species_restricted |= list(SPECIES_RESOMI) + sprite_sheets[SPECIES_RESOMI] = 'mods/resomi/icons/clothing/onmob_head_resomi.dmi' + +/obj/item/clothing/suit/space/rig/industrial/New() + . = ..() + species_restricted |= list(SPECIES_RESOMI) + sprite_sheets[SPECIES_RESOMI] = 'mods/resomi/icons/clothing/onmob_suit_resomi.dmi' + +/obj/item/clothing/shoes/magboots/rig/industrial/New() + . = ..() + species_restricted |= list(SPECIES_RESOMI) + sprite_sheets[SPECIES_RESOMI] = 'mods/resomi/icons/clothing/onmob_feet_resomi.dmi' + +/obj/item/clothing/gloves/rig/industrial/New() + . = ..() + species_restricted |= list(SPECIES_RESOMI) + sprite_sheets[SPECIES_RESOMI] = 'mods/resomi/icons/clothing/onmob_hands_resomi.dmi' + +/obj/item/rig/industrial/New() + . = ..() + sprite_sheets[SPECIES_RESOMI] = 'mods/resomi/icons/clothing/onmob_rig_back_resomi.dmi' diff --git a/mods/resomi_fd/code/datum/_defines.dm b/mods/resomi_fd/code/datum/_defines.dm new file mode 100644 index 0000000000000..b87d0facc52f4 --- /dev/null +++ b/mods/resomi_fd/code/datum/_defines.dm @@ -0,0 +1,26 @@ +#define CULTURE_RESOMI_EREMUS "Eremus, Eremusianin" +#define CULTURE_RESOMI_ASRANDA "Asranda, Randian" +#define CULTURE_RESOMI_REFUGEE "Imperial refugee" +#define CULTURE_RESOMI_NEWGENERATION "New generation" +#define CULTURE_RESOMI_LOSTCOLONYRICH "A native of a thriving lost colony" +#define CULTURE_RESOMI_LOSTCOLONYPOOR "A native of a impoverished lost colony" +#define CULTURE_RESOMI_SKRELL "Skrellian Adoptive" + +#define HOME_SYSTEM_RESOMI_BIRDCAGE "Birdcage (Colchis Habitat)" +#define HOME_SYSTEM_RESOMI_EREMUS "Eremus" +#define HOME_SYSTEM_RESOMI_ASRANDA "Asranda" +#define HOME_SYSTEM_RESOMI_SAVEEL "Zer'een (Saveel)" +#define HOME_SYSTEM_RESOMI_LOST_COLONY "Unknown independent colony" +#define HOME_SYSTEM_RESOMI_REFUGEE_COLONY "Unknown Independent Refugee Colony" +#define HOME_SYSTEM_RESOMI_HOMELESS "None" +#define HOME_SYSTEM_RESOMI_IMPER_COLONY "Unknown Imperial colony" +#define HOME_SYSTEM_RESOMI_RESOBALAK "Skrellian Empire" + +#define RELIGION_RESOMI_CHOSEN "Faith of the Chosen" +#define RELIGION_RESOMI_EMPEROR "Cult of the Emperor" +#define RELIGION_RESOMI_MOUNTAIN "Echos of the Mountain" +#define RELIGION_RESOMI_SKIES "Lights of the Skies" + +/*#define CULTURE_RESOMI_BIRDCAGE "Birdcage, \"Born in the void\"" +#define CULTURE_RESOMI_SAVEEL "Saveel, Sav" +#define HOME_SYSTEM_RESOMI_TIAMATH "Tiamat"*/ diff --git a/mods/resomi_fd/code/datum/body.dm b/mods/resomi_fd/code/datum/body.dm new file mode 100644 index 0000000000000..8b9d28d789c6c --- /dev/null +++ b/mods/resomi_fd/code/datum/body.dm @@ -0,0 +1,103 @@ +// PROSTHETIC ORGANS + +/datum/robolimb/resomi + company = "Small prosthetic" + desc = "This prosthetic is small and fit for nonhuman proportions." + icon = 'mods/resomi/icons/resomi_main.dmi' + species_cannot_use = list(SPECIES_ADHERENT, SPECIES_YEOSA, SPECIES_UNATHI, SPECIES_NABBER, SPECIES_DIONA) + restricted_to = list(SPECIES_RESOMI) + allowed_bodytypes = list(SPECIES_RESOMI) + applies_to_part = list(BP_L_ARM, BP_R_ARM, BP_L_LEG, BP_R_LEG, BP_L_FOOT, BP_R_FOOT, BP_L_HAND, BP_R_HAND) + +// HAIR + +/datum/sprite_accessory/hair/resomi + name = "Resomi Plumage" + icon_state = "resomi_default" + icon = 'packs/infinity/icons/mob/human_races/species/resomi/hair.dmi' + species_allowed = list(SPECIES_RESOMI) + +/datum/sprite_accessory/hair/resomi/ears + name = "Resomi Ears" + icon_state = "resomi_ears" + +/datum/sprite_accessory/hair/resomi/excited + name = "Resomi Spiky" + icon_state = "resomi_spiky" + +/datum/sprite_accessory/hair/resomi/hedgehog + name = "Resomi Hedgehog" + icon_state = "resomi_hedge" + +/datum/sprite_accessory/hair/resomi/long + name = "Resomi Unpruned" + icon_state = "resomi_long" + +/datum/sprite_accessory/hair/resomi/sunburst + name = "Resomi Sunburst" + icon_state = "resomi_burst_short" + +/datum/sprite_accessory/hair/resomi/mohawk + name = "Resomi Mohawk" + icon_state = "resomi_mohawk" + +/datum/sprite_accessory/hair/resomi/pointy + name = "Resomi Pointy" + icon_state = "resomi_pointy" + +/datum/sprite_accessory/hair/resomi/upright + name = "Resomi Upright" + icon_state = "resomi_upright" + +/datum/sprite_accessory/hair/resomi/mane + name = "Resomi Mane" + icon_state = "resomi_mane" + +/datum/sprite_accessory/hair/resomi/mane_beardless + name = "Resomi Large Ears" + icon_state = "resomi_mane_beardless" + +/datum/sprite_accessory/hair/resomi/droopy + name = "Resomi Droopy" + icon_state = "resomi_droopy" + +/datum/sprite_accessory/hair/resomi/mushroom + name = "Resomi Mushroom" + icon_state = "resomi_mushroom" + +/datum/sprite_accessory/hair/resomi/twies + name = "Resomi Twies" + icon_state = "resomi_twies" + +/datum/sprite_accessory/hair/resomi/backstrafe + name = "Resomi Backstrafe" + icon_state = "resomi_backstrafe" + +/datum/sprite_accessory/hair/resomi/longway + name = "Resomi Long way" + icon_state = "resomi_longway" + +/datum/sprite_accessory/hair/resomi/notree + name = "Resomi Tree" + icon_state = "resomi_notree" + +/datum/sprite_accessory/hair/resomi/fluffymohawk + name = "Resomi Fluffy Mohawk" + icon_state = "resomi_fluffymohawk" + +// MARKINGS + +/datum/sprite_accessory/marking/resomi + icon = 'packs/infinity/icons/mob/human_races/species/resomi/markings.dmi' + species_allowed = list(SPECIES_RESOMI) + do_coloration = TRUE + +/datum/sprite_accessory/marking/resomi/resomi_fluff + name = "Resomi underfluff" + icon_state = "resomi_fluff" + body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_GROIN,BP_CHEST,BP_HEAD) + +/datum/sprite_accessory/marking/resomi/resomi_small_feathers + name = "Resomi small wingfeathers" + icon_state = "resomi_sf" + body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_HAND,BP_R_HAND,BP_CHEST) diff --git a/mods/resomi_fd/code/datum/defines.dm b/mods/resomi_fd/code/datum/defines.dm new file mode 100644 index 0000000000000..786712ea3a859 --- /dev/null +++ b/mods/resomi_fd/code/datum/defines.dm @@ -0,0 +1,19 @@ +#define CULTURE_RESOMI_TEMALI "Temali" +#define CULTURE_RESOMI_SHAYAMI "Shayami" +#define CULTURE_RESOMI_SHOSHNI "Shoshoni" +#define CULTURE_RESOMI_ATARI "Atari" +#define CULTURE_RESOMI_OTHER "Other" +#define CULTURE_RESOMI_SPACER "Spacer" + +#define HOME_SYSTEM_RESOMI_ALISH "Alish" +#define HOME_SYSTEM_OTHER "Other" + +#define FACTION_RESOMI_URE "United Resomi Empire" +#define FACTION_RESOMI_CONCORD "Concord" +#define FACTION_RESOMI_INDEPENDENT "Independent" +#define FACTION_EXPEDITIONARY "Expeditionary Corps" +#define FACTION_OTHER "Other" + +#define RELIGION_OTHER "Other" + + diff --git a/mods/resomi_fd/code/datum/gear.dm b/mods/resomi_fd/code/datum/gear.dm new file mode 100644 index 0000000000000..c4b1542af62a5 --- /dev/null +++ b/mods/resomi_fd/code/datum/gear.dm @@ -0,0 +1,182 @@ +/datum/gear/passport/resomi + display_name = "(Resomi) registration document" + path = /obj/item/passport/xeno/resomi + sort_category = "Xenowear" + flags = 0 + whitelisted = list(SPECIES_RESOMI) + custom_setup_proc = /obj/item/passport/proc/set_info + cost = 0 + + +/datum/gear/uniform/resomi + display_name = "(Resomi) uniform, colored" + path = /obj/item/clothing/under/resomi/white + sort_category = "Xenowear" + whitelisted = list(SPECIES_RESOMI) + flags = GEAR_HAS_COLOR_SELECTION + + +/datum/gear/uniform/resomi/smock + display_name = "(Resomi) uniform, standart" + path = /obj/item/clothing/under/resomi + flags = 0 + +/datum/gear/uniform/resomi/smock/New() + ..() + var/uniform = list() + uniform["rainbow smock"] = /obj/item/clothing/under/resomi/rainbow + uniform["sport uniform"] = /obj/item/clothing/under/resomi/sport + uniform["black utility uniform"] = /obj/item/clothing/under/resomi/utility + uniform["grey utility uniform"] = /obj/item/clothing/under/resomi/utility/black + uniform["engineering smock"] = /obj/item/clothing/under/resomi/yellow + uniform["robotics smock"] = /obj/item/clothing/under/resomi/robotics + uniform["security smock"] = /obj/item/clothing/under/resomi/red + uniform["medical uniform"] = /obj/item/clothing/under/resomi/medical + uniform["science uniform"] = /obj/item/clothing/under/resomi/science + gear_tweaks += new/datum/gear_tweak/path(uniform) + + +/datum/gear/uniform/resomi/expedition + display_name = "(Resomi) uniform, expeditionary" + path = /obj/item/clothing/under/solgov + flags = 0 + +/datum/gear/uniform/resomi/expedition/New() + ..() + var/uniform = list() + uniform["standart uniform"] = /obj/item/clothing/under/solgov/utility/expeditionary/resomi + uniform["pt smock"] = /obj/item/clothing/under/solgov/pt/expeditionary/resomi + uniform["officer's uniform"] = /obj/item/clothing/under/solgov/utility/expeditionary/officer/resomi + uniform["dress uniform"] = /obj/item/clothing/under/solgov/mildress/expeditionary/resomi + gear_tweaks += new/datum/gear_tweak/path(uniform) + + +/datum/gear/uniform/resomi/dress + display_name = "(Resomi) uniform, dress" + path = /obj/item/clothing/under/resomi/dress + flags = GEAR_HAS_TYPE_SELECTION + + +/datum/gear/uniform/resomi/worksmock + display_name = "(Resomi) uniform, work" + path = /obj/item/clothing/under/resomi/work + flags = GEAR_HAS_TYPE_SELECTION + + +/datum/gear/uniform/resomi/undercoat + display_name = "(Resomi) uniform, undercoat" + path = /obj/item/clothing/under/resomi/undercoat + flags = GEAR_HAS_TYPE_SELECTION + + +/datum/gear/tactical/security_uniforms/resomi + display_name = "(Resomi) uniform, Security" + path = /obj/item/clothing/under/resomi/red + sort_category = "Xenowear" + whitelisted = list(SPECIES_RESOMI) + +/datum/gear/tactical/security_uniforms/resomi/New() + return + + +/datum/gear/eyes/resomi + display_name = "(Resomi) sun lenses" + path = /obj/item/clothing/glasses/sunglasses/lenses + sort_category = "Xenowear" + whitelisted = list(SPECIES_RESOMI) + + +/datum/gear/eyes/security/resomi + display_name = "(Resomi) sun sechud lenses" + path = /obj/item/clothing/glasses/sunglasses/sechud/lenses + sort_category = "Xenowear" + whitelisted = list(SPECIES_RESOMI) + +/datum/gear/eyes/security/resomi/New() + return + + +/datum/gear/eyes/medical/resomi + display_name = "(Resomi) sun medhud lenses" + path = /obj/item/clothing/glasses/hud/health/lenses + sort_category = "Xenowear" + whitelisted = list(SPECIES_RESOMI) + +/datum/gear/eyes/medical/resomi/New() + return + + +/datum/gear/accessory/resomi_mantle + display_name = "(Resomi) small mantle" + path = /obj/item/clothing/accessory/scarf/resomi + flags = GEAR_HAS_COLOR_SELECTION + sort_category = "Xenowear" + whitelisted = list(SPECIES_RESOMI) + + +/datum/gear/shoes/resomi + display_name = "(Resomi) small workboots" + path = /obj/item/clothing/shoes/workboots/resomi + sort_category = "Xenowear" + whitelisted = list(SPECIES_RESOMI) + + +/datum/gear/shoes/resomi/footwraps + display_name = "(Resomi) foots clothwraps" + flags = GEAR_HAS_COLOR_SELECTION + path = /obj/item/clothing/shoes/footwraps + + +/datum/gear/shoes/resomi/socks + display_name = "(Resomi) koishi" + flags = GEAR_HAS_COLOR_SELECTION + path = /obj/item/clothing/shoes/footwraps/socks_resomi + + +/datum/gear/suit/resomi + display_name = "(Resomi) cloaks, alt" + path = /obj/item/clothing/suit/storage/resomicloak_alt + sort_category = "Xenowear" + whitelisted = list(SPECIES_RESOMI) + flags = GEAR_HAS_SUBTYPE_SELECTION + + +/datum/gear/suit/resomi/standart + display_name = "(Resomi) cloaks, standart" + path = /obj/item/clothing/suit/storage/resomicloak + flags = GEAR_HAS_TYPE_SELECTION + + +/datum/gear/suit/resomi/belted + display_name = "(Resomi) cloaks, belted" + path = /obj/item/clothing/suit/storage/resomicloak_belted + + +/datum/gear/suit/resomi/hood + display_name = "(Resomi) cloaks, hooded" + path = /obj/item/clothing/suit/storage/hooded/resomi + + +/datum/gear/suit/resomi/labcoat + display_name = "(Resomi) small labcoat" + path = /obj/item/clothing/suit/storage/toggle/resomilabcoat + flags = GEAR_HAS_COLOR_SELECTION + + +/datum/gear/suit/resomi_coat + display_name = "(Resomi) coats selection" + path = /obj/item/clothing/suit/storage/toggle/resomicoat + sort_category = "Xenowear" + whitelisted = list(SPECIES_RESOMI) + +/datum/gear/suit/resomi_coat/New() + ..() + var/resomi = list() + resomi["black coat"] = /obj/item/clothing/suit/storage/toggle/resomicoat + resomi["white coat"] = /obj/item/clothing/suit/storage/toggle/resomicoat/white + gear_tweaks += new/datum/gear_tweak/path(resomi) + + +/datum/gear/plush_toy/New() + toy_list["resomi plush"] = /obj/item/toy/plushie/resomi + ..() diff --git a/mods/resomi_fd/code/datum/language.dm b/mods/resomi_fd/code/datum/language.dm new file mode 100644 index 0000000000000..547d2d62d1f0b --- /dev/null +++ b/mods/resomi_fd/code/datum/language.dm @@ -0,0 +1,38 @@ +/datum/language/resomi + name = LANGUAGE_RESOMI + desc = "A trilling language spoken by the diminutive Resomi." + speech_verb = "щебечет" + ask_verb = "чирикает" + exclaim_verb = "верещит" + colour = "alien" + key = "e" + flags = WHITELISTED + space_chance = 50 + syllables = list( + "ca", "ra", "ma", "sa", "na", "ta", "la", "sha", "scha", "a", "a", + "ce", "re", "me", "se", "ne", "te", "le", "she", "sche", "e", "e", + "ci", "ri", "mi", "si", "ni", "ti", "li", "shi", "schi", "i", "i" + ) + shorthand = "SCH" + has_written_form = TRUE + + +/datum/language/resomi/get_random_name(gender) + return ..(gender, 1, 4, 1.5) + + //AUTOHISS +/datum/species/resomi + autohiss_basic_map = list( + "з" = list("с") + ) + autohiss_extra_map = list( + "ч" = list("щ"), + + "ж" = list("ш") + ) + autohiss_exempt = list(LANGUAGE_RESOMI) + +//TODO: RESOMI MISC FILE +/datum/trader/trading_beacon/New() + ..() + speech[TRADER_HAIL_START + SPECIES_RESOMI] = "Greetings, I am MERCHANT, Artifical Intelligence onboard ORIGIN. We wish to trade with you, no more." diff --git a/mods/resomi_fd/code/datum/misc.dm b/mods/resomi_fd/code/datum/misc.dm new file mode 100644 index 0000000000000..520680cc36f9f --- /dev/null +++ b/mods/resomi_fd/code/datum/misc.dm @@ -0,0 +1,2 @@ +/datum/fabricator_recipe/mini_suit_cooler + path = /obj/item/device/suit_cooling_unit/mini diff --git a/mods/resomi_fd/code/datum/resomi_culture.dm b/mods/resomi_fd/code/datum/resomi_culture.dm new file mode 100644 index 0000000000000..9a0957937a01a --- /dev/null +++ b/mods/resomi_fd/code/datum/resomi_culture.dm @@ -0,0 +1,45 @@ +/singleton/cultural_info/culture/resomi + language = LANGUAGE_RESOMI + name_language = LANGUAGE_RESOMI + + +/singleton/cultural_info/culture/resomi/temali + name = CULTURE_RESOMI_TEMALI + nickname = "Темали" + description = "Резоми народов Темали живут преимущественно в северных регионах планеты и расположены дальше всего от экватора. Резоми этой национальности отличаются наибольшей сплоченностью по отношению друг к другу. Большинство представителей Темали занимаются промышленной деятельностью, связанной с тяжелым машиностроением. Инженеры, шахтеры, операторы буровых установок, машинисты, пилоты самолетов, логисты составляют большую часть рабочей силы Темали." + economic_power = 0.7 + +/singleton/cultural_info/culture/resomi/shayami + name = CULTURE_RESOMI_SHAYAMI + nickname = "Шаями" + language = list(LANGUAGE_RESOMI,LANGUAGE_HUMAN_EURO) + description = "Шаями распространены по всему Алишу и во многих регионах на экваторе, но в основном они занимают территории, наиболее близкие к Чилишу. Шаями живут в постоянной конкуренции друг с другом, жизненный путь обычного Шаями заключается в получении престижного образования и высшей служебной позиции в частных организациях. Шаями играют огромную роль в обществе резоми, они занимают практически все виды должностей и профессий: программисты, инженеры, бухгалтеры, банкиры, врачи, менеджеры, работники сферы обслуживания, представители медиа-сферы, строители, юристы и большое разнообразие офисного планктона." + economic_power = 1 + +/singleton/cultural_info/culture/resomi/shoshoni + name = CULTURE_RESOMI_SHOSHONI + nickname = "Шошони" + language = list(LANGUAGE_RESOMI,LANGUAGE_HUMAN_EURO) + description = "Шошони рассеяны по большей части экватора, а также по территориям южных субъектов и занимают самую большую площадь на планете. Шошони привыкли относиться друг к другу с теплотой и любовью, жизнь в небольших поселениях помогает хорошо узнать друг друга. Большинство шошони относятся к среднему экономическому классу или ниже, духовные ценности и семейные отношения - самый важный аспект жизни. Художники, певцы, музыканты и писатели чаще всего находят свой дом на южных равнинах Алиша." + economic_power = 0.9 + +/singleton/cultural_info/culture/resomi/atari + name = CULTURE_RESOMI_ATARI + nickname = "Атари" + language = list(LANGUAGE_RESOMI,LANGUAGE_HUMAN_EURO) + description = "Атари живут на экваторе, в основном вблизи города Шинсай и ближайших к нему субъектов. Этот народ имеет стратифицированный и более прагматичный взгляд на отношения, потому проявлений родственной близости среди Атари несколько меньше, чем среди других резоми. Однако семьи Атари самые крепкие благодаря привитому чувству долга и стремлению к благу цивилизации. Атари становятся прекрасными управленцами, юристами и солдатами, а также составляют значительную часть слуг Конкорда." + economic_power = 1.4 + +/singleton/cultural_info/culture/resomi/other + name = CULTURE_RESOMI_OTHER + nickname = "Другие" + language = list(LANGUAGE_RESOMI,LANGUAGE_HUMAN_EURO) + description = "Типичный представитель 55% населения Алиша, принадлежащий к какой-либо другой малочисленной народности." + economic_power = 0.65 + +/singleton/cultural_info/culture/resomi/spacer + name = CULTURE_RESOMI_SPACER + nickname = "Скиталец" + language = list(LANGUAGE_RESOMI, LANGUAGE_SPACER) + description = "Скитальцы оказываются в космосе способами, не предусмотренными Конкордом. Как правило, эти резоми - беженцы или просто родившиеся за пределами Алиша. Они могут даже не иметь гражданства." + economic_power = 0.65 \ No newline at end of file diff --git a/mods/resomi_fd/code/datum/species.dm b/mods/resomi_fd/code/datum/species.dm new file mode 100644 index 0000000000000..ba516c47c7d65 --- /dev/null +++ b/mods/resomi_fd/code/datum/species.dm @@ -0,0 +1,172 @@ + + +/datum/species/resomi + name = SPECIES_RESOMI + name_plural = "Resomii" + description = "A race of feathered raptors who developed in a cold world. \ + Extremely fragile, they developed hunting skills that emphasized taking \ + out their prey without themselves getting hit. They are pretty new species, \ + discovered by humans." + + min_age = 15 + max_age = 65 + hidden_from_codex = FALSE + health_hud_intensity = 3 + + blood_color = "#d514f7" + flesh_color = "#5f7bb0" + base_color = "#001144" + tail = "resomitail" + tail_hair = "feathers" + strength = STR_HIGH + breath_pressure = 12 + + move_trail = /obj/decal/cleanable/blood/tracks/paw + + icobase = 'packs/infinity/icons/mob/human_races/species/resomi/body.dmi' + deform = 'packs/infinity/icons/mob/human_races/species/resomi/body.dmi' + damage_overlays = 'packs/infinity/icons/mob/human_races/species/resomi/damage_overlay.dmi' + damage_mask = 'packs/infinity/icons/mob/human_races/species/resomi/damage_mask.dmi' + blood_mask = 'packs/infinity/icons/mob/human_races/species/resomi/blood_mask.dmi' + preview_icon = 'packs/infinity/icons/mob/human_races/species/resomi/preview.dmi' + husk_icon = 'packs/infinity/icons/mob/human_races/species/resomi/husk.dmi' + + slowdown = -0.8 //speed fix? + + darksight_range = 6 + darksight_tint = DARKTINT_GOOD + flash_mod = 2 + total_health = 150 + brute_mod = 1.35 + burn_mod = 1.35 + metabolism_mod = 2.0 + mob_size = MOB_SMALL + holder_type = /obj/item/holder + light_sensitive = 6 + gluttonous = GLUT_TINY + blood_volume = 280 + hunger_factor = DEFAULT_HUNGER_FACTOR * 1.5 + thirst_factor = DEFAULT_THIRST_FACTOR * 1.3 + taste_sensitivity = TASTE_SENSITIVE + body_temperature = 314.15 + + spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED | SPECIES_NO_FBP_CONSTRUCTION | SPECIES_NO_FBP_CHARGEN + appearance_flags = SPECIES_APPEARANCE_HAS_HAIR_COLOR | SPECIES_APPEARANCE_HAS_SKIN_COLOR | SPECIES_APPEARANCE_HAS_EYE_COLOR | SPECIES_APPEARANCE_HAS_A_SKIN_TONE + bump_flag = MONKEY + swap_flags = MONKEY|SLIME|SIMPLE_ANIMAL + push_flags = MONKEY|SLIME|SIMPLE_ANIMAL|ALIEN + + cold_level_1 = 180 + cold_level_2 = 130 + cold_level_3 = 70 + heat_level_1 = 320 + heat_level_2 = 370 + heat_level_3 = 600 + heat_discomfort_level = 292 + heat_discomfort_strings = list( + "Вашу кожу покалывает от жары.", + "Вам жарко.", + ) + cold_discomfort_level = 200 + cold_discomfort_strings = list( + "Вы не чувствуете своих лап из-за холода.", + "Вы чувствуете усталость и чувство холода.", + "Ваши перья щетинятся от холода.") + + has_limbs = list( + BP_CHEST = 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/resomi), + BP_R_HAND = list("path" = /obj/item/organ/external/hand/right/resomi), + BP_L_FOOT = list("path" = /obj/item/organ/external/foot/resomi), + BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right/resomi) + ) + + has_organ = list( + BP_HEART = /obj/item/organ/internal/heart, + BP_LUNGS = /obj/item/organ/internal/lungs, + BP_LIVER = /obj/item/organ/internal/liver/resomi, + BP_STOMACH = /obj/item/organ/internal/stomach, + BP_KIDNEYS = /obj/item/organ/internal/kidneys/resomi, + BP_BRAIN = /obj/item/organ/internal/brain, + BP_EYES = /obj/item/organ/internal/eyes/resomi + ) + + unarmed_types = list( + /datum/unarmed_attack/bite/sharp, + /datum/unarmed_attack/claws, + /datum/unarmed_attack/punch, + /datum/unarmed_attack/stomp/weak + ) + + inherent_verbs = list( + /mob/living/carbon/human/proc/resomi_sonar_ping, + /mob/living/proc/toggle_pass_table + ) + + descriptors = list( + /datum/mob_descriptor/height = -8, + /datum/mob_descriptor/build = -8 + ) + + available_cultural_info = list( + TAG_CULTURE = list( + CULTURE_RESOMI_TEMALI, + CULTURE_RESOMI_SHAYAMI, + CULTURE_RESOMI_SHOSHONI, + CULTURE_RESOMI_ATARI, + CULTURE_RESOMI_OTHER, + CULTURE_RESOMI_SPACER, + CULTURE_OTHER + ), + TAG_HOMEWORLD = list( + HOME_SYSTEM_RESOMI_ALISH, + HOME_SYSTEM_OTHER + ), + TAG_FACTION = list( + FACTION_RESOMI_URE, + FACTION_RESOMI_CONCORD, + FACTION_RESOMI_INDEPENDENT, + FACTION_EXPEDITIONARY, + FACTION_OTHER + ), + TAG_RELIGION = list( + RELIGION_OTHER + ) + ) + + species_bonus = 2 + +/datum/species/resomi/equip_survival_gear(mob/living/carbon/human/H) + ..() + H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/lenses(H), slot_glasses) + +/datum/species/resomi/get_surgery_overlay_icon(mob/living/carbon/human/H) + return 'packs/infinity/icons/mob/human_races/species/resomi/surgery.dmi' + +/datum/species/resomi/skills_from_age(age) + switch(age) + if(0 to 17) . = -2 + if(18 to 25) . = 0 + if(26 to 35) . = 4 + else . = 0 + +/datum/species/resomi + default_emotes = list( + /singleton/emote/audible/chuckle/resomi, + /singleton/emote/audible/cough/resomi, + /singleton/emote/audible/laugh/resomi, + /singleton/emote/audible/scream/resomi, + /singleton/emote/audible/sneeze/resomi, + /singleton/emote/audible/peep/resomi, + /singleton/emote/audible/rustle/resomi, + /singleton/emote/audible/trill/resomi, + /singleton/emote/audible/warble/resomi, + /singleton/emote/audible/wurble/resomi, + + ) diff --git a/mods/resomi_fd/code/unit_tests.dm b/mods/resomi_fd/code/unit_tests.dm new file mode 100644 index 0000000000000..bf291c4baf5a5 --- /dev/null +++ b/mods/resomi_fd/code/unit_tests.dm @@ -0,0 +1,38 @@ +// ================================================================= +// RESOMI UNIT TESTS +// ================================================================= + +/mob/living/carbon/human/resomi/Initialize(mapload) + head_hair_style = "Resomi Plumage" + . = ..(mapload, SPECIES_RESOMI) + +/datum/unit_test/mob_damage/resomi + name = "MOB: Resomi damage check template" + template = /datum/unit_test/mob_damage/resomi + mob_type = /mob/living/carbon/human/resomi + +/datum/unit_test/mob_damage/resomi/brute + name = "MOB: Resomi Brute Damage Check" + damagetype = DAMAGE_BRUTE + expected_vulnerability = EXTRA_VULNERABLE + +/datum/unit_test/mob_damage/resomi/fire + name = "MOB: Resomi Fire Damage Check" + damagetype = DAMAGE_BURN + expected_vulnerability = EXTRA_VULNERABLE + +/datum/unit_test/mob_damage/resomi/tox + name = "MOB: Resomi Toxins Damage Check" + damagetype = DAMAGE_TOXIN + +/datum/unit_test/mob_damage/resomi/oxy + name = "MOB: Resomi Oxygen Damage Check" + damagetype = DAMAGE_OXY + +/datum/unit_test/mob_damage/resomi/genetic + name = "MOB: Resomi Genetic Damage Check" + damagetype = DAMAGE_GENETIC + +/datum/unit_test/mob_damage/resomi/pain + name = "MOB: Resomi Pain Damage Check" + damagetype = DAMAGE_PAIN diff --git a/mods/resomi_fd/icons/clothing/misc.dmi b/mods/resomi_fd/icons/clothing/misc.dmi new file mode 100644 index 0000000000000..5e0e0d6db8612 Binary files /dev/null and b/mods/resomi_fd/icons/clothing/misc.dmi differ diff --git a/mods/resomi_fd/icons/clothing/onmob_accessories_resomi.dmi b/mods/resomi_fd/icons/clothing/onmob_accessories_resomi.dmi new file mode 100644 index 0000000000000..ac08f4567a7d0 Binary files /dev/null and b/mods/resomi_fd/icons/clothing/onmob_accessories_resomi.dmi differ diff --git a/mods/resomi_fd/icons/clothing/onmob_back_resomi.dmi b/mods/resomi_fd/icons/clothing/onmob_back_resomi.dmi new file mode 100644 index 0000000000000..00d33ad21b0b5 Binary files /dev/null and b/mods/resomi_fd/icons/clothing/onmob_back_resomi.dmi differ diff --git a/mods/resomi_fd/icons/clothing/onmob_belt_resomi.dmi b/mods/resomi_fd/icons/clothing/onmob_belt_resomi.dmi new file mode 100644 index 0000000000000..aa9d8ffa2e0ff Binary files /dev/null and b/mods/resomi_fd/icons/clothing/onmob_belt_resomi.dmi differ diff --git a/mods/resomi_fd/icons/clothing/onmob_ears_resomi.dmi b/mods/resomi_fd/icons/clothing/onmob_ears_resomi.dmi new file mode 100644 index 0000000000000..95f437839b301 Binary files /dev/null and b/mods/resomi_fd/icons/clothing/onmob_ears_resomi.dmi differ diff --git a/mods/resomi_fd/icons/clothing/onmob_eyes_resomi.dmi b/mods/resomi_fd/icons/clothing/onmob_eyes_resomi.dmi new file mode 100644 index 0000000000000..cd80d5c6f7cd9 Binary files /dev/null and b/mods/resomi_fd/icons/clothing/onmob_eyes_resomi.dmi differ diff --git a/mods/resomi_fd/icons/clothing/onmob_feet_resomi.dmi b/mods/resomi_fd/icons/clothing/onmob_feet_resomi.dmi new file mode 100644 index 0000000000000..63c86295d2bbf Binary files /dev/null and b/mods/resomi_fd/icons/clothing/onmob_feet_resomi.dmi differ diff --git a/mods/resomi_fd/icons/clothing/onmob_hands_resomi.dmi b/mods/resomi_fd/icons/clothing/onmob_hands_resomi.dmi new file mode 100644 index 0000000000000..c491888f6b664 Binary files /dev/null and b/mods/resomi_fd/icons/clothing/onmob_hands_resomi.dmi differ diff --git a/mods/resomi_fd/icons/clothing/onmob_head_resomi.dmi b/mods/resomi_fd/icons/clothing/onmob_head_resomi.dmi new file mode 100644 index 0000000000000..c50b4e7ee75fa Binary files /dev/null and b/mods/resomi_fd/icons/clothing/onmob_head_resomi.dmi differ diff --git a/mods/resomi_fd/icons/clothing/onmob_id_resomi.dmi b/mods/resomi_fd/icons/clothing/onmob_id_resomi.dmi new file mode 100644 index 0000000000000..fb4d5b6e58347 Binary files /dev/null and b/mods/resomi_fd/icons/clothing/onmob_id_resomi.dmi differ diff --git a/mods/resomi_fd/icons/clothing/onmob_mask_resomi.dmi b/mods/resomi_fd/icons/clothing/onmob_mask_resomi.dmi new file mode 100644 index 0000000000000..379e090734d79 Binary files /dev/null and b/mods/resomi_fd/icons/clothing/onmob_mask_resomi.dmi differ diff --git a/mods/resomi_fd/icons/clothing/onmob_modular_armor_resomi.dmi b/mods/resomi_fd/icons/clothing/onmob_modular_armor_resomi.dmi new file mode 100644 index 0000000000000..cc7736323c548 Binary files /dev/null and b/mods/resomi_fd/icons/clothing/onmob_modular_armor_resomi.dmi differ diff --git a/mods/resomi_fd/icons/clothing/onmob_rig_back_resomi.dmi b/mods/resomi_fd/icons/clothing/onmob_rig_back_resomi.dmi new file mode 100644 index 0000000000000..3daf2f9440d47 Binary files /dev/null and b/mods/resomi_fd/icons/clothing/onmob_rig_back_resomi.dmi differ diff --git a/mods/resomi_fd/icons/clothing/onmob_rig_modules_resomi.dmi b/mods/resomi_fd/icons/clothing/onmob_rig_modules_resomi.dmi new file mode 100644 index 0000000000000..895a4f250ab48 Binary files /dev/null and b/mods/resomi_fd/icons/clothing/onmob_rig_modules_resomi.dmi differ diff --git a/mods/resomi_fd/icons/clothing/onmob_suit_resomi.dmi b/mods/resomi_fd/icons/clothing/onmob_suit_resomi.dmi new file mode 100644 index 0000000000000..844674c2a8b82 Binary files /dev/null and b/mods/resomi_fd/icons/clothing/onmob_suit_resomi.dmi differ diff --git a/mods/resomi_fd/icons/clothing/onmob_under_resomi.dmi b/mods/resomi_fd/icons/clothing/onmob_under_resomi.dmi new file mode 100644 index 0000000000000..9772bb249a834 Binary files /dev/null and b/mods/resomi_fd/icons/clothing/onmob_under_resomi.dmi differ diff --git a/mods/resomi_fd/icons/human_races/eyes.dmi b/mods/resomi_fd/icons/human_races/eyes.dmi new file mode 100644 index 0000000000000..0db6a11a6b3b8 Binary files /dev/null and b/mods/resomi_fd/icons/human_races/eyes.dmi differ diff --git a/mods/resomi_fd/icons/resomi_main.dmi b/mods/resomi_fd/icons/resomi_main.dmi new file mode 100644 index 0000000000000..fa0720f1c4de6 Binary files /dev/null and b/mods/resomi_fd/icons/resomi_main.dmi differ diff --git a/mods/resomi_fd/sound/peep.ogg b/mods/resomi_fd/sound/peep.ogg new file mode 100644 index 0000000000000..140f5072fc7da Binary files /dev/null and b/mods/resomi_fd/sound/peep.ogg differ diff --git a/mods/resomi_fd/sound/resomicough.ogg b/mods/resomi_fd/sound/resomicough.ogg new file mode 100644 index 0000000000000..dfc594c73c1e4 Binary files /dev/null and b/mods/resomi_fd/sound/resomicough.ogg differ diff --git a/mods/resomi_fd/sound/resomilaugh.ogg b/mods/resomi_fd/sound/resomilaugh.ogg new file mode 100644 index 0000000000000..58649042fabe6 Binary files /dev/null and b/mods/resomi_fd/sound/resomilaugh.ogg differ diff --git a/mods/resomi_fd/sound/resomiscream.ogg b/mods/resomi_fd/sound/resomiscream.ogg new file mode 100644 index 0000000000000..59328b29ccbb8 Binary files /dev/null and b/mods/resomi_fd/sound/resomiscream.ogg differ diff --git a/mods/resomi_fd/sound/resomisneeze.ogg b/mods/resomi_fd/sound/resomisneeze.ogg new file mode 100644 index 0000000000000..55827fcf1349e Binary files /dev/null and b/mods/resomi_fd/sound/resomisneeze.ogg differ diff --git a/mods/resomi_fd/sound/rustle.ogg b/mods/resomi_fd/sound/rustle.ogg new file mode 100644 index 0000000000000..fe400fc5dd181 Binary files /dev/null and b/mods/resomi_fd/sound/rustle.ogg differ diff --git a/mods/resomi_fd/sound/trill.ogg b/mods/resomi_fd/sound/trill.ogg new file mode 100644 index 0000000000000..6b3c2b1e098cc Binary files /dev/null and b/mods/resomi_fd/sound/trill.ogg differ diff --git a/mods/resomi_fd/sound/warble.ogg b/mods/resomi_fd/sound/warble.ogg new file mode 100644 index 0000000000000..420ae974c838a Binary files /dev/null and b/mods/resomi_fd/sound/warble.ogg differ diff --git a/mods/resomi_fd/sound/wurble.ogg b/mods/resomi_fd/sound/wurble.ogg new file mode 100644 index 0000000000000..2445f989832aa Binary files /dev/null and b/mods/resomi_fd/sound/wurble.ogg differ