diff --git a/code/__DEFINES/construction_defines.dm b/code/__DEFINES/construction_defines.dm index 339402df786..70b09adcc0b 100644 --- a/code/__DEFINES/construction_defines.dm +++ b/code/__DEFINES/construction_defines.dm @@ -83,6 +83,7 @@ #define MAT_PALLADIUM "palladium" #define MAT_PLATINUM "platinum" #define MAT_IRIDIUM "iridium" +#define MAT_SILK "silk" /// The amount of materials you get from a sheet of mineral like iron/diamond/glass etc #define MINERAL_MATERIAL_AMOUNT 2000 diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index a627f5a7eee..3024028bd44 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -117,9 +117,10 @@ #define BALD (1<<14) #define ALL_RPARTS (1<<15) #define SHAVED (1<<16) +#define HAS_BACK_SPINES (1<<17) //Pre-baked combinations of the above body flags -#define HAS_BODY_ACCESSORY (HAS_TAIL | HAS_WING) +#define HAS_BODY_ACCESSORY (HAS_TAIL | HAS_WING | HAS_BACK_SPINES) #define HAS_MARKINGS (HAS_HEAD_MARKINGS | HAS_BODY_MARKINGS | HAS_TAIL_MARKINGS) //Species Diet Flags diff --git a/code/__DEFINES/misc_defines.dm b/code/__DEFINES/misc_defines.dm index 276fd832a7c..3cfabf4d67e 100644 --- a/code/__DEFINES/misc_defines.dm +++ b/code/__DEFINES/misc_defines.dm @@ -188,8 +188,10 @@ #define FOAM_REACT_BEFORE_SPREAD (1<<3) //Human Overlays Indexes///////// -#define EYES_OVERLAY_LAYER 51 -#define MISC_LAYER 50 // Handles eye_shine() -> cybernetic eyes, specific eye traits. +#define EYES_OVERLAY_LAYER 53 +#define MISC_LAYER 52 // Handles eye_shine() -> cybernetic eyes, specific eye traits. +#define SPINES_LAYER 51 +#define SPINES_UNDERLIMBS_LAYER 50 #define WING_LAYER 49 #define WING_UNDERLIMBS_LAYER 48 #define MUTANTRACE_LAYER 47 @@ -239,7 +241,7 @@ #define HALO_LAYER 3 //blood cult ascended halo, because there's currently no better solution for adding/removing #define FIRE_LAYER 2 //If you're on fire #define FROZEN_LAYER 1 -#define TOTAL_LAYERS 51 +#define TOTAL_LAYERS 53 ///Access Region Codes/// #define REGION_ALL 0 diff --git a/code/__DEFINES/mob_defines.dm b/code/__DEFINES/mob_defines.dm index 7d467199e28..246236b5d4f 100644 --- a/code/__DEFINES/mob_defines.dm +++ b/code/__DEFINES/mob_defines.dm @@ -245,6 +245,7 @@ #define ismachineperson(A) (is_species(A, /datum/species/machine)) #define isdrask(A) (is_species(A, /datum/species/drask)) #define ismoth(A) (is_species(A, /datum/species/moth)) +#define isskulk(A) (is_species(A, /datum/species/skulk)) #define isdog(A) (istype((A), /mob/living/simple_animal/pet/dog)) #define iscorgi(A) (istype((A), /mob/living/simple_animal/pet/dog/corgi)) diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 39a59d50610..eb77f8cd7b2 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -31,6 +31,8 @@ __init_body_accessory(/datum/body_accessory/tail) // Different wings __init_body_accessory(/datum/body_accessory/wing) + // Different spines + __init_body_accessory(/datum/body_accessory/spines) // Setup species:accessory relations initialize_body_accessory_by_species() diff --git a/code/__HELPERS/string_assoc_lists.dm b/code/__HELPERS/string_assoc_lists.dm index 864e05de3cf..ffe8479c47d 100644 --- a/code/__HELPERS/string_assoc_lists.dm +++ b/code/__HELPERS/string_assoc_lists.dm @@ -6,7 +6,11 @@ GLOBAL_LIST_EMPTY(string_assoc_lists) /datum/proc/string_assoc_list(list/values) var/list/string_id = list() for(var/val in values) - string_id += "[val]_[values[val]]" + if(islist(values[val])) + var/list/value = values[val] + string_id += "[val]_[value.Join("-")]" // horrible, nonexhaustive hack + else + string_id += "[val]_[values[val]]" string_id = string_id.Join("-") . = GLOB.string_assoc_lists[string_id] diff --git a/code/__HELPERS/trait_helpers.dm b/code/__HELPERS/trait_helpers.dm index 8f505f9003c..d2211a44d76 100644 --- a/code/__HELPERS/trait_helpers.dm +++ b/code/__HELPERS/trait_helpers.dm @@ -192,6 +192,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_HYPOSPRAY_IMMUNE "hypospray_immune" // For making crew-accessable hyposprays not pierce your clothing #define TRAIT_RSG_IMMUNE "rsgimmune" //prevents RSG syringes from piercing your clothing #define TRAIT_DRASK_SUPERCOOL "drask_supercool" +#define TRAIT_BRITTLE_BONES "brittle_bones" /// trait determines if this mob can breed given by /datum/component/breeding #define TRAIT_MOB_BREEDER "mob_breeder" diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index 06cd11bf6e7..fafc30f2038 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -167,6 +167,7 @@ DEFINE_BITFIELD(bodyflags, list( "NO_EYES" = NO_EYES, "HAS_ALT_HEADS" = HAS_ALT_HEADS, "HAS_WING" = HAS_WING, + "HAS_BACK_SPINES" = HAS_BACK_SPINES, "HAS_BODYACC_COLOR" = HAS_BODYACC_COLOR, "BALD" = BALD, "ALL_RPARTS" = ALL_RPARTS, diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index 473b2767a84..e33fab6dd5d 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -54,6 +54,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_FLASH_PROTECTION" = TRAIT_FLASH_PROTECTION, "TRAIT_NIGHT_VISION" = TRAIT_NIGHT_VISION, "TRAIT_DRASK_SUPERCOOL" = TRAIT_DRASK_SUPERCOOL, + "TRAIT_BRITTLE_BONES" = TRAIT_BRITTLE_BONES, "TRAIT_NO_BONES" = TRAIT_NO_BONES, "TRAIT_STURDY_LIMBS" = TRAIT_STURDY_LIMBS, diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 8a1670a2331..8cab647ec6a 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -265,7 +265,7 @@ GLOBAL_VAR_INIT(record_id_num, 1001) preview_icon.Blend(temp, ICON_OVERLAY) //Tail - if(H.body_accessory && (istype(H.body_accessory, /datum/body_accessory/tail) || istype(H.body_accessory, /datum/body_accessory/wing))) + if(H.body_accessory && (istype(H.body_accessory, /datum/body_accessory/tail) || istype(H.body_accessory, /datum/body_accessory/wing) || istype(H.body_accessory, /datum/body_accessory/spines))) temp = new/icon("icon" = H.body_accessory.icon, "icon_state" = H.body_accessory.icon_state) preview_icon.Blend(temp, ICON_OVERLAY) else if(H.tail && H.dna.species.bodyflags & HAS_TAIL) @@ -274,6 +274,9 @@ GLOBAL_VAR_INIT(record_id_num, 1001) else if(H.wing && H.dna.species.bodyflags & HAS_WING) temp = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[H.wing]_s") preview_icon.Blend(temp, ICON_OVERLAY) + else if(H.spines && H.dna.species.bodyflags & HAS_BACK_SPINES) + temp = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[H.spines]_s") + preview_icon.Blend(temp, ICON_OVERLAY) for(var/obj/item/organ/external/E in H.bodyparts) preview_icon.Blend(E.get_icon(), ICON_OVERLAY) diff --git a/code/datums/diseases/kingstons.dm b/code/datums/diseases/kingstons.dm index f877bb2cfab..86ce766e850 100644 --- a/code/datums/diseases/kingstons.dm +++ b/code/datums/diseases/kingstons.dm @@ -61,7 +61,7 @@ desc = "If left untreated the subject will mutate to a different species." severity = VIRUS_BIOHAZARD var/list/virspecies = list(/datum/species/human, /datum/species/tajaran, /datum/species/unathi,/datum/species/skrell, /datum/species/vulpkanin, /datum/species/diona, - /datum/species/slime, /datum/species/kidan, /datum/species/drask, /datum/species/grey, /datum/species/moth) // No IPCs (not organic), or vox+plasmemes because of air requirements + /datum/species/slime, /datum/species/kidan, /datum/species/drask, /datum/species/grey, /datum/species/moth, /datum/species/skulk) // No IPCs (not organic), or vox+plasmemes because of air requirements var/list/virsuffix = list("pox", "rot", "flu", "cough", "-gitis", "cold", "rash", "itch", "decay") var/datum/species/chosentype var/chosensuff diff --git a/code/datums/elements/clothing_adjustment.dm b/code/datums/elements/clothing_adjustment.dm index 4cf9141a51c..26f031c0c6c 100644 --- a/code/datums/elements/clothing_adjustment.dm +++ b/code/datums/elements/clothing_adjustment.dm @@ -44,7 +44,7 @@ /datum/element/clothing_adjustment/monitor_headgear/on_item_dropped(datum/source, mob/target) UnregisterSignal(target, COMSIG_CARBON_APPLY_OVERLAY) -/datum/element/clothing_adjustment/monitor_headgear/proc/on_carbon_apply_overlay(mob/living/carbon/source, cache_index, mutable_appearance/overlay) +/datum/element/clothing_adjustment/monitor_headgear/proc/on_carbon_apply_overlay(mob/living/carbon/human/source, cache_index) SIGNAL_HANDLER // COMSIG_CARBON_APPLY_OVERLAY if(cache_index != HEAD_LAYER || !istype(source)) return @@ -58,5 +58,153 @@ if(!robohead?.is_monitor) return + var/mutable_appearance/overlay = source.overlays_standing[cache_index] overlay.pixel_x = pixel_x overlay.pixel_y = pixel_y + +// Clothing Adjustments Handling Skkulakin + +/datum/element/clothing_adjustment/skulk_headgear + var/alist/directions + +/datum/element/clothing_adjustment/skulk_headgear/Attach(datum/target, alist/_directions) + if(!istype(_directions)) + return ELEMENT_INCOMPATIBLE + + . = ..() + + directions = _directions + +/datum/element/clothing_adjustment/skulk_headgear/on_item_equipped(datum/source, mob/target) + RegisterSignal(target, COMSIG_CARBON_APPLY_OVERLAY, PROC_REF(on_carbon_apply_overlay), override = TRUE) + +/datum/element/clothing_adjustment/skulk_headgear/on_item_dropped(datum/source, mob/target) + UnregisterSignal(target, list(COMSIG_CARBON_APPLY_OVERLAY)) + + var/mob/living/carbon/human/human = target + if(!istype(human)) + return + + human.update_inv_head() + +/datum/element/clothing_adjustment/skulk_headgear/proc/on_carbon_apply_overlay(mob/living/carbon/human/source, cache_index) + SIGNAL_HANDLER // COMSIG_CARBON_APPLY_OVERLAY + if(cache_index != HEAD_LAYER || !istype(source)) + return + + var/datum/species = source.dna?.species + if(!istype(species)) + return + + if(!istype(species, /datum/species/skulk)) + return + + var/icon/I = new() + var/image/overlay = source.overlays_standing[cache_index] + for(var/dir in GLOB.cardinal) + var/icon/dir_image = icon(overlay.icon, overlay.icon_state) + dir_image.Shift(NORTH, directions[dir][1]) + dir_image.Shift(WEST, directions[dir][2]) + I.Insert(dir_image, dir = dir) + + source.overlays_standing[cache_index] = I + +/obj/item/clothing/head/Initialize(mapload) + . = ..() + var/skulk_adjustment = string_assoc_list(alist(SOUTH = list(-1, 0), NORTH = list(-1, 0), EAST = list(0, -2), WEST = list(0, 2))) + AddElement(/datum/element/clothing_adjustment/skulk_headgear, skulk_adjustment) + +/datum/element/clothing_adjustment/skulk_mask + var/alist/directions + +/datum/element/clothing_adjustment/skulk_mask/Attach(datum/target, alist/_directions) + if(!istype(_directions)) + return ELEMENT_INCOMPATIBLE + + . = ..() + + directions = _directions + +/datum/element/clothing_adjustment/skulk_mask/on_item_equipped(datum/source, mob/target) + RegisterSignal(target, COMSIG_CARBON_APPLY_OVERLAY, PROC_REF(on_carbon_apply_overlay), override = TRUE) + +/datum/element/clothing_adjustment/skulk_mask/on_item_dropped(datum/source, mob/target) + UnregisterSignal(target, list(COMSIG_CARBON_APPLY_OVERLAY)) + + var/mob/living/carbon/human/human = target + if(!istype(human)) + return + + human.update_inv_wear_mask() + +/datum/element/clothing_adjustment/skulk_mask/proc/on_carbon_apply_overlay(mob/living/carbon/human/source, cache_index) + SIGNAL_HANDLER // COMSIG_CARBON_APPLY_OVERLAY + if(cache_index != FACEMASK_LAYER || !istype(source)) + return + + var/datum/species = source.dna?.species + if(!istype(species)) + return + + if(!istype(species, /datum/species/skulk)) + return + + var/icon/I = new() + var/image/overlay = source.overlays_standing[cache_index] + for(var/dir in GLOB.cardinal) + var/icon/dir_image = icon(overlay.icon, overlay.icon_state) + dir_image.Shift(NORTH, directions[dir][1]) + dir_image.Shift(WEST, directions[dir][2]) + I.Insert(dir_image, dir = dir) + + source.overlays_standing[cache_index] = I + +/obj/item/clothing/mask/Initialize(mapload) + . = ..() + var/skulk_adjustment = string_assoc_list(alist(SOUTH = list(-1, 0), NORTH = list(-1, 0), EAST = list(0, -2), WEST = list(0, 2))) + AddElement(/datum/element/clothing_adjustment/skulk_mask, skulk_adjustment) + +/datum/element/clothing_adjustment/skulk_glasses + var/alist/directions + +/datum/element/clothing_adjustment/skulk_glasses/Attach(datum/target, alist/_directions) + if(!istype(_directions)) + return ELEMENT_INCOMPATIBLE + + . = ..() + + directions = _directions + +/datum/element/clothing_adjustment/skulk_glasses/on_item_equipped(datum/source, mob/target) + RegisterSignal(target, COMSIG_CARBON_APPLY_OVERLAY, PROC_REF(on_carbon_apply_overlay), override = TRUE) + +/datum/element/clothing_adjustment/skulk_glasses/on_item_dropped(datum/source, mob/target) + UnregisterSignal(target, list(COMSIG_CARBON_APPLY_OVERLAY)) + + var/mob/living/carbon/human/human = target + if(!istype(human)) + return + + human.update_inv_glasses() + +/datum/element/clothing_adjustment/skulk_glasses/proc/on_carbon_apply_overlay(mob/living/carbon/human/source, cache_index) + SIGNAL_HANDLER // COMSIG_CARBON_APPLY_OVERLAY + if(cache_index != GLASSES_OVER_LAYER || !istype(source)) + return + + var/datum/species = source.dna?.species + if(!istype(species)) + return + + if(!istype(species, /datum/species/skulk)) + return + + var/icon/I = new() + var/image/overlay = source.overlays_standing[cache_index] + for(var/dir in GLOB.cardinal) + var/icon/dir_image = icon(overlay.icon, overlay.icon_state) + dir_image.Shift(NORTH, directions[dir][1]) + dir_image.Shift(WEST, directions[dir][2]) + I.Insert(dir_image, dir = dir) + + source.overlays_standing[cache_index] = I diff --git a/code/datums/keybindings/emote_keybinds.dm b/code/datums/keybindings/emote_keybinds.dm index 05484cc58a5..793786d269a 100644 --- a/code/datums/keybindings/emote_keybinds.dm +++ b/code/datums/keybindings/emote_keybinds.dm @@ -481,6 +481,10 @@ linked_emote = /datum/emote/living/carbon/human/flutter name = "Flutter" +/datum/keybinding/emote/carbon/human/chitter + linked_emote = /datum/emote/living/carbon/human/chitter + name = "Chitter" + /datum/keybinding/emote/carbon/human/quill linked_emote = /datum/emote/living/carbon/human/quill name = "Quill" diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm index 29bfa510e02..9d48ec1b53a 100644 --- a/code/datums/outfits/outfit_admin.dm +++ b/code/datums/outfits/outfit_admin.dm @@ -1664,3 +1664,38 @@ P.owner = H.real_name P.ownjob = "Tourist" P.name = "PDA-[H.real_name] ([P.ownjob])" + +/datum/outfit/admin/supreme + name = "Supreme-Inquisitor" + uniform = /obj/item/clothing/under/skulk/skulkcasual + suit = /obj/item/clothing/suit/supremeinquis + r_ear = /obj/item/radio/headset/alt + head = /obj/item/clothing/head/supremeinquis + gloves = /obj/item/clothing/gloves/combat + back = /obj/item/storage/backpack/satchel + shoes = /obj/item/clothing/shoes/jackboots + belt = /obj/item/melee/baton/loaded + l_pocket = /obj/item/melee/energy/sword/saber/purple + suit_store = /obj/item/gun/energy/plasma_pistol + backpack_contents = list( + /obj/item/storage/box/survival = 1, + /obj/item/reagent_containers/hypospray/autoinjector/survival = 1 + ) + +/datum/outfit/admin/low + name = "Low-Inquisitor" + uniform = /obj/item/clothing/under/skulk/skulkcasual + suit = /obj/item/clothing/suit/hooded/lowinquis + r_ear = /obj/item/radio/headset/alt + mask = /obj/item/clothing/mask/lowinquis + gloves = /obj/item/clothing/gloves/combat + back = /obj/item/storage/backpack/satchel + shoes = /obj/item/clothing/shoes/jackboots + belt = /obj/item/melee/baton/loaded + suit_store = /obj/item/gun/energy/plasma_pistol + backpack_contents = list( + /obj/item/storage/box/handcuffs = 1, + /obj/item/storage/box/survival = 1, + /obj/item/shield/energy = 1, + /obj/item/reagent_containers/hypospray/autoinjector/survival = 1 + ) diff --git a/code/game/dna/mutations/mutation_powers.dm b/code/game/dna/mutations/mutation_powers.dm index c27ff128f93..1dab36652df 100644 --- a/code/game/dna/mutations/mutation_powers.dm +++ b/code/game/dna/mutations/mutation_powers.dm @@ -900,7 +900,7 @@ //Body accessory. - if((M.dna.species.tail && M.dna.species.bodyflags & (HAS_TAIL)) || (M.dna.species.wing && M.dna.species.bodyflags & (HAS_WING))) + if((M.dna.species.tail && M.dna.species.bodyflags & (HAS_TAIL)) || (M.dna.species.wing && M.dna.species.bodyflags & (HAS_WING)) || (M.dna.species.spines && M.dna.species.bodyflags & (HAS_BACK_SPINES))) var/list/valid_body_accessories = M.generate_valid_body_accessories() if(length(valid_body_accessories) > 1) //By default valid_body_accessories will always have at the very least a 'none' entry populating the list, even if the user's species is not present in any of the list items. var/new_body_accessory = tgui_input_list(user, "Please select body accessory style", "Character Generation", valid_body_accessories) diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index f2cb2358929..bf3ac42f365 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -1024,7 +1024,8 @@ GLOBAL_LIST_EMPTY(multiverse) "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Tajaran" = 'icons/mob/clothing/species/tajaran/suit.dmi', "Unathi" = 'icons/mob/clothing/species/unathi/suit.dmi', - "Vulpkanin" = 'icons/mob/clothing/species/vulpkanin/suit.dmi' + "Vulpkanin" = 'icons/mob/clothing/species/vulpkanin/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) /obj/item/clothing/suit/hooded/oblivion/Initialize(mapload) diff --git a/code/game/machinery/computer/arcade_games/recruiter.dm b/code/game/machinery/computer/arcade_games/recruiter.dm index 7f5d84e4e3e..0c61d0f45ab 100644 --- a/code/game/machinery/computer/arcade_games/recruiter.dm +++ b/code/game/machinery/computer/arcade_games/recruiter.dm @@ -86,7 +86,7 @@ var/list/hirable_species = list(/datum/species/human, /datum/species/unathi, /datum/species/skrell, /datum/species/tajaran, /datum/species/kidan, /datum/species/drask, /datum/species/diona, /datum/species/machine, /datum/species/slime, - /datum/species/moth, /datum/species/vox) + /datum/species/moth, /datum/species/vox, /datum/species/skulk) /// Species that are NOT hirable in the eyes of NT var/list/incorrect_species = list(/datum/species/abductor, /datum/species/monkey, /datum/species/shadow, /datum/species/skeleton, /datum/species/golem) diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index c38c85024ad..f2287b736b2 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -14,7 +14,8 @@ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 50, ACID = 50) new_attack_chain = TRUE sprite_sheets = list( - "Vox" = 'icons/mob/clothing/species/vox/back.dmi' + "Vox" = 'icons/mob/clothing/species/vox/back.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/back.dmi' ) /// If the paddles are currently attached to the unit. diff --git a/code/game/objects/items/flag.dm b/code/game/objects/items/flag.dm index 2de9f3cd3f6..08a8a28764d 100644 --- a/code/game/objects/items/flag.dm +++ b/code/game/objects/items/flag.dm @@ -135,6 +135,11 @@ desc = "An eccentric handmade standard, luxuriously soft due to exotic silks and embossed with lustrous gold. Although inspired by the pride that Nianae take in their baubles, it ultimately feels melancholic. Beauty knows no pain, afterall." icon_state = "nianflag" +/obj/item/flag/species/skulk + name = "\improper Collective Flag" + desc = "A foreboding flag made with silk and religious fervor. The cloth of this flag undoubtly made by faithful silk-spinners and blessed by Skkula-Kkavan priests. Some would argue its beauty does not befit it, believing it to be a beacon of zealotry that plagues the Silver Collective in its entirety." + icon_state = "skulkflag" + //Department Flags /obj/item/flag/cargo diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index fabf3673f6f..fbb72ef326b 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -13,6 +13,7 @@ * Bones * Plastic * Saltpetre Crystal + * Silk */ ////////////////////////////// @@ -825,3 +826,44 @@ GLOBAL_LIST_INIT(plastic_recipes, list( icon_state = "sheet-saltpetre" singular_name = "saltpetre crystal" origin_tech = "materials=1;biotech=1" + +////////////////////////////// +// MARK: Silk +////////////////////////////// +GLOBAL_LIST_INIT(silk_recipes, list( + new /datum/stack_recipe("cloth", /obj/item/stack/sheet/cloth, 1, 3, 6), + new /datum/stack_recipe("collective jumpsuit", /obj/item/clothing/under/skulk/skulkcasual, 3, on_floor = TRUE) +)) + +/obj/item/stack/sheet/silk + name = "silk spool" + desc = "A well-woven sheet of skkulakin silk. Looks like it can be used for crafting." + icon = 'icons/obj/stacks/organic.dmi' + icon_state = "sheet-silk" + singular_name = "silk spool" + force = 0 + throwforce = 0 + origin_tech = "materials=1;biotech=1" + resistance_flags = FLAMMABLE + merge_type = /obj/item/stack/sheet/silk + drop_sound = 'sound/items/handling/cloth_drop.ogg' + pickup_sound = 'sound/items/handling/cloth_pickup.ogg' + +/obj/item/stack/sheet/silk/Initialize(mapload, new_amount, merge) + . = ..() + recipes = GLOB.silk_recipes + +/obj/item/stack/sheet/silk/two + amount = 2 + +/obj/item/stack/sheet/silk/three + amount = 3 + +/obj/item/stack/sheet/silk/update_icon_state() + if(amount == 1) + icon_state = "sheet-silk" + else if(amount == 2) + icon_state = "sheet-silk_2" + else + icon_state = "sheet-silk_3" + diff --git a/code/game/objects/items/storage/garment.dm b/code/game/objects/items/storage/garment.dm index df608e5595d..f047c20b9e4 100644 --- a/code/game/objects/items/storage/garment.dm +++ b/code/game/objects/items/storage/garment.dm @@ -71,6 +71,8 @@ new /obj/item/clothing/glasses/hud/security/sunglasses(src) new /obj/item/clothing/head/helmet/space/plasmaman/security/hos(src) new /obj/item/clothing/under/plasmaman/security/hos(src) + new /obj/item/clothing/suit/hooded/highinquis (src) + new /obj/item/clothing/mask/highinquis (src) /obj/item/storage/bag/garment/research_director name = "research director's garment bag" diff --git a/code/game/objects/items/weapons/holy_weapons.dm b/code/game/objects/items/weapons/holy_weapons.dm index 08b1dddb692..f1927125291 100644 --- a/code/game/objects/items/weapons/holy_weapons.dm +++ b/code/game/objects/items/weapons/holy_weapons.dm @@ -418,6 +418,8 @@ /obj/item/nullrod/fedora/Initialize(mapload) . = ..() AddElement(/datum/element/clothing_adjustment/monitor_headgear, 0, 1) + var/skulk_adjustment = string_assoc_list(alist(SOUTH = list(-1, 0), NORTH = list(-1, 0), EAST = list(0, -2), WEST = list(0, 2))) + AddElement(/datum/element/clothing_adjustment/skulk_headgear, skulk_adjustment) /obj/item/nullrod/armblade name = "dark blessing" diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index 8c2efdbe5a5..e72a5ecc068 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -17,7 +17,8 @@ max_integrity = 300 sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/back.dmi', - "Grey" = 'icons/mob/clothing/species/grey/back.dmi' + "Grey" = 'icons/mob/clothing/species/grey/back.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/back.dmi' ) /obj/item/storage/backpack/attackby__legacy__attackchain(obj/item/W as obj, mob/user as mob, params) diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 0c28ecdbcf0..b5526739b77 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -1076,7 +1076,8 @@ "Drask" = 'icons/mob/clothing/species/drask/belt.dmi', "Grey" = 'icons/mob/clothing/species/grey/belt.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/belt.dmi', - "Vox" = 'icons/mob/clothing/species/vox/belt.dmi' + "Vox" = 'icons/mob/clothing/species/vox/belt.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/belt.dmi' ) /obj/item/storage/belt/chef/black diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index bedf401f8c6..22f0bbe402c 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -170,7 +170,7 @@ if("Body") if(organ_warn) to_chat(user, SPAN_BOLDWARNING("Using the mirror will destroy any non biochip implants in you!")) - var/list/race_list = list("Human", "Tajaran", "Skrell", "Unathi", "Diona", "Vulpkanin", "Nian", "Grey", "Drask") + var/list/race_list = list("Human", "Tajaran", "Skrell", "Unathi", "Diona", "Vulpkanin", "Nian", "Grey", "Drask", "Skkulakin") if(actually_magical) race_list = list("Human", "Tajaran", "Skrell", "Unathi", "Diona", "Vulpkanin", "Nian", "Grey", "Drask", "Vox", "Plasmaman", "Kidan", "Slime People") diff --git a/code/modules/awaymissions/mob_spawn.dm b/code/modules/awaymissions/mob_spawn.dm index 1807c15ffe7..d5eab644e01 100644 --- a/code/modules/awaymissions/mob_spawn.dm +++ b/code/modules/awaymissions/mob_spawn.dm @@ -747,6 +747,7 @@ /datum/species/drask, /datum/species/grey, /datum/species/diona, + /datum/species/skulk, ) del_types |= /obj/item/card/id diff --git a/code/modules/client/preference/loadout/loadout_racial.dm b/code/modules/client/preference/loadout/loadout_racial.dm index 0f3d6af005e..914ba989905 100644 --- a/code/modules/client/preference/loadout/loadout_racial.dm +++ b/code/modules/client/preference/loadout/loadout_racial.dm @@ -91,6 +91,24 @@ path = /obj/item/clothing/suit/hooded/vox_robes slot = ITEM_SLOT_OUTER_SUIT +/datum/gear/racial/skulk_casual + display_name = "Collective jumpsuit" + description = "A grey, insulated jumpsuit made from a hardweave composite. Despite their cheap, mass-produced nature, this suit is seen on every caste from the lowliest Agrolyte to the Prodigium themselves." + path = /obj/item/clothing/under/skulk/skulkcasual + slot = ITEM_SLOT_JUMPSUIT + +/datum/gear/racial/skulk_robes + display_name = "Collective robes" + description = "A set of comfortable purple robes made from silk and faux gold, offers substantial protection from the cold. Worn by faithful commoners and Skkula-Kkavan zealots everywhere." + path = /obj/item/clothing/suit/collectiverobe + slot = ITEM_SLOT_OUTER_SUIT + +/datum/gear/racial/lowinquis + display_name = "Low-Inquisitor robes" + description = "A set of red and silver Collective robes with armor plates sewn into important areas. A common sight amongst the Collective Inquisition." + path = /obj/item/clothing/suit/hooded/lowinquis + allowed_roles = list("Head of Security", "Warden", "Detective", "Security Officer") + /datum/gear/racial/plasmamansuit_coke display_name = "Coke Suit" description = "Plasmaman envirosuit designed by Space Cola Co and gifted to the people of Boron as part of an elaborate advertisement campaign." diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index 226e02750ad..ff8e9350f02 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -243,6 +243,7 @@ armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 50, ACID = 50) sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/color.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/color.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/color.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/color.dmi' ) @@ -294,7 +295,8 @@ armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 50, ACID = 50) sprite_sheets = list( - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) var/datum/action/item_action/chameleon_change/chameleon_action @@ -573,7 +575,8 @@ /obj/item/storage/backpack/chameleon sprite_sheets = list( - "Vox" = 'icons/mob/clothing/species/vox/back.dmi' + "Vox" = 'icons/mob/clothing/species/vox/back.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/back.dmi' ) var/datum/action/item_action/chameleon_change/chameleon_action diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 993e55cd701..25332d90ee4 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -253,6 +253,7 @@ sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/gloves.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/gloves.dmi', "Drask" = 'icons/mob/clothing/species/drask/gloves.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/gloves.dmi' ) @@ -611,6 +612,7 @@ sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/shoes.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/shoes.dmi', "Drask" = 'icons/mob/clothing/species/drask/shoes.dmi' ) @@ -977,7 +979,8 @@ resistance_flags = NONE hide_tail_by_species = null sprite_sheets = list( - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) insert_max = 0 // No inserts for space suits @@ -998,6 +1001,7 @@ sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/misc.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/misc.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/misc.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/misc.dmi' ) diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 2040263d912..f6b866cd951 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -1,5 +1,8 @@ /obj/item/clothing/glasses/Initialize(mapload) . = ..() + var/skulk_adjustment = string_assoc_list(alist(SOUTH = list(-1, 0), NORTH = list(-1, 0), EAST = list(0, -2), WEST = list(0, 2))) + AddElement(/datum/element/clothing_adjustment/skulk_glasses, skulk_adjustment) + if(prescription_upgradable && prescription) upgrade_prescription() diff --git a/code/modules/clothing/gloves/colored_gloves.dm b/code/modules/clothing/gloves/colored_gloves.dm index fee38bf910b..a8c9b8ea2c9 100644 --- a/code/modules/clothing/gloves/colored_gloves.dm +++ b/code/modules/clothing/gloves/colored_gloves.dm @@ -46,6 +46,7 @@ var/can_be_cut = 1 sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/gloves.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/gloves.dmi', "Drask" = 'icons/mob/clothing/species/drask/gloves.dmi', "Grey" = 'icons/mob/clothing/species/grey/gloves.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/gloves.dmi', @@ -154,6 +155,7 @@ inhand_icon_state = "lgloves" sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/gloves.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/gloves.dmi', "Drask" = 'icons/mob/clothing/species/drask/gloves.dmi', "Grey" = 'icons/mob/clothing/species/grey/gloves.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/gloves.dmi', @@ -173,6 +175,7 @@ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 115, ACID = 50) sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/gloves.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/gloves.dmi', "Drask" = 'icons/mob/clothing/species/drask/gloves.dmi', "Grey" = 'icons/mob/clothing/species/grey/gloves.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/gloves.dmi', diff --git a/code/modules/clothing/gloves/misc_gloves.dm b/code/modules/clothing/gloves/misc_gloves.dm index 0d496078846..9cf48b06097 100644 --- a/code/modules/clothing/gloves/misc_gloves.dm +++ b/code/modules/clothing/gloves/misc_gloves.dm @@ -12,6 +12,7 @@ clipped = TRUE sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/gloves.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/gloves.dmi', "Drask" = 'icons/mob/clothing/species/drask/gloves.dmi', "Grey" = 'icons/mob/clothing/species/grey/gloves.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/gloves.dmi', @@ -44,6 +45,7 @@ armor = list(MELEE = 15, BULLET = 15, LASER = 15, ENERGY = 15, BOMB = 50, RAD = 0, FIRE = 200, ACID = 50) sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/gloves.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/gloves.dmi', "Drask" = 'icons/mob/clothing/species/drask/gloves.dmi', "Grey" = 'icons/mob/clothing/species/grey/gloves.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/gloves.dmi', @@ -85,6 +87,7 @@ max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/gloves.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/gloves.dmi', "Drask" = 'icons/mob/clothing/species/drask/gloves.dmi', "Grey" = 'icons/mob/clothing/species/grey/gloves.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/gloves.dmi' @@ -100,6 +103,7 @@ max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/gloves.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/gloves.dmi', "Drask" = 'icons/mob/clothing/species/drask/gloves.dmi', "Grey" = 'icons/mob/clothing/species/grey/gloves.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/gloves.dmi' @@ -237,6 +241,7 @@ siemens_coefficient = 0 sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/gloves.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/gloves.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/gloves.dmi', "Grey" = 'icons/mob/clothing/species/grey/gloves.dmi', "Drask" = 'icons/mob/clothing/species/drask/gloves.dmi' diff --git a/code/modules/clothing/neck/cloaks.dm b/code/modules/clothing/neck/cloaks.dm index 9fa69d9fc90..8d9c7bfe2d0 100644 --- a/code/modules/clothing/neck/cloaks.dm +++ b/code/modules/clothing/neck/cloaks.dm @@ -72,7 +72,10 @@ desc = "A rather grisly selection of cured hides and skin, sewn together to form a ragged mantle." icon_state = "mantle-unathi" inhand_icon_state = "old_mantle" - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/neck.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/neck.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/neck.dmi' + ) /obj/item/clothing/neck/cloak/captain_mantle name = "captain's mantle" @@ -119,5 +122,6 @@ "Drask" = 'icons/mob/clothing/species/drask/neck.dmi', "Grey" = 'icons/mob/clothing/species/grey/neck.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/neck.dmi', - "Vox" = 'icons/mob/clothing/species/vox/neck.dmi' + "Vox" = 'icons/mob/clothing/species/vox/neck.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/neck.dmi' ) diff --git a/code/modules/clothing/spacesuits/alien_suits.dm b/code/modules/clothing/spacesuits/alien_suits.dm index 9dd0ae546ea..b97f7d37b56 100644 --- a/code/modules/clothing/spacesuits/alien_suits.dm +++ b/code/modules/clothing/spacesuits/alien_suits.dm @@ -209,3 +209,33 @@ . = ..() if(magpulse) . += "It would be hard to take these off without relaxing your grip first."//theoretically this message should only be seen by the wearer when the claws are equipped. + +// Skkulakin Uniform + +/obj/item/clothing/under/skulk + icon = 'icons/obj/clothing/species/skkulakin/uniforms.dmi' + worn_icon = 'icons/mob/clothing/species/skkulakin/under/misc.dmi' // Placeholder, change if you want to add more stuff + inhand_icon_state = "bl_suit" + sprite_sheets = list( + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/misc.dmi' + ) + +/obj/item/clothing/under/skulk/skulkcasual + name = "collective jumpsuit" + desc = "A grey, insulated jumpsuit made from a hardweave composite. Despite their cheap, mass-produced nature, this suit is seen on every caste from the lowliest Agrolyte to the Prodigium themselves." + icon_state = "skulkcasual" + worn_icon_state = "skulkcasual" + species_restricted = list("Skkulakin") + +/obj/item/clothing/suit/collectiverobe + name = "collective robe" + desc = "A set of comfortable purple robes made from silk and faux gold, offering substantial protection from the cold. Worn by faithful commoners and Skkula-Kkavan zealots everywhere." + icon = 'icons/obj/clothing/species/skkulakin/suits.dmi' + worn_icon = 'icons/mob/clothing/species/skkulakin/suit.dmi' + icon_state = "collectiverobe" + inhand_icon_state = "coatwinter" + species_restricted = list("Skkulakin") + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS + cold_protection = UPPER_TORSO|LOWER_TORSO|ARMS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter) diff --git a/code/modules/clothing/spacesuits/ert_hardsuits.dm b/code/modules/clothing/spacesuits/ert_hardsuits.dm index f161159dcc0..edafe13e01c 100644 --- a/code/modules/clothing/spacesuits/ert_hardsuits.dm +++ b/code/modules/clothing/spacesuits/ert_hardsuits.dm @@ -69,6 +69,7 @@ "Tajaran" = 'icons/mob/clothing/species/tajaran/suit.dmi', "Unathi" = 'icons/mob/clothing/species/unathi/suit.dmi', "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Vulpkanin" = 'icons/mob/clothing/species/vulpkanin/suit.dmi', ) @@ -189,6 +190,7 @@ "Tajaran" = 'icons/mob/clothing/species/tajaran/suit.dmi', "Unathi" = 'icons/mob/clothing/species/unathi/suit.dmi', "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Vulpkanin" = 'icons/mob/clothing/species/vulpkanin/suit.dmi' ) hide_tail_by_species = list("Unathi", "Tajaran", "Vox", "Vulpkanin") diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 765dd51b70c..1935ff5f182 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -143,6 +143,7 @@ "Tajaran" = 'icons/mob/clothing/species/tajaran/suit.dmi', "Skrell" = 'icons/mob/clothing/species/skrell/suit.dmi', "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Vulpkanin" = 'icons/mob/clothing/species/vulpkanin/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi' ) diff --git a/code/modules/clothing/spacesuits/misc_spacesuits.dm b/code/modules/clothing/spacesuits/misc_spacesuits.dm index ade7639c370..c2058eb7bcc 100644 --- a/code/modules/clothing/spacesuits/misc_spacesuits.dm +++ b/code/modules/clothing/spacesuits/misc_spacesuits.dm @@ -27,7 +27,10 @@ inhand_icon_state = "capspacesuit" allowed = list(/obj/item/tank/internals, /obj/item/flashlight,/obj/item/gun/energy, /obj/item/gun/projectile, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton,/obj/item/restraints/handcuffs) armor = list(MELEE = 35, BULLET = 50, LASER = 50, ENERGY = 15, BOMB = 50, RAD = 50, FIRE = INFINITY, ACID = INFINITY) - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) //Deathsquad space suit, not hardsuits because no flashlight! /obj/item/clothing/head/helmet/space/deathsquad @@ -185,6 +188,7 @@ w_class = WEIGHT_CLASS_NORMAL sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Skrell" = 'icons/mob/clothing/species/skrell/suit.dmi', "Tajaran" = 'icons/mob/clothing/species/tajaran/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', @@ -201,6 +205,7 @@ "Tajaran" = 'icons/mob/clothing/species/tajaran/suit.dmi', "Unathi" = 'icons/mob/clothing/species/unathi/suit.dmi', "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Vulpkanin" = 'icons/mob/clothing/species/vulpkanin/suit.dmi', ) @@ -232,7 +237,10 @@ desc = ". . ." icon_state = "spacemime_suit" inhand_icon_state = null - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/head/helmet/space/eva/clown name = "clown EVA helmet" @@ -246,4 +254,7 @@ desc = "An EVA suit specifically designed for the clown. SPESSHONK!" icon_state = "spaceclown_suit" inhand_icon_state = null - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm index 90688bebbaa..2a493d4494c 100644 --- a/code/modules/clothing/spacesuits/syndi.dm +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -30,6 +30,7 @@ "Unathi" = 'icons/mob/clothing/species/unathi/suit.dmi', "Vulpkanin" = 'icons/mob/clothing/species/vulpkanin/suit.dmi', "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) //Green syndicate space suit diff --git a/code/modules/clothing/spacesuits/void.dm b/code/modules/clothing/spacesuits/void.dm index a575c42b8e5..169f3bc1769 100644 --- a/code/modules/clothing/spacesuits/void.dm +++ b/code/modules/clothing/spacesuits/void.dm @@ -25,7 +25,9 @@ "Tajaran" = 'icons/mob/clothing/species/tajaran/suit.dmi', "Unathi" = 'icons/mob/clothing/species/unathi/suit.dmi', "Vulpkanin" = 'icons/mob/clothing/species/vulpkanin/suit.dmi', - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) //Colors!!! /obj/item/clothing/head/helmet/space/void/green diff --git a/code/modules/clothing/suits/armor_suits.dm b/code/modules/clothing/suits/armor_suits.dm index 6feb36c200b..e1aaf0b74ce 100644 --- a/code/modules/clothing/suits/armor_suits.dm +++ b/code/modules/clothing/suits/armor_suits.dm @@ -12,6 +12,7 @@ armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = 50, ACID = 50) sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) w_class = WEIGHT_CLASS_NORMAL @@ -25,6 +26,7 @@ sprite_sheets = list( "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) /obj/item/clothing/suit/armor/vest/jacket @@ -81,6 +83,7 @@ sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi' ) @@ -115,6 +118,7 @@ adjust_flavour = "unzip" sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi' ) @@ -129,6 +133,7 @@ heat_protection = UPPER_TORSO|LOWER_TORSO|ARMS sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi' ) @@ -147,6 +152,7 @@ insert_max = 2 sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi' ) @@ -180,6 +186,7 @@ dog_fashion = null sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi' ) @@ -202,6 +209,7 @@ sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', @@ -234,6 +242,7 @@ // Drask look fine in the regular human version sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', ) @@ -251,6 +260,7 @@ put_on_delay = 60 sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi' ) @@ -266,7 +276,10 @@ icon_state = "knight_green" inhand_icon_state = null slowdown = 1 - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) hide_tail_by_species = list("Vox") /obj/item/clothing/suit/armor/riot/knight/yellow @@ -307,6 +320,7 @@ put_on_delay = 6 SECONDS sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi' ) @@ -845,7 +859,8 @@ "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) /obj/item/clothing/head/hooded/bone_light diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index 430d9e3ae50..05f36bef047 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -47,7 +47,8 @@ "Vox" = 'icons/mob/clothing/species/vox/suits/bio.dmi', "Grey" = 'icons/mob/clothing/species/grey/suits/bio.dmi', "Drask" = 'icons/mob/clothing/species/drask/suits/bio.dmi', - "Kidan" = 'icons/mob/clothing/species/kidan/suits/bio.dmi' + "Kidan" = 'icons/mob/clothing/species/kidan/suits/bio.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suits/bio.dmi' ) //Medical biosuit, white with blue diff --git a/code/modules/clothing/suits/job_suits.dm b/code/modules/clothing/suits/job_suits.dm index 00400d94623..0644308e139 100644 --- a/code/modules/clothing/suits/job_suits.dm +++ b/code/modules/clothing/suits/job_suits.dm @@ -9,7 +9,10 @@ blood_overlay_type = "armor" body_parts_covered = UPPER_TORSO|LOWER_TORSO allowed = list(/obj/item/reagent_containers/spray/plantbgone,/obj/item/plant_analyzer,/obj/item/seeds,/obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/cultivator,/obj/item/reagent_containers/spray/pestspray,/obj/item/hatchet,/obj/item/storage/bag/plants) - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) // Smith /obj/item/clothing/suit/apron/smith @@ -25,7 +28,8 @@ "Drask" = 'icons/mob/clothing/species/drask/suits/utility.dmi', "Grey" = 'icons/mob/clothing/species/grey/suits/utility.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suits/utility.dmi', - "Vox" = 'icons/mob/clothing/species/vox/suits/utility.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suits/utility.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suits/utility.dmi' ) //Chaplain @@ -41,7 +45,8 @@ "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) //Chaplain @@ -58,7 +63,8 @@ "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) //Chaplain @@ -74,7 +80,8 @@ "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) //Chaplain @@ -89,7 +96,8 @@ "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) //Chaplain @@ -104,7 +112,8 @@ "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) //Chaplain @@ -119,7 +128,8 @@ "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) //Chaplain @@ -133,7 +143,8 @@ "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) /obj/item/clothing/suit/witchhunter @@ -162,6 +173,7 @@ "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) /obj/item/clothing/suit/chef/red @@ -198,7 +210,8 @@ "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) // Librarian @@ -212,7 +225,8 @@ "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) //Detective @@ -229,9 +243,10 @@ heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', - "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi' + "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', ) //Forensics @@ -271,6 +286,7 @@ insert_max = 2 sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', @@ -288,6 +304,7 @@ resistance_flags = NONE sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suits/utility.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suits/utility.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suits/utility.dmi', "Drask" = 'icons/mob/clothing/species/drask/suits/utility.dmi', "Grey" = 'icons/mob/clothing/species/grey/suits/utility.dmi' @@ -324,6 +341,7 @@ body_parts_covered = UPPER_TORSO | ARMS sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi' @@ -359,6 +377,7 @@ insert_max = 2 sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi' @@ -374,6 +393,7 @@ insert_max = 2 sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi' @@ -392,6 +412,7 @@ insert_max = 2 sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', @@ -407,6 +428,7 @@ insert_max = 2 sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', @@ -425,7 +447,10 @@ suit_adjusted = 1 actions_types = list(/datum/action/item_action/button) adjust_flavour = "unbutton" - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) //Mime /obj/item/clothing/suit/suspenders @@ -434,7 +459,9 @@ icon = 'icons/obj/clothing/belts.dmi' icon_state = "suspenders" blood_overlay_type = "armor" //it's the less thing that I can put here - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi') /obj/item/clothing/suit/suspenders/nodrop flags = NODROP @@ -455,6 +482,7 @@ body_parts_covered = UPPER_TORSO|ARMS sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index be25a2da304..474c2018fdc 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -14,6 +14,7 @@ species_exception = list(/datum/species/golem) sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suits/labcoat.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suits/labcoat.dmi', "Grey" = 'icons/mob/clothing/species/grey/suits/labcoat.dmi', "Drask" = 'icons/mob/clothing/species/drask/suits/labcoat.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suits/labcoat.dmi' diff --git a/code/modules/clothing/suits/misc_suits.dm b/code/modules/clothing/suits/misc_suits.dm index 4a2a1fdc1f2..0ba7ef49899 100644 --- a/code/modules/clothing/suits/misc_suits.dm +++ b/code/modules/clothing/suits/misc_suits.dm @@ -19,7 +19,10 @@ allowed = list (/obj/item/gun/energy/laser/tag/blue) resistance_flags = NONE insert_max = 0 - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/suit/redtag name = "red laser tag armour" @@ -30,7 +33,10 @@ body_parts_covered = UPPER_TORSO|LOWER_TORSO allowed = list (/obj/item/gun/energy/laser/tag/red) resistance_flags = NONE - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /* * Costume @@ -40,14 +46,20 @@ desc = "Yarr." icon_state = "pirate_old" insert_max = 0 - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/suit/pirate_black name = "black pirate coat" desc = "Yarr." icon_state = "pirate" insert_max = 0 - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/suit/hgpirate name = "pirate captain coat" @@ -96,7 +108,8 @@ insert_max = 0 sprite_sheets = list( - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) /obj/item/clothing/suit/apron/overalls @@ -118,7 +131,9 @@ "Tajaran" = 'icons/mob/clothing/species/tajaran/suit.dmi', "Unathi" = 'icons/mob/clothing/species/unathi/suit.dmi', "Vulpkanin" = 'icons/mob/clothing/species/vulpkanin/suit.dmi', - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/suit/hastur name = "Hastur's robes" @@ -222,7 +237,10 @@ name = "poncho" desc = "Your classic, non-racist poncho." icon_state = "classicponcho" - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/suit/poncho/green name = "green poncho" @@ -328,7 +346,10 @@ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS flags = THICKMATERIAL hoodtype = /obj/item/clothing/head/hooded/bee_hood - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) insert_max = 0 /obj/item/clothing/head/hooded/bee_hood @@ -366,7 +387,8 @@ "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) /obj/item/clothing/suit/hooded/costume/nun @@ -381,7 +403,8 @@ "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) /obj/item/clothing/suit/costume/bana @@ -394,7 +417,8 @@ "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) /obj/item/clothing/suit/costume/joue @@ -407,7 +431,8 @@ "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) /obj/item/clothing/suit/costume/miko @@ -420,7 +445,8 @@ "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) /obj/item/clothing/suit/costume/hasidic_coat @@ -432,7 +458,8 @@ "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi', - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) /* @@ -454,7 +481,8 @@ "Drask" = 'icons/mob/clothing/species/drask/suits/coat.dmi', "Grey" = 'icons/mob/clothing/species/grey/suits/coat.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suits/coat.dmi', - "Vox" = 'icons/mob/clothing/species/vox/suits/coat.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suits/coat.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suits/coat.dmi' ) /obj/item/clothing/head/hooded/winterhood @@ -487,7 +515,8 @@ sprite_sheets = list( "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) /obj/item/clothing/suit/pimpcoat/white @@ -726,8 +755,11 @@ hoodtype = /obj/item/clothing/head/hooded/ablative strip_delay = 3 SECONDS put_on_delay = 4 SECONDS - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi', - "Grey" = 'icons/mob/clothing/species/grey/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', + "Grey" = 'icons/mob/clothing/species/grey/suit.dmi' + ) var/last_reflect_time var/reflect_cooldown = 4 SECONDS @@ -756,7 +788,10 @@ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen) hoodtype = /obj/item/clothing/head/hooded/hood - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/head/hooded/hood name = "black hood" @@ -832,7 +867,10 @@ name = "worn shirt" desc = "A worn out, curiously comfortable t-shirt with a picture of Ian. You wouldn't go so far as to say it feels like being hugged when you wear it but it's pretty close. Good for sleeping in." icon_state = "ianshirt" - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) //coats @@ -850,7 +888,10 @@ suit_adjusted = TRUE actions_types = list(/datum/action/item_action/button) adjust_flavour = "unbutton" - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/suit/blacktrenchcoat name = "black trench coat" @@ -860,7 +901,10 @@ suit_adjusted = TRUE actions_types = list(/datum/action/item_action/button) adjust_flavour = "unbutton" - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) //trackjackets @@ -873,7 +917,10 @@ suit_adjusted = 1 actions_types = list(/datum/action/item_action/openclose) adjust_flavour = "unzip" - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/suit/tracksuit/green name = "green tracksuit" @@ -895,7 +942,10 @@ actions_types = list() adjust_flavour = null allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/toy,/obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/projectile/automatic/pistol, /obj/item/gun/projectile/revolver, /obj/item/gun/energy/detective) - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/suit/jacket/miljacket/navy name = "navy military jacket" @@ -962,6 +1012,7 @@ armor = list(MELEE = 10, BULLET = 5, LASER = 10, ENERGY = 5, BOMB = 10, RAD = 0, FIRE = 20, ACID = 20) sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi' ) @@ -983,6 +1034,7 @@ icon_state = "varsity_classic" sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi' ) @@ -992,6 +1044,7 @@ icon_state = "varsity_sport" sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi' ) @@ -1001,6 +1054,7 @@ icon_state = "varsity_blood" sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi' ) @@ -1010,6 +1064,7 @@ icon_state = "driver_jacket" sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi' ) @@ -1022,7 +1077,8 @@ adjust_flavour = null resistance_flags = NONE sprite_sheets = list( - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) /obj/item/clothing/suit/jacket/motojacket @@ -1033,6 +1089,7 @@ actions_types = list(/datum/action/item_action/zipper) sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi' ) @@ -1044,7 +1101,8 @@ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS cold_protection = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS sprite_sheets = list( - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) //Bomber jackets @@ -1060,6 +1118,7 @@ actions_types = list(/datum/action/item_action/zipper) sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suits/coat.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suits/coat.dmi', "Drask" = 'icons/mob/clothing/species/drask/suits/coat.dmi', "Grey" = 'icons/mob/clothing/species/grey/suits/coat.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suits/coat.dmi' @@ -1176,7 +1235,10 @@ ignore_suitadjust = 0 actions_types = list(/datum/action/item_action/button) adjust_flavour = "unbutton" - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/suit/soldiercoat name = "clown soldier's coat" @@ -1185,7 +1247,10 @@ ignore_suitadjust = 0 actions_types = list(/datum/action/item_action/button) adjust_flavour = "unbutton" - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/suit/sovietcoat name = "\improper Soviet greatcoat" @@ -1402,6 +1467,7 @@ sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi' @@ -1471,7 +1537,8 @@ body_parts_covered = UPPER_TORSO|LOWER_TORSO sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', - "Grey" = 'icons/mob/clothing/species/grey/suit.dmi' + "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) /obj/item/clothing/suit/hooded/dark_robes @@ -1481,4 +1548,124 @@ body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS hoodtype = /obj/item/clothing/head/hooded/dark_hood allowed = list(/obj/item/storage/bible, /obj/item/nullrod, /obj/item/reagent_containers/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen) - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) + +// For Skulk Clothing + +/obj/item/clothing/suit/hooded/lowinquis + name = "low-inquisitor robes" + desc = "A set of red and silver Collective robes with armor plates sewn into important areas. A common sight amongst the Collective Inquisition." + icon = 'icons/obj/clothing/species/skkulakin/suits.dmi' + worn_icon = 'icons/mob/clothing/species/skkulakin/suit.dmi' + icon_state = "lowinquis" + hoodtype = /obj/item/clothing/head/hooded/lowinquis + inhand_icon_state = "coatsecurity" + armor = list(MELEE = 10, BULLET = 5, LASER = 10, ENERGY = 5, BOMB = 10, RAD = 0, FIRE = 20, ACID = 20) + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS + cold_protection = UPPER_TORSO|LOWER_TORSO|ARMS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + allowed = list(/obj/item/gun/energy, /obj/item/reagent_containers/spray/pepper, /obj/item/gun/projectile, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/flashlight/seclite, /obj/item/melee/classic_baton/telescopic) + species_restricted = list("Skkulakin") + +/obj/item/clothing/head/hooded/lowinquis + name = "low-inquisitor hood" + desc = "An armored hood attached to inquisitorial robes." + icon = 'icons/obj/clothing/species/skkulakin/hats.dmi' + worn_icon = 'icons/mob/clothing/species/skkulakin/head.dmi' + icon_state = "lowinquis" + armor = list(MELEE = 25, BULLET = 20, LASER = 20, ENERGY = 5, BOMB = 0, RAD = 0, FIRE = 10, ACID = 50) + cold_protection = HEAD + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + flags = BLOCKHAIR + flags_inv = HIDEEARS + species_restricted = list("Skkulakin") + +/obj/item/clothing/suit/hooded/highinquis + name = "high-inquisitor robes" + desc = "A set of black and gold Collective robes with reinforced armor plates sewn within the hardweave composite cloth. These are commonly worn by commanders within the Collective Inquisition." + icon = 'icons/obj/clothing/species/skkulakin/suits.dmi' + worn_icon = 'icons/mob/clothing/species/skkulakin/suit.dmi' + icon_state = "highinquis" + hoodtype = /obj/item/clothing/head/hooded/highinquis + inhand_icon_state = "armor" + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS + armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = 115, ACID = 450) + cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS + heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS + allowed = list(/obj/item/gun/energy, /obj/item/reagent_containers/spray/pepper, /obj/item/gun/projectile, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/flashlight/seclite, /obj/item/melee/classic_baton/telescopic) + strip_delay = 80 + insert_max = 2 + species_restricted = list("Skkulakin") + +/obj/item/clothing/head/hooded/highinquis + name = "high-inquisitor hood" + desc = "An armored hood attached to inquisitorial robes." + icon = 'icons/obj/clothing/species/skkulakin/hats.dmi' + worn_icon = 'icons/mob/clothing/species/skkulakin/head.dmi' + icon_state = "highinquis" + armor = list(MELEE = 35, BULLET = 20, LASER = 20, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = 50, ACID = 75) + cold_protection = HEAD + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + flags = BLOCKHAIR + flags_inv = HIDEEARS + species_restricted = list("Skkulakin") + +/obj/item/clothing/mask/lowinquis + name = "low-inquisitor mask" + desc = "A silver mask affixed to a balaclava designed to easily fit the face of a Skkulakin. Despite its retinal scanners being disabled, it still protects the user from bright flashes." + icon = 'icons/obj/clothing/species/skkulakin/masks.dmi' + worn_icon = 'icons/mob/clothing/species/skkulakin/mask.dmi' + icon_state = "inquismask" + flags = BLOCKHAIR | AIRTIGHT + flash_protect = FLASH_PROTECTION_FLASH + flags_cover = MASKCOVERSMOUTH | MASKCOVERSEYES + flags_inv = HIDEEARS|HIDEEYES|HIDEFACE + w_class = WEIGHT_CLASS_NORMAL + species_restricted = list("Skkulakin") + +/obj/item/clothing/mask/highinquis + name = "high-inquisitor mask" + desc = "A golden mask affixed to a balaclava designed to easily fit the face of a Skkulakin. Despite its retinal scanners being disabled, it still protects the user from bright flashes and looks incredibly snazzy while doing so." + icon = 'icons/obj/clothing/species/skkulakin/masks.dmi' + worn_icon = 'icons/mob/clothing/species/skkulakin/mask.dmi' + icon_state = "highinquismask" + flags = BLOCKHAIR | AIRTIGHT + flash_protect = FLASH_PROTECTION_FLASH + flags_cover = MASKCOVERSMOUTH | MASKCOVERSEYES + flags_inv = HIDEEARS|HIDEEYES|HIDEFACE + w_class = WEIGHT_CLASS_NORMAL + species_restricted = list("Skkulakin") + +/obj/item/clothing/suit/supremeinquis + name = "supreme-inquisitor robe" + desc = "Beautiful, gilded robes adorned with runes, symbols, and Collective imagery." + icon = 'icons/obj/clothing/species/skkulakin/suits.dmi' + worn_icon = 'icons/mob/clothing/species/skkulakin/suit.dmi' + icon_state = "supremeinquis" + armor = list(MELEE = 15, BULLET = 20, LASER = 20, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = 0, ACID = 50) + body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS + insert_max = 3 + cold_protection = UPPER_TORSO|LOWER_TORSO|ARMS + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + allowed = list(/obj/item/gun/energy, /obj/item/reagent_containers/spray/pepper, /obj/item/gun/projectile, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/flashlight/seclite, /obj/item/melee/classic_baton/telescopic) + species_restricted = list("Skkulakin") + +/obj/item/clothing/head/supremeinquis + name = "supreme-inquisitor helmet" + desc = "An electrum-alloy helmet designed to fit the head of a Skkulakin. Offering protection from threats both physical and paranormal." + icon = 'icons/obj/clothing/species/skkulakin/hats.dmi' + worn_icon = 'icons/mob/clothing/species/skkulakin/head.dmi' + icon_state = "supremeinquis" + armor = list(MELEE = 25, BULLET = 20, LASER = 20, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = 50, ACID = 50) + w_class = WEIGHT_CLASS_NORMAL + flags = HEADBANGPROTECT|BLOCKHAIR + flags_cover = HEADCOVERSEYES + flags_inv = HIDEEARS|HIDEEYES|HIDEFACE + cold_protection = HEAD + min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT + heat_protection = HEAD + max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT + species_restricted = list("Skkulakin") diff --git a/code/modules/clothing/suits/unathi_suits.dm b/code/modules/clothing/suits/unathi_suits.dm index 6a8d35f77d0..260ccce43d9 100644 --- a/code/modules/clothing/suits/unathi_suits.dm +++ b/code/modules/clothing/suits/unathi_suits.dm @@ -1,7 +1,8 @@ //Unathi clothing. /obj/item/clothing/suit/unathi sprite_sheets = list( - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) /obj/item/clothing/suit/unathi/robe diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 305c8086e01..1c706061e14 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -43,7 +43,8 @@ "Vox" = 'icons/mob/clothing/species/vox/suits/utility.dmi', "Grey" = 'icons/mob/clothing/species/grey/suits/utility.dmi', "Drask" = 'icons/mob/clothing/species/drask/suits/utility.dmi', - "Kidan" = 'icons/mob/clothing/species/kidan/suits/utility.dmi' + "Kidan" = 'icons/mob/clothing/species/kidan/suits/utility.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suits/utility.dmi' ) /obj/item/clothing/suit/fire/firefighter/atmos @@ -98,7 +99,10 @@ strip_delay = 70 put_on_delay = 70 resistance_flags = NONE - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/head/bomb_hood/security icon_state = "bombsuitsec" @@ -164,7 +168,8 @@ "Vox" = 'icons/mob/clothing/species/vox/suits/utility.dmi', "Grey" = 'icons/mob/clothing/species/grey/suits/utility.dmi', "Drask" = 'icons/mob/clothing/species/drask/suits/utility.dmi', - "Kidan" = 'icons/mob/clothing/species/kidan/suits/utility.dmi' + "Kidan" = 'icons/mob/clothing/species/kidan/suits/utility.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suits/utility.dmi' ) rad_insulation_alpha = RAD_FULL_INSULATION rad_insulation_beta = RAD_FULL_INSULATION diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index 2a843ffb967..5f96c895271 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -131,6 +131,7 @@ inhand_icon_state = "bl_suit" sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi' ) diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm index 8b436ab1bd6..abb6569b72a 100644 --- a/code/modules/clothing/under/accessories/accessory.dm +++ b/code/modules/clothing/under/accessories/accessory.dm @@ -119,7 +119,10 @@ name = "waistcoat" desc = "For some classy, murderous fun." icon_state = "waistcoat" - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) //Medals /obj/item/clothing/accessory/medal @@ -335,6 +338,7 @@ sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/neck.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/neck.dmi', "Grey" = 'icons/mob/clothing/species/grey/neck.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/neck.dmi', ) @@ -443,55 +447,82 @@ name = "black cowboy shirt" desc = "For a real western look. Looks like it can clip on to a uniform." icon_state = "cowboyshirt" - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/accessory/cowboyshirt/short_sleeved name = "shortsleeved black cowboy shirt" desc = "For when it's a hot day in the west. Looks like it can clip on to a uniform." icon_state = "cowboyshirt_s" - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/accessory/cowboyshirt/white name = "white cowboy shirt" desc = "For the rancher in us all. Looks like it can clip on to a uniform." icon_state = "cowboyshirt_white" - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/accessory/cowboyshirt/white/short_sleeved name = "short sleeved white cowboy shirt" desc = "Best for midday cattle tending. Looks like it can clip on to a uniform." icon_state = "cowboyshirt_whites" - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/accessory/cowboyshirt/pink name = "pink cowboy shirt" desc = "For only the manliest of men, or girliest of girls. Looks like it can clip on to a uniform." icon_state = "cowboyshirt_pink" - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/accessory/cowboyshirt/pink/short_sleeved name = "short sleeved pink cowboy shirt" desc = "For a real buckle bunny. Looks like it can clip on to a uniform." icon_state = "cowboyshirt_pinks" - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/accessory/cowboyshirt/navy name = "navy cowboy shirt" desc = "Now yer a real cowboy. Looks like it can clip on to a uniform." icon_state = "cowboyshirt_navy" - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/accessory/cowboyshirt/navy/short_sleeved name = "short sleeved navy cowboy shirt" desc = "Sometimes ya need to roll up your sleeves. Looks like it can clip on to a uniform." icon_state = "cowboyshirt_navys" - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/accessory/cowboyshirt/red name = "red cowboy shirt" desc = "It's high noon. Looks like it can clip on to a uniform." icon_state = "cowboyshirt_red" - sprite_sheets = list("Vox" = 'icons/mob/clothing/species/vox/suit.dmi') + sprite_sheets = list( + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' + ) /obj/item/clothing/accessory/cowboyshirt/red/short_sleeved name = "short sleeved red cowboy shirt" @@ -499,6 +530,7 @@ icon_state = "cowboyshirt_reds" sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/suit.dmi' ) diff --git a/code/modules/clothing/under/accessories/storage_accessories.dm b/code/modules/clothing/under/accessories/storage_accessories.dm index 1b72e86b475..4ab0fa7119e 100644 --- a/code/modules/clothing/under/accessories/storage_accessories.dm +++ b/code/modules/clothing/under/accessories/storage_accessories.dm @@ -77,7 +77,8 @@ desc = "Sturdy mess of synthcotton belts and buckles, ready to share your burden." sprite_sheets = list( - "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' + "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) /obj/item/clothing/accessory/storage/black_vest diff --git a/code/modules/clothing/under/centcom.dm b/code/modules/clothing/under/centcom.dm index faec16a84bb..22451bbd5fe 100644 --- a/code/modules/clothing/under/centcom.dm +++ b/code/modules/clothing/under/centcom.dm @@ -7,6 +7,7 @@ inhand_icon_state = "g_suit" sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/centcom.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/centcom.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/centcom.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/centcom.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/under/centcom.dmi' diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm index 8bf7e8fab55..47562b3d507 100644 --- a/code/modules/clothing/under/color.dm +++ b/code/modules/clothing/under/color.dm @@ -5,6 +5,7 @@ dyeable = TRUE sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/color.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/color.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/color.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/color.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/under/color.dmi' diff --git a/code/modules/clothing/under/costumes.dm b/code/modules/clothing/under/costumes.dm index e9c8b85a183..fb5bcc36e16 100644 --- a/code/modules/clothing/under/costumes.dm +++ b/code/modules/clothing/under/costumes.dm @@ -3,6 +3,7 @@ worn_icon = 'icons/mob/clothing/under/costumes.dmi' sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/costumes.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/costumes.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/costumes.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/costumes.dmi' ) @@ -113,6 +114,7 @@ //it is what it is sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/costumes.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/costumes.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/costumes.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/costumes.dmi' ) @@ -169,6 +171,7 @@ worn_icon = 'icons/mob/clothing/under/civilian.dmi' sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/civilian.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/civilian.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/civilian.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/civilian.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/under/civilian.dmi' @@ -182,6 +185,7 @@ worn_icon = 'icons/mob/clothing/under/civilian.dmi' sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/civilian.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/civilian.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/civilian.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/civilian.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/under/civilian.dmi' @@ -195,6 +199,7 @@ worn_icon = 'icons/mob/clothing/under/civilian.dmi' sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/civilian.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/civilian.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/civilian.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/civilian.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/under/civilian.dmi' diff --git a/code/modules/clothing/under/dress.dm b/code/modules/clothing/under/dress.dm index f00ebe46398..8a5a0710253 100644 --- a/code/modules/clothing/under/dress.dm +++ b/code/modules/clothing/under/dress.dm @@ -3,6 +3,7 @@ worn_icon = 'icons/mob/clothing/under/dress.dmi' sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/dress.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/dress.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/dress.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/dress.dmi' ) diff --git a/code/modules/clothing/under/jobs/captain.dm b/code/modules/clothing/under/jobs/captain.dm index 2e7980b72e8..2083170e111 100644 --- a/code/modules/clothing/under/jobs/captain.dm +++ b/code/modules/clothing/under/jobs/captain.dm @@ -6,6 +6,7 @@ worn_icon = 'icons/mob/clothing/under/captain.dmi' sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/captain.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/captain.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/captain.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/captain.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/under/captain.dmi', diff --git a/code/modules/clothing/under/jobs/cargo.dm b/code/modules/clothing/under/jobs/cargo.dm index 8faf419c996..548d42c103d 100644 --- a/code/modules/clothing/under/jobs/cargo.dm +++ b/code/modules/clothing/under/jobs/cargo.dm @@ -3,6 +3,7 @@ worn_icon = 'icons/mob/clothing/under/cargo.dmi' sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/cargo.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/cargo.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/cargo.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/cargo.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/under/cargo.dmi' diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm index 58a6eea587d..507954838fa 100644 --- a/code/modules/clothing/under/jobs/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -3,6 +3,7 @@ worn_icon = 'icons/mob/clothing/under/civilian.dmi' sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/civilian.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/civilian.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/civilian.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/civilian.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/under/civilian.dmi' diff --git a/code/modules/clothing/under/jobs/engineering_jumpsuits.dm b/code/modules/clothing/under/jobs/engineering_jumpsuits.dm index 2abce6e88d7..ff34835e48c 100644 --- a/code/modules/clothing/under/jobs/engineering_jumpsuits.dm +++ b/code/modules/clothing/under/jobs/engineering_jumpsuits.dm @@ -4,6 +4,7 @@ inhand_icon_state = "engi_suit" sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/engineering.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/engineering.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/engineering.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/engineering.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/under/engineering.dmi' diff --git a/code/modules/clothing/under/jobs/medical_jumpsuits.dm b/code/modules/clothing/under/jobs/medical_jumpsuits.dm index d2f1f9f0947..48110caab46 100644 --- a/code/modules/clothing/under/jobs/medical_jumpsuits.dm +++ b/code/modules/clothing/under/jobs/medical_jumpsuits.dm @@ -4,6 +4,7 @@ inhand_icon_state = "nursesuit" sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/medical.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/medical.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/medical.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/medical.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/under/medical.dmi' diff --git a/code/modules/clothing/under/jobs/procedure.dm b/code/modules/clothing/under/jobs/procedure.dm index 0b5440e920b..5464fedc80a 100644 --- a/code/modules/clothing/under/jobs/procedure.dm +++ b/code/modules/clothing/under/jobs/procedure.dm @@ -3,6 +3,7 @@ worn_icon = 'icons/mob/clothing/under/procedure.dmi' sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/procedure.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/procedure.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/procedure.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/procedure.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/under/procedure.dmi' diff --git a/code/modules/clothing/under/jobs/rnd.dm b/code/modules/clothing/under/jobs/rnd.dm index 0ceb064461d..de8335c8444 100644 --- a/code/modules/clothing/under/jobs/rnd.dm +++ b/code/modules/clothing/under/jobs/rnd.dm @@ -3,6 +3,7 @@ worn_icon = 'icons/mob/clothing/under/rnd.dmi' sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/rnd.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/rnd.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/rnd.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/rnd.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/under/rnd.dmi' diff --git a/code/modules/clothing/under/jobs/security_jumpsuits.dm b/code/modules/clothing/under/jobs/security_jumpsuits.dm index 366f30ba756..e9ec810c5a5 100644 --- a/code/modules/clothing/under/jobs/security_jumpsuits.dm +++ b/code/modules/clothing/under/jobs/security_jumpsuits.dm @@ -6,6 +6,7 @@ strip_delay = 50 sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/security.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/security.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/security.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/security.dmi' ) @@ -30,6 +31,7 @@ icon_state = "ward_turtle" sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/security.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/security.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/security.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/security.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/under/security.dmi' @@ -93,6 +95,7 @@ inhand_icon_state = "bl_suit" sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/security.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/security.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/security.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/security.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/under/security.dmi' @@ -154,6 +157,7 @@ icon_state = "hos_turtle" sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/security.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/security.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/security.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/security.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/under/security.dmi' diff --git a/code/modules/clothing/under/misc_jumpsuits.dm b/code/modules/clothing/under/misc_jumpsuits.dm index 2d333cea8e6..29b5f9e8b51 100644 --- a/code/modules/clothing/under/misc_jumpsuits.dm +++ b/code/modules/clothing/under/misc_jumpsuits.dm @@ -73,7 +73,8 @@ "Drask" = 'icons/mob/clothing/species/drask/under/misc.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/misc.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/under/misc.dmi', - "Vox" = 'icons/mob/clothing/species/vox/under/misc.dmi' + "Vox" = 'icons/mob/clothing/species/vox/under/misc.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/misc.dmi' ) /obj/item/clothing/under/misc/burial diff --git a/code/modules/clothing/under/pants.dm b/code/modules/clothing/under/pants.dm index 68680e50aae..b729a6047b7 100644 --- a/code/modules/clothing/under/pants.dm +++ b/code/modules/clothing/under/pants.dm @@ -6,6 +6,7 @@ displays_id = FALSE sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/pants.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/pants.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/pants.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/pants.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/under/pants.dmi' diff --git a/code/modules/clothing/under/suit.dm b/code/modules/clothing/under/suit.dm index da35c3708f0..e8e03be0670 100644 --- a/code/modules/clothing/under/suit.dm +++ b/code/modules/clothing/under/suit.dm @@ -4,6 +4,7 @@ inhand_icon_state = "bl_suit" sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/vox/under/suit.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/suit.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/suit.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/under/suit.dmi' diff --git a/code/modules/clothing/under/syndicate_jumpsuits.dm b/code/modules/clothing/under/syndicate_jumpsuits.dm index e761304c256..fbf9470e5f6 100644 --- a/code/modules/clothing/under/syndicate_jumpsuits.dm +++ b/code/modules/clothing/under/syndicate_jumpsuits.dm @@ -9,6 +9,7 @@ armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 50, ACID = 35) sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/under/syndicate.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/under/syndicate.dmi', "Drask" = 'icons/mob/clothing/species/drask/under/syndicate.dmi', "Grey" = 'icons/mob/clothing/species/grey/under/syndicate.dmi' ) diff --git a/code/modules/economy/merch_items.dm b/code/modules/economy/merch_items.dm index 216c7791a52..1344ad8021a 100644 --- a/code/modules/economy/merch_items.dm +++ b/code/modules/economy/merch_items.dm @@ -229,6 +229,13 @@ cost = 500 category = MERCH_CAT_DECORATION +/datum/merch_item/flag_skulk + name = "Skkulakin Flag" + desc = "The foreboding flag of the Silver Collective. Blessed by Skkula-Kkavan priests." + typepath = /obj/item/flag/species/skulk + cost = 500 + category = MERCH_CAT_DECORATION + /datum/merch_item/flag_ian name = "Ian Flag" desc = "The banner of Ian, because SQUEEEEE." diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index 58326b63ac5..1ddcc81fc72 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -18,7 +18,8 @@ "Drask" = 'icons/mob/clothing/species/drask/suit.dmi', "Tajaran" = 'icons/mob/clothing/species/tajaran/suit.dmi', "Unathi" = 'icons/mob/clothing/species/unathi/suit.dmi', - "Vulpkanin" = 'icons/mob/clothing/species/vulpkanin/suit.dmi' + "Vulpkanin" = 'icons/mob/clothing/species/vulpkanin/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) /obj/item/clothing/head/hooded/explorer @@ -58,7 +59,8 @@ "Grey" = 'icons/mob/clothing/species/grey/suit.dmi', "Tajaran" = 'icons/mob/clothing/species/tajaran/suit.dmi', "Vulpkanin" = 'icons/mob/clothing/species/vulpkanin/suit.dmi', - "Unathi" = 'icons/mob/clothing/species/unathi/suit.dmi' + "Unathi" = 'icons/mob/clothing/species/unathi/suit.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/suit.dmi' ) /obj/item/clothing/suit/space/hostile_environment/Initialize(mapload) diff --git a/code/modules/mob/language.dm b/code/modules/mob/language.dm index a8301c84029..ce394112505 100644 --- a/code/modules/mob/language.dm +++ b/code/modules/mob/language.dm @@ -411,6 +411,23 @@ new_name += " [pick("Alkaid","Andromeda","Antlia","Apus","Auriga","Caelum","Camelopardalis","Canes Venatici","Carinae","Cassiopeia","Centauri","Circinus","Cygnus","Dorado","Draco","Eridanus","Errakis","Fornax","Gliese","Grus","Horologium","Hydri","Lacerta","Leo Minor","Lupus","Lynx","Maffei","Megrez","Messier","Microscopium","Monocerotis","Muscae","Ophiuchi","Orion","Pegasi","Persei","Perseus","Polaris","Pyxis","Sculptor","Syrma","Telescopium","Tianyi","Triangulum","Trifid","Tucana","Tycho","Vir","Volans","Zavyava")]" return new_name +/datum/language/skulk + name = "Skkula-Runespeak" + desc = "A language comprised mostly of chittering, laced with psionic resonations used to convey urgency and emotion. Utterly esoteric to the unenlightened." + speech_verb = "resonates" + ask_verb = "pulses" + exclaim_verbs = list("thunders") + whisper_verb = "warps" + colour = "skulk" + key = "8" + flags = RESTRICTED | WHITELISTED + syllables = list("┤ᖋ|:ᖋᔮᒣ╎ᔮ", "ᖋリᒣ|:॥.", "ᒣ⍑ᒷ ▭", "⍊ᒷ∷", "ᒷ⎓", "╎リ┤ ▭ ⍑╎ᒲ") + +/datum/language/skulk/get_random_name() + var/new_name = "[pick("Akki", "Akku", "Avvi", "Bakku", "Bakki", "Bakk", "Kkath", "Makkith", "Vullo", "Mortis", "Vaal", "Kkari", "Thrakk", "Skkiv", "Llav", "Vykke", "Hakki", "Askki", "Tavv", "Maskii", "Tokko", "Kkavik", "Morkk", "Savv")]" + new_name += "-[pick("Akku", "Avvi", "Bakku", "Bakki", "Bakk", "Kkath", "Makkith", "Vullo", "Mortis", "Vaal", "Kkari", "Thrakk", "Skkiv", "Llav", "Vykke", "Hakki", "Askki", "Tavv", "Maskii", "Tokko", "Kkavik", "Morkk", "Savv")]" + return new_name + /datum/language/common name = "Galactic Common" desc = "Originally a carefully crafted fusion of various Human and Skrell dialects, Galactic Common is the most commonly spoken language in the Sector, and incorporates influences from nearly every known sapient species." diff --git a/code/modules/mob/living/carbon/human/appearance.dm b/code/modules/mob/living/carbon/human/appearance.dm index fd2e574c455..8c8051b6f5f 100644 --- a/code/modules/mob/living/carbon/human/appearance.dm +++ b/code/modules/mob/living/carbon/human/appearance.dm @@ -121,6 +121,7 @@ m_styles["tail"] = "None" update_tail_layer() update_wing_layer() + update_spines_layer() return TRUE /mob/living/carbon/human/proc/change_alt_head(alternate_head) diff --git a/code/modules/mob/living/carbon/human/body_accessories.dm b/code/modules/mob/living/carbon/human/body_accessories.dm index 66837d994f9..a4b7e5fe7ac 100644 --- a/code/modules/mob/living/carbon/human/body_accessories.dm +++ b/code/modules/mob/living/carbon/human/body_accessories.dm @@ -274,3 +274,31 @@ GLOBAL_LIST_EMPTY(body_accessory_by_species) /datum/body_accessory/wing/bluespace name = "Bluespace Wings" icon_state = "bluespace" + +// Skulk spines +/datum/body_accessory/spines + icon = 'icons/mob/sprite_accessories/skulk/skulk_spines.dmi' + animated_icon = null + name = "Report this bug on github" + icon_state = "hunter1" + allowed_species = list("Skkulakin") + has_behind = TRUE + +/datum/body_accessory/spines/hunter + name = "Hunter" + +/datum/body_accessory/spines/cosmic + name = "Cosmic" + icon_state = "cosmic1" + +/datum/body_accessory/spines/illusive + name = "Illusive" + icon_state = "illusive1" + +/datum/body_accessory/spines/venom + name = "Venom" + icon_state = "venom1" + +/datum/body_accessory/spines/hunger1 + name = "Hunger" + icon_state = "hunger1" diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index f8d28fbf23e..4b3e790f906 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -94,6 +94,8 @@ var/tail /// Same as tail but wing var/wing + /// Same as wing but with back spines + var/spines var/tail_wagging = FALSE diff --git a/code/modules/mob/living/carbon/human/human_emote.dm b/code/modules/mob/living/carbon/human/human_emote.dm index d4c62041068..e799fab21f2 100644 --- a/code/modules/mob/living/carbon/human/human_emote.dm +++ b/code/modules/mob/living/carbon/human/human_emote.dm @@ -667,6 +667,16 @@ sound = 'sound/effects/mob_effects/flutter.ogg' species_type_whitelist_typecache = list(/datum/species/moth) +/datum/emote/living/carbon/human/chitter + key = "chitter" + key_third_person = "chitters" + message = "chitters." + message_param = "chitters at %t." + emote_type = EMOTE_AUDIBLE + sound = "sound/effects/chitter.ogg" + species_type_whitelist_typecache = list(/datum/species/skulk) + muzzled_noises = list("frustrated") + /datum/emote/living/carbon/human/quill key = "quill" key_third_person = "quills" diff --git a/code/modules/mob/living/carbon/human/human_mob.dm b/code/modules/mob/living/carbon/human/human_mob.dm index 7f4a293ae41..f9447d2212a 100644 --- a/code/modules/mob/living/carbon/human/human_mob.dm +++ b/code/modules/mob/living/carbon/human/human_mob.dm @@ -242,6 +242,9 @@ if(!body_accessory) change_body_accessory("Plain Wings") +/mob/living/carbon/human/skulk/Initialize(mapload) + . = ..(mapload, /datum/species/skulk) + /mob/living/carbon/human/get_status_tab_items() var/list/status_tab_data = ..() . = status_tab_data @@ -863,8 +866,9 @@ var/obj/item/clothing/head/HFP = head //if yes gets the flash protection value from that item number += HFP.flash_protect if(istype(glasses, /obj/item/clothing/glasses)) //glasses - var/obj/item/clothing/glasses/GFP = glasses - number += GFP.flash_protect + if(!is_species(src, /datum/species/skulk)) // makes sure skkulakin properly suffer + var/obj/item/clothing/glasses/GFP = glasses + number += GFP.flash_protect if(istype(wear_mask, /obj/item/clothing/mask)) //mask var/obj/item/clothing/mask/MFP = wear_mask number += MFP.flash_protect @@ -1216,6 +1220,8 @@ wing = dna.species.wing + spines = dna.species.spines + maxHealth = dna.species.total_health if(dna.species.language) diff --git a/code/modules/mob/living/carbon/human/human_update_icons.dm b/code/modules/mob/living/carbon/human/human_update_icons.dm index 53727a71e06..06894bdb2cc 100644 --- a/code/modules/mob/living/carbon/human/human_update_icons.dm +++ b/code/modules/mob/living/carbon/human/human_update_icons.dm @@ -104,10 +104,9 @@ Please contact me on #coderbus IRC. ~Carn x */ /mob/living/carbon/human/proc/apply_overlay(cache_index) - . = overlays_standing[cache_index] - SEND_SIGNAL(src, COMSIG_CARBON_APPLY_OVERLAY, cache_index, .) - if(.) - add_overlay(.) + SEND_SIGNAL(src, COMSIG_CARBON_APPLY_OVERLAY, cache_index) + if(overlays_standing[cache_index]) + add_overlay(overlays_standing[cache_index]) /mob/living/carbon/human/proc/remove_overlay(cache_index) var/I = overlays_standing[cache_index] @@ -275,6 +274,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //tail update_tail_layer() update_wing_layer() + update_spines_layer() update_int_organs() //head accessory update_head_accessory() @@ -421,7 +421,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) return var/species_name = "" - if(dna.species.name in list("Drask", "Grey", "Vox", "Kidan")) + if(dna.species.name in list("Drask", "Grey", "Vox", "Kidan", "Skkulakin")) species_name = "_[lowertext(dna.species.sprite_sheet_name)]" var/icon/hands_mask = icon('icons/mob/body_accessory.dmi', "accessory_none_s") //Needs a blank icon, not actually related to markings at all @@ -562,6 +562,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) force_update_limbs() update_tail_layer() update_wing_layer() + update_spines_layer() update_halo_layer() update_eyes_overlay_layer() overlays.Cut() // Force all overlays to regenerate @@ -887,6 +888,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) apply_overlay(SUIT_LAYER) update_tail_layer() update_wing_layer() + update_spines_layer() update_collar() /mob/living/carbon/human/update_inv_pockets() @@ -1146,12 +1148,11 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) if(!istype(body_accessory, /datum/body_accessory/wing)) if(dna.species.optional_body_accessory) return - else - body_accessory = GLOB.body_accessory_by_name[dna.species.default_bodyacc] - + if(istype(body_accessory, /datum/body_accessory/spines)) + return // fuck right off thanks + body_accessory = GLOB.body_accessory_by_name[dna.species.default_bodyacc] if(!body_accessory.try_restrictions(src)) return - var/icon/wings_icon = new /icon(body_accessory.icon, body_accessory.icon_state) if(HAS_TRAIT(src, TRAIT_I_WANT_BRAINS)) wings_icon.ColorTone(COLORTONE_DEAD_EXT_ORGAN) @@ -1174,6 +1175,41 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) apply_overlay(WING_UNDERLIMBS_LAYER) apply_overlay(WING_LAYER) +/mob/living/carbon/human/proc/update_spines_layer() + remove_overlay(SPINES_UNDERLIMBS_LAYER) + remove_overlay(SPINES_LAYER) + if(!istype(body_accessory, /datum/body_accessory/spines)) + if(dna.species.optional_body_accessory) + return + if(istype(body_accessory, /datum/body_accessory/wing)) + return // See above + body_accessory = GLOB.body_accessory_by_name[dna.species.default_bodyacc] + if(!body_accessory.try_restrictions(src)) + return + + var/icon/spines_icon = new /icon(body_accessory.icon, spines) + if(HAS_TRAIT(src, TRAIT_I_WANT_BRAINS)) + spines_icon.ColorTone(COLORTONE_DEAD_EXT_ORGAN) + spines_icon.SetIntensity(0.7) + var/mutable_appearance/spines_ma = mutable_appearance(spines_icon, layer = -SPINES_LAYER) + spines_ma.pixel_x = body_accessory.pixel_x_offset + spines_ma.pixel_y = body_accessory.pixel_y_offset + overlays_standing[SPINES_LAYER] = spines_ma + + if(body_accessory.has_behind) + var/icon/under_spines_icon = new /icon(body_accessory.icon, "[spines]_BEHIND") + if(HAS_TRAIT(src, TRAIT_I_WANT_BRAINS)) + under_spines_icon.ColorTone(COLORTONE_DEAD_EXT_ORGAN) + under_spines_icon.SetIntensity(0.7) + var/mutable_appearance/under_spines = mutable_appearance(under_spines_icon, layer = -SPINES_UNDERLIMBS_LAYER) + under_spines.pixel_x = body_accessory.pixel_x_offset + under_spines.pixel_y = body_accessory.pixel_y_offset + overlays_standing[SPINES_UNDERLIMBS_LAYER] = under_spines + + apply_overlay(SPINES_UNDERLIMBS_LAYER) + apply_overlay(SPINES_LAYER) + +// Warning to all that come here: This proc is also used to properly render nian wings and skulk spines. Also it sucks. Have fun! /mob/living/carbon/human/proc/update_tail_layer() // If the tail is currently wagging, don't stop wagging. if(tail_wagging) @@ -1198,7 +1234,11 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) if(body_accessory) if(body_accessory.try_restrictions(src)) - var/icon/accessory_s = new/icon("icon" = body_accessory.icon, "icon_state" = body_accessory.icon_state) + var/icon/accessory_s + if(istype(body_accessory, /datum/body_accessory/spines)) + accessory_s = new/icon("icon" = body_accessory.icon, "icon_state" = spines) + else + accessory_s = new/icon("icon" = body_accessory.icon, "icon_state" = body_accessory.icon_state) if(HAS_TRAIT(src, TRAIT_I_WANT_BRAINS)) accessory_s.ColorTone(COLORTONE_DEAD_EXT_ORGAN) accessory_s.SetIntensity(0.7) @@ -1382,8 +1422,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) /mob/living/carbon/human/handle_transform_change() ..() - update_tail_layer() - update_wing_layer() + update_body() //Adds a collar overlay above the helmet layer if the suit has one // Suit needs an identically named sprite in icons/mob/clothing/collar.dmi diff --git a/code/modules/mob/living/carbon/human/species/_species.dm b/code/modules/mob/living/carbon/human/species/_species.dm index 6770cd1061a..79d49faef87 100644 --- a/code/modules/mob/living/carbon/human/species/_species.dm +++ b/code/modules/mob/living/carbon/human/species/_species.dm @@ -29,6 +29,8 @@ var/tail /// like tail but wings var/wing + /// like wings but spines + var/spines var/datum/unarmed_attack/unarmed //For empty hand harm-intent attack var/unarmed_type = /datum/unarmed_attack diff --git a/code/modules/mob/living/carbon/human/species/skulk.dm b/code/modules/mob/living/carbon/human/species/skulk.dm new file mode 100644 index 00000000000..7b1f322fc43 --- /dev/null +++ b/code/modules/mob/living/carbon/human/species/skulk.dm @@ -0,0 +1,147 @@ +/datum/species/skulk + name = "Skkulakin" + name_plural = "Skkulakin" + max_age = 70 + icobase = 'icons/mob/human_races/skulk/r_skulkbrown.dmi' + language = "Skkula-Runespeak" + unarmed_type = /datum/unarmed_attack/claws + + blurb = "The Skkulakin are a species of psionically-attuned furred arthropods hailing from the Western Orion Spur. \ + Originating from the planet Votum-Accorium, an arctic world ruled by the brutal theocratic government known as the Silver Collective.

\ + Despite owning a large amount of territory in the western arm of the sector, the plasma supply their empire relies on is being stretched thin. \ + This has forced the once-proud species to desperately branch out and seek a solution to their critical shortage." + + cold_level_1 = 240 + cold_level_2 = 180 + cold_level_3 = 100 + + heat_level_1 = 340 + heat_level_2 = 380 + heat_level_3 = 440 + + brain_mod = 0.8 + + species_traits = list() + inherent_traits = list(TRAIT_BRITTLE_BONES) + inherent_biotypes = MOB_ORGANIC | MOB_HUMANOID | MOB_BUG + clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS + bodyflags = HAS_BODY_MARKINGS | HAS_BACK_SPINES | HAS_ICON_SKIN_TONE | SHAVED | HAS_BODY_ACCESSORY + dietflags = DIET_OMNI + flesh_color = "#e3e2dd" + + default_hair = "Scribe" + default_bodyacc = "Illusive" + spines = "Illusive1" + + eyes = "skulk_eyes_s" + butt_sprite = "nian" + + optional_body_accessory = FALSE + + reagent_tag = PROCESS_ORG + + icon_skin_tones = alist( + 1 = "Blackgate", + 2 = "Talwyrm", + 3 = "Valcore", + 4 = "Ossya", + 5 = "Highfield", + 6 = "Votum-Accorium" + ) + + has_organ = list( + "heart" = /obj/item/organ/internal/heart/skulk, + "lungs" = /obj/item/organ/internal/lungs/skulk, + "liver" = /obj/item/organ/internal/liver/skulk, + "kidneys" = /obj/item/organ/internal/kidneys/skulk, + "brain" = /obj/item/organ/internal/brain/skulk, + "eyes" = /obj/item/organ/internal/eyes/skulk + ) + + suicide_messages = list( + "is attempting to blow up their mind with their mind!", + "is jamming their claws into their eye sockets!", + "is tearing open their arm with their fangs!", + "is twisting their own neck!", + "is holding their breath!") + +/datum/species/skulk/on_species_gain(mob/living/carbon/human/H) + ..() + updatespeciescolor(H) + H.update_icons() + var/datum/action/innate/spin_silk/spin_silk = new() + spin_silk.Grant(H) + +/datum/species/skulk/on_species_loss(mob/living/carbon/human/H) + ..() + for(var/datum/action/innate/spin_silk/spin_silk in H.actions) + spin_silk.Remove(H) + +/datum/species/skulk/updatespeciescolor(mob/living/carbon/human/H, owner_sensitive = 1) // Handling species-specific skin-tones for the Skulk race. + if(H.dna.species.bodyflags & HAS_ICON_SKIN_TONE) + var/new_icobase = 'icons/mob/human_races/skulk/r_skulkblack.dmi' // Default Blackgate Skkulakin. + var/current_spine_type = null + if(H.body_accessory) + current_spine_type = lowertext("[H.body_accessory.name]") + + var/chosen_spine_color = 1 + switch(H.s_tone) + if(1) // Blackgate Skkulakin. + new_icobase = 'icons/mob/human_races/skulk/r_skulkblack.dmi' + chosen_spine_color = 1 + if(2) // Talwyrm Skkulakin. + new_icobase = 'icons/mob/human_races/skulk/r_skulkbrown.dmi' + chosen_spine_color = 2 + if(3) // Valcore Skkulakin. + new_icobase = 'icons/mob/human_races/skulk/r_skulkred.dmi' + chosen_spine_color = 3 + if(4) // Ossya Skkulakin. + new_icobase = 'icons/mob/human_races/skulk/r_skulkblue.dmi' + chosen_spine_color = 4 + if(5) // Highfield Skkulakin. + new_icobase = 'icons/mob/human_races/skulk/r_skulkgreen.dmi' + chosen_spine_color = 5 + if(6) // Votum-Accorium Skkulakin. + new_icobase = 'icons/mob/human_races/skulk/r_skulkwhite.dmi' + chosen_spine_color = 6 + if(H.body_accessory && current_spine_type) + H.spines = "[current_spine_type][chosen_spine_color]" + + H.change_icobase(new_icobase, owner_sensitive) + +/datum/action/innate/spin_silk + name = "Spin Silk" + desc = "Use your spinnerets to create a spool of silk that can be used for crafting." + check_flags = AB_CHECK_HANDS_BLOCKED | AB_CHECK_STUNNED | AB_CHECK_RESTRAINED | AB_CHECK_CONSCIOUS + button_icon = 'icons/obj/stacks/organic.dmi' + button_icon_state = "sheet-silk" + var/cooldown = 0 + var/cooldown_duration = 10 SECONDS + +#define SILK_NUTRITION_AMOUNT 90 + +/datum/action/innate/spin_silk/Activate() + var/mob/living/carbon/human/user = owner + if(world.time <= cooldown) + to_chat(user, SPAN_WARNING("You are still recovering from spinning silk. Wait [round((cooldown - world.time) / 10)] seconds and try again.")) + return + var/mob/living/carbon/human/skulk/H = owner + if(H.nutrition < SILK_NUTRITION_AMOUNT) + to_chat(user, SPAN_WARNING("You are too hungry to spin silk right now.")) + return + var/obj/item/stack/sheet/silk/silk + if(user.get_active_hand() && user.get_inactive_hand()) + to_chat(user, SPAN_WARNING("You don't have any free hands!")) + return + H.visible_message(SPAN_WARNING("[H] begins spinning a small amount of silk..."), SPAN_WARNING("You begin spinning a small amount of silk... (This will take [5] seconds, and you must hold still.)")) + if(!do_after_once(H, 5 SECONDS, TRUE, H, attempt_cancel_message = "You stop spinning silk.")) + if(H.incapacitated()) + to_chat(user, SPAN_WARNING("You cannot spin silk in your current state!")) + return + silk = new(get_turf(H), 1) + user.put_in_hands(silk) + cooldown = world.time + cooldown_duration + H.adjust_nutrition(-SILK_NUTRITION_AMOUNT) + to_chat(user, SPAN_WARNING("You spin a small amount of silk.")) + +#undef SILK_NUTRITION_AMOUNT diff --git a/code/modules/mob/living/silicon/ai/ai_mob.dm b/code/modules/mob/living/silicon/ai/ai_mob.dm index 2431e7c52d0..62888dd85d2 100644 --- a/code/modules/mob/living/silicon/ai/ai_mob.dm +++ b/code/modules/mob/living/silicon/ai/ai_mob.dm @@ -253,6 +253,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list( add_language("Bubblish", 1) add_language("Clownish", 1) add_language("Tkachi", 1) + add_language("Skkula-Runespeak", 1) if(!safety)//Only used by AIize() to successfully spawn an AI. if(!B)//If there is no player/brain inside. diff --git a/code/modules/mob/living/silicon/pai/software/pai_toggles.dm b/code/modules/mob/living/silicon/pai/software/pai_toggles.dm index c2ae83be434..c632fb0b2c9 100644 --- a/code/modules/mob/living/silicon/pai/software/pai_toggles.dm +++ b/code/modules/mob/living/silicon/pai/software/pai_toggles.dm @@ -78,6 +78,7 @@ user.add_language("Clownish") user.add_language("Cygni Standard") user.add_language("Tkachi") + user.add_language("Skkula-Runespeak") else user.remove_language("Sinta'unathi") user.remove_language("Siik'tajr") @@ -91,6 +92,7 @@ user.remove_language("Clownish") user.remove_language("Cygni Standard") user.remove_language("Tkachi") + user.remove_language("Skkula-Runespeak") /datum/pai_software/translator/is_active(mob/living/silicon/pai/user) return user.translator_on diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index a10a4a4b7a5..2b2788fd239 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -293,6 +293,7 @@ R.add_language("Orluum", FALSE) R.add_language("Clownish", FALSE) R.add_language("Tkachi", FALSE) + R.add_language("Skkula-Runespeak", FALSE) ///Adds armor to a cyborg. Normaly resets it to 0 across the board, unless the module has an armor defined. /obj/item/robot_module/proc/add_armor(mob/living/silicon/robot/R) @@ -670,6 +671,7 @@ R.add_language("Clownish",1) R.add_language("Cygni Standard", 1) R.add_language("Tkachi", 1) + R.add_language("Skkula-Runespeak", 1) // Mining /obj/item/robot_module/miner diff --git a/code/modules/mob/new_player/sprite_accessories/skulk/skulk_body_markings.dm b/code/modules/mob/new_player/sprite_accessories/skulk/skulk_body_markings.dm new file mode 100644 index 00000000000..7ccf5c350d0 --- /dev/null +++ b/code/modules/mob/new_player/sprite_accessories/skulk/skulk_body_markings.dm @@ -0,0 +1,23 @@ +/datum/sprite_accessory/body_markings/tattoo/skulk + icon = 'icons/mob/sprite_accessories/skulk/skulk_body_markings.dmi' + species_allowed = list("Skkulakin") + +/datum/sprite_accessory/body_markings/tattoo/skulk/danger_skulk + name = "Danger" + icon_state = "danger" + +/datum/sprite_accessory/body_markings/tattoo/skulk/royal_skulk + name = "Royal" + icon_state = "royal" + +/datum/sprite_accessory/body_markings/tattoo/skulk/grunt_skulk + name = "Grunt" + icon_state = "grunt" + +/datum/sprite_accessory/body_markings/tattoo/skulk/mantis_skulk + name = "Mantis" + icon_state = "mantis" + +/datum/sprite_accessory/body_markings/tattoo/skulk/striped_skulk + name = "Striped" + icon_state = "striped" diff --git a/code/modules/mob/new_player/sprite_accessories/skulk/skulk_hair.dm b/code/modules/mob/new_player/sprite_accessories/skulk/skulk_hair.dm new file mode 100644 index 00000000000..6de8313d1b2 --- /dev/null +++ b/code/modules/mob/new_player/sprite_accessories/skulk/skulk_hair.dm @@ -0,0 +1,76 @@ +/datum/sprite_accessory/hair/skulk + icon = 'icons/mob/sprite_accessories/skulk/skulk_hair.dmi' + species_allowed = list("Skkulakin") + glasses_over = 1 + +/datum/sprite_accessory/hair/skulk/artificer + name = "Artificer" + icon_state = "artificer" + +/datum/sprite_accessory/hair/skulk/priest + name = "Priest" + icon_state = "priest" + +/datum/sprite_accessory/hair/skulk/cleric + name = "Cleric" + icon_state = "cleric" + +/datum/sprite_accessory/hair/skulk/brewmaster + name = "Brewmaster" + icon_state = "brewmaster" + +/datum/sprite_accessory/hair/skulk/alchemist + name = "Alchemist" + icon_state = "alchemist" + +/datum/sprite_accessory/hair/skulk/agrolyte + name = "Agrolyte" + icon_state = "agrolyte" + +/datum/sprite_accessory/hair/skulk/monk + name = "Monk" + icon_state = "monk" + +/datum/sprite_accessory/hair/skulk/archivist + name = "Archivist" + icon_state = "archivist" + +/datum/sprite_accessory/hair/skulk/scribe + name = "Scribe" + icon_state = "scribe" + +/datum/sprite_accessory/hair/skulk/seer + name = "Seer" + icon_state = "seer" + +/datum/sprite_accessory/hair/skulk/warrior + name = "Warrior" + icon_state = "warrior" + +/datum/sprite_accessory/hair/skulk/lowinquis + name = "Low-Inquisitor" + icon_state = "lowinquis" + +/datum/sprite_accessory/hair/skulk/highinquis + name = "High-Inquisitor" + icon_state = "highinquis" + +/datum/sprite_accessory/hair/skulk/supremeinquis + name = "Supreme-Inquisitor" + icon_state = "supremeinquis" + +/datum/sprite_accessory/hair/skulk/acolyte + name = "Acolyte" + icon_state = "acolyte" + +/datum/sprite_accessory/hair/skulk/highacolyte + name = "High-Acolyte" + icon_state = "highacolyte" + +/datum/sprite_accessory/hair/skulk/lordforeman + name = "Lord-Foreman" + icon_state = "lordforeman" + +/datum/sprite_accessory/hair/skulk/silverinquis + name = "Silver-Inquisitor" + icon_state = "silverinquis" diff --git a/code/modules/mob/new_player/sprite_accessories/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories/sprite_accessories.dm index a9c8194adc8..97135a1e8c9 100644 --- a/code/modules/mob/new_player/sprite_accessories/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories/sprite_accessories.dm @@ -76,7 +76,7 @@ icon = 'icons/mob/human_face.dmi' // Keep bald hair here, as for some reason, putting it elsewhere lead to it being colourable - Also it make sense as it is shared by everyone. name = "Bald" icon_state = "bald" - species_allowed = list("Human", "Unathi", "Vox", "Diona", "Kidan", "Grey", "Plasmaman", "Skeleton", "Vulpkanin", "Tajaran", "Nian") + species_allowed = list("Human", "Unathi", "Vox", "Diona", "Kidan", "Grey", "Plasmaman", "Skeleton", "Vulpkanin", "Tajaran", "Nian", "Skulk") glasses_over = 1 /datum/sprite_accessory/facial_hair @@ -96,7 +96,7 @@ /datum/sprite_accessory/head_accessory/none name = "None" - species_allowed = list("Human", "Unathi", "Diona", "Grey", "Kidan", "Machine", "Tajaran", "Vulpkanin", "Skrell", "Slime People", "Skeleton", "Vox") + species_allowed = list("Human", "Unathi", "Diona", "Grey", "Kidan", "Machine", "Tajaran", "Vulpkanin", "Skrell", "Slime People", "Skeleton", "Vox", "Skulk") /* BODY MARKINGS */ @@ -171,17 +171,18 @@ /////////////////////////// /datum/sprite_accessory/underwear icon = 'icons/mob/clothing/underwear.dmi' - species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask", "Vox", "Nian") + species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask", "Vox", "Nian", "Skkulakin") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/underwear.dmi', "Grey" = 'icons/mob/clothing/species/grey/underwear.dmi', - "Kidan" = 'icons/mob/clothing/species/kidan/underwear.dmi' + "Kidan" = 'icons/mob/clothing/species/kidan/underwear.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/underwear.dmi' ) /datum/sprite_accessory/underwear/nude name = "Nude" icon_state = null - species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask", "Vox", "Nian") + species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask", "Vox", "Nian", "Skkulakin") /datum/sprite_accessory/underwear/male body_type = MALE @@ -301,17 +302,18 @@ //////////////////////////// /datum/sprite_accessory/undershirt icon = 'icons/mob/clothing/underwear.dmi' - species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask", "Vox", "Nian") + species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask", "Vox", "Nian", "Skkulakin") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/underwear.dmi', "Grey" = 'icons/mob/clothing/species/grey/underwear.dmi', - "Kidan" = 'icons/mob/clothing/species/kidan/underwear.dmi' + "Kidan" = 'icons/mob/clothing/species/kidan/underwear.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/underwear.dmi' ) /datum/sprite_accessory/undershirt/nude name = "Nude" icon_state = null - species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask", "Vox", "Nian") + species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask", "Vox", "Nian", "Skkulakin") //plain color shirts /datum/sprite_accessory/undershirt/shirt_white @@ -583,18 +585,18 @@ /////////////////////// /datum/sprite_accessory/socks icon = 'icons/mob/clothing/underwear.dmi' - species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask", "Vox", "Nian") + species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask", "Vox", "Nian", "Skkulakin") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/underwear.dmi', "Kidan" = 'icons/mob/clothing/species/kidan/underwear.dmi', - "Nian" = 'icons/mob/clothing/species/nian/underwear.dmi' - + "Nian" = 'icons/mob/clothing/species/nian/underwear.dmi', + "Skkulakin" = 'icons/mob/clothing/species/skkulakin/underwear.dmi' ) /datum/sprite_accessory/socks/nude name = "Nude" icon_state = null - species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask", "Vox", "Nian") + species_allowed = list("Human", "Unathi", "Diona", "Vulpkanin", "Tajaran", "Kidan", "Grey", "Plasmaman", "Machine", "Skrell", "Slime People", "Skeleton", "Drask", "Vox", "Nian", "Skkulakin") /datum/sprite_accessory/socks/white_norm name = "Normal White" diff --git a/code/modules/response_team/ert.dm b/code/modules/response_team/ert.dm index e3820c79259..789568c97f3 100644 --- a/code/modules/response_team/ert.dm +++ b/code/modules/response_team/ert.dm @@ -75,7 +75,7 @@ GLOBAL_LIST_EMPTY(ert_request_messages) A.close() var/list/ert_species_prefs = list() for(var/mob/M in GLOB.response_team_members) - ert_species_prefs.Add(input_async(M, "Please select a species (10 seconds):", list("Human", "Tajaran", "Skrell", "Unathi", "Diona", "Vulpkanin", "Nian", "Drask", "Kidan", "Grey", "Random"))) + ert_species_prefs.Add(input_async(M, "Please select a species (10 seconds):", list("Human", "Tajaran", "Skrell", "Unathi", "Diona", "Vulpkanin", "Nian", "Drask", "Kidan", "Grey", "Skkulakin", "Random"))) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(get_ert_role_prefs), GLOB.response_team_members, ert_gender_prefs, ert_species_prefs), 10 SECONDS) /proc/get_ert_role_prefs(list/response_team_members, list/ert_gender_prefs, list/ert_species_prefs) // Why the FUCK is this variable the EXACT SAME as the global one @@ -143,7 +143,7 @@ GLOBAL_LIST_EMPTY(ert_request_messages) if(!new_species) new_species = "Human" if(new_species == "Random") - new_species = pick("Human", "Tajaran", "Skrell", "Unathi", "Diona", "Vulpkanin", "Nian", "Drask", "Kidan", "Grey") + new_species = pick("Human", "Tajaran", "Skrell", "Unathi", "Diona", "Vulpkanin", "Nian", "Drask", "Kidan", "Grey", "Skkulakin") var/datum/species/S = GLOB.all_species[new_species] var/species = S.type M.set_species(species, TRUE) @@ -154,7 +154,7 @@ GLOBAL_LIST_EMPTY(ert_request_messages) var/eye_c = pick("#000000", "#8B4513", "#1E90FF", "#8c00ff", "#a80c0c", "#2fdb63") // Black, brown, blue, purple, red, green switch(new_species) //Diona not included as they don't use the hair colours, kidan use accessory, drask are skin tone Grey not included as they are BALD - if("Human", "Tajaran", "Vulpkanin", "Nian") + if("Human", "Tajaran", "Vulpkanin", "Nian","Skkulakin") var/hair_c_htvn = pick("#8B4513", "#000000", "#FF4500", "#FFD700", "#d4d1bf") // Brown, black, red, blonde, grey head_organ.facial_colour = hair_c_htvn head_organ.sec_facial_colour = hair_c_htvn diff --git a/code/modules/supply/supply_packs/pack_security.dm b/code/modules/supply/supply_packs/pack_security.dm index c80c6a7c3ac..8b256903b23 100644 --- a/code/modules/supply/supply_packs/pack_security.dm +++ b/code/modules/supply/supply_packs/pack_security.dm @@ -422,6 +422,18 @@ cost = 200 containername = "security clothing crate" +/// Has a bunch of neat equipment for Skulk Officers, do note only Skkulakin can use these items +/datum/supply_packs/security/lowinquisitor + name = "Low-Inquisitor Clothing Crate" + contains = list(/obj/item/clothing/suit/hooded/lowinquis, + /obj/item/clothing/suit/hooded/lowinquis, + /obj/item/clothing/suit/hooded/lowinquis, + /obj/item/clothing/mask/lowinquis, + /obj/item/clothing/mask/lowinquis, + /obj/item/clothing/mask/lowinquis) + cost = 300 + containername = "low-inquisitorial clothing crate" + /// Starter pack for an officer. Contains everything in a locker but backpack (officer already start with one). Convenient way to equip new officer on highpop. /datum/supply_packs/security/officerpack name = "Officer Starter Pack" diff --git a/code/modules/surgery/organs/organ_external.dm b/code/modules/surgery/organs/organ_external.dm index b31876a9e1e..814aef0cfd6 100644 --- a/code/modules/surgery/organs/organ_external.dm +++ b/code/modules/surgery/organs/organ_external.dm @@ -539,11 +539,13 @@ Note that amputating the affected organ does in fact remove the infection from t //Updates brute_damn and burn_damn from wound damages. Updates BLEEDING status. /obj/item/organ/external/proc/check_fracture(damage_inflicted) var/frail_multiplier = 1 + var/brittle_bones_multiplier = 1 if(owner) frail_multiplier = HAS_TRAIT(owner, TRAIT_FRAIL) ? 2 : 1 + brittle_bones_multiplier = HAS_TRAIT(owner, TRAIT_BRITTLE_BONES) ? 1.2 : 1 var/adjusted_broken_damage = min_broken_damage / frail_multiplier if(GLOB.configuration.general.breakable_bones && brute_dam > adjusted_broken_damage && !is_robotic()) - if(prob(damage_inflicted * frail_multiplier)) + if(prob(damage_inflicted * (frail_multiplier + brittle_bones_multiplier))) fracture() /obj/item/organ/external/proc/check_for_internal_bleeding(damage) diff --git a/code/modules/surgery/organs/subtypes/skulk_organs.dm b/code/modules/surgery/organs/subtypes/skulk_organs.dm new file mode 100644 index 00000000000..e714f70cc00 --- /dev/null +++ b/code/modules/surgery/organs/subtypes/skulk_organs.dm @@ -0,0 +1,26 @@ +/obj/item/organ/internal/eyes/skulk + name = "skkulakin eyeballs" + desc = "A strange set of beady-looking eyes." + icon = 'icons/obj/species_organs/skulk.dmi' + +/obj/item/organ/internal/liver/skulk + name = "skkulakin liver" + desc = "A rather disgusting looking liver of some bug thing." + icon = 'icons/obj/species_organs/skulk.dmi' + +/obj/item/organ/internal/heart/skulk + name = "skkulakin heart" + icon = 'icons/obj/species_organs/skulk.dmi' + +/obj/item/organ/internal/brain/skulk + icon = 'icons/obj/species_organs/skulk.dmi' + desc = "It quietly hums with psionic resonance." + mmi_icon = 'icons/obj/species_organs/skulk.dmi' + +/obj/item/organ/internal/lungs/skulk + name = "skkulakin lungs" + icon = 'icons/obj/species_organs/skulk.dmi' + +/obj/item/organ/internal/kidneys/skulk + name = "skkulakin kidneys" + icon = 'icons/obj/species_organs/skulk.dmi' diff --git a/icons/mob/clothing/masking_helpers.dmi b/icons/mob/clothing/masking_helpers.dmi index ff8216e116f..0a8a3bf3563 100644 Binary files a/icons/mob/clothing/masking_helpers.dmi and b/icons/mob/clothing/masking_helpers.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/back.dmi b/icons/mob/clothing/species/skkulakin/back.dmi new file mode 100644 index 00000000000..eb6bd5bc4ee Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/back.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/belt.dmi b/icons/mob/clothing/species/skkulakin/belt.dmi new file mode 100644 index 00000000000..9b7b249f1ec Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/belt.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/collar.dmi b/icons/mob/clothing/species/skkulakin/collar.dmi new file mode 100644 index 00000000000..3bea634f90a Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/collar.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/ears.dmi b/icons/mob/clothing/species/skkulakin/ears.dmi new file mode 100644 index 00000000000..e5e72f03d03 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/ears.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/feet.dmi b/icons/mob/clothing/species/skkulakin/feet.dmi new file mode 100644 index 00000000000..f4e508421c8 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/feet.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/gloves.dmi b/icons/mob/clothing/species/skkulakin/gloves.dmi new file mode 100644 index 00000000000..af691ab7a7e Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/gloves.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/head.dmi b/icons/mob/clothing/species/skkulakin/head.dmi new file mode 100644 index 00000000000..0342016f86c Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/head.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/held.dmi b/icons/mob/clothing/species/skkulakin/held.dmi new file mode 100644 index 00000000000..d941ce50109 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/held.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/mask.dmi b/icons/mob/clothing/species/skkulakin/mask.dmi new file mode 100644 index 00000000000..129a9e4b309 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/mask.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/neck.dmi b/icons/mob/clothing/species/skkulakin/neck.dmi new file mode 100644 index 00000000000..0f69b98d914 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/neck.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/shoes.dmi b/icons/mob/clothing/species/skkulakin/shoes.dmi new file mode 100644 index 00000000000..2a76db03982 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/shoes.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/suit.dmi b/icons/mob/clothing/species/skkulakin/suit.dmi new file mode 100644 index 00000000000..c2af8a513de Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/suit.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/suits/bio.dmi b/icons/mob/clothing/species/skkulakin/suits/bio.dmi new file mode 100644 index 00000000000..d706a64ae08 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/suits/bio.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/suits/coat.dmi b/icons/mob/clothing/species/skkulakin/suits/coat.dmi new file mode 100644 index 00000000000..7b2fedd23d3 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/suits/coat.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/suits/labcoat.dmi b/icons/mob/clothing/species/skkulakin/suits/labcoat.dmi new file mode 100644 index 00000000000..8a45098c751 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/suits/labcoat.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/suits/utility.dmi b/icons/mob/clothing/species/skkulakin/suits/utility.dmi new file mode 100644 index 00000000000..bc14f9ed453 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/suits/utility.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/under/captain.dmi b/icons/mob/clothing/species/skkulakin/under/captain.dmi new file mode 100644 index 00000000000..3b413293847 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/under/captain.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/under/cargo.dmi b/icons/mob/clothing/species/skkulakin/under/cargo.dmi new file mode 100644 index 00000000000..db3fffacae5 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/under/cargo.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/under/centcom.dmi b/icons/mob/clothing/species/skkulakin/under/centcom.dmi new file mode 100644 index 00000000000..b85c3f59158 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/under/centcom.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/under/civilian.dmi b/icons/mob/clothing/species/skkulakin/under/civilian.dmi new file mode 100644 index 00000000000..52dd7b2b6c1 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/under/civilian.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/under/color.dmi b/icons/mob/clothing/species/skkulakin/under/color.dmi new file mode 100644 index 00000000000..82303ac4d40 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/under/color.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/under/costumes.dmi b/icons/mob/clothing/species/skkulakin/under/costumes.dmi new file mode 100644 index 00000000000..2ddbce28765 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/under/costumes.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/under/donator.dmi b/icons/mob/clothing/species/skkulakin/under/donator.dmi new file mode 100644 index 00000000000..5c4b144f371 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/under/donator.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/under/dress.dmi b/icons/mob/clothing/species/skkulakin/under/dress.dmi new file mode 100644 index 00000000000..ec99a63d040 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/under/dress.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/under/engineering.dmi b/icons/mob/clothing/species/skkulakin/under/engineering.dmi new file mode 100644 index 00000000000..2d5a1e7b6bd Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/under/engineering.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/under/medical.dmi b/icons/mob/clothing/species/skkulakin/under/medical.dmi new file mode 100644 index 00000000000..fe916829975 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/under/medical.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/under/misc.dmi b/icons/mob/clothing/species/skkulakin/under/misc.dmi new file mode 100644 index 00000000000..3af0f055571 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/under/misc.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/under/pants.dmi b/icons/mob/clothing/species/skkulakin/under/pants.dmi new file mode 100644 index 00000000000..2982ae38bf0 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/under/pants.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/under/procedure.dmi b/icons/mob/clothing/species/skkulakin/under/procedure.dmi new file mode 100644 index 00000000000..f14eee32974 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/under/procedure.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/under/rnd.dmi b/icons/mob/clothing/species/skkulakin/under/rnd.dmi new file mode 100644 index 00000000000..2eceabe568a Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/under/rnd.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/under/security.dmi b/icons/mob/clothing/species/skkulakin/under/security.dmi new file mode 100644 index 00000000000..264a8203904 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/under/security.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/under/suit.dmi b/icons/mob/clothing/species/skkulakin/under/suit.dmi new file mode 100644 index 00000000000..44ed7d6794e Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/under/suit.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/under/syndicate.dmi b/icons/mob/clothing/species/skkulakin/under/syndicate.dmi new file mode 100644 index 00000000000..03263f8a565 Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/under/syndicate.dmi differ diff --git a/icons/mob/clothing/species/skkulakin/underwear.dmi b/icons/mob/clothing/species/skkulakin/underwear.dmi new file mode 100644 index 00000000000..080a759f8db Binary files /dev/null and b/icons/mob/clothing/species/skkulakin/underwear.dmi differ diff --git a/icons/mob/clothing/species/vox/under/misc.dmi b/icons/mob/clothing/species/vox/under/misc.dmi index f5d080c5a2e..ca16f20b114 100644 Binary files a/icons/mob/clothing/species/vox/under/misc.dmi and b/icons/mob/clothing/species/vox/under/misc.dmi differ diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index 9b9dbc45a83..87009b16319 100644 Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ diff --git a/icons/mob/human_races/skulk/r_skulkblack.dmi b/icons/mob/human_races/skulk/r_skulkblack.dmi new file mode 100644 index 00000000000..a877d15f8eb Binary files /dev/null and b/icons/mob/human_races/skulk/r_skulkblack.dmi differ diff --git a/icons/mob/human_races/skulk/r_skulkblue.dmi b/icons/mob/human_races/skulk/r_skulkblue.dmi new file mode 100644 index 00000000000..19b4e4b5385 Binary files /dev/null and b/icons/mob/human_races/skulk/r_skulkblue.dmi differ diff --git a/icons/mob/human_races/skulk/r_skulkbrown.dmi b/icons/mob/human_races/skulk/r_skulkbrown.dmi new file mode 100644 index 00000000000..b410b063965 Binary files /dev/null and b/icons/mob/human_races/skulk/r_skulkbrown.dmi differ diff --git a/icons/mob/human_races/skulk/r_skulkgreen.dmi b/icons/mob/human_races/skulk/r_skulkgreen.dmi new file mode 100644 index 00000000000..b49a2a6e2a7 Binary files /dev/null and b/icons/mob/human_races/skulk/r_skulkgreen.dmi differ diff --git a/icons/mob/human_races/skulk/r_skulkred.dmi b/icons/mob/human_races/skulk/r_skulkred.dmi new file mode 100644 index 00000000000..97c60ac4483 Binary files /dev/null and b/icons/mob/human_races/skulk/r_skulkred.dmi differ diff --git a/icons/mob/human_races/skulk/r_skulkwhite.dmi b/icons/mob/human_races/skulk/r_skulkwhite.dmi new file mode 100644 index 00000000000..79bc5e7ef5d Binary files /dev/null and b/icons/mob/human_races/skulk/r_skulkwhite.dmi differ diff --git a/icons/mob/inhands/flags_lefthand.dmi b/icons/mob/inhands/flags_lefthand.dmi index 063b1c9798a..06174c826ff 100644 Binary files a/icons/mob/inhands/flags_lefthand.dmi and b/icons/mob/inhands/flags_lefthand.dmi differ diff --git a/icons/mob/inhands/flags_righthand.dmi b/icons/mob/inhands/flags_righthand.dmi index f1670942997..23511d29d7c 100644 Binary files a/icons/mob/inhands/flags_righthand.dmi and b/icons/mob/inhands/flags_righthand.dmi differ diff --git a/icons/mob/sprite_accessories/skulk/skulk_body_markings.dmi b/icons/mob/sprite_accessories/skulk/skulk_body_markings.dmi new file mode 100644 index 00000000000..ae843edb723 Binary files /dev/null and b/icons/mob/sprite_accessories/skulk/skulk_body_markings.dmi differ diff --git a/icons/mob/sprite_accessories/skulk/skulk_hair.dmi b/icons/mob/sprite_accessories/skulk/skulk_hair.dmi new file mode 100644 index 00000000000..55aa3371168 Binary files /dev/null and b/icons/mob/sprite_accessories/skulk/skulk_hair.dmi differ diff --git a/icons/mob/sprite_accessories/skulk/skulk_spines.dmi b/icons/mob/sprite_accessories/skulk/skulk_spines.dmi new file mode 100644 index 00000000000..0242067a1cc Binary files /dev/null and b/icons/mob/sprite_accessories/skulk/skulk_spines.dmi differ diff --git a/icons/obj/clothing/species/skkulakin/hats.dmi b/icons/obj/clothing/species/skkulakin/hats.dmi new file mode 100644 index 00000000000..a71224a9792 Binary files /dev/null and b/icons/obj/clothing/species/skkulakin/hats.dmi differ diff --git a/icons/obj/clothing/species/skkulakin/masks.dmi b/icons/obj/clothing/species/skkulakin/masks.dmi new file mode 100644 index 00000000000..1d0093f2cb8 Binary files /dev/null and b/icons/obj/clothing/species/skkulakin/masks.dmi differ diff --git a/icons/obj/clothing/species/skkulakin/suits.dmi b/icons/obj/clothing/species/skkulakin/suits.dmi new file mode 100644 index 00000000000..0a4d06d56c9 Binary files /dev/null and b/icons/obj/clothing/species/skkulakin/suits.dmi differ diff --git a/icons/obj/clothing/species/skkulakin/uniforms.dmi b/icons/obj/clothing/species/skkulakin/uniforms.dmi new file mode 100644 index 00000000000..3d7acbcf913 Binary files /dev/null and b/icons/obj/clothing/species/skkulakin/uniforms.dmi differ diff --git a/icons/obj/clothing/species/vox/uniforms.dmi b/icons/obj/clothing/species/vox/uniforms.dmi index 1c1b77d0089..4bf1b92308d 100644 Binary files a/icons/obj/clothing/species/vox/uniforms.dmi and b/icons/obj/clothing/species/vox/uniforms.dmi differ diff --git a/icons/obj/flag.dmi b/icons/obj/flag.dmi index ac37ee5bd37..f8921c8d9a5 100644 Binary files a/icons/obj/flag.dmi and b/icons/obj/flag.dmi differ diff --git a/icons/obj/species_organs/skulk.dmi b/icons/obj/species_organs/skulk.dmi new file mode 100644 index 00000000000..4afa2899936 Binary files /dev/null and b/icons/obj/species_organs/skulk.dmi differ diff --git a/icons/obj/stacks/organic.dmi b/icons/obj/stacks/organic.dmi index 47306c90914..dee9ec03226 100644 Binary files a/icons/obj/stacks/organic.dmi and b/icons/obj/stacks/organic.dmi differ diff --git a/interface/skin.dmf b/interface/skin.dmf index e6b71a6cce2..15a4091d2dd 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -185,7 +185,7 @@ window "paramapwindow" is-default = true saved-params = "icon-size;zoom-mode" zoom-mode = "distort" - style = ".center { text-align: center; } .maptext { font-family: 'Small Fonts'; font-size: 7px; -dm-text-outline: 1px black; color: white; line-height: 1.1; } .small { font-size: 6px; } .big { font-size: 8px; } .reallybig { font-size: 8px; } .extremelybig { font-size: 8px; } .clown { color: #FF69Bf;} .tajaran {color: #803B56;} .skrell {color: #00CED1;} .solcom {color: #22228B;} .com_cygni {color: #7c4848;} .zombie\t{color: #7c4848;} .soghun {color: #228B22;} .vox {color: #AA00AA;} .diona {color: #804000; font-weight: bold;} .trinary {color: #727272;} .kidan {color: #664205;} .slime {color: #0077AA;} .moth{color: #869b29;} .drask {color: #a3d4eb;} .vulpkanin {color: #B97A57;} .abductor {color: #800080;} .his_grace { color: #15D512; } .hypnophrase { color: #0d0d0d; font-weight: bold; } .yell { font-weight: bold; }" + style = ".center { text-align: center; } .maptext { font-family: 'Small Fonts'; font-size: 7px; -dm-text-outline: 1px black; color: white; line-height: 1.1; } .small { font-size: 6px; } .big { font-size: 8px; } .reallybig { font-size: 8px; } .extremelybig { font-size: 8px; } .clown { color: #FF69Bf;} .tajaran {color: #803B56;} .skrell {color: #00CED1;} .solcom {color: #22228B;} .com_cygni {color: #7c4848;} .zombie\t{color: #7c4848;} .soghun {color: #228B22;} .vox {color: #AA00AA;} .diona {color: #804000; font-weight: bold;} .trinary {color: #727272;} .kidan {color: #664205;} .slime {color: #0077AA;} .moth{color: #869b29;} .skulk {color: #b178b1} .drask {color: #a3d4eb;} .vulpkanin {color: #B97A57;} .abductor {color: #800080;} .his_grace { color: #15D512; } .hypnophrase { color: #0d0d0d; font-weight: bold; } .yell { font-weight: bold; }" on-show = ".winset \"menu.statusbar.is-checked=true?paramapwindow.status_bar.is-visible=true:paramapwindow.status_bar.is-visible=false\"" elem "status_bar" type = LABEL diff --git a/paradise.dme b/paradise.dme index ee100f36ac9..b0cacd7be03 100644 --- a/paradise.dme +++ b/paradise.dme @@ -165,8 +165,8 @@ #include "code\__DEFINES\ai\ai_defines.dm" #include "code\__DEFINES\ai\blackboard_defines.dm" #include "code\__DEFINES\ai\changeling_giant_spider_ai_defines.dm" -#include "code\__DEFINES\ai\monkey_ai_defines.dm" #include "code\__DEFINES\ai\incursion_blackboard_defines.dm" +#include "code\__DEFINES\ai\monkey_ai_defines.dm" #include "code\__DEFINES\ai\swarmer_defines.dm" #include "code\__DEFINES\dcs\ai_signals.dm" #include "code\__DEFINES\dcs\area_signals.dm" @@ -2687,6 +2687,7 @@ #include "code\modules\mob\living\carbon\human\species\shadow.dm" #include "code\modules\mob\living\carbon\human\species\skeleton_species.dm" #include "code\modules\mob\living\carbon\human\species\skrell.dm" +#include "code\modules\mob\living\carbon\human\species\skulk.dm" #include "code\modules\mob\living\carbon\human\species\slimepeople.dm" #include "code\modules\mob\living\carbon\human\species\tajaran.dm" #include "code\modules\mob\living\carbon\human\species\unathi.dm" @@ -2860,6 +2861,8 @@ #include "code\modules\mob\new_player\sprite_accessories\skrell\skrell_body_markings.dm" #include "code\modules\mob\new_player\sprite_accessories\skrell\skrell_face.dm" #include "code\modules\mob\new_player\sprite_accessories\skrell\skrell_facial_hair.dm" +#include "code\modules\mob\new_player\sprite_accessories\skulk\skulk_body_markings.dm" +#include "code\modules\mob\new_player\sprite_accessories\skulk\skulk_hair.dm" #include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_body_markings.dm" #include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_facial_hair.dm" #include "code\modules\mob\new_player\sprite_accessories\tajaran\tajaran_hair.dm" @@ -3325,6 +3328,7 @@ #include "code\modules\surgery\organs\subtypes\moth_organs.dm" #include "code\modules\surgery\organs\subtypes\plasmaman_organs.dm" #include "code\modules\surgery\organs\subtypes\skrell_organs.dm" +#include "code\modules\surgery\organs\subtypes\skulk_organs.dm" #include "code\modules\surgery\organs\subtypes\standard_organs.dm" #include "code\modules\surgery\organs\subtypes\tajaran_organs.dm" #include "code\modules\surgery\organs\subtypes\unathi_organs.dm" diff --git a/sound/effects/chitter.ogg b/sound/effects/chitter.ogg new file mode 100644 index 00000000000..a4007bbf4e1 Binary files /dev/null and b/sound/effects/chitter.ogg differ diff --git a/tgui/packages/tgui-panel/styles/tgchat/chat-default.scss b/tgui/packages/tgui-panel/styles/tgchat/chat-default.scss index 1f2f2e45348..b70ff46ac41 100644 --- a/tgui/packages/tgui-panel/styles/tgchat/chat-default.scss +++ b/tgui/packages/tgui-panel/styles/tgchat/chat-default.scss @@ -650,6 +650,10 @@ h2.alert { font-family: 'Copperplate'; } +.skulk { + color: #b178b1; +} + .clown { color: #ff0000; } diff --git a/tgui/public/tgui-panel.bundle.css b/tgui/public/tgui-panel.bundle.css index dc779e797cd..9f4a573a6ce 100644 --- a/tgui/public/tgui-panel.bundle.css +++ b/tgui/public/tgui-panel.bundle.css @@ -1 +1 @@ -:root{--color-base:#262626;--color-section:rgba(0,0,0,.33);--color-secondary:hsl(from var(--color-base)var(--secondary-hue)var(--secondary-saturation)calc(l + var(--secondary-lightness-adjustment)));--secondary-hue:h;--secondary-saturation:s;--secondary-lightness-adjustment:7.5;--base-gradient-spread:2;--color-base-start:hsl(from var(--color-base)h s calc(l + var(--base-gradient-spread)));--color-base-end:hsl(from var(--color-base)h s calc(l - var(--base-gradient-spread)));--color-scrollbar-base:var(--color-section);--color-scrollbar-thumb:hsl(from var(--color-base)h s calc(l + 9.25));--candystripe-odd:rgba(0,0,0,.25);--candystripe-even:transparent;--color-red:#d92626;--color-orange:#f26c0d;--color-yellow:#fcd203;--color-olive:#acc91d;--color-green:#1fad4e;--color-teal:#00b3b3;--color-blue:#2a79c8;--color-violet:#63c;--color-purple:#b333cc;--color-pink:#d9268e;--color-brown:#a96a3c;--color-gold:#f2a60d;--color-black:#000;--color-white:#fff;--color-grey:gray;--color-light-grey:#aaa;--color-gray:var(--color-grey);--color-light-gray:var(--color-light-grey);--color-action:gray;--color-hover:hsl(from var(--color-action)h s l/.25);--color-active:hsl(from var(--color-action)h s l/.3);--color-selected:hsl(from var(--color-action)h s l/.4);--primary-hue:210;--primary-saturation:37.5%;--primary-lightness:45%;--color-primary:hsl(var(--primary-hue),var(--primary-saturation),var(--primary-lightness));--color-good:#5ba626;--color-average:#f2890d;--color-bad:#dc2323;--color-label:hsl(from var(--color-primary)h 17.5 57.5);--color-text:var(--color-white);--color-text-translucent:hsl(from var(--color-text)h s l/.5);--color-text-translucent-light:hsl(from var(--color-text)h s l/.75);--color-text-fixed-white:var(--color-white);--color-text-fixed-black:var(--color-black);--color-hyperlink:#69f;--color-hyperlink-visited:#96f;--color-hyperlink-new:#f66;--color-hyperlink-new-visited:#ff8c66;--color-border:rgba(255,255,255,.1);--color-border-dark:rgba(0,0,0,.33);--border-primary-saturation:100;--border-primary-lightness:75;--border-primary-alpha:.75;--color-border-primary:hsl(from var(--color-primary)h var(--border-primary-saturation)var(--border-primary-lightness)/var(--border-primary-alpha));--color-border-secondary:hsl(from var(--color-border-primary)h s l/1);--font-size:12px;--font-family:Verdana,Geneva,sans-serif;--font-family-mono:Consolas,monospace;--border-thickness-unit:.5em;--border-thickness-tiny:calc(var(--border-thickness-unit)*.5*.34);--border-thickness-small:calc(var(--border-thickness-unit)*.34);--border-thickness-medium:calc(var(--border-thickness-unit)*.5);--border-thickness-large:calc(var(--border-thickness-unit)*.66);--border-thickness-larger:var(--border-thickness-unit);--border-radius-unit:1rem;--border-radius-tiny:calc(var(--border-radius-unit)*.25*.68);--border-radius-small:calc(var(--border-radius-unit)*.25);--border-radius-medium:calc(var(--border-radius-unit)*.33);--border-radius-large:calc(var(--border-radius-unit)*.5);--border-radius-larger:calc(var(--border-radius-unit)*.75);--border-radius-huge:var(--border-radius-unit);--border-radius-giant:calc(var(--border-radius-unit)*2);--border-radius-circular:99999px;--space-unit:1em;--space-xxs:calc(var(--space-unit)*.25*.34);--space-xs:calc(var(--space-unit)*.25*.68);--space-s:calc(var(--space-unit)*.25);--space-sm:calc(var(--space-unit)*.33);--space-m:calc(var(--space-unit)*.5);--space-ml:calc(var(--space-unit)*.66);--space-l:calc(var(--space-unit)*.75);--space-xl:var(--space-unit);--space-xxl:calc(var(--space-unit)*2);--transition-time-unit:1s;--transition-time-fast:calc(var(--transition-time-unit)*.1);--transition-time-medium:calc(var(--transition-time-unit)*.2);--transition-time-slow:calc(var(--transition-time-unit)*.5);--transition-time-slowest:var(--transition-time-unit);--shadow-unit:1rem;--shadow-glow-small:0 0 calc(var(--shadow-unit)*.5);--shadow-glow-medium:0 0 var(--shadow-unit);--shadow-glow-large:0 0 calc(var(--shadow-unit)*2);--blur-small:blur(6px);--blur-medium:blur(12px);--blur-large:blur(24px);--adjust-color:5;--adjust-hover:10;--adjust-active:7.5;--cursor-default:default;--cursor-pointer:pointer;--cursor-disabled:var(--cursor-default);--cursor-n-resize:n-resize;--cursor-s-resize:s-resize;--cursor-se-resize:se-resize;--cursor-e-resize:e-resize;--blockquote-color:hsl(from var(--color-label)h s calc(l + var(--adjust-color)));--blockquote-border:var(--border-thickness-small)solid;--button-height:1.667em;--button-color:var(--color-white);--button-color-transparent:var(--color-text-translucent);--button-background-default:var(--color-primary);--button-background-selected:var(--color-green);--button-background-caution:var(--color-yellow);--button-background-danger:var(--color-red);--button-background-disabled:var(--undefined);--button-disabled-opacity:.5;--button-border-radius:var(--border-radius-tiny);--button-transition:var(--transition-time-medium);--button-transition-timing:ease;--dialog-background:hsl(from var(--color-section)h s l/.5);--dimmer-background-opacity:.75;--dimmer-background:hsl(from var(--color-base)h s 5/var(--dimmer-background-opacity));--divider-color:var(--color-border);--divider-border:var(--border-thickness-small)solid var(--divider-color);--dropdown-transition:var(--transition-time-medium);--dropdown-menu-color:var(--color-text);--dropdown-menu-background:hsl(from var(--color-base)h s calc(l - 5.5)/.85);--dropdown-menu-border:var(--border-thickness-tiny)solid var(--color-border);--dropdown-menu-border-radius:var(--border-radius-large);--dropdown-menu-blur:var(--blur-medium);--dropdown-entry-background-hover:var(--color-hover);--dropdown-entry-background-active:var(--color-active);--dropdown-entry-background-selected:var(--color-selected);--dropdown-entry-border-radius:var(--border-radius-small);--dropdown-entry-transition:var(--transition-time-fast);--floating-transition-time:var(--transition-time-medium);--floating-transition-timing:ease;--tab-background:transparent;--tab-background-hover:hsl(from var(--color-hover)h s calc(l*.75));--tab-background-selected:hsl(from var(--color-selected)h s calc(l*.75));--tab-color:var(--color-text-translucent);--tab-color-selected:hsl(from var(--color-primary)h s 90);--tab-border-radius:var(--border-radius-small);--tab-indicator-size:var(--border-thickness-small);--tab-transition:var(--transition-time-medium);--tabs-container-background:var(--color-section);--imagebutton-transparecy:.25;--input-background-lightness:5;--input-background:hsl(from var(--color-base)h s var(--input-background-lightness));--input-color:var(--color-text);--input-color-placeholder:var(--color-text-translucent);--input-border-color:var(--color-border-primary);--input-border-color-focus:var(--color-border-secondary);--input-border-radius:var(--border-radius-tiny);--input-border-disabled:var(--color-gray);--input-transition:var(--transition-time-medium);--input-font-family:var(--font-family);--input-font-family-mono:var(--font-family-mono);--input-width:9em;--knob-color:hsl(from var(--color-base)h 5 20);--knob-ring-color:var(--input-border-color);--knob-popup-background:var(--tooltip-background);--knob-popup-color:var(--tooltip-color);--knob-popup-border-radius:var(--tooltip-border-radius);--knob-popup-blur:var(--tooltip-blur);--knob-inner-padding:var(--space-xs);--menu-bar-background:var(--color-base);--menu-bar-font-family:var(--font-family);--menu-bar-transition:var(--transition-time-medium);--modal-background:var(--color-base);--modal-padding:var(--space-xl);--notice-box-stripes:rgba(0,0,0,.1);--notice-box-background:#cea257;--notice-box-color:var(--color-text-fixed-white);--number-input-background:var(--input-background);--number-input-color:var(--input-color);--number-input-border-color:var(--input-border-color);--number-input-border-color-active:var(--input-border-color-focus);--number-input-border-radius:var(--input-border-radius);--number-input-transition:var(--input-transition);--progress-bar-fill:var(--color-primary);--progress-bar-background:transparent;--progress-bar-border-radius:var(--border-radius-tiny);--progress-bar-transition:var(--transition-time-slowest);--restricted-input-border-color:var(--color-good);--restricted-input-border-color-focus:hsl(from var(--color-good)h s calc(l + 10));--restricted-input-border-color-invalid:var(--color-bad);--round-gauge-ring-color:var(--input-border-color);--round-gauge-transition:var(--transition-time-medium);--round-gauge-alert-animation:var(--transition-time-slowest);--round-gauge-needle-alert-animation:var(--transition-time-fast);--round-gauge-needle-alert-rotation:2.5deg;--section-title-color:var(--color-text);--section-background:var(--color-section);--section-separator-color:var(--color-primary);--section-separator-thickness:var(--border-thickness-small);--slider-cursor-color:var(--color-text);--slider-popup-background:var(--tooltip-background);--slider-popup-color:var(--tooltip-color);--slider-popup-border-radius:var(--tooltip-border-radius);--slider-popup-blur:var(--tooltip-blur);--tooltip-color:var(--color-text);--tooltip-background-lightness:5;--tooltip-background:hsl(from var(--color-base)h s var(--tooltip-background-lightness)/.85);--tooltip-border-radius:var(--border-radius-medium);--tooltip-blur:var(--blur-medium)}body{font-family:var(--font-family,Verdana,Geneva,sans-serif);position:relative;overflow:auto}.BlockQuote{color:var(--blockquote-color);border-left:var(--blockquote-border);padding-left:var(--space-m);margin-bottom:var(--space-m)}.BlockQuote:last-child{margin-bottom:0}.Button--color--grey,.Button--color--gray{--color:var(--color-grey)}.Button--color--light-grey,.Button--color--light-gray{--color:var(--color-light-grey)}.ColorBox{text-align:center;width:1em;height:1em;line-height:1em;display:inline-block}.Dialog{background-color:var(--dialog-background);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.Dialog__content{font-family:var(--font-family-mono);background-color:var(--color-base);flex-direction:column;font-size:1.16667em;display:flex}.Dialog__header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:var(--dialog-background);height:2em;line-height:1.928em;display:flex}.Dialog__title{margin-left:var(--space-xl);margin-right:var(--space-xxl);opacity:.33;flex-grow:1;font-style:italic;display:inline}.Dialog__body{margin:var(--space-xxl)var(--space-xl);flex-grow:1}.Dialog__footer{padding:var(--space-xl);background-color:hsl(from var(--dialog-background)h s l/.25);flex-direction:row;justify-content:flex-end;display:flex}.Dialog__button{margin:0 var(--space-xl);text-align:center;min-width:6rem;height:2rem}.SaveAsDialog__inputs{padding-left:var(--space-xxl);margin-right:var(--space-xl);flex-direction:row;justify-content:flex-end;align-items:center;display:flex}.SaveAsDialog__input{margin-left:var(--space-xl);width:80%}.SaveAsDialog__label{vertical-align:center}.Dialog__FileList{flex-wrap:wrap;flex-grow:1;align-content:flex-start;max-height:20rem;display:flex;position:relative;overflow-x:auto;overflow-y:scroll}.Dialog__FileEntry{text-align:center;margin:var(--space-xl)}.Dialog__FileIcon{cursor:default;text-align:center;width:6vh;height:auto;margin:0 0 var(--space-xl)0;display:inline-block;position:relative}.Dimmer{background-color:var(--dimmer-background);z-index:100;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.Divider--horizontal{margin:var(--space-m)0}.Divider--horizontal:not(.Divider--hidden){border-top:var(--divider-border)}.Divider--vertical{height:100%;margin:0 var(--space-m)}.Divider--vertical:not(.Divider--hidden){border-left:var(--divider-border)}.Button{white-space:nowrap;line-height:var(--button-height);padding:0 var(--space-m);margin-right:var(--space-xs);margin-bottom:var(--space-xs);border-radius:var(--button-border-radius);--button-background:hsl(from var(--color)h s calc(l - var(--adjust-color)));cursor:var(--cursor-pointer);background-color:var(--button-background);color:var(--button-color);transition-property:background-color,color,opacity;transition-duration:var(--button-transition);transition-timing-function:var(--button-transition-timing);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:none;display:inline-block;position:relative}.Button:hover{background-color:hsl(from var(--button-background)h s calc(l + var(--adjust-hover)));color:var(--button-color)}.Button:active{background-color:hsl(from var(--button-background)h s calc(l - var(--adjust-active)));color:var(--button-color);transition:none}.Button:last-child{margin-bottom:0;margin-right:0}.Button__content{align-self:stretch;display:block}.Button__content--ellipsis{align-items:center;display:flex}.Button .Button--icon{text-align:center;min-width:1.333em}.Button.Button--hasIcon{padding-left:0}.Button.Button--hasIcon .Button--icon{margin:0 var(--space-s)}.Button--icon-right.Button--hasIcon{padding-left:var(--space-m);padding-right:var(--space-s)}.Button--icon-right.Button--hasIcon .Button--icon{margin:0 0 0 var(--space-s)}.Button--empty.Button--hasIcon{padding:0}.Button--compact{padding:0 var(--space-s);line-height:1.333em}.Button--compact.Button--hasIcon .Button--icon{margin:0 var(--space-xxs)}.Button--circular{border-radius:var(--border-radius-circular)}.Button--fluid{margin-left:0;margin-right:0;display:block}.Button--ellipsis{text-overflow:ellipsis;margin-right:calc(-1*var(--space-s));display:block;overflow:hidden}.Stack>.Button,.Stack__item>.Button{margin:0}.Button--color--red{--color:var(--color-red)}.Button--color--orange{--color:var(--color-orange)}.Button--color--yellow{--color:var(--color-yellow);--button-color:var(--color-black)}.Button--color--olive{--color:var(--color-olive)}.Button--color--green{--color:var(--color-green)}.Button--color--teal{--color:var(--color-teal)}.Button--color--blue{--color:var(--color-blue)}.Button--color--violet{--color:var(--color-violet)}.Button--color--purple{--color:var(--color-purple)}.Button--color--pink{--color:var(--color-pink)}.Button--color--brown{--color:var(--color-brown)}.Button--color--gold{--color:var(--color-gold)}.Button--color--black{--color:var(--color-black)}.Button--color--white{--color:var(--color-white);--button-color:var(--color-black)}.Button--color--grey,.Button--color--gray{--color:var(--color-grey)}.Button--color--light-grey,.Button--color--light-gray{--color:var(--color-light-grey)}.Button--color--primary{--color:var(--color-primary)}.Button--color--good{--color:var(--color-good)}.Button--color--average{--color:var(--color-average)}.Button--color--bad{--color:var(--color-bad)}.Button--color--label{--color:var(--color-label)}.Button--color--default{--color:var(--button-background-default)}.Button--color--caution{--color:var(--button-background-caution)}.Button--color--danger{--color:var(--button-background-danger)}.Button--color--transparent{--button-background:hsl(from var(--button-color)h s l/.1);--button-color:var(--button-color-transparent);background-color:transparent}.Button--color--transparent:hover{--button-color:hsl(from var(--button-color-transparent)h s l/1)}.Button--color--transparent:active{opacity:.75}.Button--color--transparent.Button--selected{--button-color:hsl(from var(--color)h s calc(l + var(--adjust-color)))}.Button--color--transparent.Button--disabled{--button-background:hsl(from var(--button-color)h s l/.2);--button-color:var(--color-bad);opacity:1;color:var(--button-color)!important}.Button--disabled{opacity:var(--button-disabled-opacity);cursor:var(--cursor-disabled)!important;background-color:var(--button-background-disabled,var(--button-background))!important}.Button--selected{--color:var(--button-background-selected)!important}.Button--flex{flex-direction:column;display:inline-flex}.Button--flex--fluid{width:100%}.Button--verticalAlignContent--top{justify-content:flex-start}.Button--verticalAlignContent--middle{justify-content:center}.Button--verticalAlignContent--bottom{justify-content:flex-end}.Dropdown{align-items:stretch;gap:var(--space-s);margin-right:var(--space-xs);margin-bottom:var(--space-xs);display:flex}.Dropdown:last-child{margin-bottom:0;margin-right:0}.Dropdown .Button{align-content:center;margin:0}.Dropdown--fluid{flex:1;width:100%}.Dropdown__control{font-family:var(--font-family);border-radius:var(--button-border-radius);--button-background:hsl(from var(--color)h s calc(l - var(--adjust-color)));height:1.83333em;cursor:var(--cursor-pointer);background-color:var(--button-background);color:var(--button-color);transition-property:background-color,color,opacity;transition-duration:var(--button-transition);transition-timing-function:var(--button-transition-timing);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;flex:1;font-size:1em;line-height:1.33333em;display:flex;overflow:hidden}.Dropdown__control:hover{background-color:hsl(from var(--button-background)h s calc(l + var(--adjust-hover)));color:var(--button-color)}.Dropdown__control:active{background-color:hsl(from var(--button-background)h s calc(l - var(--adjust-active)));color:var(--button-color);transition:none}.Dropdown__selected-text{text-overflow:ellipsis;white-space:nowrap;height:100%;padding:var(--space-s)var(--space-m);border-right:var(--border-thickness-tiny)solid var(--color-border-dark);flex:1;align-content:center;display:inline-block;overflow:hidden}.Dropdown__icon{text-align:center;width:1.83333em;height:100%;transition:transform var(--dropdown-transition);align-content:center;display:inline-block}.Dropdown__icon--arrow.open:not(.over),.Dropdown__icon--arrow.over:not(.open){transform:rotate(180deg)}.Dropdown__icon~.Dropdown__selected-text{padding-left:0}.Dropdown__menu{scrollbar-width:thin;scrollbar-color:var(--color-scrollbar-thumb)transparent;max-height:16.6667em;padding:var(--space-sm);overflow-y:auto}.Dropdown__menu--wrapper{background-color:var(--dropdown-menu-background);color:var(--dropdown-menu-color);border:var(--dropdown-menu-border);border-radius:var(--dropdown-menu-border-radius);-webkit-backdrop-filter:var(--dropdown-menu-blur);backdrop-filter:var(--dropdown-menu-blur);overflow:hidden}.Dropdown__menu--entry{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;text-overflow:ellipsis;font-family:var(--font-family);padding:var(--space-xs)var(--space-m);border-radius:var(--dropdown-entry-border-radius);transition:background-color var(--dropdown-entry-transition);font-size:1em;line-height:1.33333em;overflow:hidden}.Dropdown__menu--entry.selected{transition-duration:0s;background-color:var(--dropdown-entry-background-selected)!important}.Dropdown__menu--entry:not(.selected){cursor:var(--cursor-pointer)}.Dropdown__menu--entry:not(.selected):hover{background-color:var(--dropdown-entry-background-hover);transition-duration:0s}.Dropdown__menu--entry:not(.selected):active{background-color:var(--dropdown-entry-background-active);transition-duration:0s}.Dropdown__control--icon-only{justify-content:center;align-items:center;max-width:2rem;display:flex}.Flex{display:flex}.Flex--inline{display:inline-flex}.Flex--iefix{display:block}.Flex--iefix.Flex--inline,.Flex__item--iefix{display:inline-block}.Flex--iefix--column>.Flex__item--iefix{display:block}.Floating{z-index:5}.Floating--animated[data-transition=open]{opacity:1;transform:scale(1)}.Floating--animated[data-transition=close],.Floating--animated[data-transition=initial]{opacity:0;transform:scale(.9)}.Floating--animated[data-transition=open],.Floating--animated[data-transition=close]{transition-duration:var(--floating-transition-time);transition-timing-function:var(--floating-transition-timing);transition-property:opacity,transform}.Floating[data-position=top]{transform-origin:bottom}.Floating[data-position=top-start],.Floating[data-position=right-end]{transform-origin:0 100%}.Floating[data-position=top-end],.Floating[data-position=left-end]{transform-origin:100% 100%}.Floating[data-position=bottom]{transform-origin:top}.Floating[data-position=bottom-start],.Floating[data-position=right-start]{transform-origin:0 0}.Floating[data-position=bottom-end],.Floating[data-position=left-start]{transform-origin:100% 0}.Floating[data-position=right]{transform-origin:0}.Floating[data-position=left]{transform-origin:100%}.IconStack{justify-content:center;align-items:center;display:inline-flex;position:relative}.IconStack .Icon:before{vertical-align:middle}.IconStack .Icon:not(:first-child){position:absolute}.ImageButton{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;background-color:hsl(from var(--imagebutton-color)h s calc(l - var(--adjust-color)*2)/var(--imagebutton-transparecy));border:var(--border-thickness-tiny)solid hsl(from var(--imagebutton-color)h s calc(l + var(--adjust-color))/var(--imagebutton-transparecy));border-radius:var(--border-radius-medium);transition-property:background-color,border-color,box-shadow;transition-duration:var(--transition-time-medium);border-width:0;margin:.25em;display:inline-flex;position:relative;overflow:hidden}.ImageButton:not(:-webkit-any(.ImageButton--disabled,.ImageButton--noAction)) .ImageButton__container{cursor:var(--cursor-pointer)}.ImageButton:not(:-moz-any(.ImageButton--disabled,.ImageButton--noAction)) .ImageButton__container{cursor:var(--cursor-pointer)}.ImageButton:not(:is(.ImageButton--disabled,.ImageButton--noAction)) .ImageButton__container{cursor:var(--cursor-pointer)}.ImageButton:not(:-webkit-any(.ImageButton--disabled,.ImageButton--noAction)):not(:-webkit-any(:has(.ImageButton__buttons:hover),:has(.ImageButton__buttons:active))):hover{background-color:hsl(from var(--imagebutton-color)h s calc(l - var(--adjust-color) + var(--adjust-hover))/var(--imagebutton-transparecy))}.ImageButton:not(:-moz-any(.ImageButton--disabled,.ImageButton--noAction)):not(:-moz-any(:has(.ImageButton__buttons:hover),:has(.ImageButton__buttons:active))):hover{background-color:hsl(from var(--imagebutton-color)h s calc(l - var(--adjust-color) + var(--adjust-hover))/var(--imagebutton-transparecy))}.ImageButton:not(:is(.ImageButton--disabled,.ImageButton--noAction)):not(:is(:has(.ImageButton__buttons:hover),:has(.ImageButton__buttons:active))):hover{background-color:hsl(from var(--imagebutton-color)h s calc(l - var(--adjust-color) + var(--adjust-hover))/var(--imagebutton-transparecy))}.ImageButton:not(:-webkit-any(.ImageButton--disabled,.ImageButton--noAction)):not(:-webkit-any(:has(.ImageButton__buttons:hover),:has(.ImageButton__buttons:active))):active .ImageButton__image{-webkit-filter:drop-shadow(var(--shadow-glow-small)var(--imagebutton-color));filter:drop-shadow(var(--shadow-glow-small)var(--imagebutton-color));transition-duration:0s}.ImageButton:not(:-moz-any(.ImageButton--disabled,.ImageButton--noAction)):not(:-moz-any(:has(.ImageButton__buttons:hover),:has(.ImageButton__buttons:active))):active .ImageButton__image{-webkit-filter:drop-shadow(var(--shadow-glow-small)var(--imagebutton-color));filter:drop-shadow(var(--shadow-glow-small)var(--imagebutton-color));transition-duration:0s}.ImageButton:not(:is(.ImageButton--disabled,.ImageButton--noAction)):not(:is(:has(.ImageButton__buttons:hover),:has(.ImageButton__buttons:active))):active .ImageButton__image{-webkit-filter:drop-shadow(var(--shadow-glow-small)var(--imagebutton-color));filter:drop-shadow(var(--shadow-glow-small)var(--imagebutton-color));transition-duration:0s}.ImageButton:not(.ImageButton--fluid) .ImageButton__content{background-color:hsl(from var(--imagebutton-color)h s calc(l - var(--adjust-hover)));border-top:var(--border-thickness-tiny)solid var(--imagebutton-color)}.ImageButton__container{border-color:inherit;transition:opacity var(--transition-time-medium);flex-direction:column;display:flex}.ImageButton__image{pointer-events:none;padding:var(--space-s);border:var(--border-thickness-tiny)solid;border-bottom:none;border-color:inherit;border-radius:var(--border-radius-medium)var(--border-radius-medium)0 0;transition:filter var(--transition-time-slow);align-self:center;line-height:0;position:relative;overflow:hidden}.ImageButton__image--fallback{text-align:center;color:var(--color-text-translucent);align-content:center}.ImageButton__image--fallback:before{zoom:.75;width:100%;display:table}.ImageButton__content{white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-fixed-white);z-index:2;padding:.25em .33em;overflow:hidden}.ImageButton__buttons{left:var(--border-thickness-tiny);z-index:1;max-width:100%;display:flex;position:absolute;bottom:1.8em;overflow:hidden}.ImageButton__buttons--alt{pointer-events:none;top:var(--border-thickness-tiny);text-shadow:0px 1px 2px var(--color-base),-1px 0px 2px var(--color-base),1px 0px 2px var(--color-base),0px -1px 2px var(--color-base);flex-direction:column;overflow:visible;bottom:unset!important}.ImageButton__buttons--empty{bottom:0;left:0}.ImageButton__buttons>*{border-radius:0!important;margin:0!important;padding:0!important}.ImageButton--empty{border-width:var(--border-thickness-tiny)}.ImageButton--empty .ImageButton__image{border-radius:var(--border-radius-medium);border:none}.Stack>.ImageButton,.Stack__item>.ImageButton{margin:0}.ImageButton--fluid{border-width:var(--border-thickness-tiny);flex-direction:row;margin:0 0 .33em;display:flex}.ImageButton--fluid:last-child{margin-bottom:0}.ImageButton--fluid .ImageButton__container{flex-direction:row;flex:1}.ImageButton--fluid .ImageButton__image{border:0;margin:0 auto;padding:0}.ImageButton--fluid .ImageButton__content{white-space:normal;color:var(--color-text);flex-direction:column;flex:1;justify-content:center;margin:0 .5em;padding:0;display:flex}.ImageButton--fluid .ImageButton__content--title{padding:.5em;font-weight:700}.ImageButton--fluid .ImageButton__content--divider{border-bottom:var(--border-thickness-small)solid var(--color-border)}.ImageButton--fluid .ImageButton__content--text{padding:.5em}.ImageButton--fluid .ImageButton__buttons{left:inherit;bottom:inherit;background-color:inherit;position:relative}.ImageButton--fluid .ImageButton__buttons--alt{pointer-events:all;top:inherit;text-shadow:none}.ImageButton--fluid .ImageButton__buttons--alt>*{border-top:1px solid rgba(255,255,255,.075)}.ImageButton--fluid .ImageButton__buttons--alt>:first-child{border-top:0}.ImageButton--fluid .ImageButton__buttons>*{text-align:center;white-space:pre-wrap;border-left:var(--border-thickness-tiny)solid var(--color-border);flex-direction:column;justify-content:center;height:100%;line-height:1.15em;display:inline-flex}.ImageButton__color--red{--imagebutton-color:var(--color-red)}.ImageButton__color--orange{--imagebutton-color:var(--color-orange)}.ImageButton__color--yellow{--imagebutton-color:var(--color-yellow);--color-text-fixed-white:var(--color-black)}.ImageButton__color--olive{--imagebutton-color:var(--color-olive)}.ImageButton__color--green{--imagebutton-color:var(--color-green)}.ImageButton__color--teal{--imagebutton-color:var(--color-teal)}.ImageButton__color--blue{--imagebutton-color:var(--color-blue)}.ImageButton__color--violet{--imagebutton-color:var(--color-violet)}.ImageButton__color--purple{--imagebutton-color:var(--color-purple)}.ImageButton__color--pink{--imagebutton-color:var(--color-pink)}.ImageButton__color--brown{--imagebutton-color:var(--color-brown)}.ImageButton__color--gold{--imagebutton-color:var(--color-gold)}.ImageButton__color--black{--imagebutton-color:var(--color-black)}.ImageButton__color--white{--imagebutton-color:var(--color-white);--color-text-fixed-white:var(--color-black)}.ImageButton__color--grey,.ImageButton__color--gray{--imagebutton-color:var(--color-grey)}.ImageButton__color--light-grey,.ImageButton__color--light-gray{--imagebutton-color:var(--color-light-grey)}.ImageButton__color--good{--imagebutton-color:var(--color-good)}.ImageButton__color--average{--imagebutton-color:var(--color-average)}.ImageButton__color--bad{--imagebutton-color:var(--color-bad)}.ImageButton__color--label{--imagebutton-color:var(--color-label)}.ImageButton__color--transparent{--imagebutton-color:var(--color-text-translucent-light);--imagebutton-transparecy:.1;background-color:transparent;border-color:transparent!important}.ImageButton__color--transparent .ImageButton__content{color:var(--color-text-translucent-light);background-color:transparent!important;border-color:transparent!important}.ImageButton__color--transparent.ImageButton--disabled{background-color:hsL(from var(--color-red)h s l/.15)!important}.ImageButton__color--transparent.ImageButton--selected{background-color:hsL(from var(--color-good)h s l/.15)}.ImageButton__color--default{--imagebutton-color:hsl(from var(--color-base)h s 30)}.ImageButton__color--primary{--imagebutton-color:hsl(from var(--color-primary)h s l)}.ImageButton--selected{--imagebutton-color:hsl(from var(--button-background-selected)h s calc(l*1.15));--color-text-fixed-white:var(--color-white)}.ImageButton--disabled .ImageButton__container{cursor:var(--cursor-disabled);opacity:.5}.ImageButton--disabled.ImageButton--fluid{-webkit-filter:contrast(75%);filter:contrast(75%)}.ImageButton--disabled.ImageButton--fluid .ImageButton__buttons{-webkit-filter:contrast(125%);filter:contrast(125%)}.Input{background-color:var(--input-background);border-radius:var(--input-border-radius);border:var(--border-thickness-tiny)solid var(--input-border-color);color:var(--input-color);font-size:1em;font-family:var(--input-font-family);padding:var(--space-xxs)var(--space-sm);width:var(--input-width)}.Input:focus{outline:none}.Input:focus-within{border-color:var(--input-border-color-focus)}.Input::-webkit-input-placeholder{color:var(--input-color-placeholder);font-style:italic}.Input::-ms-input-placeholder{color:var(--input-color-placeholder);font-style:italic}.Input::placeholder{color:var(--input-color-placeholder);font-style:italic}.Input--disabled{border-color:var(--input-border-disabled);color:var(--input-color-placeholder)}.Input--fluid{width:100%}.Input--monospace{font-family:var(--input-font-family-mono)}.Knob{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:var(--cursor-n-resize);width:2.6em;height:2.6em;margin:0 auto -.2em;font-size:1rem;position:relative}.Knob:after{content:".";color:transparent;line-height:2.5em}.Knob__circle{inset:var(--knob-inner-padding);background-color:var(--knob-color);background-image:linear-gradient(to bottom,hsl(from var(--knob-color)h s calc(l + 15))0%,var(--knob-color)100%);border-radius:var(--border-radius-circular);box-shadow:var(--shadow-glow-medium)hsl(from var(--knob-color)h s l/.25);margin:.3em;position:absolute}.Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.Knob__cursor{background-color:hsl(from var(--knob-color)h s 85);width:.2em;height:.8em;margin:0 auto;position:relative;top:.05em}.Knob__popupValue{white-space:nowrap;text-align:center;padding:var(--space-s)var(--space-m);background-color:var(--knob-popup-background);color:var(--knob-popup-color);border-radius:var(--knob-popup-border-radius);-webkit-backdrop-filter:var(--knob-popup-blur);backdrop-filter:var(--knob-popup-blur);font-size:1rem;position:absolute;top:0;left:50%;transform:translateY(-100%)translate(-50%)}.Knob__ring{padding:var(--knob-inner-padding);position:absolute;top:0;bottom:0;left:0;right:0;overflow:visible}.Knob__ringTrackPivot{transform:rotate(135deg)}.Knob__ringTrack{fill:transparent;stroke:hsl(from var(--ring-color,var(--knob-ring-color))h s l/.15);stroke-width:8px;stroke-linecap:round;stroke-dasharray:235.62}.Knob__ringFillPivot{transform:rotate(135deg)}.Knob--bipolar .Knob__ringFillPivot{transform:rotate(270deg)}.Knob__ringFill{fill:transparent;stroke:var(--ring-color,var(--knob-ring-color));stroke-width:8px;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke var(--transition-time-medium)ease-out}.Knob--color--red{--ring-color:var(--color-red)}.Knob--color--orange{--ring-color:var(--color-orange)}.Knob--color--yellow{--ring-color:var(--color-yellow)}.Knob--color--olive{--ring-color:var(--color-olive)}.Knob--color--green{--ring-color:var(--color-green)}.Knob--color--teal{--ring-color:var(--color-teal)}.Knob--color--blue{--ring-color:var(--color-blue)}.Knob--color--violet{--ring-color:var(--color-violet)}.Knob--color--purple{--ring-color:var(--color-purple)}.Knob--color--pink{--ring-color:var(--color-pink)}.Knob--color--brown{--ring-color:var(--color-brown)}.Knob--color--gold{--ring-color:var(--color-gold)}.Knob--color--black{--ring-color:var(--color-black)}.Knob--color--white{--ring-color:var(--color-white)}.Knob--color--grey,.Knob--color--gray{--ring-color:var(--color-grey)}.Knob--color--light-grey,.Knob--color--light-gray{--ring-color:var(--color-light-grey)}.Knob--color--primary{--ring-color:var(--color-primary)}.Knob--color--good{--ring-color:var(--color-good)}.Knob--color--average{--ring-color:var(--color-average)}.Knob--color--bad{--ring-color:var(--color-bad)}.Knob--color--label{--ring-color:var(--color-label)}.LabeledList{border-collapse:collapse;border-spacing:0;width:calc(100% + 1em);margin:calc(-1*var(--space-s))calc(-1*var(--space-m))0;padding:0;display:table}.LabeledList__row{display:table-row}.LabeledList__row:last-child .LabeledList__cell{padding-bottom:0}.LabeledList__cell{padding:var(--space-s)var(--space-m);text-align:left;border:0;margin:0;display:table-cell}.LabeledList__label--nowrap{white-space:nowrap;width:1%;min-width:5em}.LabeledList__buttons{white-space:nowrap;text-align:right;width:.1%;padding-top:var(--space-xxs);padding-bottom:0}.LabeledList__breakContents{word-break:break-all;word-wrap:break-word}.MenuBar{display:flex}.MenuBar__font{font-family:var(--menu-bar-font-family);font-size:1em;line-height:1.41667em}.MenuBar__hover:hover{background-color:hsl(from var(--menu-bar-background)h s calc(l + 20));transition:background-color}.MenuBar__MenuBarButton{padding:var(--space-s)var(--space-m)}.MenuBar__menu{background-color:var(--menu-bar-background);padding:var(--space-sm);z-index:5;position:absolute;box-shadow:4px 6px 5px -2px rgba(0,0,0,.5)}.MenuBar__MenuItem{transition:background-color var(--menu-bar-transition)ease-out;background-color:var(--menu-bar-background);white-space:nowrap;padding:var(--space-sm)var(--space-xl)var(--space-sm)calc(var(--space-xxl) + 1rem)}.MenuBar__MenuItemToggle{padding:var(--space-sm)var(--space-xl)var(--space-sm)0}.MenuBar__MenuItemToggle__check{vertical-align:middle;text-align:center;min-width:2.5rem;padding-left:var(--space-sm);display:inline-block}.MenuBar__over{top:auto;bottom:100%}.MenuBar__MenuBarButton-text{text-overflow:clip;white-space:nowrap;height:1.41667em}.MenuBar__Separator{margin:var(--space-sm);border-top:var(--border-thickness-tiny)solid var(--color-border);display:block}.Modal{background-color:var(--modal-background);padding:var(--modal-padding)}.Modal__dimmer .Dimmer__inner{max-width:calc(100vw - var(--space-xxl));max-height:calc(100vh - var(--space-xxl))}.NoticeBox{--noticebox-background:var(--notice-box-background);padding:var(--space-sm)var(--space-m);margin-bottom:var(--space-m);background-color:oklch(from var(--noticebox-background)calc(l*.825)calc(c*.75)h);background-image:repeating-linear-gradient(-45deg,transparent 0 .833333em,var(--notice-box-stripes).833333em 1.66667em);color:var(--notice-box-color);font-style:italic;font-weight:700}.NoticeBox--color--red{--noticebox-background:var(--color-red)}.NoticeBox--color--orange{--noticebox-background:var(--color-orange)}.NoticeBox--color--yellow{--noticebox-background:var(--color-yellow);--notice-box-color:var(--color-black)}.NoticeBox--color--olive{--noticebox-background:var(--color-olive)}.NoticeBox--color--green{--noticebox-background:var(--color-green)}.NoticeBox--color--teal{--noticebox-background:var(--color-teal)}.NoticeBox--color--blue{--noticebox-background:var(--color-blue)}.NoticeBox--color--violet{--noticebox-background:var(--color-violet)}.NoticeBox--color--purple{--noticebox-background:var(--color-purple)}.NoticeBox--color--pink{--noticebox-background:var(--color-pink)}.NoticeBox--color--brown{--noticebox-background:var(--color-brown)}.NoticeBox--color--gold{--noticebox-background:var(--color-gold)}.NoticeBox--color--black{--noticebox-background:var(--color-black);--notice-box-stripes:rgba(255,255,255,.1)}.NoticeBox--color--white{--noticebox-background:var(--color-white);--notice-box-color:var(--color-black)}.NoticeBox--color--grey,.NoticeBox--color--gray{--noticebox-background:var(--color-grey)}.NoticeBox--color--light-grey,.NoticeBox--color--light-gray{--noticebox-background:var(--color-light-grey)}.NoticeBox--color--primary{--noticebox-background:var(--color-primary)}.NoticeBox--color--good{--noticebox-background:var(--color-good)}.NoticeBox--color--average{--noticebox-background:var(--color-average)}.NoticeBox--color--bad{--noticebox-background:var(--color-bad)}.NoticeBox--color--label{--noticebox-background:var(--color-label)}.NoticeBox--type--info{--noticebox-background:var(--color-blue)}.NoticeBox--type--success{--noticebox-background:var(--color-green)}.NoticeBox--type--warning{--noticebox-background:var(--color-orange)}.NoticeBox--type--danger{--noticebox-background:var(--color-red)}.NumberInput{cursor:var(--cursor-n-resize);text-align:right;padding:0 var(--space-sm);margin-right:var(--space-xs);background-color:var(--number-input-background);color:var(--number-input-border-color-active);border:var(--border-thickness-tiny)solid var(--number-input-border-color);border-radius:var(--number-input-border-radius);transition:border-color var(--number-input-transition);line-height:1.41667em;display:inline-block;position:relative;overflow:visible}.NumberInput:active{border-color:var(--number-input-border-color-active)}.NumberInput--fluid{display:block}.NumberInput__content{margin-left:var(--space-m)}.NumberInput__barContainer{top:var(--space-xs);bottom:var(--space-xs);left:var(--space-xs);position:absolute}.NumberInput__bar{box-sizing:border-box;border-bottom:var(--border-thickness-tiny)solid var(--number-input-border-color-active);background-color:var(--number-input-border-color-active);width:.25em;position:absolute;bottom:0;left:0}.NumberInput__input{text-align:right;width:100%;height:1.41667em;padding:0 var(--space-m);font-size:1em;line-height:1.41667em;font-family:var(--font-family);background-color:var(--number-input-background);color:var(--number-input-color);border:0;outline:0;margin:0;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.ProgressBar{width:100%;min-height:var(--button-height);padding:0 var(--space-m);background-color:var(--progress-bar-background);border:var(--border-thickness-tiny)solid var(--progress-bar-color);border-radius:var(--progress-bar-border-radius);transition:border-color var(--progress-bar-transition)ease-out;align-content:center;display:inline-block;position:relative}.ProgressBar__fill{background-color:var(--progress-bar-color);position:absolute;top:0;bottom:0;left:0;right:0}.ProgressBar__fill--animated{transition-property:background-color,width;transition-duration:var(--progress-bar-transition)}.ProgressBar__content{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:right;width:100%;position:relative}.ProgressBar--color--default{--progress-bar-color:hsl(from var(--progress-bar-fill)h s calc(l - var(--adjust-color)))}.ProgressBar--color--red{--progress-bar-color:hsl(from var(--color-red)h s calc(l - var(--adjust-color)))}.ProgressBar--color--orange{--progress-bar-color:hsl(from var(--color-orange)h s calc(l - var(--adjust-color)))}.ProgressBar--color--yellow{--progress-bar-color:hsl(from var(--color-yellow)h s calc(l - var(--adjust-color)))}.ProgressBar--color--olive{--progress-bar-color:hsl(from var(--color-olive)h s calc(l - var(--adjust-color)))}.ProgressBar--color--green{--progress-bar-color:hsl(from var(--color-green)h s calc(l - var(--adjust-color)))}.ProgressBar--color--teal{--progress-bar-color:hsl(from var(--color-teal)h s calc(l - var(--adjust-color)))}.ProgressBar--color--blue{--progress-bar-color:hsl(from var(--color-blue)h s calc(l - var(--adjust-color)))}.ProgressBar--color--violet{--progress-bar-color:hsl(from var(--color-violet)h s calc(l - var(--adjust-color)))}.ProgressBar--color--purple{--progress-bar-color:hsl(from var(--color-purple)h s calc(l - var(--adjust-color)))}.ProgressBar--color--pink{--progress-bar-color:hsl(from var(--color-pink)h s calc(l - var(--adjust-color)))}.ProgressBar--color--brown{--progress-bar-color:hsl(from var(--color-brown)h s calc(l - var(--adjust-color)))}.ProgressBar--color--gold{--progress-bar-color:hsl(from var(--color-gold)h s calc(l - var(--adjust-color)))}.ProgressBar--color--black{--progress-bar-color:hsl(from var(--color-black)h s calc(l - var(--adjust-color)))}.ProgressBar--color--white{--progress-bar-color:hsl(from var(--color-white)h s calc(l - var(--adjust-color)))}.ProgressBar--color--grey,.ProgressBar--color--gray{--progress-bar-color:hsl(from var(--color-grey)h s calc(l - var(--adjust-color)))}.ProgressBar--color--light-grey,.ProgressBar--color--light-gray{--progress-bar-color:hsl(from var(--color-light-grey)h s calc(l - var(--adjust-color)))}.ProgressBar--color--primary{--progress-bar-color:hsl(from var(--color-primary)h s calc(l - var(--adjust-color)))}.ProgressBar--color--good{--progress-bar-color:hsl(from var(--color-good)h s calc(l - var(--adjust-color)))}.ProgressBar--color--average{--progress-bar-color:hsl(from var(--color-average)h s calc(l - var(--adjust-color)))}.ProgressBar--color--bad{--progress-bar-color:hsl(from var(--color-bad)h s calc(l - var(--adjust-color)))}.ProgressBar--color--label{--progress-bar-color:hsl(from var(--color-label)h s calc(l - var(--adjust-color)))}.RestrictedInput{border-color:var(--restricted-input-border-color);text-align:right}.RestrictedInput:focus-within{border-color:var(--restricted-input-border-color-focus)}.RestrictedInput::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.RestrictedInput::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.RestrictedInput--invalid{border-color:var(--restricted-input-border-color-invalid)}.RestrictedInput--invalid:focus-within{border-color:var(--restricted-input-border-color-invalid)}@keyframes RoundGauge__alertAnim{0%,to{opacity:.1}50%{opacity:1}}@keyframes RoundGauge__needleAlertAnim{0%{transform:rotate(var(--round-gauge-needle-alert-rotation))}50%{transform:rotate(calc(-1*var(--round-gauge-needle-alert-rotation)))}}.RoundGauge{width:2.6em;height:1.3em;margin:0 auto .2em;font-size:1rem}.RoundGauge__wrapper{text-align:center;display:inline-block}.RoundGauge__ringTrack{fill:transparent;stroke:rgba(255,255,255,.1);stroke-width:10px;stroke-dasharray:157.08;stroke-dashoffset:157.08px}.RoundGauge__ringFill{fill:transparent;stroke:var(--round-gauge-ring-color);stroke-width:10px;stroke-dasharray:314.16;transition:stroke var(--round-gauge-transition)ease-out}.RoundGauge__needle,.RoundGauge__ringFill{transition:transform var(--round-gauge-transition)ease-in-out}.RoundGauge__needleLine,.RoundGauge__needleMiddle{fill:var(--color-red)}.RoundGauge__alert{fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;fill:rgba(255,255,255,.1);transform-origin:top;transform:scale(.9)}.RoundGauge__alert.active{animation:RoundGauge__alertAnim var(--round-gauge-alert-animation)cubic-bezier(.34,1.56,.64,1)infinite}.RoundGauge__alert.active~.RoundGauge__needle .RoundGauge__needleLine{transform-origin:bottom;animation:RoundGauge__needleAlertAnim var(--round-gauge-needle-alert-animation)infinite}.RoundGauge__alert.max{fill:var(--color-bad)}.RoundGauge--color--red.RoundGauge__ringFill{stroke:var(--color-red)}.RoundGauge--color--orange.RoundGauge__ringFill{stroke:var(--color-orange)}.RoundGauge--color--yellow.RoundGauge__ringFill{stroke:var(--color-yellow)}.RoundGauge--color--olive.RoundGauge__ringFill{stroke:var(--color-olive)}.RoundGauge--color--green.RoundGauge__ringFill{stroke:var(--color-green)}.RoundGauge--color--teal.RoundGauge__ringFill{stroke:var(--color-teal)}.RoundGauge--color--blue.RoundGauge__ringFill{stroke:var(--color-blue)}.RoundGauge--color--violet.RoundGauge__ringFill{stroke:var(--color-violet)}.RoundGauge--color--purple.RoundGauge__ringFill{stroke:var(--color-purple)}.RoundGauge--color--pink.RoundGauge__ringFill{stroke:var(--color-pink)}.RoundGauge--color--brown.RoundGauge__ringFill{stroke:var(--color-brown)}.RoundGauge--color--gold.RoundGauge__ringFill{stroke:var(--color-gold)}.RoundGauge--color--black.RoundGauge__ringFill{stroke:var(--color-black)}.RoundGauge--color--white.RoundGauge__ringFill{stroke:var(--color-white)}.RoundGauge--color--grey.RoundGauge__ringFill,.RoundGauge--color--gray.RoundGauge__ringFill{stroke:var(--color-grey)}.RoundGauge--color--light-grey.RoundGauge__ringFill,.RoundGauge--color--light-gray.RoundGauge__ringFill{stroke:var(--color-light-grey)}.RoundGauge--color--primary.RoundGauge__ringFill{stroke:var(--color-primary)}.RoundGauge--color--good.RoundGauge__ringFill{stroke:var(--color-good)}.RoundGauge--color--average.RoundGauge__ringFill{stroke:var(--color-average)}.RoundGauge--color--bad.RoundGauge__ringFill{stroke:var(--color-bad)}.RoundGauge--color--label.RoundGauge__ringFill{stroke:var(--color-label)}.RoundGauge__alert--red{fill:var(--color-red)}.RoundGauge__alert--orange{fill:var(--color-orange)}.RoundGauge__alert--yellow{fill:var(--color-yellow)}.RoundGauge__alert--olive{fill:var(--color-olive)}.RoundGauge__alert--green{fill:var(--color-green)}.RoundGauge__alert--teal{fill:var(--color-teal)}.RoundGauge__alert--blue{fill:var(--color-blue)}.RoundGauge__alert--violet{fill:var(--color-violet)}.RoundGauge__alert--purple{fill:var(--color-purple)}.RoundGauge__alert--pink{fill:var(--color-pink)}.RoundGauge__alert--brown{fill:var(--color-brown)}.RoundGauge__alert--gold{fill:var(--color-gold)}.RoundGauge__alert--black{fill:var(--color-black)}.RoundGauge__alert--white{fill:var(--color-white)}.RoundGauge__alert--grey,.RoundGauge__alert--gray{fill:var(--color-grey)}.RoundGauge__alert--light-grey,.RoundGauge__alert--light-gray{fill:var(--color-light-grey)}.RoundGauge__alert--primary{fill:var(--color-primary)}.RoundGauge__alert--good{fill:var(--color-good)}.RoundGauge__alert--average{fill:var(--color-average)}.RoundGauge__alert--bad{fill:var(--color-bad)}.RoundGauge__alert--label{fill:var(--color-label)}.Section{margin-bottom:var(--space-m);background-color:var(--section-background);box-sizing:border-box;scrollbar-color:var(--color-scrollbar-thumb)transparent;position:relative}.Section:last-child{margin-bottom:0}.Section__title{padding:var(--space-m);border-bottom:var(--section-separator-thickness)solid var(--section-separator-color);position:relative}.Section__titleText{color:var(--section-title-color);font-size:1.16667em;font-weight:700}.Section__buttons{right:var(--space-m);margin-top:calc(-1*var(--space-xxs));display:inline-block;position:absolute}.Section__rest{position:relative}.Section__content{padding:var(--space-ml)var(--space-m)}.Section--fitted>.Section__rest>.Section__content{padding:0}.Section--fill{flex-direction:column;height:100%;display:flex}.Section--fill>.Section__rest{flex-grow:1}.Section--fill>.Section__rest>.Section__content{height:100%}.Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;bottom:0;left:0;right:0}.Section--scrollable{overflow:hidden}.Section--scrollable>.Section__rest>.Section__content{overflow-x:hidden;overflow-y:auto}.Section--scrollableHorizontal{overflow:hidden}.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-x:auto;overflow-y:hidden}.Section--scrollable.Section--scrollableHorizontal{overflow:hidden}.Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow:auto}.Section .Section{margin:0 calc(-1*var(--space-m));background-color:transparent}.Section .Section:first-child{margin-top:calc(-1*var(--space-m))}.Section .Section .Section__titleText{font-size:1.08333em}.Section .Section .Section .Section__titleText{font-size:1em}.Section--flex{flex-flow:column;display:flex}.Section--flex .Section__content{flex-grow:1;overflow:auto}.Section__content--noTopPadding{padding-top:0}.Section__content--stretchContents{height:calc(100% - 3rem)}.Slider{cursor:e-resize;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.Slider--editing .Slider__cursor:before{display:none}.Slider__cursor{inset:0 calc(-1*var(--space-xxs));left:unset;border-left:var(--border-thickness-small)solid var(--slider-cursor-color);border-radius:var(--border-radius-circular);position:absolute}.Slider__cursorOffset{position:absolute;top:0;bottom:0;left:0;right:0;transition:none!important}.Slider__cursor:before{content:"";aspect-ratio:1;border-left:inherit;transform-origin:50%;position:absolute;bottom:0;right:0;transform:scale(4)translateY(50%)rotate(45deg);-webkit-mask-image:linear-gradient(135deg,#000 50%,transparent 50%);mask-image:linear-gradient(135deg,#000 50%,transparent 50%)}.Slider__popupValue{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;padding:var(--space-s)var(--space-m);background-color:var(--slider-popup-background);color:var(--slider-popup-color);border-radius:var(--slider-popup-border-radius);-webkit-backdrop-filter:var(--slider-popup-blur);backdrop-filter:var(--slider-popup-blur);font-size:1em;position:absolute;top:-2em;right:0;transform:translate(50%)}.Slider .NumberInput__input{width:auto;height:auto;top:2px;bottom:2px;left:2px;right:2px}.Stack{gap:.5em}.Stack--fill{height:100%}.Stack--zebra>.Stack__item:nth-child(odd){background-color:var(--candystripe-odd)}.Stack--horizontal>.Stack__divider:not(.Stack__divider--hidden){border-left:var(--divider-border)}.Stack--vertical>.Stack__divider:not(.Stack__divider--hidden){border-top:var(--divider-border)}.Table{border-collapse:collapse;border-spacing:0;width:100%;margin:0;display:table}.Table--collapsing{width:auto}.Table__row{display:table-row}.Table__cell{padding:0 var(--space-s);display:table-cell}.Table__cell:first-child{padding-left:0}.Table__cell:last-child{padding-right:0}.Table__row--header .Table__cell,.Table__cell--header{padding-bottom:var(--space-m);font-weight:700}.Table__cell--collapsing{white-space:nowrap;width:1%}.Tabs{background-color:var(--tabs-container-background);align-items:stretch;display:flex;position:relative;overflow:hidden}.Tabs--fill{height:100%}.Tabs--vertical{padding:var(--space-s)0 var(--space-s)var(--space-s);flex-direction:column}.Tabs--horizontal{margin-bottom:var(--space-m);padding:var(--space-s)var(--space-s)0}.Tabs--horizontal:last-child{margin-bottom:0}.Tabs__Tab{flex-grow:0}.Tabs--fluid .Tabs__Tab{flex-grow:1}.Tab{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:var(--cursor-pointer);background-color:var(--tab-background);color:var(--tab-color);min-width:4em;min-height:2.25em;transition-property:background-color,color;transition-duration:var(--tab-transition);justify-content:space-between;align-items:center;display:flex}.Tab:not(.Tab--selected):hover{background-color:var(--tab-background-hover)}.Tab:not(.Tab--selected):active{color:var(--tab-color-selected)}.Tab--selected{cursor:var(--cursor-default);background-color:var(--tab-background-selected);color:var(--tab-color-selected)}.Tab .Tab__text{margin:0 var(--space-m);flex-grow:1}.Tab__left{text-align:center;min-width:1.5em;margin-left:var(--space-s)}.Tab__right{text-align:center;min-width:1.5em;margin-right:var(--space-s)}.Tabs--horizontal .Tab{border-top-left-radius:var(--tab-border-radius);border-top-right-radius:var(--tab-border-radius);padding-bottom:var(--tab-indicator-size);position:relative}.Tabs--horizontal .Tab:before{content:"";transition:transform var(--tab-transition);width:100%;height:var(--tab-indicator-size);background-color:currentColor;position:absolute;bottom:0;transform:scaleX(0)}.Tabs--horizontal .Tab--selected:before{transform:scaleX(.99999)!important}.Tabs--vertical .Tab{border-top-left-radius:var(--tab-border-radius);border-bottom-left-radius:var(--tab-border-radius);min-height:2em;padding-right:var(--tab-indicator-size);position:relative}.Tabs--vertical .Tab:before{content:"";transition:transform var(--tab-transition);width:var(--tab-indicator-size);background-color:currentColor;height:100%;position:absolute;right:0;transform:scaleY(0)}.Tabs--vertical .Tab--selected:before{transform:scaleY(.99999)!important}.Tabs--scrollable{--mask-width:3.25em;--mask-left:0rem;--mask-right:0rem;padding:0;display:grid}.Tabs--scrollable-content{scrollbar-width:none;overscroll-behavior:none;padding:var(--space-s)var(--space-s)0;-webkit-mask-image:linear-gradient(90deg,transparent calc(var(--mask-left)*.66),black calc(0% + var(--mask-left)),black calc(100% - var(--mask-right)),transparent calc(100% - var(--mask-right)*.66));mask-image:linear-gradient(90deg,transparent calc(var(--mask-left)*.66),black calc(0% + var(--mask-left)),black calc(100% - var(--mask-right)),transparent calc(100% - var(--mask-right)*.66));flex-wrap:nowrap;display:flex;overflow:auto}.Tabs--scrollable-content.scrollable-left.scrollable-right{--mask-left:var(--mask-width);--mask-right:var(--mask-width)}.Tabs--scrollable-content.scrollable-left{--mask-left:var(--mask-width)}.Tabs--scrollable-content.scrollable-right{--mask-right:var(--mask-width)}.Tabs--scrollable .scroll-left,.Tabs--scrollable .scroll-right{z-index:1;border-radius:0;align-content:center;height:100%;margin:0;position:absolute;top:0}.Tabs--scrollable .scroll-left{left:0}.Tabs--scrollable .scroll-right{right:0}.Tabs--scrollable .Tab{flex-shrink:0}.Tab--selected.Tab--color--red{color:hsl(from var(--color-red)h s calc(l + 17.5))}.Tab--selected.Tab--color--orange{color:hsl(from var(--color-orange)h s calc(l + 17.5))}.Tab--selected.Tab--color--yellow{color:hsl(from var(--color-yellow)h s calc(l + 17.5))}.Tab--selected.Tab--color--olive{color:hsl(from var(--color-olive)h s calc(l + 17.5))}.Tab--selected.Tab--color--green{color:hsl(from var(--color-green)h s calc(l + 17.5))}.Tab--selected.Tab--color--teal{color:hsl(from var(--color-teal)h s calc(l + 17.5))}.Tab--selected.Tab--color--blue{color:hsl(from var(--color-blue)h s calc(l + 17.5))}.Tab--selected.Tab--color--violet{color:hsl(from var(--color-violet)h s calc(l + 17.5))}.Tab--selected.Tab--color--purple{color:hsl(from var(--color-purple)h s calc(l + 17.5))}.Tab--selected.Tab--color--pink{color:hsl(from var(--color-pink)h s calc(l + 17.5))}.Tab--selected.Tab--color--brown{color:hsl(from var(--color-brown)h s calc(l + 17.5))}.Tab--selected.Tab--color--gold{color:hsl(from var(--color-gold)h s calc(l + 17.5))}.Tab--selected.Tab--color--black{color:hsl(from var(--color-black)h s calc(l + 17.5))}.Tab--selected.Tab--color--white{color:hsl(from var(--color-white)h s calc(l + 17.5))}.Tab--selected.Tab--color--grey,.Tab--selected.Tab--color--gray{color:hsl(from var(--color-grey)h s calc(l + 17.5))}.Tab--selected.Tab--color--light-grey,.Tab--selected.Tab--color--light-gray{color:hsl(from var(--color-light-grey)h s calc(l + 17.5))}.Tab--selected.Tab--color--primary{color:hsl(from var(--color-primary)h s calc(l + 17.5))}.Tab--selected.Tab--color--good{color:hsl(from var(--color-good)h s calc(l + 17.5))}.Tab--selected.Tab--color--average{color:hsl(from var(--color-average)h s calc(l + 17.5))}.Tab--selected.Tab--color--bad{color:hsl(from var(--color-bad)h s calc(l + 17.5))}.Tab--selected.Tab--color--label{color:hsl(from var(--color-label)h s calc(l + 17.5))}.Section .Tabs{background-color:transparent}.Section:not(.Section--fitted) .Tabs{margin:0 calc(-1*var(--space-m))var(--space-m)}.Section:not(.Section--fitted) .Tabs:first-child{margin-top:calc(-1*var(--space-m))}.TextArea{resize:none;scrollbar-width:thin;scrollbar-gutter:stable;scrollbar-color:var(--color-scrollbar-thumb)transparent}.Tooltip{-webkit-backdrop-filter:var(--tooltip-blur);backdrop-filter:var(--tooltip-blur);background-color:var(--tooltip-background);border-radius:var(--tooltip-border-radius);color:var(--tooltip-color);max-width:20.8333em;padding:var(--space-m)var(--space-l);pointer-events:none;text-align:left;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5)}html,body{box-sizing:border-box;height:100%;font-size:var(--font-size,12px);color:var(--color-text,#fff);scrollbar-color:var(--color-scrollbar-thumb)var(--color-scrollbar-base);margin:0}html{cursor:var(--cursor-default,default);overflow:hidden}body{font-family:var(--font-family,Verdana,Geneva,sans-serif);overflow:auto}img{image-rendering:pixelated}*,:before,:after{box-sizing:inherit}h1,h2,h3,h4,h5,h6{padding:var(--space-m,6px)0;padding:var(--space-m,.5rem)0;margin:0;display:block}h1{font-size:1.5rem}h2{font-size:1.333rem}h3{font-size:1.167rem}h4{font-size:1rem}td,th{vertical-align:baseline;text-align:left}:where(.candystripe:nth-child(odd)){background-color:var(--candystripe-odd)}:where(.candystripe:nth-child(2n)){background-color:var(--candystripe-even)}.color-black{color:hsl(from var(--color-black)h s calc(l + var(--adjust-color)))!important}.color-white{color:hsl(from var(--color-white)h s calc(l + var(--adjust-color)))!important}.color-red{color:hsl(from var(--color-red)h s calc(l + var(--adjust-color)))!important}.color-orange{color:hsl(from var(--color-orange)h s calc(l + var(--adjust-color)))!important}.color-yellow{color:hsl(from var(--color-yellow)h s calc(l + var(--adjust-color)))!important}.color-olive{color:hsl(from var(--color-olive)h s calc(l + var(--adjust-color)))!important}.color-green{color:hsl(from var(--color-green)h s calc(l + var(--adjust-color)))!important}.color-teal{color:hsl(from var(--color-teal)h s calc(l + var(--adjust-color)))!important}.color-blue{color:hsl(from var(--color-blue)h s calc(l + var(--adjust-color)))!important}.color-violet{color:hsl(from var(--color-violet)h s calc(l + var(--adjust-color)))!important}.color-purple{color:hsl(from var(--color-purple)h s calc(l + var(--adjust-color)))!important}.color-pink{color:hsl(from var(--color-pink)h s calc(l + var(--adjust-color)))!important}.color-brown{color:hsl(from var(--color-brown)h s calc(l + var(--adjust-color)))!important}.color-grey,.color-gray{color:hsl(from var(--color-grey)h s calc(l + var(--adjust-color)))!important}.color-light-grey,.color-light-gray{color:hsl(from var(--color-light-grey)h s calc(l + var(--adjust-color)))!important}.color-good{color:hsl(from var(--color-good)h s calc(l + var(--adjust-color)))!important}.color-average{color:hsl(from var(--color-average)h s calc(l + var(--adjust-color)))!important}.color-bad{color:hsl(from var(--color-bad)h s calc(l + var(--adjust-color)))!important}.color-label{color:hsl(from var(--color-label)h s calc(l + var(--adjust-color)))!important}.color-bg-black{background-color:hsl(from var(--color-black)h s calc(l - var(--adjust-color)))!important}.color-bg-white{background-color:hsl(from var(--color-white)h s calc(l - var(--adjust-color)))!important}.color-bg-red{background-color:hsl(from var(--color-red)h s calc(l - var(--adjust-color)))!important}.color-bg-orange{background-color:hsl(from var(--color-orange)h s calc(l - var(--adjust-color)))!important}.color-bg-yellow{background-color:hsl(from var(--color-yellow)h s calc(l - var(--adjust-color)))!important}.color-bg-olive{background-color:hsl(from var(--color-olive)h s calc(l - var(--adjust-color)))!important}.color-bg-green{background-color:hsl(from var(--color-green)h s calc(l - var(--adjust-color)))!important}.color-bg-teal{background-color:hsl(from var(--color-teal)h s calc(l - var(--adjust-color)))!important}.color-bg-blue{background-color:hsl(from var(--color-blue)h s calc(l - var(--adjust-color)))!important}.color-bg-violet{background-color:hsl(from var(--color-violet)h s calc(l - var(--adjust-color)))!important}.color-bg-purple{background-color:hsl(from var(--color-purple)h s calc(l - var(--adjust-color)))!important}.color-bg-pink{background-color:hsl(from var(--color-pink)h s calc(l - var(--adjust-color)))!important}.color-bg-brown{background-color:hsl(from var(--color-brown)h s calc(l - var(--adjust-color)))!important}.color-bg-grey,.color-bg-gray{background-color:hsl(from var(--color-grey)h s calc(l - var(--adjust-color)))!important}.color-bg-light-grey,.color-bg-light-gray{background-color:hsl(from var(--color-light-grey)h s calc(l - var(--adjust-color)))!important}.color-bg-good{background-color:hsl(from var(--color-good)h s calc(l - var(--adjust-color)))!important}.color-bg-average{background-color:hsl(from var(--color-average)h s calc(l - var(--adjust-color)))!important}.color-bg-bad{background-color:hsl(from var(--color-bad)h s calc(l - var(--adjust-color)))!important}.color-bg-label{background-color:hsl(from var(--color-label)h s calc(l - var(--adjust-color)))!important}.debug-layout,.debug-layout :not(g):not(path){color:rgba(255,255,255,.9)!important;box-shadow:none!important;-webkit-filter:none!important;filter:none!important;background:0 0!important;outline:1px solid rgba(255,255,255,.5)!important}.debug-layout:hover,.debug-layout :not(g):not(path):hover{outline-color:rgba(255,255,255,.8)!important}.outline-dotted{outline-style:dotted!important}.outline-dashed{outline-style:dashed!important}.outline-solid{outline-style:solid!important}.outline-double{outline-style:double!important}.outline-groove{outline-style:groove!important}.outline-ridge{outline-style:ridge!important}.outline-inset{outline-style:inset!important}.outline-outset{outline-style:outset!important}.outline-color-black{outline:var(--border-thickness-small)solid hsl(from var(--color-black)h s calc(l + var(--adjust-color)))!important}.outline-color-white{outline:var(--border-thickness-small)solid hsl(from var(--color-white)h s calc(l + var(--adjust-color)))!important}.outline-color-red{outline:var(--border-thickness-small)solid hsl(from var(--color-red)h s calc(l + var(--adjust-color)))!important}.outline-color-orange{outline:var(--border-thickness-small)solid hsl(from var(--color-orange)h s calc(l + var(--adjust-color)))!important}.outline-color-yellow{outline:var(--border-thickness-small)solid hsl(from var(--color-yellow)h s calc(l + var(--adjust-color)))!important}.outline-color-olive{outline:var(--border-thickness-small)solid hsl(from var(--color-olive)h s calc(l + var(--adjust-color)))!important}.outline-color-green{outline:var(--border-thickness-small)solid hsl(from var(--color-green)h s calc(l + var(--adjust-color)))!important}.outline-color-teal{outline:var(--border-thickness-small)solid hsl(from var(--color-teal)h s calc(l + var(--adjust-color)))!important}.outline-color-blue{outline:var(--border-thickness-small)solid hsl(from var(--color-blue)h s calc(l + var(--adjust-color)))!important}.outline-color-violet{outline:var(--border-thickness-small)solid hsl(from var(--color-violet)h s calc(l + var(--adjust-color)))!important}.outline-color-purple{outline:var(--border-thickness-small)solid hsl(from var(--color-purple)h s calc(l + var(--adjust-color)))!important}.outline-color-pink{outline:var(--border-thickness-small)solid hsl(from var(--color-pink)h s calc(l + var(--adjust-color)))!important}.outline-color-brown{outline:var(--border-thickness-small)solid hsl(from var(--color-brown)h s calc(l + var(--adjust-color)))!important}.outline-color-grey,.outline-color-gray{outline:var(--border-thickness-small)solid hsl(from var(--color-grey)h s calc(l + var(--adjust-color)))!important}.outline-color-light-grey,.outline-color-light-gray{outline:var(--border-thickness-small)solid hsl(from var(--color-light-grey)h s calc(l + var(--adjust-color)))!important}.outline-color-good{outline:var(--border-thickness-small)solid hsl(from var(--color-good)h s calc(l + var(--adjust-color)))!important}.outline-color-average{outline:var(--border-thickness-small)solid hsl(from var(--color-average)h s calc(l + var(--adjust-color)))!important}.outline-color-bad{outline:var(--border-thickness-small)solid hsl(from var(--color-bad)h s calc(l + var(--adjust-color)))!important}.outline-color-label{outline:var(--border-thickness-small)solid hsl(from var(--color-label)h s calc(l + var(--adjust-color)))!important}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-baseline{text-align:baseline}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-pre{white-space:pre}.text-bold{font-weight:700}.text-italic{font-style:italic}.text-underline{text-decoration:underline}.Chat{color:var(--chat-text-color)}.Chat__badge{color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#db143c;border-radius:10px;min-width:.5em;padding:.2em .3em;font-size:.7em;line-height:1;transition:font-size .2s ease-out;display:inline-block}.Chat__badge:before{content:"x"}.Chat__badge--animate{font-size:.9em;transition:font-size}.Chat__scrollButton{position:fixed;bottom:1em;right:2em}.Chat__reconnected{text-align:center;margin:1em 0 2em;font-size:.85em}.Chat__reconnected:before{content:"Reconnected";color:var(--reconnect-text,var(--color-red));background-color:var(--reconnect-background,var(--color-section));border-radius:1em;padding:0 .7em;display:inline-block}.Chat__reconnected:after{content:"";border-bottom:.166667em solid var(--color-red);margin-top:-.75em;display:block}.Chat__highlight{color:var(--color-black)}.Chat__highlight--restricted{color:#fff;background-color:#a00;font-weight:700}.ChatMessage{word-wrap:break-word}.ChatMessage--highlighted{border-left:.166667em solid #ffe045;padding-left:.5em;position:relative}.ChatMessage--highlighted:after{content:"";pointer-events:none;background-color:rgba(255,224,69,.1);position:absolute;top:0;bottom:0;left:0;right:0}.Ping{padding:var(--space-xs)var(--space-sm);border:var(--border-thickness-tiny)solid hsl(from var(--color-border-primary)h 10 50/.33);border-radius:var(--border-radius-medium);text-align:right;min-width:4em;max-width:5em;position:relative}.Ping__indicator{content:"";top:var(--space-m);left:var(--space-m);border-radius:var(--border-radius-medium);background-color:#888;width:.5em;height:.5em;position:absolute}.Notifications{position:absolute;top:1em;left:1em;right:2em}.Notification{color:#fff;background-color:#db143c;margin:1em 0;padding:.5em}.Notification:first-child{margin-top:0}.Notification:last-child{margin-bottom:0}.UnreadCount{pointer-events:none;top:calc(-1*var(--space-s));right:calc(-1*var(--space-s));padding:0 var(--space-s);border-radius:var(--border-radius-small);background-color:var(--color-red);color:var(--color-white);font-size:.65em;line-height:1.25em;position:absolute}.Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.Layout__content--scrollable{margin-bottom:0;overflow-y:auto}.Window{color:var(--color-text);background-color:var(--color-base);background-image:linear-gradient(to bottom,var(--color-base-start)0%,var(--color-base-end)100%);position:fixed;top:0;bottom:0;left:0;right:0}.Window__rest{position:fixed;top:2.66667rem;bottom:0;left:0;right:0}.Window__contentPadding{height:calc(100% - 1rem);margin:.5rem}.Window__contentPadding:after{height:0}.Layout__content--scrollable .Window__contentPadding:after{content:"";height:.5rem;display:block}.Window__dimmer{pointer-events:none;background-color:hsl(from var(--color-base)h s calc(l + 15)/.25);position:fixed;top:0;bottom:0;left:0;right:0}.Window__resizeHandle__se{cursor:var(--cursor-se-resize);width:1.66667rem;height:1.66667rem;position:fixed;bottom:0;right:0}.Window__resizeHandle__s{cursor:var(--cursor-s-resize);height:.5rem;position:fixed;bottom:0;left:0;right:0}.Window__resizeHandle__e{cursor:var(--cursor-e-resize);width:.25rem;position:fixed;top:0;bottom:0;right:0}img{margin:0;padding:0;line-height:1}img.icon{vertical-align:bottom;width:auto;min-width:16px;height:1em;min-height:16px}a{color:#397ea5}em{font-style:normal;font-weight:700}h1,h2,h3,h4,h5,h6{color:#a4bad6;font-family:Georgia,Verdana,sans-serif}.emoji{max-width:16px;max-height:16px}.emoji16x16{vertical-align:middle}.italic,.italics,.emote{font-style:italic}.bold{font-weight:700}.bolditalics{font-style:italic;font-weight:700}.center{text-align:center}.big{font-size:150%}.reallybig{font-size:175%}.sans{font-family:Comic Sans MS,cursive,sans-serif}.wingdings{font-family:Wingdings,Webdings}.robot{font-family:OCR-A,monospace;font-size:1.15em;font-weight:700}.robotemote{color:#6685f5;font-family:OCR-A,monospace;font-size:1.15em;font-style:italic;font-weight:700}.hidden{visibility:hidden;display:none}.motd{color:#a4bad6;white-space:normal;font-family:Verdana,sans-serif}.motd h1,.motd h2,.motd h3,.motd h4,.motd h5,.motd h6{color:#a4bad6;text-decoration:underline}.motd a,.motd a:link,.motd a:active,.motd a:hover{color:#a4bad6}.memo{color:#638500;text-align:center}.memoedit{text-align:center;font-size:75%}.ooc{font-weight:700}.looc{color:#69c;font-weight:700}.discordpm{color:#6685f5}.debug{color:#6d2f83}.deadsay{color:#e2c1ff}.darkmblue{color:#6685f5}.prefix,.name,.yell{font-weight:700}.mentorhelp{color:#07b;font-weight:700}.mentor_channel{color:#b4af13;font-weight:700}.mentor_channel_admin{color:#f1ec50;font-weight:700}.admin{color:#386aff;font-weight:700}.adminhelp{color:#a00;font-weight:700}.adminticket{color:#3daf21;font-weight:700}.adminticketalt{color:#ccb847;font-weight:700}.admin_channel{color:#03fc9d;font-weight:700}.all_admin_ping{color:#12a5f4;text-align:center;font-size:120%;font-weight:700}.dev_channel{color:#61b413;font-weight:700}.dev_channel_admin{color:#9ef14f;font-weight:700}.staff_channel{color:#775bff;font-weight:700}.staff_channel_admin{color:#a35cff;font-weight:700}.radio{color:#20b142}.deptradio{color:#939}.comradio{color:#5f5cff}.syndradio{color:#8f4a4b}.dsquadradio{color:#998599}.airadio{color:#ff5ed7}.centradio{color:#2681a5}.secradio{color:#dd3535}.engradio{color:#feac20}.medradio{color:#00b5ad}.sciradio{color:#c68cfa}.supradio{color:#b88646}.srvradio{color:#bbd164}.proradio{color:#b84f92}.alert{color:#d82020}h1.alert,h2.alert{color:#a4bad6}.ghostalert{color:#cc00c6;font-style:italic;font-weight:700}.warning{color:#c51e1e;font-style:italic}.boldwarning{color:#c51e1e;font-style:italic;font-weight:700}.danger{color:#c51e1e;font-weight:700}.biggerdanger{color:red;font-size:150%;font-weight:700}.userdanger{color:#c51e1e;font-size:120%;font-weight:700}.attack{color:red}.disarm{color:#900}.moderate{color:#c00}.notice{color:#6685f5}.boldnotice{color:#6685f5;font-weight:700}.subtle{color:#8a72c5;font-size:85%;font-style:italic}.suicide{color:#ff5050;font-style:italic}.announcement h1,.announcement h2{color:#a4bad6;margin:8pt 0;line-height:1.2}.announcement p{color:#d82020;line-height:1.3}.announcement.minor h1{font-size:180%}.announcement.minor h2{font-size:170%}.announcement.sec h1{color:red;font-family:Verdana,sans-serif;font-size:180%}.boldannounceic,.boldannounceooc,.pr_announce{color:#c51e1e;font-weight:700}.greenannounce{color:#059223;font-weight:700}.alien{color:#c433c4}.noticealien{color:#00c000}.alertalien{color:#00c000;font-weight:700}.terrorspider{color:#cf52fa}.dantalion{color:#8b2c5e}.chaosverygood{color:#19e0c0;font-size:120%;font-weight:700}.chaosgood{color:#19e0c0;font-weight:700}.chaosneutral{color:#479ac0;font-weight:700}.chaosbad{color:#9047c0;font-weight:700}.chaosverybad{color:#9047c0;font-size:120%;font-weight:700}.sinister{color:purple;font-style:italic;font-weight:700}.blob{color:#ee4000;font-style:italic}.revennotice{color:#6685f5}.revenbignotice{color:#6685f5;font-size:120%;font-weight:700}.revenminor{color:#823abb}.revenwarning{color:#760fbb;font-style:italic}.revendanger{color:#760fbb;font-size:120%;font-weight:700}.changeling{color:#00b4de}.abductor{color:purple;font-style:italic}.mind_control{color:#a00d6f;font-size:120%;font-style:italic;font-weight:700}.cult{color:purple;font-style:italic;font-weight:700}.cultspeech{color:#af0000;font-style:italic}.cultitalic{color:#a60000;font-style:italic}.cultlarge{color:#a60000;font-size:120%;font-weight:700}.narsie{color:#a60000;font-size:300%;font-weight:700}.narsiesmall{color:#a60000;font-size:200%;font-weight:700}.his_grace{color:#15d512;font-family:Courier New,cursive,sans-serif;font-style:italic}.zombielarge{color:#7c4848;font-size:120%;font-weight:700}.colossus{color:#7f282a;font-size:175%}.hierophant{color:#609;font-style:italic;font-weight:700}.hierophant_warning{color:#609;font-style:italic}.tajaran{color:#803b56}.skrell{color:#00ced1}.solcom{color:#8282fb}.com_cygni{color:#7c4848}.zombie{color:red}.soghun{color:#228b22}.vox{color:#a0a}.diona{color:#804000;font-weight:700}.trinary{color:#727272}.kidan{color:#c64c05}.slime{color:#07a}.drask{color:#a3d4eb;font-family:Arial Black}.moth{color:#869b29;font-family:Copperplate}.clown{color:red}.vulpkanin{color:#b97a57}.gutter{color:#7092be;font-family:Trebuchet MS,cursive,sans-serif}.tradeband{font-family:Georgia,Verdana,sans-serif}.rose{color:#ff5050}.interface{color:#9031c4}.greentext{color:#0f0;font-size:150%}.redtext{color:red;font-size:150%}.red{color:red}.green{color:#03bb39}.purple{color:#9031c4}.orange{color:orange}.resonate{color:#298f85}.healthscan_oxy{color:#5cc9ff}.specialnotice{color:#4a6f82;font-size:120%;font-weight:700}.whisper{color:#ccc;font-style:italic}span.body .codephrases{color:#55f}span.body .coderesponses{color:#f33}.oxygen{color:#449dff}.nitrogen{color:#f94541}.carbon_dioxide{color:#ccc}.plasma{color:#eb6b00}.sleeping_agent{color:#f28b89}.agent_b{color:teal}.hydrogen{color:#997379}.water_vapor{color:#483d8b}.boxed_message{text-align:center;background:#17191c;border:.0833333em solid rgba(166,183,217,.25);border-width:.0833333em .416667em;border-radius:.5em;margin:.5em .25em;padding:.5em .75em}.boxed_message.red_border{background:#1f1414;border-color:rgba(255,0,0,.5)}.boxed_message.green_border{background:#141f18;border-color:rgba(0,255,0,.5)}.boxed_message.purple_border{background:#1d1828;border-color:rgba(170,128,255,.5)}.boxed_message.notice_border{background:#14181f;border-color:rgba(85,126,246,.5)}.boxed_message.thick_border{border-width:.5em}.boxed_message.left_align_text{text-align:left}:root{--chat-text-color:#b3cce6;--color-base:#202020;--color-section:hsl(from var(--color-base)h s calc(l - 4.2));--base-gradient-spread:0}.theme-light:root{--chat-text-color:var(--color-black);--color-base:#ededed;--color-section:var(--color-white);--color-text:var(--color-black);--color-label:#545454;--color-action:#e6e6e6;--color-scrollbar-thumb:var(--color-light-gray);--primary-lightness:60%;--primary-saturation:60%;--border-primary-alpha:.66;--button-background-selected:hsl(from var(--color-primary)h 100 l);--button-background-caution:#b85a0a;--button-background-danger:#990;--tab-color-selected:var(--color-black);--input-background:var(--color-base);--tooltip-background-lightness:90}.theme-light:root a,.theme-light:root h1,.theme-light:root h2,.theme-light:root h3,.theme-light:root h4,.theme-light:root h5,.theme-light:root h6{color:#00f}.theme-light:root .motd,.theme-light:root .motd h1,.theme-light:root .motd h2,.theme-light:root .motd h3,.theme-light:root .motd h4,.theme-light:root .motd h5,.theme-light:root .motd h6,.theme-light:root .motd a,.theme-light:root .motd a:link,.theme-light:root .motd a:active,.theme-light:root .motd a:hover{color:#638500}.theme-light:root .looc{color:#69c}.theme-light:root .discordpm{color:#00f}.theme-light:root .debug{color:#6d2f83}.theme-light:root .deadsay{color:#5c00e6}.theme-light:root .darkmblue{color:#00f}.theme-light:root .mentorhelp{color:#07b}.theme-light:root .mentor_channel{color:#5e6812}.theme-light:root .mentor_channel_admin{color:#94a419}.theme-light:root .adminhelp{color:#a00}.theme-light:root .adminticket{color:#3e7336}.theme-light:root .adminticketalt{color:#014c8a}.theme-light:root .admin_channel{color:#9a04d1}.theme-light:root .all_admin_ping{color:#12a5f4}.theme-light:root .dev_channel{color:#126719}.theme-light:root .dev_channel_admin{color:#26a419}.theme-light:root .staff_channel{color:#775bff}.theme-light:root .staff_channel_admin{color:#a35cff}.theme-light:root .radio{color:#408010}.theme-light:root .deptradio{color:#939}.theme-light:root .comradio{color:#204090}.theme-light:root .syndradio{color:#6d3f40}.theme-light:root .dsquadradio{color:#686868}.theme-light:root .airadio{color:#f0f}.theme-light:root .centradio{color:#5c5c7c}.theme-light:root .secradio{color:#a30000}.theme-light:root .engradio{color:#a66300}.theme-light:root .medradio{color:#009190}.theme-light:root .sciradio{color:#939}.theme-light:root .supradio{color:#7f6539}.theme-light:root .srvradio{color:#80a000}.theme-light:root .proradio{color:#e3027a}.theme-light:root .alert{color:red}.theme-light:root h1.alert,.theme-light:root h2.alert{color:#000}.theme-light:root .ghostalert{color:#5c00e6}.theme-light:root .warning,.theme-light:root .boldwarning,.theme-light:root .danger,.theme-light:root .userdanger{color:red}.theme-light:root .notice,.theme-light:root .boldnotice{color:#009}.theme-light:root .subtle{color:#009;font-size:85%;font-style:italic}.theme-light:root .announcement h1,.theme-light:root .announcement h2{color:#000}.theme-light:root .announcement.sec h1,.theme-light:root .boldannounceic,.theme-light:root .boldannounceooc{color:red}.theme-light:root .pr_announce{color:#228b22}.theme-light:root .greenannounce{color:#0f0}.theme-light:root .alien{color:#543354}.theme-light:root .terrorspider{color:#320e32}.theme-light:root .dantalion{color:#6a2148}.theme-light:root .revennotice,.theme-light:root .revenbignotice{color:#1d2953}.theme-light:root .changeling{color:purple}.theme-light:root .cultspeech{color:#7f0000}.theme-light:root .cultitalic,.theme-light:root .cultlarge,.theme-light:root .narsie,.theme-light:root .narsiesmall{color:#960000}.theme-light:root .rose{color:#ff5050}.theme-light:root .interface{color:#303}.theme-light:root .purple{color:#5e2d79}.theme-light:root .orange{color:orange}.theme-light:root .healthscan_oxy{color:#0074bd}.theme-light:root .specialnotice{color:#36525e}.theme-light:root .whisper{color:#333}.theme-light:root span.body .codephrases{color:#00f}.theme-light:root span.body .coderesponses{color:red}.theme-light:root .oxygen{color:#006adb}.theme-light:root .nitrogen{color:#d00a06}.theme-light:root .carbon_dioxide{color:#1f1f1f}.theme-light:root .plasma{color:#853c00}.theme-light:root .sleeping_agent{color:#e82f2c}.theme-light:root .agent_b{color:#004d4d}.theme-light:root .hydrogen{color:#997379}.theme-light:root .water_vapor{color:#004080}.theme-light:root .boxed_message{background:#f2f7ff;border-color:rgba(16,48,112,.5)}.theme-light:root .boxed_message.red_border{background:#fff2f2;border-color:rgba(255,0,0,.5)}.theme-light:root .boxed_message.green_border{background:#f2fff7;border-color:rgba(0,168,0,.5)}.theme-light:root .boxed_message.purple_border{background:#f7f2ff;border-color:rgba(85,0,255,.5)}.theme-light:root .boxed_message.notice_border{background:#f2f7ff;border-color:rgba(0,64,255,.5)}.theme-ntos:root{--color-base:#1b2532;--color-section:#121821;--color-primary:#476385}.theme-ntos:root .boxed_message{background:#1d2330}.theme-ntos:root .boxed_message.red_border{background:#301d1d}.theme-ntos:root .boxed_message.green_border{background:#1d3023}.theme-ntos:root .boxed_message.purple_border{background:#231d30}.theme-ntos:root .boxed_message.notice_border{background:#192234}.theme-syndicate:root{--color-base:#4d0202;--color-section:#2b0101;--color-primary:#3b783b;--color-label:#ad8585;--button-background-selected:#b60a0a;--button-background-caution:#ba5e0d;--button-background-danger:#969900;--notice-box-background:#8d0101;--notice-box-color:var(--color-text-fixed-white);--progress-bar-background:rgba(0,0,0,.5);--tooltip-background-lightness:25}.theme-syndicate:root .adminooc{color:#29ccbe}.theme-syndicate:root .debug{color:#8f39e6}.theme-syndicate:root .boxed_message{background:#360a0a}.theme-syndicate:root .boxed_message.red_border{background:#400000}.theme-syndicate:root .boxed_message.green_border{background:#261a00}.theme-syndicate:root .boxed_message.purple_border{background:#260026}.theme-syndicate:root .boxed_message.notice_border{background:#260016}.theme-paradise:root{--color-base:#8a0f38;--color-section:rgba(0,0,0,.5);--color-base-start:#7e014a;--color-base-end:#8a4d0f;--color-primary:#1f7a7a;--color-label:#ad9685;--reconnect-background:#d92626;--reconnect-text:var(--color-text);--input-border-color:#e85e30;--button-background-selected:#cf6e3d;--button-background-danger:#93f}.theme-paradise:root .adminooc{color:#29ccbe}.theme-paradise:root .debug{color:#8f39e6}.theme-paradise:root .boxed_message{background:rgba(0,0,0,.25);border-color:rgba(223,181,159,.25)}.theme-paradise:root .boxed_message.red_border{background:rgba(22,3,3,.25);border-color:rgba(255,0,0,.5)}.theme-paradise:root .boxed_message.green_border{background:rgba(3,22,10,.25);border-color:rgba(0,255,0,.5)}.theme-paradise:root .boxed_message.purple_border{background:rgba(10,3,22,.25);border-color:rgba(136,77,255,.5)}.theme-paradise:root .boxed_message.notice_border{background:rgba(3,10,22,.25);border-color:rgba(85,126,246,.5)} \ No newline at end of file +:root{--color-base:#262626;--color-section:rgba(0,0,0,.33);--color-secondary:hsl(from var(--color-base)var(--secondary-hue)var(--secondary-saturation)calc(l + var(--secondary-lightness-adjustment)));--secondary-hue:h;--secondary-saturation:s;--secondary-lightness-adjustment:7.5;--base-gradient-spread:2;--color-base-start:hsl(from var(--color-base)h s calc(l + var(--base-gradient-spread)));--color-base-end:hsl(from var(--color-base)h s calc(l - var(--base-gradient-spread)));--color-scrollbar-base:var(--color-section);--color-scrollbar-thumb:hsl(from var(--color-base)h s calc(l + 9.25));--candystripe-odd:rgba(0,0,0,.25);--candystripe-even:transparent;--color-red:#d92626;--color-orange:#f26c0d;--color-yellow:#fcd203;--color-olive:#acc91d;--color-green:#1fad4e;--color-teal:#00b3b3;--color-blue:#2a79c8;--color-violet:#63c;--color-purple:#b333cc;--color-pink:#d9268e;--color-brown:#a96a3c;--color-gold:#f2a60d;--color-black:#000;--color-white:#fff;--color-grey:gray;--color-light-grey:#aaa;--color-gray:var(--color-grey);--color-light-gray:var(--color-light-grey);--color-action:gray;--color-hover:hsl(from var(--color-action)h s l/.25);--color-active:hsl(from var(--color-action)h s l/.3);--color-selected:hsl(from var(--color-action)h s l/.4);--primary-hue:210;--primary-saturation:37.5%;--primary-lightness:45%;--color-primary:hsl(var(--primary-hue),var(--primary-saturation),var(--primary-lightness));--color-good:#5ba626;--color-average:#f2890d;--color-bad:#dc2323;--color-label:hsl(from var(--color-primary)h 17.5 57.5);--color-text:var(--color-white);--color-text-translucent:hsl(from var(--color-text)h s l/.5);--color-text-translucent-light:hsl(from var(--color-text)h s l/.75);--color-text-fixed-white:var(--color-white);--color-text-fixed-black:var(--color-black);--color-hyperlink:#69f;--color-hyperlink-visited:#96f;--color-hyperlink-new:#f66;--color-hyperlink-new-visited:#ff8c66;--color-border:rgba(255,255,255,.1);--color-border-dark:rgba(0,0,0,.33);--border-primary-saturation:100;--border-primary-lightness:75;--border-primary-alpha:.75;--color-border-primary:hsl(from var(--color-primary)h var(--border-primary-saturation)var(--border-primary-lightness)/var(--border-primary-alpha));--color-border-secondary:hsl(from var(--color-border-primary)h s l/1);--font-size:12px;--font-family:Verdana,Geneva,sans-serif;--font-family-mono:Consolas,monospace;--border-thickness-unit:.5em;--border-thickness-tiny:calc(var(--border-thickness-unit)*.5*.34);--border-thickness-small:calc(var(--border-thickness-unit)*.34);--border-thickness-medium:calc(var(--border-thickness-unit)*.5);--border-thickness-large:calc(var(--border-thickness-unit)*.66);--border-thickness-larger:var(--border-thickness-unit);--border-radius-unit:1rem;--border-radius-tiny:calc(var(--border-radius-unit)*.25*.68);--border-radius-small:calc(var(--border-radius-unit)*.25);--border-radius-medium:calc(var(--border-radius-unit)*.33);--border-radius-large:calc(var(--border-radius-unit)*.5);--border-radius-larger:calc(var(--border-radius-unit)*.75);--border-radius-huge:var(--border-radius-unit);--border-radius-giant:calc(var(--border-radius-unit)*2);--border-radius-circular:99999px;--space-unit:1em;--space-xxs:calc(var(--space-unit)*.25*.34);--space-xs:calc(var(--space-unit)*.25*.68);--space-s:calc(var(--space-unit)*.25);--space-sm:calc(var(--space-unit)*.33);--space-m:calc(var(--space-unit)*.5);--space-ml:calc(var(--space-unit)*.66);--space-l:calc(var(--space-unit)*.75);--space-xl:var(--space-unit);--space-xxl:calc(var(--space-unit)*2);--transition-time-unit:1s;--transition-time-fast:calc(var(--transition-time-unit)*.1);--transition-time-medium:calc(var(--transition-time-unit)*.2);--transition-time-slow:calc(var(--transition-time-unit)*.5);--transition-time-slowest:var(--transition-time-unit);--shadow-unit:1rem;--shadow-glow-small:0 0 calc(var(--shadow-unit)*.5);--shadow-glow-medium:0 0 var(--shadow-unit);--shadow-glow-large:0 0 calc(var(--shadow-unit)*2);--blur-small:blur(6px);--blur-medium:blur(12px);--blur-large:blur(24px);--adjust-color:5;--adjust-hover:10;--adjust-active:7.5;--cursor-default:default;--cursor-pointer:pointer;--cursor-disabled:var(--cursor-default);--cursor-n-resize:n-resize;--cursor-s-resize:s-resize;--cursor-se-resize:se-resize;--cursor-e-resize:e-resize;--blockquote-color:hsl(from var(--color-label)h s calc(l + var(--adjust-color)));--blockquote-border:var(--border-thickness-small)solid;--button-height:1.667em;--button-color:var(--color-white);--button-color-transparent:var(--color-text-translucent);--button-background-default:var(--color-primary);--button-background-selected:var(--color-green);--button-background-caution:var(--color-yellow);--button-background-danger:var(--color-red);--button-background-disabled:var(--undefined);--button-disabled-opacity:.5;--button-border-radius:var(--border-radius-tiny);--button-transition:var(--transition-time-medium);--button-transition-timing:ease;--dialog-background:hsl(from var(--color-section)h s l/.5);--dimmer-background-opacity:.75;--dimmer-background:hsl(from var(--color-base)h s 5/var(--dimmer-background-opacity));--divider-color:var(--color-border);--divider-border:var(--border-thickness-small)solid var(--divider-color);--dropdown-transition:var(--transition-time-medium);--dropdown-menu-color:var(--color-text);--dropdown-menu-background:hsl(from var(--color-base)h s calc(l - 5.5)/.85);--dropdown-menu-border:var(--border-thickness-tiny)solid var(--color-border);--dropdown-menu-border-radius:var(--border-radius-large);--dropdown-menu-blur:var(--blur-medium);--dropdown-entry-background-hover:var(--color-hover);--dropdown-entry-background-active:var(--color-active);--dropdown-entry-background-selected:var(--color-selected);--dropdown-entry-border-radius:var(--border-radius-small);--dropdown-entry-transition:var(--transition-time-fast);--floating-transition-time:var(--transition-time-medium);--floating-transition-timing:ease;--tab-background:transparent;--tab-background-hover:hsl(from var(--color-hover)h s calc(l*.75));--tab-background-selected:hsl(from var(--color-selected)h s calc(l*.75));--tab-color:var(--color-text-translucent);--tab-color-selected:hsl(from var(--color-primary)h s 90);--tab-border-radius:var(--border-radius-small);--tab-indicator-size:var(--border-thickness-small);--tab-transition:var(--transition-time-medium);--tabs-container-background:var(--color-section);--imagebutton-transparecy:.25;--input-background-lightness:5;--input-background:hsl(from var(--color-base)h s var(--input-background-lightness));--input-color:var(--color-text);--input-color-placeholder:var(--color-text-translucent);--input-border-color:var(--color-border-primary);--input-border-color-focus:var(--color-border-secondary);--input-border-radius:var(--border-radius-tiny);--input-border-disabled:var(--color-gray);--input-transition:var(--transition-time-medium);--input-font-family:var(--font-family);--input-font-family-mono:var(--font-family-mono);--input-width:9em;--knob-color:hsl(from var(--color-base)h 5 20);--knob-ring-color:var(--input-border-color);--knob-popup-background:var(--tooltip-background);--knob-popup-color:var(--tooltip-color);--knob-popup-border-radius:var(--tooltip-border-radius);--knob-popup-blur:var(--tooltip-blur);--knob-inner-padding:var(--space-xs);--menu-bar-background:var(--color-base);--menu-bar-font-family:var(--font-family);--menu-bar-transition:var(--transition-time-medium);--modal-background:var(--color-base);--modal-padding:var(--space-xl);--notice-box-stripes:rgba(0,0,0,.1);--notice-box-background:#cea257;--notice-box-color:var(--color-text-fixed-white);--number-input-background:var(--input-background);--number-input-color:var(--input-color);--number-input-border-color:var(--input-border-color);--number-input-border-color-active:var(--input-border-color-focus);--number-input-border-radius:var(--input-border-radius);--number-input-transition:var(--input-transition);--progress-bar-fill:var(--color-primary);--progress-bar-background:transparent;--progress-bar-border-radius:var(--border-radius-tiny);--progress-bar-transition:var(--transition-time-slowest);--restricted-input-border-color:var(--color-good);--restricted-input-border-color-focus:hsl(from var(--color-good)h s calc(l + 10));--restricted-input-border-color-invalid:var(--color-bad);--round-gauge-ring-color:var(--input-border-color);--round-gauge-transition:var(--transition-time-medium);--round-gauge-alert-animation:var(--transition-time-slowest);--round-gauge-needle-alert-animation:var(--transition-time-fast);--round-gauge-needle-alert-rotation:2.5deg;--section-title-color:var(--color-text);--section-background:var(--color-section);--section-separator-color:var(--color-primary);--section-separator-thickness:var(--border-thickness-small);--slider-cursor-color:var(--color-text);--slider-popup-background:var(--tooltip-background);--slider-popup-color:var(--tooltip-color);--slider-popup-border-radius:var(--tooltip-border-radius);--slider-popup-blur:var(--tooltip-blur);--tooltip-color:var(--color-text);--tooltip-background-lightness:5;--tooltip-background:hsl(from var(--color-base)h s var(--tooltip-background-lightness)/.85);--tooltip-border-radius:var(--border-radius-medium);--tooltip-blur:var(--blur-medium)}body{font-family:var(--font-family,Verdana,Geneva,sans-serif);position:relative;overflow:auto}.BlockQuote{color:var(--blockquote-color);border-left:var(--blockquote-border);padding-left:var(--space-m);margin-bottom:var(--space-m)}.BlockQuote:last-child{margin-bottom:0}.Button--color--grey,.Button--color--gray{--color:var(--color-grey)}.Button--color--light-grey,.Button--color--light-gray{--color:var(--color-light-grey)}.ColorBox{text-align:center;width:1em;height:1em;line-height:1em;display:inline-block}.Dialog{background-color:var(--dialog-background);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.Dialog__content{font-family:var(--font-family-mono);background-color:var(--color-base);flex-direction:column;font-size:1.16667em;display:flex}.Dialog__header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:var(--dialog-background);height:2em;line-height:1.928em;display:flex}.Dialog__title{margin-left:var(--space-xl);margin-right:var(--space-xxl);opacity:.33;flex-grow:1;font-style:italic;display:inline}.Dialog__body{margin:var(--space-xxl)var(--space-xl);flex-grow:1}.Dialog__footer{padding:var(--space-xl);background-color:hsl(from var(--dialog-background)h s l/.25);flex-direction:row;justify-content:flex-end;display:flex}.Dialog__button{margin:0 var(--space-xl);text-align:center;min-width:6rem;height:2rem}.SaveAsDialog__inputs{padding-left:var(--space-xxl);margin-right:var(--space-xl);flex-direction:row;justify-content:flex-end;align-items:center;display:flex}.SaveAsDialog__input{margin-left:var(--space-xl);width:80%}.SaveAsDialog__label{vertical-align:center}.Dialog__FileList{flex-wrap:wrap;flex-grow:1;align-content:flex-start;max-height:20rem;display:flex;position:relative;overflow-x:auto;overflow-y:scroll}.Dialog__FileEntry{text-align:center;margin:var(--space-xl)}.Dialog__FileIcon{cursor:default;text-align:center;width:6vh;height:auto;margin:0 0 var(--space-xl)0;display:inline-block;position:relative}.Dimmer{background-color:var(--dimmer-background);z-index:100;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.Divider--horizontal{margin:var(--space-m)0}.Divider--horizontal:not(.Divider--hidden){border-top:var(--divider-border)}.Divider--vertical{height:100%;margin:0 var(--space-m)}.Divider--vertical:not(.Divider--hidden){border-left:var(--divider-border)}.Button{white-space:nowrap;line-height:var(--button-height);padding:0 var(--space-m);margin-right:var(--space-xs);margin-bottom:var(--space-xs);border-radius:var(--button-border-radius);--button-background:hsl(from var(--color)h s calc(l - var(--adjust-color)));cursor:var(--cursor-pointer);background-color:var(--button-background);color:var(--button-color);transition-property:background-color,color,opacity;transition-duration:var(--button-transition);transition-timing-function:var(--button-transition-timing);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:none;display:inline-block;position:relative}.Button:hover{background-color:hsl(from var(--button-background)h s calc(l + var(--adjust-hover)));color:var(--button-color)}.Button:active{background-color:hsl(from var(--button-background)h s calc(l - var(--adjust-active)));color:var(--button-color);transition:none}.Button:last-child{margin-bottom:0;margin-right:0}.Button__content{align-self:stretch;display:block}.Button__content--ellipsis{align-items:center;display:flex}.Button .Button--icon{text-align:center;min-width:1.333em}.Button.Button--hasIcon{padding-left:0}.Button.Button--hasIcon .Button--icon{margin:0 var(--space-s)}.Button--icon-right.Button--hasIcon{padding-left:var(--space-m);padding-right:var(--space-s)}.Button--icon-right.Button--hasIcon .Button--icon{margin:0 0 0 var(--space-s)}.Button--empty.Button--hasIcon{padding:0}.Button--compact{padding:0 var(--space-s);line-height:1.333em}.Button--compact.Button--hasIcon .Button--icon{margin:0 var(--space-xxs)}.Button--circular{border-radius:var(--border-radius-circular)}.Button--fluid{margin-left:0;margin-right:0;display:block}.Button--ellipsis{text-overflow:ellipsis;margin-right:calc(-1*var(--space-s));display:block;overflow:hidden}.Stack>.Button,.Stack__item>.Button{margin:0}.Button--color--red{--color:var(--color-red)}.Button--color--orange{--color:var(--color-orange)}.Button--color--yellow{--color:var(--color-yellow);--button-color:var(--color-black)}.Button--color--olive{--color:var(--color-olive)}.Button--color--green{--color:var(--color-green)}.Button--color--teal{--color:var(--color-teal)}.Button--color--blue{--color:var(--color-blue)}.Button--color--violet{--color:var(--color-violet)}.Button--color--purple{--color:var(--color-purple)}.Button--color--pink{--color:var(--color-pink)}.Button--color--brown{--color:var(--color-brown)}.Button--color--gold{--color:var(--color-gold)}.Button--color--black{--color:var(--color-black)}.Button--color--white{--color:var(--color-white);--button-color:var(--color-black)}.Button--color--grey,.Button--color--gray{--color:var(--color-grey)}.Button--color--light-grey,.Button--color--light-gray{--color:var(--color-light-grey)}.Button--color--primary{--color:var(--color-primary)}.Button--color--good{--color:var(--color-good)}.Button--color--average{--color:var(--color-average)}.Button--color--bad{--color:var(--color-bad)}.Button--color--label{--color:var(--color-label)}.Button--color--default{--color:var(--button-background-default)}.Button--color--caution{--color:var(--button-background-caution)}.Button--color--danger{--color:var(--button-background-danger)}.Button--color--transparent{--button-background:hsl(from var(--button-color)h s l/.1);--button-color:var(--button-color-transparent);background-color:transparent}.Button--color--transparent:hover{--button-color:hsl(from var(--button-color-transparent)h s l/1)}.Button--color--transparent:active{opacity:.75}.Button--color--transparent.Button--selected{--button-color:hsl(from var(--color)h s calc(l + var(--adjust-color)))}.Button--color--transparent.Button--disabled{--button-background:hsl(from var(--button-color)h s l/.2);--button-color:var(--color-bad);opacity:1;color:var(--button-color)!important}.Button--disabled{opacity:var(--button-disabled-opacity);cursor:var(--cursor-disabled)!important;background-color:var(--button-background-disabled,var(--button-background))!important}.Button--selected{--color:var(--button-background-selected)!important}.Button--flex{flex-direction:column;display:inline-flex}.Button--flex--fluid{width:100%}.Button--verticalAlignContent--top{justify-content:flex-start}.Button--verticalAlignContent--middle{justify-content:center}.Button--verticalAlignContent--bottom{justify-content:flex-end}.Dropdown{align-items:stretch;gap:var(--space-s);margin-right:var(--space-xs);margin-bottom:var(--space-xs);display:flex}.Dropdown:last-child{margin-bottom:0;margin-right:0}.Dropdown .Button{align-content:center;margin:0}.Dropdown--fluid{flex:1;width:100%}.Dropdown__control{font-family:var(--font-family);border-radius:var(--button-border-radius);--button-background:hsl(from var(--color)h s calc(l - var(--adjust-color)));height:1.83333em;cursor:var(--cursor-pointer);background-color:var(--button-background);color:var(--button-color);transition-property:background-color,color,opacity;transition-duration:var(--button-transition);transition-timing-function:var(--button-transition-timing);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;flex:1;font-size:1em;line-height:1.33333em;display:flex;overflow:hidden}.Dropdown__control:hover{background-color:hsl(from var(--button-background)h s calc(l + var(--adjust-hover)));color:var(--button-color)}.Dropdown__control:active{background-color:hsl(from var(--button-background)h s calc(l - var(--adjust-active)));color:var(--button-color);transition:none}.Dropdown__selected-text{text-overflow:ellipsis;white-space:nowrap;height:100%;padding:var(--space-s)var(--space-m);border-right:var(--border-thickness-tiny)solid var(--color-border-dark);flex:1;align-content:center;display:inline-block;overflow:hidden}.Dropdown__icon{text-align:center;width:1.83333em;height:100%;transition:transform var(--dropdown-transition);align-content:center;display:inline-block}.Dropdown__icon--arrow.open:not(.over),.Dropdown__icon--arrow.over:not(.open){transform:rotate(180deg)}.Dropdown__icon~.Dropdown__selected-text{padding-left:0}.Dropdown__menu{scrollbar-width:thin;scrollbar-color:var(--color-scrollbar-thumb)transparent;max-height:16.6667em;padding:var(--space-sm);overflow-y:auto}.Dropdown__menu--wrapper{background-color:var(--dropdown-menu-background);color:var(--dropdown-menu-color);border:var(--dropdown-menu-border);border-radius:var(--dropdown-menu-border-radius);-webkit-backdrop-filter:var(--dropdown-menu-blur);backdrop-filter:var(--dropdown-menu-blur);overflow:hidden}.Dropdown__menu--entry{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;text-overflow:ellipsis;font-family:var(--font-family);padding:var(--space-xs)var(--space-m);border-radius:var(--dropdown-entry-border-radius);transition:background-color var(--dropdown-entry-transition);font-size:1em;line-height:1.33333em;overflow:hidden}.Dropdown__menu--entry.selected{transition-duration:0s;background-color:var(--dropdown-entry-background-selected)!important}.Dropdown__menu--entry:not(.selected){cursor:var(--cursor-pointer)}.Dropdown__menu--entry:not(.selected):hover{background-color:var(--dropdown-entry-background-hover);transition-duration:0s}.Dropdown__menu--entry:not(.selected):active{background-color:var(--dropdown-entry-background-active);transition-duration:0s}.Dropdown__control--icon-only{justify-content:center;align-items:center;max-width:2rem;display:flex}.Flex{display:flex}.Flex--inline{display:inline-flex}.Flex--iefix{display:block}.Flex--iefix.Flex--inline,.Flex__item--iefix{display:inline-block}.Flex--iefix--column>.Flex__item--iefix{display:block}.Floating{z-index:5}.Floating--animated[data-transition=open]{opacity:1;transform:scale(1)}.Floating--animated[data-transition=close],.Floating--animated[data-transition=initial]{opacity:0;transform:scale(.9)}.Floating--animated[data-transition=open],.Floating--animated[data-transition=close]{transition-duration:var(--floating-transition-time);transition-timing-function:var(--floating-transition-timing);transition-property:opacity,transform}.Floating[data-position=top]{transform-origin:bottom}.Floating[data-position=top-start],.Floating[data-position=right-end]{transform-origin:0 100%}.Floating[data-position=top-end],.Floating[data-position=left-end]{transform-origin:100% 100%}.Floating[data-position=bottom]{transform-origin:top}.Floating[data-position=bottom-start],.Floating[data-position=right-start]{transform-origin:0 0}.Floating[data-position=bottom-end],.Floating[data-position=left-start]{transform-origin:100% 0}.Floating[data-position=right]{transform-origin:0}.Floating[data-position=left]{transform-origin:100%}.IconStack{justify-content:center;align-items:center;display:inline-flex;position:relative}.IconStack .Icon:before{vertical-align:middle}.IconStack .Icon:not(:first-child){position:absolute}.ImageButton{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;background-color:hsl(from var(--imagebutton-color)h s calc(l - var(--adjust-color)*2)/var(--imagebutton-transparecy));border:var(--border-thickness-tiny)solid hsl(from var(--imagebutton-color)h s calc(l + var(--adjust-color))/var(--imagebutton-transparecy));border-radius:var(--border-radius-medium);transition-property:background-color,border-color,box-shadow;transition-duration:var(--transition-time-medium);border-width:0;margin:.25em;display:inline-flex;position:relative;overflow:hidden}.ImageButton:not(:-webkit-any(.ImageButton--disabled,.ImageButton--noAction)) .ImageButton__container{cursor:var(--cursor-pointer)}.ImageButton:not(:-moz-any(.ImageButton--disabled,.ImageButton--noAction)) .ImageButton__container{cursor:var(--cursor-pointer)}.ImageButton:not(:is(.ImageButton--disabled,.ImageButton--noAction)) .ImageButton__container{cursor:var(--cursor-pointer)}.ImageButton:not(:-webkit-any(.ImageButton--disabled,.ImageButton--noAction)):not(:-webkit-any(:has(.ImageButton__buttons:hover),:has(.ImageButton__buttons:active))):hover{background-color:hsl(from var(--imagebutton-color)h s calc(l - var(--adjust-color) + var(--adjust-hover))/var(--imagebutton-transparecy))}.ImageButton:not(:-moz-any(.ImageButton--disabled,.ImageButton--noAction)):not(:-moz-any(:has(.ImageButton__buttons:hover),:has(.ImageButton__buttons:active))):hover{background-color:hsl(from var(--imagebutton-color)h s calc(l - var(--adjust-color) + var(--adjust-hover))/var(--imagebutton-transparecy))}.ImageButton:not(:is(.ImageButton--disabled,.ImageButton--noAction)):not(:is(:has(.ImageButton__buttons:hover),:has(.ImageButton__buttons:active))):hover{background-color:hsl(from var(--imagebutton-color)h s calc(l - var(--adjust-color) + var(--adjust-hover))/var(--imagebutton-transparecy))}.ImageButton:not(:-webkit-any(.ImageButton--disabled,.ImageButton--noAction)):not(:-webkit-any(:has(.ImageButton__buttons:hover),:has(.ImageButton__buttons:active))):active .ImageButton__image{-webkit-filter:drop-shadow(var(--shadow-glow-small)var(--imagebutton-color));filter:drop-shadow(var(--shadow-glow-small)var(--imagebutton-color));transition-duration:0s}.ImageButton:not(:-moz-any(.ImageButton--disabled,.ImageButton--noAction)):not(:-moz-any(:has(.ImageButton__buttons:hover),:has(.ImageButton__buttons:active))):active .ImageButton__image{-webkit-filter:drop-shadow(var(--shadow-glow-small)var(--imagebutton-color));filter:drop-shadow(var(--shadow-glow-small)var(--imagebutton-color));transition-duration:0s}.ImageButton:not(:is(.ImageButton--disabled,.ImageButton--noAction)):not(:is(:has(.ImageButton__buttons:hover),:has(.ImageButton__buttons:active))):active .ImageButton__image{-webkit-filter:drop-shadow(var(--shadow-glow-small)var(--imagebutton-color));filter:drop-shadow(var(--shadow-glow-small)var(--imagebutton-color));transition-duration:0s}.ImageButton:not(.ImageButton--fluid) .ImageButton__content{background-color:hsl(from var(--imagebutton-color)h s calc(l - var(--adjust-hover)));border-top:var(--border-thickness-tiny)solid var(--imagebutton-color)}.ImageButton__container{border-color:inherit;transition:opacity var(--transition-time-medium);flex-direction:column;display:flex}.ImageButton__image{pointer-events:none;padding:var(--space-s);border:var(--border-thickness-tiny)solid;border-bottom:none;border-color:inherit;border-radius:var(--border-radius-medium)var(--border-radius-medium)0 0;transition:filter var(--transition-time-slow);align-self:center;line-height:0;position:relative;overflow:hidden}.ImageButton__image--fallback{text-align:center;color:var(--color-text-translucent);align-content:center}.ImageButton__image--fallback:before{zoom:.75;width:100%;display:table}.ImageButton__content{white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-fixed-white);z-index:2;padding:.25em .33em;overflow:hidden}.ImageButton__buttons{left:var(--border-thickness-tiny);z-index:1;max-width:100%;display:flex;position:absolute;bottom:1.8em;overflow:hidden}.ImageButton__buttons--alt{pointer-events:none;top:var(--border-thickness-tiny);text-shadow:0px 1px 2px var(--color-base),-1px 0px 2px var(--color-base),1px 0px 2px var(--color-base),0px -1px 2px var(--color-base);flex-direction:column;overflow:visible;bottom:unset!important}.ImageButton__buttons--empty{bottom:0;left:0}.ImageButton__buttons>*{border-radius:0!important;margin:0!important;padding:0!important}.ImageButton--empty{border-width:var(--border-thickness-tiny)}.ImageButton--empty .ImageButton__image{border-radius:var(--border-radius-medium);border:none}.Stack>.ImageButton,.Stack__item>.ImageButton{margin:0}.ImageButton--fluid{border-width:var(--border-thickness-tiny);flex-direction:row;margin:0 0 .33em;display:flex}.ImageButton--fluid:last-child{margin-bottom:0}.ImageButton--fluid .ImageButton__container{flex-direction:row;flex:1}.ImageButton--fluid .ImageButton__image{border:0;margin:0 auto;padding:0}.ImageButton--fluid .ImageButton__content{white-space:normal;color:var(--color-text);flex-direction:column;flex:1;justify-content:center;margin:0 .5em;padding:0;display:flex}.ImageButton--fluid .ImageButton__content--title{padding:.5em;font-weight:700}.ImageButton--fluid .ImageButton__content--divider{border-bottom:var(--border-thickness-small)solid var(--color-border)}.ImageButton--fluid .ImageButton__content--text{padding:.5em}.ImageButton--fluid .ImageButton__buttons{left:inherit;bottom:inherit;background-color:inherit;position:relative}.ImageButton--fluid .ImageButton__buttons--alt{pointer-events:all;top:inherit;text-shadow:none}.ImageButton--fluid .ImageButton__buttons--alt>*{border-top:1px solid rgba(255,255,255,.075)}.ImageButton--fluid .ImageButton__buttons--alt>:first-child{border-top:0}.ImageButton--fluid .ImageButton__buttons>*{text-align:center;white-space:pre-wrap;border-left:var(--border-thickness-tiny)solid var(--color-border);flex-direction:column;justify-content:center;height:100%;line-height:1.15em;display:inline-flex}.ImageButton__color--red{--imagebutton-color:var(--color-red)}.ImageButton__color--orange{--imagebutton-color:var(--color-orange)}.ImageButton__color--yellow{--imagebutton-color:var(--color-yellow);--color-text-fixed-white:var(--color-black)}.ImageButton__color--olive{--imagebutton-color:var(--color-olive)}.ImageButton__color--green{--imagebutton-color:var(--color-green)}.ImageButton__color--teal{--imagebutton-color:var(--color-teal)}.ImageButton__color--blue{--imagebutton-color:var(--color-blue)}.ImageButton__color--violet{--imagebutton-color:var(--color-violet)}.ImageButton__color--purple{--imagebutton-color:var(--color-purple)}.ImageButton__color--pink{--imagebutton-color:var(--color-pink)}.ImageButton__color--brown{--imagebutton-color:var(--color-brown)}.ImageButton__color--gold{--imagebutton-color:var(--color-gold)}.ImageButton__color--black{--imagebutton-color:var(--color-black)}.ImageButton__color--white{--imagebutton-color:var(--color-white);--color-text-fixed-white:var(--color-black)}.ImageButton__color--grey,.ImageButton__color--gray{--imagebutton-color:var(--color-grey)}.ImageButton__color--light-grey,.ImageButton__color--light-gray{--imagebutton-color:var(--color-light-grey)}.ImageButton__color--good{--imagebutton-color:var(--color-good)}.ImageButton__color--average{--imagebutton-color:var(--color-average)}.ImageButton__color--bad{--imagebutton-color:var(--color-bad)}.ImageButton__color--label{--imagebutton-color:var(--color-label)}.ImageButton__color--transparent{--imagebutton-color:var(--color-text-translucent-light);--imagebutton-transparecy:.1;background-color:transparent;border-color:transparent!important}.ImageButton__color--transparent .ImageButton__content{color:var(--color-text-translucent-light);background-color:transparent!important;border-color:transparent!important}.ImageButton__color--transparent.ImageButton--disabled{background-color:hsL(from var(--color-red)h s l/.15)!important}.ImageButton__color--transparent.ImageButton--selected{background-color:hsL(from var(--color-good)h s l/.15)}.ImageButton__color--default{--imagebutton-color:hsl(from var(--color-base)h s 30)}.ImageButton__color--primary{--imagebutton-color:hsl(from var(--color-primary)h s l)}.ImageButton--selected{--imagebutton-color:hsl(from var(--button-background-selected)h s calc(l*1.15));--color-text-fixed-white:var(--color-white)}.ImageButton--disabled .ImageButton__container{cursor:var(--cursor-disabled);opacity:.5}.ImageButton--disabled.ImageButton--fluid{-webkit-filter:contrast(75%);filter:contrast(75%)}.ImageButton--disabled.ImageButton--fluid .ImageButton__buttons{-webkit-filter:contrast(125%);filter:contrast(125%)}.Input{background-color:var(--input-background);border-radius:var(--input-border-radius);border:var(--border-thickness-tiny)solid var(--input-border-color);color:var(--input-color);font-size:1em;font-family:var(--input-font-family);padding:var(--space-xxs)var(--space-sm);width:var(--input-width)}.Input:focus{outline:none}.Input:focus-within{border-color:var(--input-border-color-focus)}.Input::-webkit-input-placeholder{color:var(--input-color-placeholder);font-style:italic}.Input::-ms-input-placeholder{color:var(--input-color-placeholder);font-style:italic}.Input::placeholder{color:var(--input-color-placeholder);font-style:italic}.Input--disabled{border-color:var(--input-border-disabled);color:var(--input-color-placeholder)}.Input--fluid{width:100%}.Input--monospace{font-family:var(--input-font-family-mono)}.Knob{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:var(--cursor-n-resize);width:2.6em;height:2.6em;margin:0 auto -.2em;font-size:1rem;position:relative}.Knob:after{content:".";color:transparent;line-height:2.5em}.Knob__circle{inset:var(--knob-inner-padding);background-color:var(--knob-color);background-image:linear-gradient(to bottom,hsl(from var(--knob-color)h s calc(l + 15))0%,var(--knob-color)100%);border-radius:var(--border-radius-circular);box-shadow:var(--shadow-glow-medium)hsl(from var(--knob-color)h s l/.25);margin:.3em;position:absolute}.Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.Knob__cursor{background-color:hsl(from var(--knob-color)h s 85);width:.2em;height:.8em;margin:0 auto;position:relative;top:.05em}.Knob__popupValue{white-space:nowrap;text-align:center;padding:var(--space-s)var(--space-m);background-color:var(--knob-popup-background);color:var(--knob-popup-color);border-radius:var(--knob-popup-border-radius);-webkit-backdrop-filter:var(--knob-popup-blur);backdrop-filter:var(--knob-popup-blur);font-size:1rem;position:absolute;top:0;left:50%;transform:translateY(-100%)translate(-50%)}.Knob__ring{padding:var(--knob-inner-padding);position:absolute;top:0;bottom:0;left:0;right:0;overflow:visible}.Knob__ringTrackPivot{transform:rotate(135deg)}.Knob__ringTrack{fill:transparent;stroke:hsl(from var(--ring-color,var(--knob-ring-color))h s l/.15);stroke-width:8px;stroke-linecap:round;stroke-dasharray:235.62}.Knob__ringFillPivot{transform:rotate(135deg)}.Knob--bipolar .Knob__ringFillPivot{transform:rotate(270deg)}.Knob__ringFill{fill:transparent;stroke:var(--ring-color,var(--knob-ring-color));stroke-width:8px;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke var(--transition-time-medium)ease-out}.Knob--color--red{--ring-color:var(--color-red)}.Knob--color--orange{--ring-color:var(--color-orange)}.Knob--color--yellow{--ring-color:var(--color-yellow)}.Knob--color--olive{--ring-color:var(--color-olive)}.Knob--color--green{--ring-color:var(--color-green)}.Knob--color--teal{--ring-color:var(--color-teal)}.Knob--color--blue{--ring-color:var(--color-blue)}.Knob--color--violet{--ring-color:var(--color-violet)}.Knob--color--purple{--ring-color:var(--color-purple)}.Knob--color--pink{--ring-color:var(--color-pink)}.Knob--color--brown{--ring-color:var(--color-brown)}.Knob--color--gold{--ring-color:var(--color-gold)}.Knob--color--black{--ring-color:var(--color-black)}.Knob--color--white{--ring-color:var(--color-white)}.Knob--color--grey,.Knob--color--gray{--ring-color:var(--color-grey)}.Knob--color--light-grey,.Knob--color--light-gray{--ring-color:var(--color-light-grey)}.Knob--color--primary{--ring-color:var(--color-primary)}.Knob--color--good{--ring-color:var(--color-good)}.Knob--color--average{--ring-color:var(--color-average)}.Knob--color--bad{--ring-color:var(--color-bad)}.Knob--color--label{--ring-color:var(--color-label)}.LabeledList{border-collapse:collapse;border-spacing:0;width:calc(100% + 1em);margin:calc(-1*var(--space-s))calc(-1*var(--space-m))0;padding:0;display:table}.LabeledList__row{display:table-row}.LabeledList__row:last-child .LabeledList__cell{padding-bottom:0}.LabeledList__cell{padding:var(--space-s)var(--space-m);text-align:left;border:0;margin:0;display:table-cell}.LabeledList__label--nowrap{white-space:nowrap;width:1%;min-width:5em}.LabeledList__buttons{white-space:nowrap;text-align:right;width:.1%;padding-top:var(--space-xxs);padding-bottom:0}.LabeledList__breakContents{word-break:break-all;word-wrap:break-word}.MenuBar{display:flex}.MenuBar__font{font-family:var(--menu-bar-font-family);font-size:1em;line-height:1.41667em}.MenuBar__hover:hover{background-color:hsl(from var(--menu-bar-background)h s calc(l + 20));transition:background-color}.MenuBar__MenuBarButton{padding:var(--space-s)var(--space-m)}.MenuBar__menu{background-color:var(--menu-bar-background);padding:var(--space-sm);z-index:5;position:absolute;box-shadow:4px 6px 5px -2px rgba(0,0,0,.5)}.MenuBar__MenuItem{transition:background-color var(--menu-bar-transition)ease-out;background-color:var(--menu-bar-background);white-space:nowrap;padding:var(--space-sm)var(--space-xl)var(--space-sm)calc(var(--space-xxl) + 1rem)}.MenuBar__MenuItemToggle{padding:var(--space-sm)var(--space-xl)var(--space-sm)0}.MenuBar__MenuItemToggle__check{vertical-align:middle;text-align:center;min-width:2.5rem;padding-left:var(--space-sm);display:inline-block}.MenuBar__over{top:auto;bottom:100%}.MenuBar__MenuBarButton-text{text-overflow:clip;white-space:nowrap;height:1.41667em}.MenuBar__Separator{margin:var(--space-sm);border-top:var(--border-thickness-tiny)solid var(--color-border);display:block}.Modal{background-color:var(--modal-background);padding:var(--modal-padding)}.Modal__dimmer .Dimmer__inner{max-width:calc(100vw - var(--space-xxl));max-height:calc(100vh - var(--space-xxl))}.NoticeBox{--noticebox-background:var(--notice-box-background);padding:var(--space-sm)var(--space-m);margin-bottom:var(--space-m);background-color:oklch(from var(--noticebox-background)calc(l*.825)calc(c*.75)h);background-image:repeating-linear-gradient(-45deg,transparent 0 .833333em,var(--notice-box-stripes).833333em 1.66667em);color:var(--notice-box-color);font-style:italic;font-weight:700}.NoticeBox--color--red{--noticebox-background:var(--color-red)}.NoticeBox--color--orange{--noticebox-background:var(--color-orange)}.NoticeBox--color--yellow{--noticebox-background:var(--color-yellow);--notice-box-color:var(--color-black)}.NoticeBox--color--olive{--noticebox-background:var(--color-olive)}.NoticeBox--color--green{--noticebox-background:var(--color-green)}.NoticeBox--color--teal{--noticebox-background:var(--color-teal)}.NoticeBox--color--blue{--noticebox-background:var(--color-blue)}.NoticeBox--color--violet{--noticebox-background:var(--color-violet)}.NoticeBox--color--purple{--noticebox-background:var(--color-purple)}.NoticeBox--color--pink{--noticebox-background:var(--color-pink)}.NoticeBox--color--brown{--noticebox-background:var(--color-brown)}.NoticeBox--color--gold{--noticebox-background:var(--color-gold)}.NoticeBox--color--black{--noticebox-background:var(--color-black);--notice-box-stripes:rgba(255,255,255,.1)}.NoticeBox--color--white{--noticebox-background:var(--color-white);--notice-box-color:var(--color-black)}.NoticeBox--color--grey,.NoticeBox--color--gray{--noticebox-background:var(--color-grey)}.NoticeBox--color--light-grey,.NoticeBox--color--light-gray{--noticebox-background:var(--color-light-grey)}.NoticeBox--color--primary{--noticebox-background:var(--color-primary)}.NoticeBox--color--good{--noticebox-background:var(--color-good)}.NoticeBox--color--average{--noticebox-background:var(--color-average)}.NoticeBox--color--bad{--noticebox-background:var(--color-bad)}.NoticeBox--color--label{--noticebox-background:var(--color-label)}.NoticeBox--type--info{--noticebox-background:var(--color-blue)}.NoticeBox--type--success{--noticebox-background:var(--color-green)}.NoticeBox--type--warning{--noticebox-background:var(--color-orange)}.NoticeBox--type--danger{--noticebox-background:var(--color-red)}.NumberInput{cursor:var(--cursor-n-resize);text-align:right;padding:0 var(--space-sm);margin-right:var(--space-xs);background-color:var(--number-input-background);color:var(--number-input-border-color-active);border:var(--border-thickness-tiny)solid var(--number-input-border-color);border-radius:var(--number-input-border-radius);transition:border-color var(--number-input-transition);line-height:1.41667em;display:inline-block;position:relative;overflow:visible}.NumberInput:active{border-color:var(--number-input-border-color-active)}.NumberInput--fluid{display:block}.NumberInput__content{margin-left:var(--space-m)}.NumberInput__barContainer{top:var(--space-xs);bottom:var(--space-xs);left:var(--space-xs);position:absolute}.NumberInput__bar{box-sizing:border-box;border-bottom:var(--border-thickness-tiny)solid var(--number-input-border-color-active);background-color:var(--number-input-border-color-active);width:.25em;position:absolute;bottom:0;left:0}.NumberInput__input{text-align:right;width:100%;height:1.41667em;padding:0 var(--space-m);font-size:1em;line-height:1.41667em;font-family:var(--font-family);background-color:var(--number-input-background);color:var(--number-input-color);border:0;outline:0;margin:0;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.ProgressBar{width:100%;min-height:var(--button-height);padding:0 var(--space-m);background-color:var(--progress-bar-background);border:var(--border-thickness-tiny)solid var(--progress-bar-color);border-radius:var(--progress-bar-border-radius);transition:border-color var(--progress-bar-transition)ease-out;align-content:center;display:inline-block;position:relative}.ProgressBar__fill{background-color:var(--progress-bar-color);position:absolute;top:0;bottom:0;left:0;right:0}.ProgressBar__fill--animated{transition-property:background-color,width;transition-duration:var(--progress-bar-transition)}.ProgressBar__content{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:right;width:100%;position:relative}.ProgressBar--color--default{--progress-bar-color:hsl(from var(--progress-bar-fill)h s calc(l - var(--adjust-color)))}.ProgressBar--color--red{--progress-bar-color:hsl(from var(--color-red)h s calc(l - var(--adjust-color)))}.ProgressBar--color--orange{--progress-bar-color:hsl(from var(--color-orange)h s calc(l - var(--adjust-color)))}.ProgressBar--color--yellow{--progress-bar-color:hsl(from var(--color-yellow)h s calc(l - var(--adjust-color)))}.ProgressBar--color--olive{--progress-bar-color:hsl(from var(--color-olive)h s calc(l - var(--adjust-color)))}.ProgressBar--color--green{--progress-bar-color:hsl(from var(--color-green)h s calc(l - var(--adjust-color)))}.ProgressBar--color--teal{--progress-bar-color:hsl(from var(--color-teal)h s calc(l - var(--adjust-color)))}.ProgressBar--color--blue{--progress-bar-color:hsl(from var(--color-blue)h s calc(l - var(--adjust-color)))}.ProgressBar--color--violet{--progress-bar-color:hsl(from var(--color-violet)h s calc(l - var(--adjust-color)))}.ProgressBar--color--purple{--progress-bar-color:hsl(from var(--color-purple)h s calc(l - var(--adjust-color)))}.ProgressBar--color--pink{--progress-bar-color:hsl(from var(--color-pink)h s calc(l - var(--adjust-color)))}.ProgressBar--color--brown{--progress-bar-color:hsl(from var(--color-brown)h s calc(l - var(--adjust-color)))}.ProgressBar--color--gold{--progress-bar-color:hsl(from var(--color-gold)h s calc(l - var(--adjust-color)))}.ProgressBar--color--black{--progress-bar-color:hsl(from var(--color-black)h s calc(l - var(--adjust-color)))}.ProgressBar--color--white{--progress-bar-color:hsl(from var(--color-white)h s calc(l - var(--adjust-color)))}.ProgressBar--color--grey,.ProgressBar--color--gray{--progress-bar-color:hsl(from var(--color-grey)h s calc(l - var(--adjust-color)))}.ProgressBar--color--light-grey,.ProgressBar--color--light-gray{--progress-bar-color:hsl(from var(--color-light-grey)h s calc(l - var(--adjust-color)))}.ProgressBar--color--primary{--progress-bar-color:hsl(from var(--color-primary)h s calc(l - var(--adjust-color)))}.ProgressBar--color--good{--progress-bar-color:hsl(from var(--color-good)h s calc(l - var(--adjust-color)))}.ProgressBar--color--average{--progress-bar-color:hsl(from var(--color-average)h s calc(l - var(--adjust-color)))}.ProgressBar--color--bad{--progress-bar-color:hsl(from var(--color-bad)h s calc(l - var(--adjust-color)))}.ProgressBar--color--label{--progress-bar-color:hsl(from var(--color-label)h s calc(l - var(--adjust-color)))}.RestrictedInput{border-color:var(--restricted-input-border-color);text-align:right}.RestrictedInput:focus-within{border-color:var(--restricted-input-border-color-focus)}.RestrictedInput::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.RestrictedInput::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.RestrictedInput--invalid{border-color:var(--restricted-input-border-color-invalid)}.RestrictedInput--invalid:focus-within{border-color:var(--restricted-input-border-color-invalid)}@keyframes RoundGauge__alertAnim{0%,to{opacity:.1}50%{opacity:1}}@keyframes RoundGauge__needleAlertAnim{0%{transform:rotate(var(--round-gauge-needle-alert-rotation))}50%{transform:rotate(calc(-1*var(--round-gauge-needle-alert-rotation)))}}.RoundGauge{width:2.6em;height:1.3em;margin:0 auto .2em;font-size:1rem}.RoundGauge__wrapper{text-align:center;display:inline-block}.RoundGauge__ringTrack{fill:transparent;stroke:rgba(255,255,255,.1);stroke-width:10px;stroke-dasharray:157.08;stroke-dashoffset:157.08px}.RoundGauge__ringFill{fill:transparent;stroke:var(--round-gauge-ring-color);stroke-width:10px;stroke-dasharray:314.16;transition:stroke var(--round-gauge-transition)ease-out}.RoundGauge__needle,.RoundGauge__ringFill{transition:transform var(--round-gauge-transition)ease-in-out}.RoundGauge__needleLine,.RoundGauge__needleMiddle{fill:var(--color-red)}.RoundGauge__alert{fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;fill:rgba(255,255,255,.1);transform-origin:top;transform:scale(.9)}.RoundGauge__alert.active{animation:RoundGauge__alertAnim var(--round-gauge-alert-animation)cubic-bezier(.34,1.56,.64,1)infinite}.RoundGauge__alert.active~.RoundGauge__needle .RoundGauge__needleLine{transform-origin:bottom;animation:RoundGauge__needleAlertAnim var(--round-gauge-needle-alert-animation)infinite}.RoundGauge__alert.max{fill:var(--color-bad)}.RoundGauge--color--red.RoundGauge__ringFill{stroke:var(--color-red)}.RoundGauge--color--orange.RoundGauge__ringFill{stroke:var(--color-orange)}.RoundGauge--color--yellow.RoundGauge__ringFill{stroke:var(--color-yellow)}.RoundGauge--color--olive.RoundGauge__ringFill{stroke:var(--color-olive)}.RoundGauge--color--green.RoundGauge__ringFill{stroke:var(--color-green)}.RoundGauge--color--teal.RoundGauge__ringFill{stroke:var(--color-teal)}.RoundGauge--color--blue.RoundGauge__ringFill{stroke:var(--color-blue)}.RoundGauge--color--violet.RoundGauge__ringFill{stroke:var(--color-violet)}.RoundGauge--color--purple.RoundGauge__ringFill{stroke:var(--color-purple)}.RoundGauge--color--pink.RoundGauge__ringFill{stroke:var(--color-pink)}.RoundGauge--color--brown.RoundGauge__ringFill{stroke:var(--color-brown)}.RoundGauge--color--gold.RoundGauge__ringFill{stroke:var(--color-gold)}.RoundGauge--color--black.RoundGauge__ringFill{stroke:var(--color-black)}.RoundGauge--color--white.RoundGauge__ringFill{stroke:var(--color-white)}.RoundGauge--color--grey.RoundGauge__ringFill,.RoundGauge--color--gray.RoundGauge__ringFill{stroke:var(--color-grey)}.RoundGauge--color--light-grey.RoundGauge__ringFill,.RoundGauge--color--light-gray.RoundGauge__ringFill{stroke:var(--color-light-grey)}.RoundGauge--color--primary.RoundGauge__ringFill{stroke:var(--color-primary)}.RoundGauge--color--good.RoundGauge__ringFill{stroke:var(--color-good)}.RoundGauge--color--average.RoundGauge__ringFill{stroke:var(--color-average)}.RoundGauge--color--bad.RoundGauge__ringFill{stroke:var(--color-bad)}.RoundGauge--color--label.RoundGauge__ringFill{stroke:var(--color-label)}.RoundGauge__alert--red{fill:var(--color-red)}.RoundGauge__alert--orange{fill:var(--color-orange)}.RoundGauge__alert--yellow{fill:var(--color-yellow)}.RoundGauge__alert--olive{fill:var(--color-olive)}.RoundGauge__alert--green{fill:var(--color-green)}.RoundGauge__alert--teal{fill:var(--color-teal)}.RoundGauge__alert--blue{fill:var(--color-blue)}.RoundGauge__alert--violet{fill:var(--color-violet)}.RoundGauge__alert--purple{fill:var(--color-purple)}.RoundGauge__alert--pink{fill:var(--color-pink)}.RoundGauge__alert--brown{fill:var(--color-brown)}.RoundGauge__alert--gold{fill:var(--color-gold)}.RoundGauge__alert--black{fill:var(--color-black)}.RoundGauge__alert--white{fill:var(--color-white)}.RoundGauge__alert--grey,.RoundGauge__alert--gray{fill:var(--color-grey)}.RoundGauge__alert--light-grey,.RoundGauge__alert--light-gray{fill:var(--color-light-grey)}.RoundGauge__alert--primary{fill:var(--color-primary)}.RoundGauge__alert--good{fill:var(--color-good)}.RoundGauge__alert--average{fill:var(--color-average)}.RoundGauge__alert--bad{fill:var(--color-bad)}.RoundGauge__alert--label{fill:var(--color-label)}.Section{margin-bottom:var(--space-m);background-color:var(--section-background);box-sizing:border-box;scrollbar-color:var(--color-scrollbar-thumb)transparent;position:relative}.Section:last-child{margin-bottom:0}.Section__title{padding:var(--space-m);border-bottom:var(--section-separator-thickness)solid var(--section-separator-color);position:relative}.Section__titleText{color:var(--section-title-color);font-size:1.16667em;font-weight:700}.Section__buttons{right:var(--space-m);margin-top:calc(-1*var(--space-xxs));display:inline-block;position:absolute}.Section__rest{position:relative}.Section__content{padding:var(--space-ml)var(--space-m)}.Section--fitted>.Section__rest>.Section__content{padding:0}.Section--fill{flex-direction:column;height:100%;display:flex}.Section--fill>.Section__rest{flex-grow:1}.Section--fill>.Section__rest>.Section__content{height:100%}.Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;bottom:0;left:0;right:0}.Section--scrollable{overflow:hidden}.Section--scrollable>.Section__rest>.Section__content{overflow-x:hidden;overflow-y:auto}.Section--scrollableHorizontal{overflow:hidden}.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-x:auto;overflow-y:hidden}.Section--scrollable.Section--scrollableHorizontal{overflow:hidden}.Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow:auto}.Section .Section{margin:0 calc(-1*var(--space-m));background-color:transparent}.Section .Section:first-child{margin-top:calc(-1*var(--space-m))}.Section .Section .Section__titleText{font-size:1.08333em}.Section .Section .Section .Section__titleText{font-size:1em}.Section--flex{flex-flow:column;display:flex}.Section--flex .Section__content{flex-grow:1;overflow:auto}.Section__content--noTopPadding{padding-top:0}.Section__content--stretchContents{height:calc(100% - 3rem)}.Slider{cursor:e-resize;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.Slider--editing .Slider__cursor:before{display:none}.Slider__cursor{inset:0 calc(-1*var(--space-xxs));left:unset;border-left:var(--border-thickness-small)solid var(--slider-cursor-color);border-radius:var(--border-radius-circular);position:absolute}.Slider__cursorOffset{position:absolute;top:0;bottom:0;left:0;right:0;transition:none!important}.Slider__cursor:before{content:"";aspect-ratio:1;border-left:inherit;transform-origin:50%;position:absolute;bottom:0;right:0;transform:scale(4)translateY(50%)rotate(45deg);-webkit-mask-image:linear-gradient(135deg,#000 50%,transparent 50%);mask-image:linear-gradient(135deg,#000 50%,transparent 50%)}.Slider__popupValue{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;padding:var(--space-s)var(--space-m);background-color:var(--slider-popup-background);color:var(--slider-popup-color);border-radius:var(--slider-popup-border-radius);-webkit-backdrop-filter:var(--slider-popup-blur);backdrop-filter:var(--slider-popup-blur);font-size:1em;position:absolute;top:-2em;right:0;transform:translate(50%)}.Slider .NumberInput__input{width:auto;height:auto;top:2px;bottom:2px;left:2px;right:2px}.Stack{gap:.5em}.Stack--fill{height:100%}.Stack--zebra>.Stack__item:nth-child(odd){background-color:var(--candystripe-odd)}.Stack--horizontal>.Stack__divider:not(.Stack__divider--hidden){border-left:var(--divider-border)}.Stack--vertical>.Stack__divider:not(.Stack__divider--hidden){border-top:var(--divider-border)}.Table{border-collapse:collapse;border-spacing:0;width:100%;margin:0;display:table}.Table--collapsing{width:auto}.Table__row{display:table-row}.Table__cell{padding:0 var(--space-s);display:table-cell}.Table__cell:first-child{padding-left:0}.Table__cell:last-child{padding-right:0}.Table__row--header .Table__cell,.Table__cell--header{padding-bottom:var(--space-m);font-weight:700}.Table__cell--collapsing{white-space:nowrap;width:1%}.Tabs{background-color:var(--tabs-container-background);align-items:stretch;display:flex;position:relative;overflow:hidden}.Tabs--fill{height:100%}.Tabs--vertical{padding:var(--space-s)0 var(--space-s)var(--space-s);flex-direction:column}.Tabs--horizontal{margin-bottom:var(--space-m);padding:var(--space-s)var(--space-s)0}.Tabs--horizontal:last-child{margin-bottom:0}.Tabs__Tab{flex-grow:0}.Tabs--fluid .Tabs__Tab{flex-grow:1}.Tab{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:var(--cursor-pointer);background-color:var(--tab-background);color:var(--tab-color);min-width:4em;min-height:2.25em;transition-property:background-color,color;transition-duration:var(--tab-transition);justify-content:space-between;align-items:center;display:flex}.Tab:not(.Tab--selected):hover{background-color:var(--tab-background-hover)}.Tab:not(.Tab--selected):active{color:var(--tab-color-selected)}.Tab--selected{cursor:var(--cursor-default);background-color:var(--tab-background-selected);color:var(--tab-color-selected)}.Tab .Tab__text{margin:0 var(--space-m);flex-grow:1}.Tab__left{text-align:center;min-width:1.5em;margin-left:var(--space-s)}.Tab__right{text-align:center;min-width:1.5em;margin-right:var(--space-s)}.Tabs--horizontal .Tab{border-top-left-radius:var(--tab-border-radius);border-top-right-radius:var(--tab-border-radius);padding-bottom:var(--tab-indicator-size);position:relative}.Tabs--horizontal .Tab:before{content:"";transition:transform var(--tab-transition);width:100%;height:var(--tab-indicator-size);background-color:currentColor;position:absolute;bottom:0;transform:scaleX(0)}.Tabs--horizontal .Tab--selected:before{transform:scaleX(.99999)!important}.Tabs--vertical .Tab{border-top-left-radius:var(--tab-border-radius);border-bottom-left-radius:var(--tab-border-radius);min-height:2em;padding-right:var(--tab-indicator-size);position:relative}.Tabs--vertical .Tab:before{content:"";transition:transform var(--tab-transition);width:var(--tab-indicator-size);background-color:currentColor;height:100%;position:absolute;right:0;transform:scaleY(0)}.Tabs--vertical .Tab--selected:before{transform:scaleY(.99999)!important}.Tabs--scrollable{--mask-width:3.25em;--mask-left:0rem;--mask-right:0rem;padding:0;display:grid}.Tabs--scrollable-content{scrollbar-width:none;overscroll-behavior:none;padding:var(--space-s)var(--space-s)0;-webkit-mask-image:linear-gradient(90deg,transparent calc(var(--mask-left)*.66),black calc(0% + var(--mask-left)),black calc(100% - var(--mask-right)),transparent calc(100% - var(--mask-right)*.66));mask-image:linear-gradient(90deg,transparent calc(var(--mask-left)*.66),black calc(0% + var(--mask-left)),black calc(100% - var(--mask-right)),transparent calc(100% - var(--mask-right)*.66));flex-wrap:nowrap;display:flex;overflow:auto}.Tabs--scrollable-content.scrollable-left.scrollable-right{--mask-left:var(--mask-width);--mask-right:var(--mask-width)}.Tabs--scrollable-content.scrollable-left{--mask-left:var(--mask-width)}.Tabs--scrollable-content.scrollable-right{--mask-right:var(--mask-width)}.Tabs--scrollable .scroll-left,.Tabs--scrollable .scroll-right{z-index:1;border-radius:0;align-content:center;height:100%;margin:0;position:absolute;top:0}.Tabs--scrollable .scroll-left{left:0}.Tabs--scrollable .scroll-right{right:0}.Tabs--scrollable .Tab{flex-shrink:0}.Tab--selected.Tab--color--red{color:hsl(from var(--color-red)h s calc(l + 17.5))}.Tab--selected.Tab--color--orange{color:hsl(from var(--color-orange)h s calc(l + 17.5))}.Tab--selected.Tab--color--yellow{color:hsl(from var(--color-yellow)h s calc(l + 17.5))}.Tab--selected.Tab--color--olive{color:hsl(from var(--color-olive)h s calc(l + 17.5))}.Tab--selected.Tab--color--green{color:hsl(from var(--color-green)h s calc(l + 17.5))}.Tab--selected.Tab--color--teal{color:hsl(from var(--color-teal)h s calc(l + 17.5))}.Tab--selected.Tab--color--blue{color:hsl(from var(--color-blue)h s calc(l + 17.5))}.Tab--selected.Tab--color--violet{color:hsl(from var(--color-violet)h s calc(l + 17.5))}.Tab--selected.Tab--color--purple{color:hsl(from var(--color-purple)h s calc(l + 17.5))}.Tab--selected.Tab--color--pink{color:hsl(from var(--color-pink)h s calc(l + 17.5))}.Tab--selected.Tab--color--brown{color:hsl(from var(--color-brown)h s calc(l + 17.5))}.Tab--selected.Tab--color--gold{color:hsl(from var(--color-gold)h s calc(l + 17.5))}.Tab--selected.Tab--color--black{color:hsl(from var(--color-black)h s calc(l + 17.5))}.Tab--selected.Tab--color--white{color:hsl(from var(--color-white)h s calc(l + 17.5))}.Tab--selected.Tab--color--grey,.Tab--selected.Tab--color--gray{color:hsl(from var(--color-grey)h s calc(l + 17.5))}.Tab--selected.Tab--color--light-grey,.Tab--selected.Tab--color--light-gray{color:hsl(from var(--color-light-grey)h s calc(l + 17.5))}.Tab--selected.Tab--color--primary{color:hsl(from var(--color-primary)h s calc(l + 17.5))}.Tab--selected.Tab--color--good{color:hsl(from var(--color-good)h s calc(l + 17.5))}.Tab--selected.Tab--color--average{color:hsl(from var(--color-average)h s calc(l + 17.5))}.Tab--selected.Tab--color--bad{color:hsl(from var(--color-bad)h s calc(l + 17.5))}.Tab--selected.Tab--color--label{color:hsl(from var(--color-label)h s calc(l + 17.5))}.Section .Tabs{background-color:transparent}.Section:not(.Section--fitted) .Tabs{margin:0 calc(-1*var(--space-m))var(--space-m)}.Section:not(.Section--fitted) .Tabs:first-child{margin-top:calc(-1*var(--space-m))}.TextArea{resize:none;scrollbar-width:thin;scrollbar-gutter:stable;scrollbar-color:var(--color-scrollbar-thumb)transparent}.Tooltip{-webkit-backdrop-filter:var(--tooltip-blur);backdrop-filter:var(--tooltip-blur);background-color:var(--tooltip-background);border-radius:var(--tooltip-border-radius);color:var(--tooltip-color);max-width:20.8333em;padding:var(--space-m)var(--space-l);pointer-events:none;text-align:left;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5)}html,body{box-sizing:border-box;height:100%;font-size:var(--font-size,12px);color:var(--color-text,#fff);scrollbar-color:var(--color-scrollbar-thumb)var(--color-scrollbar-base);margin:0}html{cursor:var(--cursor-default,default);overflow:hidden}body{font-family:var(--font-family,Verdana,Geneva,sans-serif);overflow:auto}img{image-rendering:pixelated}*,:before,:after{box-sizing:inherit}h1,h2,h3,h4,h5,h6{padding:var(--space-m,6px)0;padding:var(--space-m,.5rem)0;margin:0;display:block}h1{font-size:1.5rem}h2{font-size:1.333rem}h3{font-size:1.167rem}h4{font-size:1rem}td,th{vertical-align:baseline;text-align:left}:where(.candystripe:nth-child(odd)){background-color:var(--candystripe-odd)}:where(.candystripe:nth-child(2n)){background-color:var(--candystripe-even)}.color-black{color:hsl(from var(--color-black)h s calc(l + var(--adjust-color)))!important}.color-white{color:hsl(from var(--color-white)h s calc(l + var(--adjust-color)))!important}.color-red{color:hsl(from var(--color-red)h s calc(l + var(--adjust-color)))!important}.color-orange{color:hsl(from var(--color-orange)h s calc(l + var(--adjust-color)))!important}.color-yellow{color:hsl(from var(--color-yellow)h s calc(l + var(--adjust-color)))!important}.color-olive{color:hsl(from var(--color-olive)h s calc(l + var(--adjust-color)))!important}.color-green{color:hsl(from var(--color-green)h s calc(l + var(--adjust-color)))!important}.color-teal{color:hsl(from var(--color-teal)h s calc(l + var(--adjust-color)))!important}.color-blue{color:hsl(from var(--color-blue)h s calc(l + var(--adjust-color)))!important}.color-violet{color:hsl(from var(--color-violet)h s calc(l + var(--adjust-color)))!important}.color-purple{color:hsl(from var(--color-purple)h s calc(l + var(--adjust-color)))!important}.color-pink{color:hsl(from var(--color-pink)h s calc(l + var(--adjust-color)))!important}.color-brown{color:hsl(from var(--color-brown)h s calc(l + var(--adjust-color)))!important}.color-grey,.color-gray{color:hsl(from var(--color-grey)h s calc(l + var(--adjust-color)))!important}.color-light-grey,.color-light-gray{color:hsl(from var(--color-light-grey)h s calc(l + var(--adjust-color)))!important}.color-good{color:hsl(from var(--color-good)h s calc(l + var(--adjust-color)))!important}.color-average{color:hsl(from var(--color-average)h s calc(l + var(--adjust-color)))!important}.color-bad{color:hsl(from var(--color-bad)h s calc(l + var(--adjust-color)))!important}.color-label{color:hsl(from var(--color-label)h s calc(l + var(--adjust-color)))!important}.color-bg-black{background-color:hsl(from var(--color-black)h s calc(l - var(--adjust-color)))!important}.color-bg-white{background-color:hsl(from var(--color-white)h s calc(l - var(--adjust-color)))!important}.color-bg-red{background-color:hsl(from var(--color-red)h s calc(l - var(--adjust-color)))!important}.color-bg-orange{background-color:hsl(from var(--color-orange)h s calc(l - var(--adjust-color)))!important}.color-bg-yellow{background-color:hsl(from var(--color-yellow)h s calc(l - var(--adjust-color)))!important}.color-bg-olive{background-color:hsl(from var(--color-olive)h s calc(l - var(--adjust-color)))!important}.color-bg-green{background-color:hsl(from var(--color-green)h s calc(l - var(--adjust-color)))!important}.color-bg-teal{background-color:hsl(from var(--color-teal)h s calc(l - var(--adjust-color)))!important}.color-bg-blue{background-color:hsl(from var(--color-blue)h s calc(l - var(--adjust-color)))!important}.color-bg-violet{background-color:hsl(from var(--color-violet)h s calc(l - var(--adjust-color)))!important}.color-bg-purple{background-color:hsl(from var(--color-purple)h s calc(l - var(--adjust-color)))!important}.color-bg-pink{background-color:hsl(from var(--color-pink)h s calc(l - var(--adjust-color)))!important}.color-bg-brown{background-color:hsl(from var(--color-brown)h s calc(l - var(--adjust-color)))!important}.color-bg-grey,.color-bg-gray{background-color:hsl(from var(--color-grey)h s calc(l - var(--adjust-color)))!important}.color-bg-light-grey,.color-bg-light-gray{background-color:hsl(from var(--color-light-grey)h s calc(l - var(--adjust-color)))!important}.color-bg-good{background-color:hsl(from var(--color-good)h s calc(l - var(--adjust-color)))!important}.color-bg-average{background-color:hsl(from var(--color-average)h s calc(l - var(--adjust-color)))!important}.color-bg-bad{background-color:hsl(from var(--color-bad)h s calc(l - var(--adjust-color)))!important}.color-bg-label{background-color:hsl(from var(--color-label)h s calc(l - var(--adjust-color)))!important}.debug-layout,.debug-layout :not(g):not(path){color:rgba(255,255,255,.9)!important;box-shadow:none!important;-webkit-filter:none!important;filter:none!important;background:0 0!important;outline:1px solid rgba(255,255,255,.5)!important}.debug-layout:hover,.debug-layout :not(g):not(path):hover{outline-color:rgba(255,255,255,.8)!important}.outline-dotted{outline-style:dotted!important}.outline-dashed{outline-style:dashed!important}.outline-solid{outline-style:solid!important}.outline-double{outline-style:double!important}.outline-groove{outline-style:groove!important}.outline-ridge{outline-style:ridge!important}.outline-inset{outline-style:inset!important}.outline-outset{outline-style:outset!important}.outline-color-black{outline:var(--border-thickness-small)solid hsl(from var(--color-black)h s calc(l + var(--adjust-color)))!important}.outline-color-white{outline:var(--border-thickness-small)solid hsl(from var(--color-white)h s calc(l + var(--adjust-color)))!important}.outline-color-red{outline:var(--border-thickness-small)solid hsl(from var(--color-red)h s calc(l + var(--adjust-color)))!important}.outline-color-orange{outline:var(--border-thickness-small)solid hsl(from var(--color-orange)h s calc(l + var(--adjust-color)))!important}.outline-color-yellow{outline:var(--border-thickness-small)solid hsl(from var(--color-yellow)h s calc(l + var(--adjust-color)))!important}.outline-color-olive{outline:var(--border-thickness-small)solid hsl(from var(--color-olive)h s calc(l + var(--adjust-color)))!important}.outline-color-green{outline:var(--border-thickness-small)solid hsl(from var(--color-green)h s calc(l + var(--adjust-color)))!important}.outline-color-teal{outline:var(--border-thickness-small)solid hsl(from var(--color-teal)h s calc(l + var(--adjust-color)))!important}.outline-color-blue{outline:var(--border-thickness-small)solid hsl(from var(--color-blue)h s calc(l + var(--adjust-color)))!important}.outline-color-violet{outline:var(--border-thickness-small)solid hsl(from var(--color-violet)h s calc(l + var(--adjust-color)))!important}.outline-color-purple{outline:var(--border-thickness-small)solid hsl(from var(--color-purple)h s calc(l + var(--adjust-color)))!important}.outline-color-pink{outline:var(--border-thickness-small)solid hsl(from var(--color-pink)h s calc(l + var(--adjust-color)))!important}.outline-color-brown{outline:var(--border-thickness-small)solid hsl(from var(--color-brown)h s calc(l + var(--adjust-color)))!important}.outline-color-grey,.outline-color-gray{outline:var(--border-thickness-small)solid hsl(from var(--color-grey)h s calc(l + var(--adjust-color)))!important}.outline-color-light-grey,.outline-color-light-gray{outline:var(--border-thickness-small)solid hsl(from var(--color-light-grey)h s calc(l + var(--adjust-color)))!important}.outline-color-good{outline:var(--border-thickness-small)solid hsl(from var(--color-good)h s calc(l + var(--adjust-color)))!important}.outline-color-average{outline:var(--border-thickness-small)solid hsl(from var(--color-average)h s calc(l + var(--adjust-color)))!important}.outline-color-bad{outline:var(--border-thickness-small)solid hsl(from var(--color-bad)h s calc(l + var(--adjust-color)))!important}.outline-color-label{outline:var(--border-thickness-small)solid hsl(from var(--color-label)h s calc(l + var(--adjust-color)))!important}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-baseline{text-align:baseline}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-pre{white-space:pre}.text-bold{font-weight:700}.text-italic{font-style:italic}.text-underline{text-decoration:underline}.Chat{color:var(--chat-text-color)}.Chat__badge{color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#db143c;border-radius:10px;min-width:.5em;padding:.2em .3em;font-size:.7em;line-height:1;transition:font-size .2s ease-out;display:inline-block}.Chat__badge:before{content:"x"}.Chat__badge--animate{font-size:.9em;transition:font-size}.Chat__scrollButton{position:fixed;bottom:1em;right:2em}.Chat__reconnected{text-align:center;margin:1em 0 2em;font-size:.85em}.Chat__reconnected:before{content:"Reconnected";color:var(--reconnect-text,var(--color-red));background-color:var(--reconnect-background,var(--color-section));border-radius:1em;padding:0 .7em;display:inline-block}.Chat__reconnected:after{content:"";border-bottom:.166667em solid var(--color-red);margin-top:-.75em;display:block}.Chat__highlight{color:var(--color-black)}.Chat__highlight--restricted{color:#fff;background-color:#a00;font-weight:700}.ChatMessage{word-wrap:break-word}.ChatMessage--highlighted{border-left:.166667em solid #ffe045;padding-left:.5em;position:relative}.ChatMessage--highlighted:after{content:"";pointer-events:none;background-color:rgba(255,224,69,.1);position:absolute;top:0;bottom:0;left:0;right:0}.Ping{padding:var(--space-xs)var(--space-sm);border:var(--border-thickness-tiny)solid hsl(from var(--color-border-primary)h 10 50/.33);border-radius:var(--border-radius-medium);text-align:right;min-width:4em;max-width:5em;position:relative}.Ping__indicator{content:"";top:var(--space-m);left:var(--space-m);border-radius:var(--border-radius-medium);background-color:#888;width:.5em;height:.5em;position:absolute}.Notifications{position:absolute;top:1em;left:1em;right:2em}.Notification{color:#fff;background-color:#db143c;margin:1em 0;padding:.5em}.Notification:first-child{margin-top:0}.Notification:last-child{margin-bottom:0}.UnreadCount{pointer-events:none;top:calc(-1*var(--space-s));right:calc(-1*var(--space-s));padding:0 var(--space-s);border-radius:var(--border-radius-small);background-color:var(--color-red);color:var(--color-white);font-size:.65em;line-height:1.25em;position:absolute}.Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.Layout__content--scrollable{margin-bottom:0;overflow-y:auto}.Window{color:var(--color-text);background-color:var(--color-base);background-image:linear-gradient(to bottom,var(--color-base-start)0%,var(--color-base-end)100%);position:fixed;top:0;bottom:0;left:0;right:0}.Window__rest{position:fixed;top:2.66667rem;bottom:0;left:0;right:0}.Window__contentPadding{height:calc(100% - 1rem);margin:.5rem}.Window__contentPadding:after{height:0}.Layout__content--scrollable .Window__contentPadding:after{content:"";height:.5rem;display:block}.Window__dimmer{pointer-events:none;background-color:hsl(from var(--color-base)h s calc(l + 15)/.25);position:fixed;top:0;bottom:0;left:0;right:0}.Window__resizeHandle__se{cursor:var(--cursor-se-resize);width:1.66667rem;height:1.66667rem;position:fixed;bottom:0;right:0}.Window__resizeHandle__s{cursor:var(--cursor-s-resize);height:.5rem;position:fixed;bottom:0;left:0;right:0}.Window__resizeHandle__e{cursor:var(--cursor-e-resize);width:.25rem;position:fixed;top:0;bottom:0;right:0}img{margin:0;padding:0;line-height:1}img.icon{vertical-align:bottom;width:auto;min-width:16px;height:1em;min-height:16px}a{color:#397ea5}em{font-style:normal;font-weight:700}h1,h2,h3,h4,h5,h6{color:#a4bad6;font-family:Georgia,Verdana,sans-serif}.emoji{max-width:16px;max-height:16px}.emoji16x16{vertical-align:middle}.italic,.italics,.emote{font-style:italic}.bold{font-weight:700}.bolditalics{font-style:italic;font-weight:700}.center{text-align:center}.big{font-size:150%}.reallybig{font-size:175%}.sans{font-family:Comic Sans MS,cursive,sans-serif}.wingdings{font-family:Wingdings,Webdings}.robot{font-family:OCR-A,monospace;font-size:1.15em;font-weight:700}.robotemote{color:#6685f5;font-family:OCR-A,monospace;font-size:1.15em;font-style:italic;font-weight:700}.hidden{visibility:hidden;display:none}.motd{color:#a4bad6;white-space:normal;font-family:Verdana,sans-serif}.motd h1,.motd h2,.motd h3,.motd h4,.motd h5,.motd h6{color:#a4bad6;text-decoration:underline}.motd a,.motd a:link,.motd a:active,.motd a:hover{color:#a4bad6}.memo{color:#638500;text-align:center}.memoedit{text-align:center;font-size:75%}.ooc{font-weight:700}.looc{color:#69c;font-weight:700}.discordpm{color:#6685f5}.debug{color:#6d2f83}.deadsay{color:#e2c1ff}.darkmblue{color:#6685f5}.prefix,.name,.yell{font-weight:700}.mentorhelp{color:#07b;font-weight:700}.mentor_channel{color:#b4af13;font-weight:700}.mentor_channel_admin{color:#f1ec50;font-weight:700}.admin{color:#386aff;font-weight:700}.adminhelp{color:#a00;font-weight:700}.adminticket{color:#3daf21;font-weight:700}.adminticketalt{color:#ccb847;font-weight:700}.admin_channel{color:#03fc9d;font-weight:700}.all_admin_ping{color:#12a5f4;text-align:center;font-size:120%;font-weight:700}.dev_channel{color:#61b413;font-weight:700}.dev_channel_admin{color:#9ef14f;font-weight:700}.staff_channel{color:#775bff;font-weight:700}.staff_channel_admin{color:#a35cff;font-weight:700}.radio{color:#20b142}.deptradio{color:#939}.comradio{color:#5f5cff}.syndradio{color:#8f4a4b}.dsquadradio{color:#998599}.airadio{color:#ff5ed7}.centradio{color:#2681a5}.secradio{color:#dd3535}.engradio{color:#feac20}.medradio{color:#00b5ad}.sciradio{color:#c68cfa}.supradio{color:#b88646}.srvradio{color:#bbd164}.proradio{color:#b84f92}.alert{color:#d82020}h1.alert,h2.alert{color:#a4bad6}.ghostalert{color:#cc00c6;font-style:italic;font-weight:700}.warning{color:#c51e1e;font-style:italic}.boldwarning{color:#c51e1e;font-style:italic;font-weight:700}.danger{color:#c51e1e;font-weight:700}.biggerdanger{color:red;font-size:150%;font-weight:700}.userdanger{color:#c51e1e;font-size:120%;font-weight:700}.attack{color:red}.disarm{color:#900}.moderate{color:#c00}.notice{color:#6685f5}.boldnotice{color:#6685f5;font-weight:700}.subtle{color:#8a72c5;font-size:85%;font-style:italic}.suicide{color:#ff5050;font-style:italic}.announcement h1,.announcement h2{color:#a4bad6;margin:8pt 0;line-height:1.2}.announcement p{color:#d82020;line-height:1.3}.announcement.minor h1{font-size:180%}.announcement.minor h2{font-size:170%}.announcement.sec h1{color:red;font-family:Verdana,sans-serif;font-size:180%}.boldannounceic,.boldannounceooc,.pr_announce{color:#c51e1e;font-weight:700}.greenannounce{color:#059223;font-weight:700}.alien{color:#c433c4}.noticealien{color:#00c000}.alertalien{color:#00c000;font-weight:700}.terrorspider{color:#cf52fa}.dantalion{color:#8b2c5e}.chaosverygood{color:#19e0c0;font-size:120%;font-weight:700}.chaosgood{color:#19e0c0;font-weight:700}.chaosneutral{color:#479ac0;font-weight:700}.chaosbad{color:#9047c0;font-weight:700}.chaosverybad{color:#9047c0;font-size:120%;font-weight:700}.sinister{color:purple;font-style:italic;font-weight:700}.blob{color:#ee4000;font-style:italic}.revennotice{color:#6685f5}.revenbignotice{color:#6685f5;font-size:120%;font-weight:700}.revenminor{color:#823abb}.revenwarning{color:#760fbb;font-style:italic}.revendanger{color:#760fbb;font-size:120%;font-weight:700}.changeling{color:#00b4de}.abductor{color:purple;font-style:italic}.mind_control{color:#a00d6f;font-size:120%;font-style:italic;font-weight:700}.cult{color:purple;font-style:italic;font-weight:700}.cultspeech{color:#af0000;font-style:italic}.cultitalic{color:#a60000;font-style:italic}.cultlarge{color:#a60000;font-size:120%;font-weight:700}.narsie{color:#a60000;font-size:300%;font-weight:700}.narsiesmall{color:#a60000;font-size:200%;font-weight:700}.his_grace{color:#15d512;font-family:Courier New,cursive,sans-serif;font-style:italic}.zombielarge{color:#7c4848;font-size:120%;font-weight:700}.colossus{color:#7f282a;font-size:175%}.hierophant{color:#609;font-style:italic;font-weight:700}.hierophant_warning{color:#609;font-style:italic}.tajaran{color:#803b56}.skrell{color:#00ced1}.solcom{color:#8282fb}.com_cygni{color:#7c4848}.zombie{color:red}.soghun{color:#228b22}.vox{color:#a0a}.diona{color:#804000;font-weight:700}.trinary{color:#727272}.kidan{color:#c64c05}.slime{color:#07a}.drask{color:#a3d4eb;font-family:Arial Black}.moth{color:#869b29;font-family:Copperplate}.skulk{color:#b178b1}.clown{color:red}.vulpkanin{color:#b97a57}.gutter{color:#7092be;font-family:Trebuchet MS,cursive,sans-serif}.tradeband{font-family:Georgia,Verdana,sans-serif}.rose{color:#ff5050}.interface{color:#9031c4}.greentext{color:#0f0;font-size:150%}.redtext{color:red;font-size:150%}.red{color:red}.green{color:#03bb39}.purple{color:#9031c4}.orange{color:orange}.resonate{color:#298f85}.healthscan_oxy{color:#5cc9ff}.specialnotice{color:#4a6f82;font-size:120%;font-weight:700}.whisper{color:#ccc;font-style:italic}span.body .codephrases{color:#55f}span.body .coderesponses{color:#f33}.oxygen{color:#449dff}.nitrogen{color:#f94541}.carbon_dioxide{color:#ccc}.plasma{color:#eb6b00}.sleeping_agent{color:#f28b89}.agent_b{color:teal}.hydrogen{color:#997379}.water_vapor{color:#483d8b}.boxed_message{text-align:center;background:#17191c;border:.0833333em solid rgba(166,183,217,.25);border-width:.0833333em .416667em;border-radius:.5em;margin:.5em .25em;padding:.5em .75em}.boxed_message.red_border{background:#1f1414;border-color:rgba(255,0,0,.5)}.boxed_message.green_border{background:#141f18;border-color:rgba(0,255,0,.5)}.boxed_message.purple_border{background:#1d1828;border-color:rgba(170,128,255,.5)}.boxed_message.notice_border{background:#14181f;border-color:rgba(85,126,246,.5)}.boxed_message.thick_border{border-width:.5em}.boxed_message.left_align_text{text-align:left}:root{--chat-text-color:#b3cce6;--color-base:#202020;--color-section:hsl(from var(--color-base)h s calc(l - 4.2));--base-gradient-spread:0}.theme-light:root{--chat-text-color:var(--color-black);--color-base:#ededed;--color-section:var(--color-white);--color-text:var(--color-black);--color-label:#545454;--color-action:#e6e6e6;--color-scrollbar-thumb:var(--color-light-gray);--primary-lightness:60%;--primary-saturation:60%;--border-primary-alpha:.66;--button-background-selected:hsl(from var(--color-primary)h 100 l);--button-background-caution:#b85a0a;--button-background-danger:#990;--tab-color-selected:var(--color-black);--input-background:var(--color-base);--tooltip-background-lightness:90}.theme-light:root a,.theme-light:root h1,.theme-light:root h2,.theme-light:root h3,.theme-light:root h4,.theme-light:root h5,.theme-light:root h6{color:#00f}.theme-light:root .motd,.theme-light:root .motd h1,.theme-light:root .motd h2,.theme-light:root .motd h3,.theme-light:root .motd h4,.theme-light:root .motd h5,.theme-light:root .motd h6,.theme-light:root .motd a,.theme-light:root .motd a:link,.theme-light:root .motd a:active,.theme-light:root .motd a:hover{color:#638500}.theme-light:root .looc{color:#69c}.theme-light:root .discordpm{color:#00f}.theme-light:root .debug{color:#6d2f83}.theme-light:root .deadsay{color:#5c00e6}.theme-light:root .darkmblue{color:#00f}.theme-light:root .mentorhelp{color:#07b}.theme-light:root .mentor_channel{color:#5e6812}.theme-light:root .mentor_channel_admin{color:#94a419}.theme-light:root .adminhelp{color:#a00}.theme-light:root .adminticket{color:#3e7336}.theme-light:root .adminticketalt{color:#014c8a}.theme-light:root .admin_channel{color:#9a04d1}.theme-light:root .all_admin_ping{color:#12a5f4}.theme-light:root .dev_channel{color:#126719}.theme-light:root .dev_channel_admin{color:#26a419}.theme-light:root .staff_channel{color:#775bff}.theme-light:root .staff_channel_admin{color:#a35cff}.theme-light:root .radio{color:#408010}.theme-light:root .deptradio{color:#939}.theme-light:root .comradio{color:#204090}.theme-light:root .syndradio{color:#6d3f40}.theme-light:root .dsquadradio{color:#686868}.theme-light:root .airadio{color:#f0f}.theme-light:root .centradio{color:#5c5c7c}.theme-light:root .secradio{color:#a30000}.theme-light:root .engradio{color:#a66300}.theme-light:root .medradio{color:#009190}.theme-light:root .sciradio{color:#939}.theme-light:root .supradio{color:#7f6539}.theme-light:root .srvradio{color:#80a000}.theme-light:root .proradio{color:#e3027a}.theme-light:root .alert{color:red}.theme-light:root h1.alert,.theme-light:root h2.alert{color:#000}.theme-light:root .ghostalert{color:#5c00e6}.theme-light:root .warning,.theme-light:root .boldwarning,.theme-light:root .danger,.theme-light:root .userdanger{color:red}.theme-light:root .notice,.theme-light:root .boldnotice{color:#009}.theme-light:root .subtle{color:#009;font-size:85%;font-style:italic}.theme-light:root .announcement h1,.theme-light:root .announcement h2{color:#000}.theme-light:root .announcement.sec h1,.theme-light:root .boldannounceic,.theme-light:root .boldannounceooc{color:red}.theme-light:root .pr_announce{color:#228b22}.theme-light:root .greenannounce{color:#0f0}.theme-light:root .alien{color:#543354}.theme-light:root .terrorspider{color:#320e32}.theme-light:root .dantalion{color:#6a2148}.theme-light:root .revennotice,.theme-light:root .revenbignotice{color:#1d2953}.theme-light:root .changeling{color:purple}.theme-light:root .cultspeech{color:#7f0000}.theme-light:root .cultitalic,.theme-light:root .cultlarge,.theme-light:root .narsie,.theme-light:root .narsiesmall{color:#960000}.theme-light:root .rose{color:#ff5050}.theme-light:root .interface{color:#303}.theme-light:root .purple{color:#5e2d79}.theme-light:root .orange{color:orange}.theme-light:root .healthscan_oxy{color:#0074bd}.theme-light:root .specialnotice{color:#36525e}.theme-light:root .whisper{color:#333}.theme-light:root span.body .codephrases{color:#00f}.theme-light:root span.body .coderesponses{color:red}.theme-light:root .oxygen{color:#006adb}.theme-light:root .nitrogen{color:#d00a06}.theme-light:root .carbon_dioxide{color:#1f1f1f}.theme-light:root .plasma{color:#853c00}.theme-light:root .sleeping_agent{color:#e82f2c}.theme-light:root .agent_b{color:#004d4d}.theme-light:root .hydrogen{color:#997379}.theme-light:root .water_vapor{color:#004080}.theme-light:root .boxed_message{background:#f2f7ff;border-color:rgba(16,48,112,.5)}.theme-light:root .boxed_message.red_border{background:#fff2f2;border-color:rgba(255,0,0,.5)}.theme-light:root .boxed_message.green_border{background:#f2fff7;border-color:rgba(0,168,0,.5)}.theme-light:root .boxed_message.purple_border{background:#f7f2ff;border-color:rgba(85,0,255,.5)}.theme-light:root .boxed_message.notice_border{background:#f2f7ff;border-color:rgba(0,64,255,.5)}.theme-ntos:root{--color-base:#1b2532;--color-section:#121821;--color-primary:#476385}.theme-ntos:root .boxed_message{background:#1d2330}.theme-ntos:root .boxed_message.red_border{background:#301d1d}.theme-ntos:root .boxed_message.green_border{background:#1d3023}.theme-ntos:root .boxed_message.purple_border{background:#231d30}.theme-ntos:root .boxed_message.notice_border{background:#192234}.theme-syndicate:root{--color-base:#4d0202;--color-section:#2b0101;--color-primary:#3b783b;--color-label:#ad8585;--button-background-selected:#b60a0a;--button-background-caution:#ba5e0d;--button-background-danger:#969900;--notice-box-background:#8d0101;--notice-box-color:var(--color-text-fixed-white);--progress-bar-background:rgba(0,0,0,.5);--tooltip-background-lightness:25}.theme-syndicate:root .adminooc{color:#29ccbe}.theme-syndicate:root .debug{color:#8f39e6}.theme-syndicate:root .boxed_message{background:#360a0a}.theme-syndicate:root .boxed_message.red_border{background:#400000}.theme-syndicate:root .boxed_message.green_border{background:#261a00}.theme-syndicate:root .boxed_message.purple_border{background:#260026}.theme-syndicate:root .boxed_message.notice_border{background:#260016}.theme-paradise:root{--color-base:#8a0f38;--color-section:rgba(0,0,0,.5);--color-base-start:#7e014a;--color-base-end:#8a4d0f;--color-primary:#1f7a7a;--color-label:#ad9685;--reconnect-background:#d92626;--reconnect-text:var(--color-text);--input-border-color:#e85e30;--button-background-selected:#cf6e3d;--button-background-danger:#93f}.theme-paradise:root .adminooc{color:#29ccbe}.theme-paradise:root .debug{color:#8f39e6}.theme-paradise:root .boxed_message{background:rgba(0,0,0,.25);border-color:rgba(223,181,159,.25)}.theme-paradise:root .boxed_message.red_border{background:rgba(22,3,3,.25);border-color:rgba(255,0,0,.5)}.theme-paradise:root .boxed_message.green_border{background:rgba(3,22,10,.25);border-color:rgba(0,255,0,.5)}.theme-paradise:root .boxed_message.purple_border{background:rgba(10,3,22,.25);border-color:rgba(136,77,255,.5)}.theme-paradise:root .boxed_message.notice_border{background:rgba(3,10,22,.25);border-color:rgba(85,126,246,.5)} \ No newline at end of file