diff --git a/Content.Client/_Starlight/Overlay/Overlays/BaseVisionOverlay.cs b/Content.Client/_Starlight/Overlay/Overlays/BaseVisionOverlay.cs new file mode 100644 index 00000000000..6b46fcd71b0 --- /dev/null +++ b/Content.Client/_Starlight/Overlay/Overlays/BaseVisionOverlay.cs @@ -0,0 +1,59 @@ +using Robust.Client.Graphics; +using Robust.Client.Player; +using Robust.Shared.Enums; + +namespace Content.Client._Starlight.Overlay; + +/* +Time to mini rant here. this NEEDs to be a abstract because if its not, then +the overlay system will think its trying to apply multiple of the same overlay +Hence, itll remove all of them until theres only one, even if all the instances +youve added are different based on their fields. So to get around this, +we define all the actual BEHAVIOUR here, but then just make it appear as a new +type by inheriting from this and implementing nothing. Thanks Robust Toolbox team. +*/ +public abstract class BaseVisionOverlay : Robust.Client.Graphics.Overlay +{ + [Dependency] private readonly IEntityManager _entityManager = default!; + [Dependency] private readonly IPlayerManager _playerManager = default!; + + public override bool RequestScreenTexture => true; + public override OverlaySpace Space => OverlaySpace.WorldSpace; + private protected readonly ShaderInstance _shader; + public BaseVisionOverlay(ShaderPrototype shader) + { + IoCManager.InjectDependencies(this); + _shader = shader.InstanceUnique(); + } + + protected override bool BeforeDraw(in OverlayDrawArgs args) + { + if (!_entityManager.TryGetComponent(_playerManager.LocalSession?.AttachedEntity, out EyeComponent? eyeComp)) + return false; + + if (args.Viewport.Eye != eyeComp.Eye) + return false; + + var playerEntity = _playerManager.LocalSession?.AttachedEntity; + + if (playerEntity == null) + return false; + + return true; + } + + protected override void Draw(in OverlayDrawArgs args) + { + if (ScreenTexture == null) + return; + + var worldHandle = args.WorldHandle; + var viewport = args.WorldBounds; + + _shader.SetParameter("SCREEN_TEXTURE", ScreenTexture); + + worldHandle.UseShader(_shader); + worldHandle.DrawRect(viewport, Color.White); + worldHandle.UseShader(null); + } +} diff --git a/Content.Client/_Starlight/Overlay/Overlays/OverlayZIndexes.cs b/Content.Client/_Starlight/Overlay/Overlays/OverlayZIndexes.cs new file mode 100644 index 00000000000..300cf767228 --- /dev/null +++ b/Content.Client/_Starlight/Overlay/Overlays/OverlayZIndexes.cs @@ -0,0 +1,9 @@ +namespace Content.Client._Starlight.Overlay; + +//order doesnt matter here, we just need them to be unique +public enum OverlayZIndexes +{ + SLNightVision = 10001, + ThermalVisionEntityHighlight, + ThermalVision, +} diff --git a/Content.Client/_Starlight/Overlay/Overlays/SLNightVisionOverlay.cs b/Content.Client/_Starlight/Overlay/Overlays/SLNightVisionOverlay.cs new file mode 100644 index 00000000000..34ab3fe26f7 --- /dev/null +++ b/Content.Client/_Starlight/Overlay/Overlays/SLNightVisionOverlay.cs @@ -0,0 +1,9 @@ +using Robust.Client.Graphics; + +namespace Content.Client._Starlight.Overlay; + +public sealed class SLNightVisionOverlay : BaseVisionOverlay +{ + public SLNightVisionOverlay(ShaderPrototype shader) : base(shader) + => ZIndex = (int?)OverlayZIndexes.SLNightVision; +} \ No newline at end of file diff --git a/Content.Client/_Starlight/Overlay/Systems/SLNightVisionSystem.cs b/Content.Client/_Starlight/Overlay/Systems/SLNightVisionSystem.cs new file mode 100644 index 00000000000..7946d3ec769 --- /dev/null +++ b/Content.Client/_Starlight/Overlay/Systems/SLNightVisionSystem.cs @@ -0,0 +1,96 @@ +using Content.Shared.Eye.Blinding.Components; +using Robust.Client.GameObjects; +using Robust.Client.Graphics; +using Robust.Client.Player; +using Robust.Shared.Player; +using Robust.Shared.Prototypes; +using Content.Shared.Starlight.Overlay; + +namespace Content.Client._Starlight.Overlay; + +public sealed class SLNightVisionSystem : EntitySystem +{ + [Dependency] private readonly IPlayerManager _player = default!; + [Dependency] private readonly IOverlayManager _overlayMan = default!; + [Dependency] private readonly TransformSystem _xformSys = default!; + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly FlashImmunitySystem _flashImmunity = default!; + + private SLNightVisionOverlay _overlay = default!; + [ViewVariables] + private EntityUid? _effect = null; + private const string ModernSLNightVisionShaderPrototype = "ModernSLNightVisionShader"; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnVisionInit); + SubscribeLocalEvent(OnVisionShutdown); + + SubscribeLocalEvent(OnPlayerAttached); + SubscribeLocalEvent(OnPlayerDetached); + + SubscribeLocalEvent(OnFlashImmunityChanged); + + _overlay = new(_prototypeManager.Index(ModernSLNightVisionShaderPrototype)); + } + + private void OnFlashImmunityChanged(Entity ent, ref FlashImmunityCheckEvent args) + { + if (args.IsImmune) + { + AttemptRemoveVision(ent.Owner); + } + else + { + AttemptAddVision(ent.Owner); + } + } + + private void OnPlayerAttached(Entity ent, ref LocalPlayerAttachedEvent args) + => AttemptAddVision(ent.Owner); + + private void OnPlayerDetached(Entity ent, ref LocalPlayerDetachedEvent args) + => AttemptRemoveVision(ent.Owner, true); + + private void OnVisionInit(Entity ent, ref ComponentInit args) + => AttemptAddVision(ent.Owner); + + private void OnVisionShutdown(Entity ent, ref ComponentShutdown args) + => AttemptRemoveVision(ent.Owner); + + private void AttemptAddVision(EntityUid uid) + { + if (_player.LocalSession?.AttachedEntity != uid) return; + + //if they currently have flash immunity, dont add + if (_flashImmunity.HasFlashImmunityVisionBlockers(uid)) return; + + //only add if its active + if (!TryComp(uid, out var nightVision) || !nightVision.Active) return; + + //only add if effect isnt already used + if (_effect != null) return; + + _overlayMan.AddOverlay(_overlay); + + _effect = SpawnAttachedTo(nightVision.EffectPrototype, Transform(uid).Coordinates); + _xformSys.SetParent(_effect.Value, uid); + } + + /// + /// Attempt to remove the overlay from the local player. + /// + /// + /// Use if you need to forcefully remove the overlay no matter what. Only should be used with events that ONLY the local player can fire, like attach/detach + private void AttemptRemoveVision(EntityUid uid, bool force = false) + { + //ENSURE this is the local player + if (_player.LocalSession?.AttachedEntity != uid && !force) return; + + _overlayMan.RemoveOverlay(_overlay); + Del(_effect); + _effect = null; + } +} \ No newline at end of file diff --git a/Content.Server/Flash/Components/FlashImmunityComponent.cs b/Content.Shared/Flash/Components/FlashImmunityComponent.cs similarity index 50% rename from Content.Server/Flash/Components/FlashImmunityComponent.cs rename to Content.Shared/Flash/Components/FlashImmunityComponent.cs index c0bbd9c3943..1dfbc73f016 100644 --- a/Content.Server/Flash/Components/FlashImmunityComponent.cs +++ b/Content.Shared/Flash/Components/FlashImmunityComponent.cs @@ -1,12 +1,13 @@ using Robust.Shared.GameStates; -namespace Content.Server.Flash.Components; +namespace Content.Shared.Flash.Components; +// Starlight edit - moved this to Shared for BlocksSpecialVision /// /// Makes the entity immune to being flashed. /// When given to clothes in the "head", "eyes" or "mask" slot it protects the wearer. /// -[RegisterComponent] // Goob edit +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] // Goob and Starlight edit public sealed partial class FlashImmunityComponent : Component { [ViewVariables(VVAccess.ReadWrite)] @@ -16,4 +17,14 @@ public sealed partial class FlashImmunityComponent : Component [ViewVariables(VVAccess.ReadWrite)] [DataField("protectionRange")] public float ProtectionRange { get; set; } = 0f; + + //starlight + /// + /// If true, will affect night vision, thermal vision, and shadekin vision. + /// + [ViewVariables(VVAccess.ReadWrite)] + [AutoNetworkedField] + [DataField] + public bool BlocksSpecialVision { get; set; } = true; + //starlight end } diff --git a/Content.Shared/Flash/Components/FlashModifierComponent.cs b/Content.Shared/Flash/Components/FlashModifierComponent.cs new file mode 100644 index 00000000000..46fa1bd254b --- /dev/null +++ b/Content.Shared/Flash/Components/FlashModifierComponent.cs @@ -0,0 +1,8 @@ + namespace Content.Shared.Flash.Components; + +[RegisterComponent] +public sealed partial class FlashModifierComponent : Component +{ + [DataField] + public float Modifier = 1f; +} diff --git a/Content.Shared/Flash/SharedFlashSystem.cs b/Content.Shared/Flash/SharedFlashSystem.cs index b7788098870..405df7fa303 100644 --- a/Content.Shared/Flash/SharedFlashSystem.cs +++ b/Content.Shared/Flash/SharedFlashSystem.cs @@ -1,3 +1,4 @@ +using Content.Shared._Goobstation.Flashbang; using Content.Shared.Flash.Components; using Content.Shared.StatusEffect; using Robust.Shared.Audio; @@ -9,6 +10,20 @@ public abstract class SharedFlashSystem : EntitySystem { public ProtoId FlashedKey = "Flashed"; + // Starlight edit start - Flash multiplier + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnFlashModifier); + } + + private void OnFlashModifier(Entity ent, ref FlashDurationMultiplierEvent args) + { + args.Multiplier *= ent.Comp.Modifier; + } + // Starlight edit end + public virtual void FlashArea(Entity source, EntityUid? user, float range, float duration, float slowTo = 0.8f, bool displayPopup = false, float probability = 1f, SoundSpecifier? sound = null) { } diff --git a/Content.Shared/_Starlight/Overlay/Components/SLNightVisionComponent.cs b/Content.Shared/_Starlight/Overlay/Components/SLNightVisionComponent.cs new file mode 100644 index 00000000000..6e3e6a5d57e --- /dev/null +++ b/Content.Shared/_Starlight/Overlay/Components/SLNightVisionComponent.cs @@ -0,0 +1,20 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Eye.Blinding.Components; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class SLNightVisionComponent : Component +{ + [DataField, AutoNetworkedField] + public bool Active = true; + + [DataField] + public EntProtoId EffectPrototype = "EffectSLNightVision"; + + public bool Clothes; +} + +[RegisterComponent] +public sealed partial class ClothesSLNightVisionComponent : Component +{ } \ No newline at end of file diff --git a/Content.Shared/_Starlight/Overlay/Events/FlashImmunityChangedEvent.cs b/Content.Shared/_Starlight/Overlay/Events/FlashImmunityChangedEvent.cs new file mode 100644 index 00000000000..5b9761ff614 --- /dev/null +++ b/Content.Shared/_Starlight/Overlay/Events/FlashImmunityChangedEvent.cs @@ -0,0 +1,13 @@ +namespace Content.Shared.Starlight.Overlay; + +public sealed class FlashImmunityCheckEvent : EntityEventArgs +{ + public readonly EntityUid EntityUid; + public readonly bool IsImmune; + + public FlashImmunityCheckEvent(EntityUid entityUid, bool isImmune) + { + EntityUid = entityUid; + IsImmune = isImmune; + } +} diff --git a/Content.Shared/_Starlight/Overlay/Systems/ClothesVisionSystem.cs b/Content.Shared/_Starlight/Overlay/Systems/ClothesVisionSystem.cs new file mode 100644 index 00000000000..c877718d539 --- /dev/null +++ b/Content.Shared/_Starlight/Overlay/Systems/ClothesVisionSystem.cs @@ -0,0 +1,40 @@ +using Content.Shared.Inventory.Events; +using Content.Shared.Clothing.Components; +using Robust.Shared.Serialization.Manager; + +namespace Content.Shared.Eye.Blinding.Components; + +public sealed partial class ClothesVisionSystem : EntitySystem +{ + [Dependency] private readonly ISerializationManager _serialization = default!; + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnEquipped); + SubscribeLocalEvent(OnUnequipped); + } + + private void OnEquipped(EntityUid uid, ClothesSLNightVisionComponent component, GotEquippedEvent args) + { + if (!TryComp(uid, out var clothing) + || !clothing.Slots.HasFlag(args.SlotFlags)) + return; + + if (!HasComp(args.Equipee)) + { + var nightvision = EnsureComp(args.Equipee); + nightvision.Clothes = true; + } + } + + private void OnUnequipped(EntityUid uid, ClothesSLNightVisionComponent component, GotUnequippedEvent args) + { + if (TryComp(args.Equipee, out var nightvision) && !nightvision.Clothes) + { + nightvision.Clothes = false; + return; + } + + RemComp(args.Equipee); + } +} diff --git a/Content.Shared/_Starlight/Overlay/Systems/FlashImmunitySystem.cs b/Content.Shared/_Starlight/Overlay/Systems/FlashImmunitySystem.cs new file mode 100644 index 00000000000..2e7e8f5d659 --- /dev/null +++ b/Content.Shared/_Starlight/Overlay/Systems/FlashImmunitySystem.cs @@ -0,0 +1,96 @@ +using Content.Shared.Clothing.Components; +using Content.Shared.Eye.Blinding.Components; +using Content.Shared.Flash.Components; +using Content.Shared.Inventory; +using Content.Shared.Inventory.Events; +using Robust.Shared.Player; + +namespace Content.Shared.Starlight.Overlay; + +public sealed class FlashImmunitySystem : EntitySystem +{ + [Dependency] private readonly InventorySystem _inventory = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnFlashImmunityEquipped); + SubscribeLocalEvent(OnFlashImmunityUnEquipped); + + SubscribeLocalEvent(OnFlashImmunityChanged); + SubscribeLocalEvent(OnFlashImmunityChanged); + + SubscribeLocalEvent(OnPlayerAttached); + + SubscribeLocalEvent(OnVisionChanged); + SubscribeLocalEvent(OnVisionChanged); + } + + private void OnPlayerAttached(LocalPlayerAttachedEvent args) + { + FlashImmunityCheckEvent flashImmunityChangedEvent = new(args.Entity, HasFlashImmunityVisionBlockers(args.Entity)); + RaiseLocalEvent(args.Entity, flashImmunityChangedEvent); + } + + private void OnFlashImmunityChanged(EntityUid uid, FlashImmunityComponent component, EntityEventArgs args) + { + uid = GetPossibleWearer(uid); + FlashImmunityCheckEvent flashImmunityChangedEvent = new(uid, HasFlashImmunityVisionBlockers(uid)); + RaiseLocalEvent(uid, flashImmunityChangedEvent); + } + + private void OnVisionChanged(EntityUid uid, Component component, EntityEventArgs args) + { + uid = GetPossibleWearer(uid); + FlashImmunityCheckEvent flashImmunityChangedEvent = new(uid, HasFlashImmunityVisionBlockers(uid)); + RaiseLocalEvent(uid, flashImmunityChangedEvent); + } + + private void OnFlashImmunityEquipped(EntityUid uid, FlashImmunityComponent component, GotEquippedEvent args) + { + FlashImmunityCheckEvent flashImmunityChangedEvent = new(uid, HasFlashImmunityVisionBlockers(args.Equipee)); + RaiseLocalEvent(args.Equipee, flashImmunityChangedEvent); + } + + private void OnFlashImmunityUnEquipped(EntityUid uid, FlashImmunityComponent component, GotUnequippedEvent args) + { + FlashImmunityCheckEvent flashImmunityChangedEvent = new(uid, HasFlashImmunityVisionBlockers(args.Equipee)); + RaiseLocalEvent(args.Equipee, flashImmunityChangedEvent); + } + + private EntityUid GetPossibleWearer(EntityUid uid) + { + if (TryComp(uid, out var clothingComponent)) + { + //we want to get the wearer of the clothing, not the clothing itself + return Transform(uid).ParentUid; + } + + return uid; + } + + public bool HasFlashImmunityVisionBlockers(EntityUid uid) + { + if (EntityManager.TryGetComponent(uid, out FlashImmunityComponent? flashImmunityComponent)) + { + if (flashImmunityComponent.BlocksSpecialVision) + return true; + } + + if (TryComp(uid, out var inventoryComp)) + { + //get all worn items + var slots = _inventory.GetSlotEnumerator((uid, inventoryComp), SlotFlags.WITHOUT_POCKET); + while (slots.MoveNext(out var slot)) + { + if (slot.ContainedEntity != null && EntityManager.TryGetComponent(slot.ContainedEntity, out FlashImmunityComponent? wornFlashImmunityComponent)) + { + if (wornFlashImmunityComponent.BlocksSpecialVision) + return true; + } + } + } + + return false; + } +} diff --git a/Resources/Audio/_Starlight/Voice/Shadekin/attributions.yml b/Resources/Audio/_Starlight/Voice/Shadekin/attributions.yml new file mode 100644 index 00000000000..34419f7a5e2 --- /dev/null +++ b/Resources/Audio/_Starlight/Voice/Shadekin/attributions.yml @@ -0,0 +1,4 @@ +- files: ["wurble.ogg", "mar.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from CHOMPStation" + source: "https://github.com/CHOMPStation2/CHOMPStation2" diff --git a/Resources/Audio/_Starlight/Voice/Shadekin/mar.ogg b/Resources/Audio/_Starlight/Voice/Shadekin/mar.ogg new file mode 100644 index 00000000000..b13d2df8377 Binary files /dev/null and b/Resources/Audio/_Starlight/Voice/Shadekin/mar.ogg differ diff --git a/Resources/Audio/_Starlight/Voice/Shadekin/scream_f1.ogg b/Resources/Audio/_Starlight/Voice/Shadekin/scream_f1.ogg new file mode 100644 index 00000000000..99f8e7f91fa Binary files /dev/null and b/Resources/Audio/_Starlight/Voice/Shadekin/scream_f1.ogg differ diff --git a/Resources/Audio/_Starlight/Voice/Shadekin/scream_f2.ogg b/Resources/Audio/_Starlight/Voice/Shadekin/scream_f2.ogg new file mode 100644 index 00000000000..923da501667 Binary files /dev/null and b/Resources/Audio/_Starlight/Voice/Shadekin/scream_f2.ogg differ diff --git a/Resources/Audio/_Starlight/Voice/Shadekin/scream_m1.ogg b/Resources/Audio/_Starlight/Voice/Shadekin/scream_m1.ogg new file mode 100644 index 00000000000..67f4734bcf4 Binary files /dev/null and b/Resources/Audio/_Starlight/Voice/Shadekin/scream_m1.ogg differ diff --git a/Resources/Audio/_Starlight/Voice/Shadekin/scream_m2.ogg b/Resources/Audio/_Starlight/Voice/Shadekin/scream_m2.ogg new file mode 100644 index 00000000000..bc499bad782 Binary files /dev/null and b/Resources/Audio/_Starlight/Voice/Shadekin/scream_m2.ogg differ diff --git a/Resources/Audio/_Starlight/Voice/Shadekin/wurble.ogg b/Resources/Audio/_Starlight/Voice/Shadekin/wurble.ogg new file mode 100644 index 00000000000..859c9df3530 Binary files /dev/null and b/Resources/Audio/_Starlight/Voice/Shadekin/wurble.ogg differ diff --git a/Resources/Locale/en-US/_Starlight/datasets/names/shadekin.ftl b/Resources/Locale/en-US/_Starlight/datasets/names/shadekin.ftl new file mode 100644 index 00000000000..cc9037a8b5d --- /dev/null +++ b/Resources/Locale/en-US/_Starlight/datasets/names/shadekin.ftl @@ -0,0 +1,58 @@ +# Sad +names-shadekin-dataset-1 = Fragile +names-shadekin-dataset-2 = Heartbreak +names-shadekin-dataset-3 = Inferior +names-shadekin-dataset-4 = Lone +names-shadekin-dataset-5 = Lonesome +names-shadekin-dataset-6 = Loss +names-shadekin-dataset-7 = Solitary +names-shadekin-dataset-8 = Solitude +names-shadekin-dataset-9 = Sorrow +names-shadekin-dataset-10 = Shade + +# Angry +names-shadekin-dataset-11 = Fear +names-shadekin-dataset-12 = Fearful +names-shadekin-dataset-13 = Fury +names-shadekin-dataset-14 = Pain +names-shadekin-dataset-15 = Rage +names-shadekin-dataset-16 = Rush +names-shadekin-dataset-17 = Wrath + +# Happy +names-shadekin-dataset-18 = Calm +names-shadekin-dataset-19 = Content +names-shadekin-dataset-20 = Contented +names-shadekin-dataset-21 = Happy +names-shadekin-dataset-22 = Hope +names-shadekin-dataset-23 = Joyous +names-shadekin-dataset-24 = Lovely +names-shadekin-dataset-25 = Peace +names-shadekin-dataset-26 = Peaceful +names-shadekin-dataset-27 = Quiet +names-shadekin-dataset-28 = Serene +names-shadekin-dataset-29 = Serenity +names-shadekin-dataset-30 = Tranquil +names-shadekin-dataset-31 = Tranquility + +# Memory +names-shadekin-dataset-32 = Dillusioned +names-shadekin-dataset-33 = Forgotten +names-shadekin-dataset-34 = Focusless +names-shadekin-dataset-35 = Lost +names-shadekin-dataset-36 = Memory +names-shadekin-dataset-37 = Recollection +names-shadekin-dataset-38 = Remembrance +names-shadekin-dataset-39 = Reminisce +names-shadekin-dataset-40 = Reminiscence + +# Other +names-shadekin-dataset-41 = Apathy +names-shadekin-dataset-42 = Collected +names-shadekin-dataset-43 = Curiosity +names-shadekin-dataset-44 = Free +names-shadekin-dataset-45 = Interest +names-shadekin-dataset-46 = Jax +names-shadekin-dataset-47 = Still +names-shadekin-dataset-48 = Unbound +names-shadekin-dataset-49 = Shadows diff --git a/Resources/Locale/en-US/_Starlight/markings/shadekin.ftl b/Resources/Locale/en-US/_Starlight/markings/shadekin.ftl new file mode 100644 index 00000000000..c50842b65c7 --- /dev/null +++ b/Resources/Locale/en-US/_Starlight/markings/shadekin.ftl @@ -0,0 +1,66 @@ +# Ears +marking-EarsShadekin = Default +marking-EarsShadekinStriped = Striped +marking-EarsShadekinMotley = Motley +marking-EarsShadekinShady = Dark +marking-EarsShadekinPiercingAll = Piercings +marking-EarsShadekinPiercingLeft = Piercing (L) +marking-EarsShadekinPiercingRight = Piercing (R) +marking-EarsShadekinRingedAll = Rings +marking-EarsShadekinRingedLeft = Ring (L) +marking-EarsShadekinRingedRight = Ring (R) +marking-EarsShadekinGauzedAll = Gauzed +marking-EarsShadekinGauzedLeft = Bandage (L) +marking-EarsShadekinGauzedRight = Bandage (R) +marking-EarsShadekinFluffy = Fluffy +marking-EarsShadekinFluffyButterfly = Fluffy, Butterfly +marking-EarsShadekinFluffyCowling = Fluffy, Spotted +marking-EarsShadekinFluffyCrow = Fluffy, Crow +marking-EarsShadekinFluffyMotley = Fluffy, Bright +marking-EarsShadekinFluffySpidy = Fluffy, Spidy +marking-EarsShadekinFluffyRingedAll = Fluffy, with Rings +marking-EarsShadekinFluffyRingedLeft = Fluffy, with Ring (L) +marking-EarsShadekinFluffyRingedRight = Fluffy, with Ring (R) +marking-EarsShadekinSaggy = Drooping +marking-EarsShadekinSaggyBrawly = Drooping, Patterned +marking-EarsShadekinSaggyZebra = Drooping, Striped +marking-EarsShadekinSaggyGradient = Drooping, Gradient +marking-EarsShadekinSaggyGauzedAll = Drooping, Gauzed +marking-EarsShadekinSaggyGauzedLeft = Drooping, Ear Bandage (L) +marking-EarsShadekinSaggyGauzedRight = Drooping, Ear Bandage (R) +marking-EarsShadekinShort = Short +marking-EarsShadekinShortButterfly = Short, Decorated +marking-EarsShadekinShortRingedAll = Short, with Rings +marking-EarsShadekinShortRingedLeft = Short, with Ring (L) +marking-EarsShadekinShortRingedRight = Short, with Ring (R) +marking-EarsShadekinBull = Straight +marking-EarsShadekinBullSmooth = Straight, Outlined +marking-EarsShadekinAqua = Aqua +marking-EarsShadekinAquaIncolor = Aqua, Colored + +# Tails +marking-TailShadekin = Default +marking-TailShadekinBig = Big +marking-TailShadekinBigFluff = Big and Fluffy +marking-TailShadekinShorter = Short +marking-TailShadekinShorterBrush = Short, Furry +marking-TailShadekinMedium = Medium +marking-TailShadekinMediumTwoColored = Medium, Two-Toned + +# Overlays +marking-BodyShadekinArrow = Arrow Marking +marking-BodyShadekinBlackHole = Black Hole Marking +marking-BodyShadekinBrace = Bracelet Marking +marking-BodyShadekinBrawly = Combat Marking +marking-BodyShadekinHeart = Heart Marking +marking-BodyShadekinInk = Ink Marking +marking-BodyShadekinInk2 = Ink Marking 2 +marking-BodyShadekinInk3 = Ink Marking 3 +marking-BodyShadekinInk4 = Ink Marking 4 +marking-BodyShadekinInk5 = Ink Marking 5 +marking-BodyShadekinInk6 = Spiritual Ink Marking +marking-BodyShadekinInkAnim = Spiral Ink Marking +marking-BodyShadekinLines = Lines Marking +marking-BodyShadekinNeck = Neck Marking +marking-BodyShadekinShield = Protective Marking +marking-BodyShadekinVacuum = Open Marking diff --git a/Resources/Locale/en-US/_Starlight/reagents/meta/biological.ftl b/Resources/Locale/en-US/_Starlight/reagents/meta/biological.ftl index bbe42aefed7..a4cf5304b9c 100644 --- a/Resources/Locale/en-US/_Starlight/reagents/meta/biological.ftl +++ b/Resources/Locale/en-US/_Starlight/reagents/meta/biological.ftl @@ -3,3 +3,7 @@ reagent-desc-avali-blood = Smells like piss. reagent-name-resomi-blood = diluted ammonia blood reagent-desc-resomi-blood = Smells like piss. + +reagent-name-dark-blood = dark blood +reagent-desc-dark-blood = The blood from a creature of The Dark. +reagent-physical-desc-unidentifiable = unidentifiable diff --git a/Resources/Locale/en-US/_Starlight/species/species.ftl b/Resources/Locale/en-US/_Starlight/species/species.ftl index a97dd69d010..444947b7ac6 100644 --- a/Resources/Locale/en-US/_Starlight/species/species.ftl +++ b/Resources/Locale/en-US/_Starlight/species/species.ftl @@ -1,2 +1,2 @@ species-name-avali = Avali - +species-name-shadekin = Shadekin diff --git a/Resources/Prototypes/Guidebook/species.yml b/Resources/Prototypes/Guidebook/species.yml index feb082acb28..8e1eaa2349f 100644 --- a/Resources/Prototypes/Guidebook/species.yml +++ b/Resources/Prototypes/Guidebook/species.yml @@ -25,6 +25,7 @@ - Hydrakin # Monolith/Obelisk - Avali # Starlight - Feroxi # Delta V + - Shadekin # Starlight - type: guideEntry id: Arachnid @@ -96,4 +97,9 @@ name: species-name-avali text: "/ServerInfo/Guidebook/Mobs/Avali.xml" +- type: guideEntry + id: Shadekin + name: species-name-shadekin + text: "/ServerInfo/Guidebook/Mobs/Shadekin.xml" + diff --git a/Resources/Prototypes/_StarLight/Body/Organs/shadekin.yml b/Resources/Prototypes/_StarLight/Body/Organs/shadekin.yml new file mode 100644 index 00000000000..bfa4488cbb3 --- /dev/null +++ b/Resources/Prototypes/_StarLight/Body/Organs/shadekin.yml @@ -0,0 +1,94 @@ +- type: entity + id: OrganShadekinBrain + parent: OrganHumanBrain + description: "The source of incredible, unending intelligence. Marr." + components: + - type: Sprite + sprite: _Starlight/Mobs/Species/Shadekin/organs.rsi + state: brain + +# Triad edit start - Add lungs to shadekin +- type: entity + id: OrganShadekinLungs + parent: OrganHumanLungs + name: lungs +# Triad edit end + +- type: entity + id: OrganShadekinEyes + parent: OrganHumanEyes + suffix: Shadekin + description: "Eyes of a BlackEye shadekin that can never see their home reality again." + components: + - type: Sprite + sprite: _Starlight/Mobs/Species/Shadekin/organs.rsi + layers: + - state: eyes + - type: Organ + onAdd: + - type: SLNightVision + +- type: entity + id: OrganShadekinTongue + parent: OrganHumanTongue + suffix: Shadekin + components: + - type: Sprite + sprite: _Starlight/Mobs/Species/Shadekin/organs.rsi + state: tongue + +- type: entity + id: OrganShadekinAppendix + parent: OrganHumanAppendix + suffix: Shadekin + components: + - type: Sprite + sprite: _Starlight/Mobs/Species/Shadekin/organs.rsi + layers: + - state: appendix + +- type: entity + id: OrganShadekinHeart + parent: OrganHumanHeart + suffix: Shadekin + components: + - type: Sprite + sprite: _Starlight/Mobs/Species/Shadekin/organs.rsi + state: heart + +- type: entity + id: OrganShadekinStomach + parent: OrganHumanStomach + suffix: Shadekin + components: + - type: Sprite + sprite: _Starlight/Mobs/Species/Shadekin/organs.rsi + state: stomach + - type: SolutionContainerManager + solutions: + stomach: + maxVol: 40 + food: + maxVol: 5 + reagents: + - ReagentId: UncookedAnimalProteins + Quantity: 5 + +- type: entity + id: OrganShadekinLiver + parent: OrganHumanLiver + suffix: Shadekin + components: + - type: Sprite + sprite: _Starlight/Mobs/Species/Shadekin/organs.rsi + state: liver + +- type: entity + id: OrganShadekinKidneys + parent: OrganHumanKidneys + suffix: Shadekin + components: + - type: Sprite + sprite: _Starlight/Mobs/Species/Shadekin/organs.rsi + layers: + - state: kidneys diff --git a/Resources/Prototypes/_StarLight/Body/Parts/shadekin.yml b/Resources/Prototypes/_StarLight/Body/Parts/shadekin.yml new file mode 100644 index 00000000000..77c782686f0 --- /dev/null +++ b/Resources/Prototypes/_StarLight/Body/Parts/shadekin.yml @@ -0,0 +1,117 @@ +- type: entity + id: PartShadekin + parent: [BaseItem, BasePart] + name: shadekin body part + abstract: true + components: + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 3 + - ReagentId: DarkBlood + Quantity: 10 + +- type: entity + id: TorsoShadekin + name: shadekin torso + parent: [PartShadekin, BaseTorso] + components: + - type: Sprite + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: torso_m + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 10 + - ReagentId: DarkBlood + Quantity: 20 + +- type: entity + id: HeadShadekin + name: shadekin head + parent: [PartShadekin, BaseHead] + components: + - type: Sprite + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: head_m + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 5 + - ReagentId: DarkBlood + Quantity: 10 + +- type: entity + id: LeftArmShadekin + name: left shadekin arm + parent: [PartShadekin, BaseLeftArm] + components: + - type: Sprite + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: l_arm + +- type: entity + id: RightArmShadekin + name: right shadekin arm + parent: [PartShadekin, BaseRightArm] + components: + - type: Sprite + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: r_arm + +- type: entity + id: LeftHandShadekin + name: left shadekin hand + parent: [PartShadekin, BaseLeftHand] + components: + - type: Sprite + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: l_hand + +- type: entity + id: RightHandShadekin + name: right shadekin hand + parent: [PartShadekin, BaseRightHand] + components: + - type: Sprite + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: r_hand + +- type: entity + id: LeftLegShadekin + name: left shadekin leg + parent: [PartShadekin, BaseLeftLeg] + components: + - type: Sprite + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: l_leg + +- type: entity + id: RightLegShadekin + name: right shadekin leg + parent: [PartShadekin, BaseRightLeg] + components: + - type: Sprite + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: r_leg + +- type: entity + id: LeftFootShadekin + name: left shadekin foot + parent: [PartShadekin, BaseLeftFoot] + components: + - type: Sprite + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: l_foot + +- type: entity + id: RightFootShadekin + name: right shadekin foot + parent: [PartShadekin, BaseRightFoot] + components: + - type: Sprite + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: r_foot diff --git a/Resources/Prototypes/_StarLight/Body/Prototypes/shadekin.yml b/Resources/Prototypes/_StarLight/Body/Prototypes/shadekin.yml new file mode 100644 index 00000000000..8d13e2f2c15 --- /dev/null +++ b/Resources/Prototypes/_StarLight/Body/Prototypes/shadekin.yml @@ -0,0 +1,50 @@ +- type: body + id: Shadekin + name: "shadekin" + root: torso + slots: + head: + part: HeadShadekin + connections: + - torso + organs: + brain: OrganShadekinBrain + eyes: OrganShadekinEyes + tongue: OrganShadekinTongue + torso: + part: TorsoShadekin + connections: + - right arm + - left arm + - right leg + - left leg + organs: + heart: OrganShadekinHeart + lungs: OrganShadekinLungs + stomach: OrganShadekinStomach + liver: OrganShadekinLiver + kidneys: OrganShadekinKidneys + right arm: + part: RightArmShadekin + connections: + - right hand + left arm: + part: LeftArmShadekin + connections: + - left hand + right hand: + part: RightHandShadekin + left hand: + part: LeftHandShadekin + right leg: + part: RightLegShadekin + connections: + - right foot + left leg: + part: LeftLegShadekin + connections: + - left foot + right foot: + part: RightFootShadekin + left foot: + part: LeftFootShadekin diff --git a/Resources/Prototypes/_StarLight/Damage/modifier_sets.yml b/Resources/Prototypes/_StarLight/Damage/modifier_sets.yml index fc1f5361e35..1ddaacdbde1 100644 --- a/Resources/Prototypes/_StarLight/Damage/modifier_sets.yml +++ b/Resources/Prototypes/_StarLight/Damage/modifier_sets.yml @@ -4,3 +4,13 @@ Cold: 0.6 Heat: 1.4 +- type: damageModifierSet + id: Shadekin + coefficients: + Asphyxiation: 1 + Cold: 0.75 + Heat: 1.2 + Cellular: 0.25 + Bloodloss: 1.35 + Shock: 1.25 + Radiation: 1.3 diff --git a/Resources/Prototypes/_StarLight/Datasets/Names/shadekin.yml b/Resources/Prototypes/_StarLight/Datasets/Names/shadekin.yml new file mode 100644 index 00000000000..c15871f9a17 --- /dev/null +++ b/Resources/Prototypes/_StarLight/Datasets/Names/shadekin.yml @@ -0,0 +1,57 @@ +- type: dataset + id: names_shadekin + values: + # Sad + - Fragile + - Heartbreak + - Inferior + - Lone + - Lonesome + - Loss + - Solitary + - Solitude + - Sorrow + - Shade + # Angry + - Fear + - Fearful + - Fury + - Pain + - Rage + - Rush + - Wrath + # Happy + - Calm + - Content + - Contented + - Happy + - Hope + - Joyous + - Lovely + - Peace + - Peaceful + - Quiet + - Serene + - Serenity + - Tranquil + - Tranquility + # Memory + - Dillusioned + - Forgotten + - Focusless + - Lost + - Memory + - Recollection + - Remembrance + - Reminisce + - Reminiscence + # Other + - Apathy + - Collected + - Curiosity + - Free + - Interest + - Jax + - Still + - Unbound + - Shadows \ No newline at end of file diff --git a/Resources/Prototypes/_StarLight/Entities/Effects/night_vision.yml b/Resources/Prototypes/_StarLight/Entities/Effects/night_vision.yml new file mode 100644 index 00000000000..8fd1851cdf6 --- /dev/null +++ b/Resources/Prototypes/_StarLight/Entities/Effects/night_vision.yml @@ -0,0 +1,28 @@ +- type: entity + id: EffectSLNightVision + categories: [ HideSpawnMenu ] + name: night vision + components: + - type: PointLight + color: "#D6E4FF" + energy: 0.8 + radius: 20 + softness: 20 + +- type: entity + id: EffectThermalVision + categories: [ HideSpawnMenu ] + name: thermal vision + components: + - type: PointLight + color: "#FFE4D6" + energy: 1.8 + radius: 20 + softness: 20 + +- type: entity + id: EffectThermalVisionRevenant + parent: EffectThermalVision + components: + - type: PointLight + castShadows: false \ No newline at end of file diff --git a/Resources/Prototypes/_StarLight/Entities/Mobs/Customization/Marking/shadekin.yml b/Resources/Prototypes/_StarLight/Entities/Mobs/Customization/Marking/shadekin.yml new file mode 100644 index 00000000000..4739d5a38f8 --- /dev/null +++ b/Resources/Prototypes/_StarLight/Entities/Mobs/Customization/Marking/shadekin.yml @@ -0,0 +1,692 @@ +# Ears + +- type: marking + id: EarsShadekin + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: shadekin + +- type: marking + id: EarsShadekinStriped + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + coloring: + default: + type: + !type:SkinColoring + layers: + shadekin_stripes: + type: + !type:SimpleColoring + color: "#FFFFFF" + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: shadekin + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: shadekin_stripes + +- type: marking + id: EarsShadekinMotley + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + coloring: + default: + type: + !type:SkinColoring + layers: + motley_secondary: + type: + !type:SimpleColoring + color: "#FFFFFF" + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: shadekin + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: motley_secondary + +- type: marking + id: EarsShadekinShady + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: shady + +- type: marking + id: EarsShadekinPiercingAll + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + coloring: + default: + type: + !type:SkinColoring + layers: + piercing_all: + type: + !type:SimpleColoring + color: "#FFFFFF" + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: shadekin + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: piercing_all + +- type: marking + id: EarsShadekinPiercingLeft + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + coloring: + default: + type: + !type:SkinColoring + layers: + piercing_left: + type: + !type:SimpleColoring + color: "#FFFFFF" + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: shadekin + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: piercing_left + +- type: marking + id: EarsShadekinPiercingRight + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + coloring: + default: + type: + !type:SkinColoring + layers: + piercing_right: + type: + !type:SimpleColoring + color: "#FFFFFF" + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: shadekin + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: piercing_right + +- type: marking + id: EarsShadekinRingedAll + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + coloring: + default: + type: + !type:SkinColoring + layers: + ringed_all_secondary: + type: + !type:SimpleColoring + color: "#FFFFFF" + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: shadekin + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: ringed_all_secondary + +- type: marking + id: EarsShadekinRingedLeft + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + coloring: + default: + type: + !type:SkinColoring + layers: + ringed_left_secondary: + type: + !type:SimpleColoring + color: "#FFFFFF" + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: shadekin + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: ringed_left_secondary + +- type: marking + id: EarsShadekinRingedRight + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + coloring: + default: + type: + !type:SkinColoring + layers: + ringed_right_secondary: + type: + !type:SimpleColoring + color: "#FFFFFF" + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: shadekin + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: ringed_right_secondary + +- type: marking + id: EarsShadekinGauzedAll + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: shadekin + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: gauze_ear_all_default + +- type: marking + id: EarsShadekinGauzedLeft + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: shadekin + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: gauze_ear_l_default + +- type: marking + id: EarsShadekinGauzedRight + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: shadekin + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: gauze_ear_r_default + +- type: marking + id: EarsShadekinFluffy + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: fluffy_default + +- type: marking + id: EarsShadekinFluffyButterfly + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: fluffy_default + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: fluffy_butterfly + +- type: marking + id: EarsShadekinFluffyCowling + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: fluffy_default + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: fluffy_cowling + +- type: marking + id: EarsShadekinFluffyCrow + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: fluffy_default + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: fluffy_crow + +- type: marking + id: EarsShadekinFluffyMotley + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: fluffy_default + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: fluffy_motley + +- type: marking + id: EarsShadekinFluffySpidy + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: fluffy_default + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: fluffy_spidy + +- type: marking + id: EarsShadekinFluffyRingedAll + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: fluffy_default + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: fluffy_ringed_all + +- type: marking + id: EarsShadekinFluffyRingedLeft + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: fluffy_default + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: fluffy_ringed_left + +- type: marking + id: EarsShadekinFluffyRingedRight + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: fluffy_default + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: fluffy_ringed_right + +- type: marking + id: EarsShadekinSaggy + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: saggy_default + +- type: marking + id: EarsShadekinSaggyBrawly + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: saggy_default + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: saggy_brawly + +- type: marking + id: EarsShadekinSaggyZebra + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: saggy_default + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: saggy_zebra + +- type: marking + id: EarsShadekinSaggyGradient + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: saggy_default + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: saggy_gradient + +- type: marking + id: EarsShadekinSaggyGauzedAll + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: saggy_default + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: saggy_gauze_all + +- type: marking + id: EarsShadekinSaggyGauzedLeft + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: saggy_default + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: saggy_gauze_l + +- type: marking + id: EarsShadekinSaggyGauzedRight + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: saggy_default + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: saggy_gauze_r + +- type: marking + id: EarsShadekinShort + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: short_default + +- type: marking + id: EarsShadekinShortButterfly + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: short_default + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: short_butterfly + +- type: marking + id: EarsShadekinShortRingedAll + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: short_default + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: short_ringed_all + +- type: marking + id: EarsShadekinShortRingedLeft + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: short_default + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: short_ringed_left + +- type: marking + id: EarsShadekinShortRingedRight + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: short_default + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: short_ringed_right + +- type: marking + id: EarsShadekinBull + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: bull_default + +- type: marking + id: EarsShadekinBullSmooth + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: bull_default + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: bull_smooth + +- type: marking + id: EarsShadekinAqua + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: aqua_default + +- type: marking + id: EarsShadekinAquaIncolor + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: aqua_default + - sprite: _Starlight/Mobs/Customization/shadekin/ears.rsi + state: aqua_incolor + +# Tails + +- type: marking + id: TailShadekin + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/tails64x32.rsi + state: shadekin + +- type: marking + id: TailShadekinBig + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/tails64x32.rsi + state: shadekin_big + +- type: marking + id: TailShadekinBigFluff + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/tails64x32.rsi + state: shadekin_big_fluff + +- type: marking + id: TailShadekinShorter + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/tails32x32.rsi + state: shadekin_shorter + +- type: marking + id: TailShadekinShorterBrush + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/tails32x32.rsi + state: shadekin_shorter + - sprite: _Starlight/Mobs/Customization/shadekin/tails32x32.rsi + state: shorter_brush + +- type: marking + id: TailShadekinMedium + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/tails32x32.rsi + state: shadekin_medium + +- type: marking + id: TailShadekinMediumTwoColored + bodyPart: Tail + markingCategory: Tail + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/tails32x32.rsi + state: shadekin_medium + - sprite: _Starlight/Mobs/Customization/shadekin/tails32x32.rsi + state: medium_twocolored + +# Overlays + +- type: marking + id: BodyShadekinArrow + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/overlay.rsi + state: body_arrow + +- type: marking + id: BodyShadekinBlackHole + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/overlay.rsi + state: body_blackhole + +- type: marking + id: BodyShadekinBrace + bodyPart: RArm + markingCategory: Arms + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/overlay.rsi + state: body_brace + +- type: marking + id: BodyShadekinBrawly + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/overlay.rsi + state: body_brawly + +- type: marking + id: BodyShadekinHeart + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/overlay.rsi + state: body_heart + +- type: marking + id: BodyShadekinInk + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/overlay.rsi + state: body_ink + +- type: marking + id: BodyShadekinInk2 + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/overlay.rsi + state: body_ink2 + +- type: marking + id: BodyShadekinInk3 + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/overlay.rsi + state: body_ink3 + +- type: marking + id: BodyShadekinInk4 + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/overlay.rsi + state: body_ink4 + +- type: marking + id: BodyShadekinInk5 + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/overlay.rsi + state: body_ink5 + +- type: marking + id: BodyShadekinInk6 + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/overlay.rsi + state: body_ink6 + +- type: marking + id: BodyShadekinInkAnim + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/overlay.rsi + state: body_ink_anim + +- type: marking + id: BodyShadekinLines + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/overlay.rsi + state: body_lines + +- type: marking + id: BodyShadekinNeck + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/overlay.rsi + state: body_neck + +- type: marking + id: BodyShadekinShield + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/overlay.rsi + state: body_shield + +- type: marking + id: BodyShadekinVacuum + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [Shadekin] + sprites: + - sprite: _Starlight/Mobs/Customization/shadekin/overlay.rsi + state: body_vacuum diff --git a/Resources/Prototypes/_StarLight/Entities/Mobs/Player/shadekin.yml b/Resources/Prototypes/_StarLight/Entities/Mobs/Player/shadekin.yml new file mode 100644 index 00000000000..cff0054abad --- /dev/null +++ b/Resources/Prototypes/_StarLight/Entities/Mobs/Player/shadekin.yml @@ -0,0 +1,5 @@ +- type: entity + save: false + name: Urist McShadow + parent: [BaseMobShadekin, BaseMob] + id: MobShadekin diff --git a/Resources/Prototypes/_StarLight/Entities/Mobs/Species/appearances.yml b/Resources/Prototypes/_StarLight/Entities/Mobs/Species/appearances.yml index b6582520a21..3ccab17321b 100644 --- a/Resources/Prototypes/_StarLight/Entities/Mobs/Species/appearances.yml +++ b/Resources/Prototypes/_StarLight/Entities/Mobs/Species/appearances.yml @@ -8,3 +8,13 @@ species: Avali #undergarmentTop: UndergarmentTopTanktopAvali #undergarmentBottom: UndergarmentBottomBoxersAvali + +- type: entity + save: false + parent: BaseSpeciesDummy + id: AppearanceShadekin + categories: [HideSpawnMenu] + description: A dummy shadekin meant to be used in character setup. + components: + - type: HumanoidAppearance + species: Shadekin \ No newline at end of file diff --git a/Resources/Prototypes/_StarLight/Entities/Mobs/Species/shadekin.yml b/Resources/Prototypes/_StarLight/Entities/Mobs/Species/shadekin.yml new file mode 100644 index 00000000000..83cc546b140 --- /dev/null +++ b/Resources/Prototypes/_StarLight/Entities/Mobs/Species/shadekin.yml @@ -0,0 +1,101 @@ +- type: entity + save: false + name: Urist McShadow + parent: [BaseMobSpeciesOrganic] + id: BaseMobShadekin + abstract: true + components: + - type: LanguageKnowledge + speaks: + - TauCetiBasic + understands: + - TauCetiBasic + - type: Inventory + speciesId: shadekin + - type: Hunger + - type: Thirst + - type: HumanoidAppearance + species: Shadekin + - type: Icon + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: full + - type: Body + prototype: Shadekin + requiredLegs: 2 + - type: Speech + allowedEmotes: ["Marr", "Wurble", "Hiss", "Growl", "Purr"] + - type: Vocal + sounds: + Male: MaleShadekin + Female: FemaleShadekin + Unsexed: MaleShadekin + - type: MeleeWeapon + soundHit: + collection: AlienClaw + angle: 30 + animation: WeaponArcClaw + damage: + types: + Slash: 5 + - type: FlashModifier + modifier: 2 + - type: Damageable + damageContainer: Biological + damageModifierSet: Shadekin + - type: Reactive + groups: + Flammable: [Touch] + Extinguish: [Touch] + Acidic: [ Touch, Ingestion ] + reactions: + - reagents: [Water, SpaceCleaner] + methods: [Touch] + effects: + - !type:WashCreamPieReaction + - !type:Emote + emote: Hiss + showInChat: false + - type: Bloodstream + bloodReagent: DarkBlood + bloodMaxVolume: 300 + bloodlossDamage: + types: + Bloodloss: 1 + bloodlossHealDamage: + types: + Bloodloss: -0.25 + - type: TypingIndicator + proto: alien + - type: PassiveDamage + allowedStates: + - Alive + damageCap: 20 + damage: + groups: + Brute: -0.07 + Burn: -0.07 + - type: Destructible + thresholds: + - trigger: !type:DamageTypeTrigger + damageType: Blunt + damage: 400 + behaviors: + - !type:GibBehavior {} + - trigger: !type:DamageTypeTrigger + damageType: Heat + damage: 1500 + behaviors: + - !type:SpawnEntitiesBehavior + spawnInContainer: true + spawn: + Ash: + min: 1 + max: 1 + - !type:BurnBodyBehavior {} + + # BaseMobSpeciesOrganic overrides + - type: Barotrauma + damage: + types: + Blunt: 0.85 #per second, scales with pressure and other constants. + Heat: 0.1 diff --git a/Resources/Prototypes/_StarLight/Reagents/biological.yml b/Resources/Prototypes/_StarLight/Reagents/biological.yml index 1ef5b906c95..9d9d4511821 100644 --- a/Resources/Prototypes/_StarLight/Reagents/biological.yml +++ b/Resources/Prototypes/_StarLight/Reagents/biological.yml @@ -10,3 +10,13 @@ recognizable: true physicalDesc: reagent-physical-desc-avali +- type: reagent + parent: Blood + id: DarkBlood + name: reagent-name-dark-blood + group: Biological + desc: reagent-desc-dark-blood + flavor: metallic + color: "#1c1624" + recognizable: true + physicalDesc: reagent-physical-desc-unidentifiable diff --git a/Resources/Prototypes/_StarLight/Shaders/shaders.yml b/Resources/Prototypes/_StarLight/Shaders/shaders.yml new file mode 100644 index 00000000000..44b4fe01635 --- /dev/null +++ b/Resources/Prototypes/_StarLight/Shaders/shaders.yml @@ -0,0 +1,8 @@ +- type: shader + id: ModernSLNightVisionShader + kind: source + path: "/Textures/_Starlight/Shaders/night.swsl" + params: + NightVisionBoost: 2.0 + NightVisionThreshold: 0.3 + BlueTintIntensity: 0.6 \ No newline at end of file diff --git a/Resources/Prototypes/_StarLight/SoundCollections/shadekin.yml b/Resources/Prototypes/_StarLight/SoundCollections/shadekin.yml new file mode 100644 index 00000000000..0772cc99ca7 --- /dev/null +++ b/Resources/Prototypes/_StarLight/SoundCollections/shadekin.yml @@ -0,0 +1,11 @@ +- type: soundCollection + id: ShadekinMaleScreams + files: + - /Audio/_Starlight/Voice/Shadekin/scream_m1.ogg + - /Audio/_Starlight/Voice/Shadekin/scream_m2.ogg + +- type: soundCollection + id: ShadekinFemaleScreams + files: + - /Audio/_Starlight/Voice/Shadekin/scream_f1.ogg + - /Audio/_Starlight/Voice/Shadekin/scream_f2.ogg diff --git a/Resources/Prototypes/_StarLight/Species/shadekin.yml b/Resources/Prototypes/_StarLight/Species/shadekin.yml new file mode 100644 index 00000000000..a6b2389a7e9 --- /dev/null +++ b/Resources/Prototypes/_StarLight/Species/shadekin.yml @@ -0,0 +1,161 @@ +- type: species + id: Shadekin + name: species-name-shadekin + roundStart: true + prototype: MobShadekin + sprites: MobShadekinSprites + defaultSkinTone: "#ffffff" + markingLimits: MobShadekinMarkingLimits + dollPrototype: AppearanceShadekin + skinColoration: Hues + maleFirstNames: names_shadekin + femaleFirstNames: names_shadekin + naming: First + minAge: 20 + maxAge: 300 + youngAge: 100 + oldAge: 200 + +- type: speciesBaseSprites + id: MobShadekinSprites + sprites: + Head: MobShadekinHead + Snout: MobShadekinAnyMarkingFollowSkin + Hair: MobHumanoidAnyMarking + Chest: MobShadekinTorso + HeadTop: MobShadekinAnyMarking + HeadSide: MobShadekinAnyMarkingFollowSkin + Tail: MobShadekinAnyMarking + Eyes: MobShadekinEyes + LArm: MobShadekinLArm + RArm: MobShadekinRArm + LHand: MobShadekinLHand + RHand: MobShadekinRHand + LLeg: MobShadekinLLeg + RLeg: MobShadekinRLeg + LFoot: MobShadekinLFoot + RFoot: MobShadekinRFoot + +- type: markingPoints + id: MobShadekinMarkingLimits + points: + Hair: + points: 1 + required: false + FacialHair: + points: 0 + required: false + Tail: + points: 1 + required: true + defaultMarkings: [TailShadekinMedium] + HeadTop: + points: 1 + required: true + defaultMarkings: [EarsShadekin] + Chest: + points: 2 + required: false + Legs: + points: 2 + required: false + Arms: + points: 2 + required: false + +- type: humanoidBaseSprite + id: MobShadekinAnyMarkingFollowSkin + markingsMatchSkin: true + +- type: humanoidBaseSprite + id: MobShadekinAnyMarking + +- type: humanoidBaseSprite + id: MobShadekinEyes + baseSprite: + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: eyes + +- type: humanoidBaseSprite + id: MobShadekinHead + baseSprite: + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobShadekinHeadMale + baseSprite: + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobShadekinHeadFemale + baseSprite: + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: head_f + +- type: humanoidBaseSprite + id: MobShadekinTorso + baseSprite: + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobShadekinTorsoMale + baseSprite: + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobShadekinTorsoFemale + baseSprite: + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: torso_f + +- type: humanoidBaseSprite + id: MobShadekinLLeg + baseSprite: + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: l_leg + +- type: humanoidBaseSprite + id: MobShadekinLHand + baseSprite: + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: l_hand + +- type: humanoidBaseSprite + id: MobShadekinLArm + baseSprite: + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: l_arm + +- type: humanoidBaseSprite + id: MobShadekinLFoot + baseSprite: + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: l_foot + +- type: humanoidBaseSprite + id: MobShadekinRLeg + baseSprite: + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: r_leg + +- type: humanoidBaseSprite + id: MobShadekinRHand + baseSprite: + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: r_hand + +- type: humanoidBaseSprite + id: MobShadekinRArm + baseSprite: + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: r_arm + +- type: humanoidBaseSprite + id: MobShadekinRFoot + baseSprite: + sprite: _Starlight/Mobs/Species/Shadekin/parts.rsi + state: r_foot diff --git a/Resources/Prototypes/_StarLight/Voice/speech_emote_sounds.yml b/Resources/Prototypes/_StarLight/Voice/speech_emote_sounds.yml index 1dbe3147d8b..fa69e447c15 100644 --- a/Resources/Prototypes/_StarLight/Voice/speech_emote_sounds.yml +++ b/Resources/Prototypes/_StarLight/Voice/speech_emote_sounds.yml @@ -100,3 +100,87 @@ Chirp: collection: ResomiChirp + +- type: emoteSounds + id: MaleShadekin + params: + variation: 0.125 + sounds: + Scream: + collection: ShadekinMaleScreams + Laugh: + collection: MaleLaugh + Sneeze: + collection: MaleSneezes + Cough: + collection: MaleCoughs + Yawn: + collection: MaleYawn + Snore: + collection: Snores + Sigh: + collection: MaleSigh + Crying: + collection: MaleCry + Whistle: + collection: Whistles + Weh: + collection: Weh + Hew: + collection: Hew + Gasp: + collection: MaleGasp + DefaultDeathgasp: + collection: MaleDeathGasp + Marr: + path: /Audio/_Starlight/Voice/Shadekin/mar.ogg + Wurble: + path: /Audio/_Starlight/Voice/Shadekin/wurble.ogg + Hiss: + collection: FelionoidHisses + Purr: + collection: FelionoidPurrs + Growl: + collection: FelionoidGrowls + +- type: emoteSounds + id: FemaleShadekin + params: + variation: 0.125 + sounds: + Scream: + collection: ShadekinFemaleScreams + Laugh: + collection: FemaleLaugh + Sneeze: + collection: FemaleSneezes + Cough: + collection: FemaleCoughs + Yawn: + collection: FemaleYawn + Snore: + collection: Snores + Sigh: + collection: FemaleSigh + Crying: + collection: FemaleCry + Whistle: + collection: Whistles + Weh: + collection: Weh + Hew: + collection: Hew + Gasp: + collection: FemaleGasp + DefaultDeathgasp: + collection: FemaleDeathGasp + Marr: + path: /Audio/_Starlight/Voice/Shadekin/mar.ogg + Wurble: + path: /Audio/_Starlight/Voice/Shadekin/wurble.ogg + Hiss: + collection: FelionoidHisses + Purr: + collection: FelionoidPurrs + Growl: + collection: FelionoidGrowls \ No newline at end of file diff --git a/Resources/Prototypes/_StarLight/Voice/speech_emotes.yml b/Resources/Prototypes/_StarLight/Voice/speech_emotes.yml index 69240385a38..3d9175252c2 100644 --- a/Resources/Prototypes/_StarLight/Voice/speech_emotes.yml +++ b/Resources/Prototypes/_StarLight/Voice/speech_emotes.yml @@ -109,4 +109,26 @@ - squawks - squawks. - squawks! - - squawks? \ No newline at end of file + - squawks? + +- type: emote + id: Marr + name: chat-emote-name-marr + category: Vocal + available: false + whitelist: + components: + - Vocal + blacklist: + components: + - BorgChassis + chatMessages: ["chat-emote-msg-marr"] + chatTriggers: + - marr + - marr. + - marr! + - marr? + - marrs + - marrs. + - marrs! + - marrs? diff --git a/Resources/ServerInfo/Guidebook/Mobs/Shadekin.xml b/Resources/ServerInfo/Guidebook/Mobs/Shadekin.xml new file mode 100644 index 00000000000..583b1d33310 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Mobs/Shadekin.xml @@ -0,0 +1,100 @@ + + + + [mono][color=#897236]╔════════════════════════════════════════════════════╗[/color]\n[color=#897236]║ [/color][color=#ffd688]TDF // BUREAU OF PERSONNEL[/color][color=#897236] Form BP-22b/v3 ║[/color]\n[color=#897236]║ PERSONNEL DOSSIER FOR OFFICIAL USE ONLY ║[/color]\n[color=#897236]╚════════════════════════════════════════════════════╝[/color][/mono] + + + + + [head=2][color=#897236]──────═════ [head=1]◊[/head] ═════──────[/color][/head] + + +[color=#999999][italic]“Exo-dimensional, cat-like aliens with four ears and large glowing eyes. And just like cats they like dark spots and are very curious.”[/italic][/color] + + + [color=#999999][italic]— Adjutant General Janssen, BuPers[/italic][/color] + + + + + + [mono][color=#897236]DESIGNATION[/color] SPC-SHK[/mono] + + [mono][color=#897236]CLASS [/color] Humanoid // Feline[/mono] + + [mono][color=#897236]ORIGIN [/color] Exodimension “Kur”[/mono] + + [mono][color=#897236]METABOLIC [/color] [color=#808080 ][bold]Shadekin Blood[/bold][/color] — High-Entropy Hem-Analogues (HEHAs)[/mono] + + [mono][color=#897236]STATUS [/color] [color=lime]► Approved[/color][/mono] + + + + + + + + + + Subject: Exodimensional, four eared, furred, clawed cat-like sapients with intrinsic night vision and high sensitivity to light. Complex, highly conductive blood composition, low bloodclotting, exceptionally durable genetics. + + [color=#897236][mono]──── [color=#ff66aa][bold]TOLERANCE PROFILE[/bold][/color] ───────────────────────────────[/mono][/color] + + [mono] Heat [color=#cc3333]■■[/color][color=#555555]□□□□[/color] 20% vulnerable[/mono] + + [mono] Cold [color=#897236]■■■■[/color][color=#555555]□□[/color] 25% resistant[/mono] + + [mono] Pressure [color=#897236]■■■[/color][color=#555555]□□[/color] baseline[/mono] + + [mono] Shock [color=#cc3333]■■[/color][color=#555555]□□□[/color] 25% vulnerable[/mono] + + [mono] Bloodloss [color=#ffa500]■[/color][color=#555555]□□□[/color] 100% higher bleedrate, 75% slower blood regeneration[/mono] + + [mono] Genetic [[color=#1e90ff]]■■■■■[/color][color=#555555]□□□[/color] 75% resistance + + [mono] Radiation [[color=#ffa500]]■■[/color][color=#555555]□□□[/color] 30% vulnerable + + [color=#999999][italic]“Their blood is nothing like anything we have seen before, yet it works similar to iron based blood. It's needlessly complex. Nightvision that outperforms anything we have made and strangely resilient genomes. Yet quite fragile. Weird cats. ” — J.[/italic][/color] + + [color=#897236][mono]──── [color=#ffa500][bold]DIETARY ACCOMMODATIONS[/bold][/color] ──────────────────────────[/mono][/color] + + - [color=#ffa500][bold]Dietary range[/bold][/color]: omnivorous + + [color=red][bold]▲ Warning:[/bold][/color] [color=#9fe0ed][bold]Flashes and bright lights[/bold][/color] will confer significant sight impairment, roughly double of baseline in magnitude and recovery time. + + [color=#897236][mono]──── [color=#00ccff][bold]RESPIRATORY PROTOCOL[/bold][/color] ────────────────────────────[/mono][/color] + + - Breathes Oxygen. + - Pressure tolerance: safe [color=#1e90ff][bold]50–385 kPa[/bold][/color]; barotrauma outside [color=#ffa500][bold]20–550 kPa[/bold][/color]. + + [color=#897236][mono]──── [color=#1e90ff][bold]WORKPLACE APTITUDES[/bold][/color] ─────────────────────────────[/mono][/color] + + - [color=#1e90ff][bold]Powerful intrinsic Nightvision[/bold][/color] even in near lightless conditions. + - Unarmed attacks deal [color=#1e90ff][bold]Slash Damage[/bold][/color] via claws. + + [color=#897236][mono]──── [color=#ffdd33][bold]SPECIAL PROTOCOLS[/bold][/color] ───────────────────────────────[/mono][/color] + + - [color=#ffa500][bold]Bloodclotting and Oxygenation[/bold][/color]: Recommendation to stem bleeding of any wounded Shadekin first, then administer bloodclotting, oxygenation and blood restoration substances first due to their intrinsically low blood platelet count. + + [color=#999999][italic]“So apparently various Xenobiologists and Medical Doctors are claiming that their respiratory system is more of an “evolutionary afterthought”. It is “rudimentary yet functional” and “very basic” while it's being suggested that they do not breathe at all in their place of origin.” — J.[/italic][/color] + + + + + [color=#897236][mono]──── [color=#cc3333][bold]LIABILITIES / INSURANCE FLAGS[/bold][/color] ───────────────────[/mono][/color] + + [color=red][bold]▲ Warning:[/bold][/color] take [color=#ffa500][bold]30% more Heat damage, 25% more Shock damage and 30% more radiation damage[/bold][/color] than baseline. [color=#ffa500][bold]Naturally hemophilic[/bold][/color]. Insurance Tier A near nuclear reactors. + + [color=#897236][mono]──── [color=#aa88cc][bold]PROVENANCE NOTE[/bold][/color] ─────────────────────────────────[/mono][/color] + +Subject species originates from an exodimensional plane a long deprecated corporation, ([color=#893BFF][bold]Void Enigma Institute (VEI)[/bold][/color]), accessed by means of teleporation experiments. Most information on VEI and their research in [color=#a4885c][bold]Triad sector[/bold][/color] has been lost. What little is known is that VEI managed to repeatedly translocate and perforate into an adjacent exodimension referred to as “Kur” or “The Dark”, as subject species calls it, which is underlying vastly altered laws of physics when compared to our own universe, such as vastly different behavior of visible light and an absence of nuclear fusion. The subject species supposedly is one of the sapient inhabitants of “Kur”. According to some members of the subject species, they have been infrequent visitors to our universe, similar to how VEI seemingly was visiting theirs, driven by curiosity. Allegedly, at some point, VEI lost control over one of their experiments and the resulting resonance cascade event resulting in many of the subject species to now be stranded in our world, seeking a way home. + + + + [head=2][color=#897236]──────═════ [head=1]◊[/head] ═════──────[/color][/head] + + + + [mono][color=#897236]╔════════════════════════════════════════════════════╗[/color]\n[color=#897236]║ [/color][color=lime]FILED · APPROVED[/color][color=#897236] X828.05.23 ║[/color]\n[color=#897236]║ Adj Gen Janssen, BuPers · S3 FILE COMPLETE ║[/color]\n[color=#897236]╚════════════════════════════════════════════════════╝[/color][/mono] + + diff --git a/Resources/ServerInfo/Guidebook/Mobs/Species.xml b/Resources/ServerInfo/Guidebook/Mobs/Species.xml index 9c1f019e1f2..53bbf31c521 100644 --- a/Resources/ServerInfo/Guidebook/Mobs/Species.xml +++ b/Resources/ServerInfo/Guidebook/Mobs/Species.xml @@ -16,7 +16,6 @@ - # Frontier specific species @@ -43,5 +42,11 @@ + + # Starlight specific species + + + + diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/aqua_default.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/aqua_default.png new file mode 100644 index 00000000000..f47523a98ae Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/aqua_default.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/aqua_incolor.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/aqua_incolor.png new file mode 100644 index 00000000000..54fb6f57117 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/aqua_incolor.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/bull_default.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/bull_default.png new file mode 100644 index 00000000000..bf12fa33328 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/bull_default.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/bull_smooth.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/bull_smooth.png new file mode 100644 index 00000000000..9587d75de5e Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/bull_smooth.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/cowling_secondary.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/cowling_secondary.png new file mode 100644 index 00000000000..0f623c1ad59 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/cowling_secondary.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_butterfly.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_butterfly.png new file mode 100644 index 00000000000..a04088a025f Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_butterfly.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_cowling.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_cowling.png new file mode 100644 index 00000000000..b2f23803097 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_cowling.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_crow.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_crow.png new file mode 100644 index 00000000000..a657a8c2326 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_crow.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_default.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_default.png new file mode 100644 index 00000000000..bff105dd934 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_default.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_motley.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_motley.png new file mode 100644 index 00000000000..2eac6f98b78 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_motley.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_ringed_all.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_ringed_all.png new file mode 100644 index 00000000000..cfcb045c6e2 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_ringed_all.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_ringed_left.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_ringed_left.png new file mode 100644 index 00000000000..a8caabc10f5 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_ringed_left.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_ringed_right.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_ringed_right.png new file mode 100644 index 00000000000..5171d4a75d5 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_ringed_right.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_spidy.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_spidy.png new file mode 100644 index 00000000000..ac4e406476a Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/fluffy_spidy.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/gauze_ear_all_default.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/gauze_ear_all_default.png new file mode 100644 index 00000000000..a0e7e1d82a0 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/gauze_ear_all_default.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/gauze_ear_l_default.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/gauze_ear_l_default.png new file mode 100644 index 00000000000..918f3b97888 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/gauze_ear_l_default.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/gauze_ear_r_default.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/gauze_ear_r_default.png new file mode 100644 index 00000000000..955df586423 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/gauze_ear_r_default.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/meta.json b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/meta.json new file mode 100644 index 00000000000..e3f533a9d2e --- /dev/null +++ b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/meta.json @@ -0,0 +1,167 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "shadekin, shadekin_stripes made by team Adventure Time. Other made by discord:filokini", + "states": [ + { + "name": "shadekin", + "directions": 4 + }, + { + "name": "shadekin_stripes", + "directions": 4 + }, + { + "name": "aqua_default", + "directions": 4 + }, + { + "name": "aqua_incolor", + "directions": 4 + }, + { + "name": "bull_default", + "directions": 4 + }, + { + "name": "bull_smooth", + "directions": 4 + }, + { + "name": "cowling_secondary", + "directions": 4 + }, + { + "name": "motley_secondary", + "directions": 4 + }, + { + "name": "shady", + "directions": 4 + }, + { + "name": "fluffy_butterfly", + "directions": 4 + }, + { + "name": "fluffy_cowling", + "directions": 4 + }, + { + "name": "fluffy_crow", + "directions": 4 + }, + { + "name": "fluffy_default", + "directions": 4 + }, + { + "name": "fluffy_motley", + "directions": 4 + }, + { + "name": "fluffy_ringed_left", + "directions": 4 + }, + { + "name": "fluffy_ringed_right", + "directions": 4 + }, + { + "name": "fluffy_ringed_all", + "directions": 4 + }, + { + "name": "fluffy_spidy", + "directions": 4 + }, + { + "name": "gauze_ear_l_default", + "directions": 4 + }, + { + "name": "gauze_ear_r_default", + "directions": 4 + }, + { + "name": "gauze_ear_all_default", + "directions": 4 + }, + { + "name": "piercing_all", + "directions": 4 + }, + { + "name": "piercing_left", + "directions": 4 + }, + { + "name": "piercing_right", + "directions": 4 + }, + { + "name": "ringed_left_secondary", + "directions": 4 + }, + { + "name": "ringed_right_secondary", + "directions": 4 + }, + { + "name": "ringed_all_secondary", + "directions": 4 + }, + { + "name": "saggy_brawly", + "directions": 4 + }, + { + "name": "saggy_default", + "directions": 4 + }, + { + "name": "saggy_gauze_l", + "directions": 4 + }, + { + "name": "saggy_gauze_r", + "directions": 4 + }, + { + "name": "saggy_gauze_all", + "directions": 4 + }, + { + "name": "saggy_gradient", + "directions": 4 + }, + { + "name": "saggy_zebra", + "directions": 4 + }, + { + "name": "short_butterfly", + "directions": 4 + }, + { + "name": "short_default", + "directions": 4 + }, + { + "name": "short_ringed_left", + "directions": 4 + }, + { + "name": "short_ringed_right", + "directions": 4 + }, + { + "name": "short_ringed_all", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/motley_secondary.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/motley_secondary.png new file mode 100644 index 00000000000..3e53e2e7f13 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/motley_secondary.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/piercing_all.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/piercing_all.png new file mode 100644 index 00000000000..3f53576d02e Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/piercing_all.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/piercing_left.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/piercing_left.png new file mode 100644 index 00000000000..7cddf7faf8e Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/piercing_left.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/piercing_right.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/piercing_right.png new file mode 100644 index 00000000000..c0beecf8af8 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/piercing_right.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/ringed_all_secondary.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/ringed_all_secondary.png new file mode 100644 index 00000000000..0596e3ace40 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/ringed_all_secondary.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/ringed_left_secondary.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/ringed_left_secondary.png new file mode 100644 index 00000000000..ee1408149db Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/ringed_left_secondary.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/ringed_right_secondary.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/ringed_right_secondary.png new file mode 100644 index 00000000000..b66b1cf3ca4 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/ringed_right_secondary.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/saggy_brawly.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/saggy_brawly.png new file mode 100644 index 00000000000..77b1e5dbf26 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/saggy_brawly.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/saggy_default.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/saggy_default.png new file mode 100644 index 00000000000..de223eb0d32 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/saggy_default.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/saggy_gauze_all.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/saggy_gauze_all.png new file mode 100644 index 00000000000..ce47f2e507b Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/saggy_gauze_all.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/saggy_gauze_l.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/saggy_gauze_l.png new file mode 100644 index 00000000000..f82ed52f428 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/saggy_gauze_l.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/saggy_gauze_r.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/saggy_gauze_r.png new file mode 100644 index 00000000000..131a217811f Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/saggy_gauze_r.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/saggy_gradient.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/saggy_gradient.png new file mode 100644 index 00000000000..e73c970b386 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/saggy_gradient.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/saggy_zebra.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/saggy_zebra.png new file mode 100644 index 00000000000..e54a1794f04 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/saggy_zebra.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/shadekin.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/shadekin.png new file mode 100644 index 00000000000..3aec926c5e2 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/shadekin.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/shadekin_stripes.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/shadekin_stripes.png new file mode 100644 index 00000000000..ce1f04ce602 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/shadekin_stripes.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/shady.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/shady.png new file mode 100644 index 00000000000..6ddcd27cdd0 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/shady.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/short_butterfly.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/short_butterfly.png new file mode 100644 index 00000000000..a723daec11a Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/short_butterfly.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/short_default.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/short_default.png new file mode 100644 index 00000000000..fb5a7d3d55a Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/short_default.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/short_ringed_all.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/short_ringed_all.png new file mode 100644 index 00000000000..119326cdf7c Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/short_ringed_all.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/short_ringed_left.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/short_ringed_left.png new file mode 100644 index 00000000000..4b53f8f51c6 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/short_ringed_left.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/short_ringed_right.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/short_ringed_right.png new file mode 100644 index 00000000000..71484ebcdcd Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/ears.rsi/short_ringed_right.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_arrow.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_arrow.png new file mode 100644 index 00000000000..13729c090aa Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_arrow.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_blackhole.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_blackhole.png new file mode 100644 index 00000000000..6f9a119574e Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_blackhole.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_brace.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_brace.png new file mode 100644 index 00000000000..09d0847c222 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_brace.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_brawly.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_brawly.png new file mode 100644 index 00000000000..6ca38fc0502 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_brawly.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_heart.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_heart.png new file mode 100644 index 00000000000..edccaf8577f Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_heart.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_ink.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_ink.png new file mode 100644 index 00000000000..4281acf3bb7 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_ink.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_ink2.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_ink2.png new file mode 100644 index 00000000000..b03497c95ae Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_ink2.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_ink3.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_ink3.png new file mode 100644 index 00000000000..8397bafe0ea Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_ink3.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_ink4.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_ink4.png new file mode 100644 index 00000000000..a348728e2a0 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_ink4.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_ink5.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_ink5.png new file mode 100644 index 00000000000..31b14c5280e Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_ink5.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_ink6.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_ink6.png new file mode 100644 index 00000000000..17d4c461f3d Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_ink6.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_ink_anim.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_ink_anim.png new file mode 100644 index 00000000000..3717808564c Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_ink_anim.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_lines.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_lines.png new file mode 100644 index 00000000000..16957f270d4 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_lines.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_neck.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_neck.png new file mode 100644 index 00000000000..89750000e38 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_neck.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_shield.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_shield.png new file mode 100644 index 00000000000..a397a0aa6a8 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_shield.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_vacuum.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_vacuum.png new file mode 100644 index 00000000000..a637dd2f9a6 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/body_vacuum.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/meta.json b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/meta.json new file mode 100644 index 00000000000..0ed7231c58f --- /dev/null +++ b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/overlay.rsi/meta.json @@ -0,0 +1,81 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by discord:filokini", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "body_arrow", + "directions": 4 + }, + { + "name": "body_blackhole", + "directions": 4 + }, + { + "name": "body_brace", + "directions": 4 + }, + { + "name": "body_brawly", + "directions": 4 + }, + { + "name": "body_heart", + "directions": 4 + }, + { + "name": "body_ink", + "directions": 4 + }, + { + "name": "body_ink_anim", + "directions": 4, + "delays": [ + [0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4], + [0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4], + [0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4], + [0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4] + ] + }, + { + "name": "body_ink2", + "directions": 4 + }, + { + "name": "body_ink3", + "directions": 4 + }, + { + "name": "body_ink4", + "directions": 4 + }, + { + "name": "body_ink5", + "directions": 4 + }, + { + "name": "body_ink6", + "directions": 4 + }, + { + "name": "body_lines", + "directions": 4 + }, + { + "name": "body_neck", + "directions": 4 + }, + { + "name": "body_shield", + "directions": 4 + }, + { + "name": "body_vacuum", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails32x32.rsi/medium_twocolored.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails32x32.rsi/medium_twocolored.png new file mode 100644 index 00000000000..41849f6e202 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails32x32.rsi/medium_twocolored.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails32x32.rsi/meta.json b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails32x32.rsi/meta.json new file mode 100644 index 00000000000..652034f9f36 --- /dev/null +++ b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails32x32.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13/commit/96703f76bccd8fe6a96b78524efb97a9af661767 Shadekin big fluff made by DSC@Cabbage#9633 (561159087765848084), medium_twocolored and shorter_brush made by discord:filokini", + "states": [ + { + "name": "shadekin_shorter", + "directions": 4 + }, + { + "name": "shadekin_medium", + "directions": 4 + }, + { + "name": "medium_twocolored", + "directions": 4 + }, + { + "name": "shorter_brush", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails32x32.rsi/shadekin_medium.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails32x32.rsi/shadekin_medium.png new file mode 100644 index 00000000000..ca162bb1b05 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails32x32.rsi/shadekin_medium.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails32x32.rsi/shadekin_shorter.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails32x32.rsi/shadekin_shorter.png new file mode 100644 index 00000000000..979e4e6b26c Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails32x32.rsi/shadekin_shorter.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails32x32.rsi/shorter_brush.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails32x32.rsi/shorter_brush.png new file mode 100644 index 00000000000..8d142ba43d6 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails32x32.rsi/shorter_brush.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails64x32.rsi/meta.json b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails64x32.rsi/meta.json new file mode 100644 index 00000000000..549db63464e --- /dev/null +++ b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails64x32.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "size": { + "x": 64, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13/commit/96703f76bccd8fe6a96b78524efb97a9af661767 Shadekin big fluff made by DSC@Cabbage#9633 (561159087765848084)", + "states": [ + { + "name": "shadekin", + "directions": 4 + }, + { + "name": "shadekin_big", + "directions": 4 + }, + { + "name": "shadekin_big_fluff", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails64x32.rsi/shadekin.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails64x32.rsi/shadekin.png new file mode 100644 index 00000000000..94ff21d9cbb Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails64x32.rsi/shadekin.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails64x32.rsi/shadekin_big.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails64x32.rsi/shadekin_big.png new file mode 100644 index 00000000000..988aa6e589f Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails64x32.rsi/shadekin_big.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails64x32.rsi/shadekin_big_fluff.png b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails64x32.rsi/shadekin_big_fluff.png new file mode 100644 index 00000000000..20ad696ccee Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/shadekin/tails64x32.rsi/shadekin_big_fluff.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/appendix.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/appendix.png new file mode 100644 index 00000000000..0d2ad309c74 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/appendix.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/brain.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/brain.png new file mode 100644 index 00000000000..ac2806b79ce Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/brain.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/core.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/core.png new file mode 100644 index 00000000000..ac2d7893fdb Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/core.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/eyes.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/eyes.png new file mode 100644 index 00000000000..f7c0a306aaa Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/eyes.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/heart.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/heart.png new file mode 100644 index 00000000000..1b79b529aee Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/heart.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/kidneys.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/kidneys.png new file mode 100644 index 00000000000..482bb241022 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/kidneys.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/liver.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/liver.png new file mode 100644 index 00000000000..0a2e6ab25ae Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/liver.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/meta.json b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/meta.json new file mode 100644 index 00000000000..f839ec59099 --- /dev/null +++ b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/tgstation/tgstation/commit/f309886bf3e29808206693e9142304260df134e9", + "states": [ + { + "name": "appendix" + }, + { + "name": "brain" + }, + { + "name": "core" + }, + { + "name": "eyes" + }, + { + "name": "heart" + }, + { + "name": "kidneys" + }, + { + "name": "liver" + }, + { + "name": "stomach" + }, + { + "name": "tongue" + } + ] +} diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/stomach.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/stomach.png new file mode 100644 index 00000000000..a0341750d32 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/stomach.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/tongue.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/tongue.png new file mode 100644 index 00000000000..64306900f57 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/organs.rsi/tongue.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/eyes.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/eyes.png new file mode 100644 index 00000000000..20fd326f17f Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/eyes.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/full-nomarkings.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/full-nomarkings.png new file mode 100644 index 00000000000..cf763d9b853 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/full-nomarkings.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/full.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/full.png new file mode 100644 index 00000000000..863664f33c6 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/full.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/head_f.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/head_f.png new file mode 100644 index 00000000000..9d99bd18903 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/head_f.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/head_m.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/head_m.png new file mode 100644 index 00000000000..9d99bd18903 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/head_m.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/l_arm.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/l_arm.png new file mode 100644 index 00000000000..078ca333f6d Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/l_arm.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/l_foot.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/l_foot.png new file mode 100644 index 00000000000..30ad69dc3f0 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/l_foot.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/l_hand.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/l_hand.png new file mode 100644 index 00000000000..0cbc7371d14 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/l_hand.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/l_leg.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/l_leg.png new file mode 100644 index 00000000000..b961dfc842a Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/l_leg.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/meta.json b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/meta.json new file mode 100644 index 00000000000..0ed7a32607c --- /dev/null +++ b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/meta.json @@ -0,0 +1,75 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13/commit/5bc3ea02ce03a551c85017f1ddd411315a19a5ca#diff-519788fa2ca74299d1686a44d3ab2098b49ed5ab65d293ec742bead7d49f0b8d", + "states": [ + { + "name": "full", + "directions": 4 + }, + { + "name": "full-nomarkings", + "directions": 4 + }, + { + "name": "head_m", + "directions": 4 + }, + { + "name": "head_f", + "directions": 4 + }, + { + "name": "torso_m", + "directions": 4 + }, + { + "name": "torso_f", + "directions": 4 + }, + { + "name": "r_arm", + "directions": 4 + }, + { + "name": "l_arm", + "directions": 4 + }, + { + "name": "r_hand", + "directions": 4 + }, + { + "name": "l_hand", + "directions": 4 + }, + { + "name": "r_leg", + "directions": 4 + }, + { + "name": "r_foot", + "directions": 4 + }, + { + "name": "l_leg", + "directions": 4 + }, + { + "name": "l_foot", + "directions": 4 + }, + { + "name": "eyes", + "directions": 4 + }, + { + "name": "overlay_husk", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/overlay_husk.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/overlay_husk.png new file mode 100644 index 00000000000..c9f4750fa00 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/overlay_husk.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/r_arm.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/r_arm.png new file mode 100644 index 00000000000..c294120942c Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/r_arm.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/r_foot.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/r_foot.png new file mode 100644 index 00000000000..390e0a27ee3 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/r_foot.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/r_hand.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/r_hand.png new file mode 100644 index 00000000000..331e33a587e Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/r_hand.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/r_leg.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/r_leg.png new file mode 100644 index 00000000000..6b0270f6343 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/r_leg.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/torso_f.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/torso_f.png new file mode 100644 index 00000000000..83cc63cdd29 Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/torso_f.png differ diff --git a/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/torso_m.png b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/torso_m.png new file mode 100644 index 00000000000..dafc83b65eb Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Shadekin/parts.rsi/torso_m.png differ diff --git a/Resources/Textures/_Starlight/Shaders/night.swsl b/Resources/Textures/_Starlight/Shaders/night.swsl new file mode 100644 index 00000000000..938efc7bddb --- /dev/null +++ b/Resources/Textures/_Starlight/Shaders/night.swsl @@ -0,0 +1,23 @@ +uniform sampler2D SCREEN_TEXTURE; + +uniform highp float NightVisionBoost; +uniform highp float NightVisionThreshold; +uniform highp float BlueTintIntensity; + +const highp vec3 blueTintColor = vec3(0.35, 0.7, 1.0); + +void fragment() +{ + COLOR = zTextureSpec(SCREEN_TEXTURE, Pos); + highp vec3 finalColor = COLOR.rgb; + + highp float brightness = dot(finalColor, vec3(0.299, 0.587, 0.114)); + + highp float factor = smoothstep(0.0, NightVisionThreshold, brightness); + + finalColor = mix(finalColor * NightVisionBoost, finalColor, factor); + + finalColor = mix(finalColor, finalColor * blueTintColor, (1.0 - factor) * BlueTintIntensity); + + COLOR.rgb = finalColor; +}