diff --git a/Content.Server/Atmos/EntitySystems/FlammableSystem.cs b/Content.Server/Atmos/EntitySystems/FlammableSystem.cs index 137da5f10d0..4068a6ff601 100644 --- a/Content.Server/Atmos/EntitySystems/FlammableSystem.cs +++ b/Content.Server/Atmos/EntitySystems/FlammableSystem.cs @@ -1,3 +1,4 @@ +using Content.Shared._MACRO.Atmos.Components; using Content.Server.Administration.Logs; using Content.Server.Atmos.Components; using Content.Server.Stunnable; @@ -294,6 +295,11 @@ public void SetFireStacks(EntityUid uid, float stacks, FlammableComponent? flamm if (!Resolve(uid, ref flammable)) return; + // MACRO start: firestack modifier + if (TryComp(uid, out var fireStackModifier)) + stacks *= fireStackModifier.Modifier; + // MACRO end + flammable.FireStacks = MathF.Min(MathF.Max(flammable.MinimumFireStacks, stacks), flammable.MaximumFireStacks); if (flammable.FireStacks <= 0) diff --git a/Content.Shared/Bed/Sleep/SleepingSystem.cs b/Content.Shared/Bed/Sleep/SleepingSystem.cs index 3acbce179e0..234246ba7f1 100644 --- a/Content.Shared/Bed/Sleep/SleepingSystem.cs +++ b/Content.Shared/Bed/Sleep/SleepingSystem.cs @@ -1,3 +1,4 @@ +using Content.Shared._MACRO.Bed.Sleep; using Content.Shared.Actions; using Content.Shared.Actions.Components; using Content.Shared.Buckle.Components; @@ -287,6 +288,19 @@ private void OnStatusMobStateChanged(Entity private void OnStatusEffectApplied(Entity ent, ref StatusEffectAppliedEvent args) { + // MACRO start: SleepTimeModifier to modify force sleep duration + // IF YOU ARE HERE TO ADD MORE TRYCOMPS: dont. make a new event instead. + if (TryComp(args.Target, out var sleepTimeModifier) && + _statusEffect.TryGetTime(args.Target, StatusEffectForcedSleeping, out var initTime)) + { + var time = initTime.EndEffectTime - initTime.StartEffectTime; + _statusEffect.TryUpdateStatusEffectDuration( + args.Target, + StatusEffectForcedSleeping, + time * sleepTimeModifier.Modifier); + } + // MACRO end + // Applying state check needed so we don't add SleepingComp during // entity reset due to the status effect getting inserted if (!_gameTiming.ApplyingState) diff --git a/Content.Shared/Interaction/InteractionPopupSystem.cs b/Content.Shared/Interaction/InteractionPopupSystem.cs index 20f42385d86..7815f3f24ed 100644 --- a/Content.Shared/Interaction/InteractionPopupSystem.cs +++ b/Content.Shared/Interaction/InteractionPopupSystem.cs @@ -1,3 +1,4 @@ +using Content.Shared._MACRO.Interaction; using Content.Shared.Bed.Sleep; using Content.Shared.IdentityManagement; using Content.Shared.Interaction.Components; @@ -5,6 +6,7 @@ using Content.Shared.Mobs.Components; using Content.Shared.Mobs.Systems; using Content.Shared.Popups; +using Content.Shared.Whitelist; // MACRO: Add petting chance modifier using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Network; @@ -16,6 +18,7 @@ namespace Content.Shared.Interaction; public sealed partial class InteractionPopupSystem : EntitySystem { + [Dependency] private EntityWhitelistSystem _entityWhitelist = null!; // MACRO: Add petting chance modifier [Dependency] private IGameTiming _gameTiming = default!; [Dependency] private IRobustRandom _random = default!; [Dependency] private MobStateSystem _mobStateSystem = default!; @@ -91,7 +94,16 @@ private void SharedInteract( if (_netMan.IsClient && !predict) return; - if (_random.Prob(component.SuccessChance)) + // MACRO start: Add petting chance modifier + var successChance = component.SuccessChance; + + if (TryComp(uid, out var pettingChance) + && _entityWhitelist.IsWhitelistPassOrNull(pettingChance.TargetWhitelist, target) + && _entityWhitelist.IsWhitelistFailOrNull(pettingChance.TargetBlacklist, target)) + successChance *= pettingChance.Modifier; + // MACRO end + + if (_random.Prob(successChance)) // MACRO: Add petting chance modifier { if (component.InteractSuccessString != null) msg = Loc.GetString(component.InteractSuccessString, ("target", Identity.Entity(uid, EntityManager))); // Success message (localized). diff --git a/Content.Shared/Nutrition/EntitySystems/IngestionSystem.API.cs b/Content.Shared/Nutrition/EntitySystems/IngestionSystem.API.cs index 3c8dbb9e74f..d614d78e2d5 100644 --- a/Content.Shared/Nutrition/EntitySystems/IngestionSystem.API.cs +++ b/Content.Shared/Nutrition/EntitySystems/IngestionSystem.API.cs @@ -307,7 +307,7 @@ public bool CanAccessSolution(EntityUid ingested, // TODO: Relay this event to solutions using solution relay var ev = new EdibleEvent(user); - RaiseLocalEvent(ingested, ref ev); + RaiseLocalEvent(ingested, ref ev, true); // DeltaV - Set broadcast to true for DVEatTimeModifier subscription solution = ev.Solution; time = ev.Time; diff --git a/Content.Shared/_MACRO/Atmos/Components/FireStackModifierComponent.cs b/Content.Shared/_MACRO/Atmos/Components/FireStackModifierComponent.cs new file mode 100644 index 00000000000..82e15d04860 --- /dev/null +++ b/Content.Shared/_MACRO/Atmos/Components/FireStackModifierComponent.cs @@ -0,0 +1,14 @@ +namespace Content.Shared._MACRO.Atmos.Components; + +/// +/// This is used for modifying fire stacks. +/// +[RegisterComponent] +public sealed partial class FireStackModifierComponent : Component +{ + /// + /// The modifier to multiply the fire stacks by. + /// + [DataField] + public float Modifier { get; set; } = 1f; +} diff --git a/Content.Shared/_MACRO/Bed/Sleep/SleepTimeModifierComponent.cs b/Content.Shared/_MACRO/Bed/Sleep/SleepTimeModifierComponent.cs new file mode 100644 index 00000000000..a403fc0a18f --- /dev/null +++ b/Content.Shared/_MACRO/Bed/Sleep/SleepTimeModifierComponent.cs @@ -0,0 +1,20 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared._MACRO.Bed.Sleep; + +/// +/// Component that modifies an entity's sleep wakeup cooldown +/// by a multiplier. +/// +[RegisterComponent, NetworkedComponent] +[AutoGenerateComponentState] +public sealed partial class SleepTimeModifierComponent : Component +{ + /// + /// When this entity is put to sleep, the cooldown before + /// an attached player can wake the entity up will be + /// multiplied by this value. + /// + [DataField, AutoNetworkedField] + public float Modifier = 1; +} diff --git a/Content.Shared/_MACRO/Interaction/PettingChanceModifierComponent.cs b/Content.Shared/_MACRO/Interaction/PettingChanceModifierComponent.cs new file mode 100644 index 00000000000..ff6611110dd --- /dev/null +++ b/Content.Shared/_MACRO/Interaction/PettingChanceModifierComponent.cs @@ -0,0 +1,29 @@ +using Content.Shared.Interaction.Components; +using Content.Shared.Whitelist; + +namespace Content.Shared._MACRO.Interaction; + +/// +/// Allows any entity with this component to have a different success rate when petting mobs with . +/// +[RegisterComponent] +public sealed partial class PettingChanceModifierComponent : Component +{ + /// + /// Modifier of the chance to successfully pet a mob. + /// + [DataField] + public float Modifier = 1; + + /// + /// If not null, the target must succeed the whitelist. + /// + [DataField] + public EntityWhitelist? TargetWhitelist { get; set; } + + /// + /// If not null, the target must not pass the blacklist. + /// + [DataField] + public EntityWhitelist? TargetBlacklist { get; set; } +} diff --git a/Content.Shared/_MACRO/Nutrition/Components/EatTimeModifierComponent.cs b/Content.Shared/_MACRO/Nutrition/Components/EatTimeModifierComponent.cs new file mode 100644 index 00000000000..571f99e6455 --- /dev/null +++ b/Content.Shared/_MACRO/Nutrition/Components/EatTimeModifierComponent.cs @@ -0,0 +1,16 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared._MACRO.Nutrition.Components; + +/// +/// This component is used to modify the time to eat food by a specific modifier. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class EatTimeModifierComponent : Component +{ + /// + /// The amount you would like to multiply the delay on the eating doAfter + /// + [DataField] + public float Modifier = 1f; +} diff --git a/Content.Shared/_MACRO/Nutrition/EntitySystems/EatTimeModifierSystem.cs b/Content.Shared/_MACRO/Nutrition/EntitySystems/EatTimeModifierSystem.cs new file mode 100644 index 00000000000..20e6388de4c --- /dev/null +++ b/Content.Shared/_MACRO/Nutrition/EntitySystems/EatTimeModifierSystem.cs @@ -0,0 +1,30 @@ +using Content.Shared._MACRO.Nutrition.Components; +using Content.Shared.Nutrition; +using Content.Shared.Nutrition.EntitySystems; + +namespace Content.Shared._MACRO.Nutrition.EntitySystems; + +/// +/// Handles the time modification of the eaten food +/// +public sealed class EatTimeModifierSystem : EntitySystem +{ + /// + public override void Initialize() + { + SubscribeLocalEvent(OnEdible, after: [typeof(IngestionSystem)]); + } + + private void OnEdible(ref EdibleEvent args) + { + var user = args.User; + + if (args.Cancelled) + return; + + if (!TryComp(user, out var eatTimeModifier)) + return; + + args.Time *= eatTimeModifier.Modifier; + } +} diff --git a/Resources/Audio/_MACRO/Voice/Ovinia/attributions.yml b/Resources/Audio/_MACRO/Voice/Ovinia/attributions.yml new file mode 100644 index 00000000000..24151590b2b --- /dev/null +++ b/Resources/Audio/_MACRO/Voice/Ovinia/attributions.yml @@ -0,0 +1,36 @@ +#Attributions for Ovinia Baa's and Moo's + +- files: ["ovinia_baa1.ogg"] + copyright: "created by saha213131, Modified by 'sheepmera', The original audio was shortened and converted from stereo to mono" + license: "CC0-1.0" + source: "https://freesound.org/people/saha213131/sounds/683259/" + +- files: ["ovinia_baa2.ogg"] + copyright: "created by saha213131, Modified by 'sheepmera', The original audio was converted from stereo to mono" + license: "CC0-1.0" + source: "https://freesound.org/people/saha213131/sounds/691476/" + +- files: ["ovinia_baa3.ogg"] + copyright: "created by michaelperfect, Modified by 'sheepmera', The original audio was shortened and converted from stereo to mono " + license: "CC0-1.0" + source: "https://freesound.org/people/michaelperfect/sounds/710299/" + +- files: ["ovinia_scream.ogg"] + copyright: "created by saha213131, Modified by 'sheepmera', The original audio was pitch shifted and converted from stereo to mono " + license: "CC0-1.0" + source: "https://freesound.org/people/michaelperfect/sounds/710300/" + +- files: ["ovinia_moo1.ogg"] + copyright: "created by Zozzy, Modified by 'Darklyac', The original audio was converted from WAV to OGG format" + license: "CC0-1.0" + source: "https://freesound.org/people/Zozzy/sounds/59245/" + +- files: ["ovinia_moo2.ogg, ovinia_moo3.ogg"] + copyright: "created by JarredGibb, Modified by 'Darklyac', the original audio was converted from WAV to OGG format" + license: "CC0-1.0" + source: "https://freesound.org/people/JarredGibb/sounds/233145/" + +- files: ["ovinia_moo4.ogg"] + copyright: "created by JarredGibb, Modified by 'Darklyac', the original audio was converted from WAV to OGG format" + license: "CC0-1.0" + source: "https://freesound.org/people/JarredGibb/sounds/233130/" diff --git a/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_ask.ogg b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_ask.ogg new file mode 100644 index 00000000000..ef1e9dc948d Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_ask.ogg differ diff --git a/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_baa1.ogg b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_baa1.ogg new file mode 100644 index 00000000000..9488e096079 Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_baa1.ogg differ diff --git a/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_baa2.ogg b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_baa2.ogg new file mode 100644 index 00000000000..9df3eb51086 Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_baa2.ogg differ diff --git a/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_baa3.ogg b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_baa3.ogg new file mode 100644 index 00000000000..afedaf77970 Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_baa3.ogg differ diff --git a/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_exclaim.ogg b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_exclaim.ogg new file mode 100644 index 00000000000..f52032baa3f Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_exclaim.ogg differ diff --git a/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_moo1.ogg b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_moo1.ogg new file mode 100644 index 00000000000..6f8deacef2d Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_moo1.ogg differ diff --git a/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_moo2.ogg b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_moo2.ogg new file mode 100644 index 00000000000..86135fe43af Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_moo2.ogg differ diff --git a/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_moo3.ogg b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_moo3.ogg new file mode 100644 index 00000000000..1e7ca7f43a4 Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_moo3.ogg differ diff --git a/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_moo4.ogg b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_moo4.ogg new file mode 100644 index 00000000000..a8aa7ed4da5 Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_moo4.ogg differ diff --git a/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_say.ogg b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_say.ogg new file mode 100644 index 00000000000..a680bb65e4f Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_say.ogg differ diff --git a/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_scream.ogg b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_scream.ogg new file mode 100644 index 00000000000..65be06ea383 Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Ovinia/ovinia_scream.ogg differ diff --git a/Resources/Locale/en-US/_MACRO/chat/chat-managers.ftl b/Resources/Locale/en-US/_MACRO/chat/chat-managers.ftl new file mode 100644 index 00000000000..c40ef83fbcc --- /dev/null +++ b/Resources/Locale/en-US/_MACRO/chat/chat-managers.ftl @@ -0,0 +1,5 @@ +chat-speech-verb-name-ovinia = Ovinia +chat-speech-verb-ovinia-1 = baas +chat-speech-verb-ovinia-2 = bleats +chat-speech-verb-ovinia-3 = maas +chat-speech-verb-ovinia-4 = mehs diff --git a/Resources/Locale/en-US/_MACRO/chat/emotes.ftl b/Resources/Locale/en-US/_MACRO/chat/emotes.ftl new file mode 100644 index 00000000000..4226e740e1f --- /dev/null +++ b/Resources/Locale/en-US/_MACRO/chat/emotes.ftl @@ -0,0 +1,7 @@ +# Names +chat-emote-name-baa = Baa +chat-emote-name-moo = Moo + +# Message +chat-emote-msg-baa = baas. +chat-emote-msg-moo = moos. diff --git a/Resources/Locale/en-US/_MACRO/datasets/names/ovinia.ftl b/Resources/Locale/en-US/_MACRO/datasets/names/ovinia.ftl new file mode 100644 index 00000000000..ada07a40069 --- /dev/null +++ b/Resources/Locale/en-US/_MACRO/datasets/names/ovinia.ftl @@ -0,0 +1,49 @@ +names-ovinia-first-1 = Myrail +names-ovinia-first-2 = Vaeluun +names-ovinia-first-3 = Thallinn +names-ovinia-first-4 = Meavallei +names-ovinia-first-5 = Vaalev +names-ovinia-first-6 = Ruth +names-ovinia-first-7 = Baareivelaa +names-ovinia-first-8 = Maalun +names-ovinia-first-9 = Lethaavul +names-ovinia-first-10 = Keephai +names-ovinia-first-11 = Ehhmchole +names-ovinia-first-12 = Ailuuth +names-ovinia-first-13 = Ruuna +names-ovinia-first-14 = Lua +names-ovinia-first-15 = luura +names-ovinia-first-16 = Lumia +names-ovinia-first-17 = Maeria +names-ovinia-first-18 = Luumara +names-ovinia-first-19 = Baalu +names-ovinia-first-20 = Maamea +names-ovinia-first-21 = Ruulune +names-ovinia-first-22 = Thaeluu +names-ovinia-first-23 = Rhumelaah +names-ovinia-first-24 = Thairulune +names-ovinia-first-25 = Lylymea +names-ovinia-first-26 = Myvaine +names-ovinia-first-27 = Lymehlune +names-ovinia-first-28 = Jayluvai +names-ovinia-first-29 = Tyean +names-ovinia-first-30 = Meva +names-ovinia-first-31 = Vyre +names-ovinia-first-32 = Mera + +names-ovinia-last-1 = Juvayelean +names-ovinia-last-2 = Lunae +names-ovinia-last-3 = Vuulae +names-ovinia-last-4 = Rohmaae +names-ovinia-last-5 = Phaelarune +names-ovinia-last-6 = Invae +names-ovinia-last-7 = Meathall +names-ovinia-last-8 = Mehhvaa +names-ovinia-last-9 = Laalaene +names-ovinia-last-10 = Baahlathruu +names-ovinia-last-11 = Thyrunia +names-ovinia-last-12 = Vylune +names-ovinia-last-13 = Rhymehelai +names-ovinia-last-14 = Veythavai +names-ovinia-last-15 = Yvalueth +names-ovinia-last-16 = Lyvahlia diff --git a/Resources/Locale/en-US/_MACRO/markings/ovinia.ftl b/Resources/Locale/en-US/_MACRO/markings/ovinia.ftl new file mode 100644 index 00000000000..42b22c6d6b5 --- /dev/null +++ b/Resources/Locale/en-US/_MACRO/markings/ovinia.ftl @@ -0,0 +1,109 @@ +marking-OviniaEars = Ovinia Ears (Default) +marking-OviniaEars-ovinia-ears = Outer Ears +marking-OviniaEars-ovinia-ears-inner = Inner Ears + +marking-OviniaTail = Ovinia Tail (Default) +marking-OviniaTail-ovinia-tail = Tail +marking-OviniaTailAnimated = Ovinia Tail (animated) +marking-OviniaTailAnimated-ovinia-tail_wag = Tail + +marking-OviniaEarsCow = Ovinia Ears (Side) +marking-OviniaEarsCow-cow-ears = Outer Ears +marking-OviniaEarsCow-cow-ears-inner = Inner Ears + +marking-OviniaEarsDeer = Ovinia Ears (Outward) +marking-OviniaEarsDeer-deer-ears = Outer Ears +marking-OviniaEarsDeer-deer-ears-inner = Inner Ears + +marking-OviniaEarsHorse = Ovinia Ears (Upward) +marking-OviniaEarsHorse-horse-ears = Outer Ears +marking-OviniaEarsHorse-horse-ears-inner = Inner Ears + +marking-OviniaNeckfluff = Ovinia Neck Fluff +marking-OviniaNeckfluff-ovinia-neck-fluff = Neck Fluff + +marking-OviniaLambHorns = Lamb Horns +marking-OviniaLambHorns-lamb-horns = Horns + +marking-OviniaRamHorns = Ram Horns +marking-OviniaRamHorns-ovinia-ram-horns = Horns + +marking-OviniaPointyHorns = Pointy Horns +marking-OviniaPointyHorns-ovinia-pointy-horns = Horns + +marking-OviniaDeerHorns = Deer Horns +marking-OviniaDeerHorns-ovinia-deer-horns = Horns + +marking-OviniaDevilHorns = Devil Horns +marking-OviniaDevilHorns-ovinia-devil-horns = Horns + +marking-OviniaBaphometHorns = Baphomet Horns +marking-OviniaBaphometHorns-ovinia-baphomet-horns = Horns + +marking-OviniaIbexHorns = Ibex Horns +marking-OviniaIbexHorns-ovinia-ibex-horns = Horns + +marking-OviniaCurvedHorns = Curved Horns +marking-OviniaCurvedHorns-ovinia-curved-horns = Horns + +marking-OviniaJacobHorns = Jacob Horns +marking-OviniaJacobHorns-jacob-horns = Horns + + +marking-OviniaFace = Ovinia Face +marking-OviniaFace-ovinia-face = Face +marking-OviniaFace-ovinia-nose = Nose + +marking-OviniaBlaze = Ovinia Blaze +marking-OviniaBlaze-ovinia-blaze = Face +marking-OviniaBlaze-ovinia-nose = Nose + +marking-OviniaSnoutDefault = Default Snout +marking-OviniaSnoutDefault-snout = Snout + +marking-OviniaSnout = Ovinia Snout +marking-OviniaSnout-ovinia-snout = Snout +marking-OviniaSnout-ovinia-nose = Nose + +marking-OviniaTummy = Ovinia Tummy +marking-OviniaTummy-ovinia-tummy = Tummy + +marking-OviniaPatternFawn = Fawn Spots +marking-OviniaPatternFawn-torso-fawn = Spot + +marking-OviniaChestFullMasc = Ovinia Torso [M] +marking-OviniaChestFullMasc-full-m = Torso + +marking-OviniaChestFullFem = Ovinia Torso [F] +marking-OviniaChestFullFem-full-f = Torso + +marking-OviniaPatternCattleMasc = Splotches [M] +marking-OviniaPatternCattleMasc-torso-cow-m = Splotch + +marking-OviniaPatternCattleFem = Splotches [F] +marking-OviniaPatternCattleFem-torso-cow-f = Splotch + +marking-OviniaLeftLegValais = Valais Left Leg +marking-OviniaLeftLegValais-ovinia-leg-valais-left = Valais Left Leg + +marking-OviniaRightLegValais = Valais Right Leg +marking-OviniaRightLegValais-ovinia-leg-valais-right = Valais Right Leg + +marking-OviniaLeftHoof = Left Hoof +marking-OviniaLeftHoof-ovinia-hoof-left = Left Hoof + +marking-OviniaRightHoof = Right Hoof +marking-OviniaRightHoof-ovinia-hoof-right = Right Hoof + +marking-OviniaLeftArmValais = Valais Left Arm +marking-OviniaLeftArmValais-ovinia-arm-valais-left = Valais Left Arm + +marking-OviniaRightArmValais = Valais Right Arm +marking-OviniaRightArmValais-ovinia-arm-valais-right = Valais Right Arm + +marking-OviniaLeftHandHoof = Hooved Left Hand +marking-OviniaLeftHandHoof-hand-hoof-left = Hoof + +marking-OviniaRightHandHoof = Hooved Right Hand +marking-OviniaRightHandHoof-hand-hoof-right = Hoof + diff --git a/Resources/Locale/en-US/_MACRO/species/species.ftl b/Resources/Locale/en-US/_MACRO/species/species.ftl new file mode 100644 index 00000000000..81d8ff29101 --- /dev/null +++ b/Resources/Locale/en-US/_MACRO/species/species.ftl @@ -0,0 +1 @@ +species-name-ovinia = Ovinia diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index c447f1570e5..bb880acb058 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -189,6 +189,7 @@ - type: NpcFactionMember factions: - SimpleHostile + - AnimalFriend # MACRO - type: Bloodstream bloodReferenceSolution: reagents: @@ -1546,6 +1547,7 @@ - type: NpcFactionMember factions: - SimpleHostile + - AnimalFriend # MACRO - type: entity name: genetic ancestor diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml index 09af04aeea2..3892011d9ca 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml @@ -159,6 +159,7 @@ - type: NpcFactionMember factions: - SimpleHostile + - AnimalFriend # MACRO - type: GhostRole description: ghost-role-information-angry-slimes-description rules: ghost-role-information-angry-slimes-rules @@ -199,6 +200,7 @@ - type: NpcFactionMember factions: - SimpleHostile + - AnimalFriend # MACRO - type: GhostRole description: ghost-role-information-angry-slimes-description rules: ghost-role-information-angry-slimes-rules @@ -238,6 +240,7 @@ - type: NpcFactionMember factions: - SimpleHostile + - AnimalFriend # MACRO - type: GhostRole description: ghost-role-information-angry-slimes-description rules: ghost-role-information-angry-slimes-rules diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml index 65e861d3de0..98a7082d55d 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml @@ -112,6 +112,12 @@ interactFailureString: petting-failure-bear interactSuccessSound: path: /Audio/Animals/sloth_squeak.ogg + # MACRO start + - type: NpcFactionMember + factions: + - AnimalFriend + - SimpleHostile + # MACRO end - type: entity id: MobBearSpaceSalvage @@ -173,6 +179,12 @@ thresholds: 0: Alive 60: Dead + # MACRO start + - type: NpcFactionMember + factions: + - AnimalFriend + - SimpleHostile + # MACRO end - type: entity id: MobKangarooSpaceSalvage diff --git a/Resources/Prototypes/Entities/Mobs/Player/clone.yml b/Resources/Prototypes/Entities/Mobs/Player/clone.yml index 8e26fe9cdb7..e1f17298d5b 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/clone.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/clone.yml @@ -25,6 +25,12 @@ - PermanentBlindness - Snoring - Unrevivable + # BEGIN DeltaV + - FireStackModifier + - EatTimeModifier + - SleepTimeModifier + - PettingChanceModifier + # END DeltaV - type: cloningSettings parent: [TraitsMental, TraitsPhysical] diff --git a/Resources/Prototypes/Guidebook/species.yml b/Resources/Prototypes/Guidebook/species.yml index 9783b23285d..7eda3281045 100644 --- a/Resources/Prototypes/Guidebook/species.yml +++ b/Resources/Prototypes/Guidebook/species.yml @@ -8,6 +8,7 @@ - Dwarf - Human - Moth + - Ovinia # MACRO - Reptilian - SlimePerson - Vox diff --git a/Resources/Prototypes/Loadouts/Miscellaneous/survival.yml b/Resources/Prototypes/Loadouts/Miscellaneous/survival.yml index 52f8e0f1ba3..4326de63951 100644 --- a/Resources/Prototypes/Loadouts/Miscellaneous/survival.yml +++ b/Resources/Prototypes/Loadouts/Miscellaneous/survival.yml @@ -19,6 +19,7 @@ - Moth - Reptilian - Vulpkanin + - Ovinia # MACRO - type: loadoutEffectGroup id: EffectSpeciesVox diff --git a/Resources/Prototypes/Species/species_weights.yml b/Resources/Prototypes/Species/species_weights.yml index a516795ffb6..ae6a3bb8542 100644 --- a/Resources/Prototypes/Species/species_weights.yml +++ b/Resources/Prototypes/Species/species_weights.yml @@ -10,3 +10,4 @@ Diona: 2 Vox: 1 Vulpkanin: 4 + Ovinia: 4 # DeltaV diff --git a/Resources/Prototypes/_MACRO/Body/Species/ovinia.yml b/Resources/Prototypes/_MACRO/Body/Species/ovinia.yml new file mode 100644 index 00000000000..ba8a27f744e --- /dev/null +++ b/Resources/Prototypes/_MACRO/Body/Species/ovinia.yml @@ -0,0 +1,310 @@ +- type: markingsGroup + id: Ovinia + onlyGroupWhitelisted: true + limits: + enum.HumanoidVisualLayers.Hair: + limit: 1 + required: false + enum.HumanoidVisualLayers.FacialHair: + limit: 1 + required: false + enum.HumanoidVisualLayers.Head: + limit: 6 + required: false + enum.HumanoidVisualLayers.HeadTop: + limit: 1 + required: false + enum.HumanoidVisualLayers.HeadSide: + limit: 1 + default: [ OviniaEars ] + required: true + enum.HumanoidVisualLayers.UndergarmentTop: + limit: 1 + required: false + enum.HumanoidVisualLayers.UndergarmentBottom: + limit: 1 + required: false + enum.HumanoidVisualLayers.Chest: + limit: 6 + required: false + enum.HumanoidVisualLayers.Snout: + limit: 1 + required: true + default: [ OviniaSnout ] + enum.HumanoidVisualLayers.Tail: + limit: 1 + required: true + default: [ OviniaTail ] + enum.HumanoidVisualLayers.LArm: + limit: 6 + required: false + enum.HumanoidVisualLayers.RArm: + limit: 6 + required: false + enum.HumanoidVisualLayers.LHand: + limit: 6 + required: false + enum.HumanoidVisualLayers.RHand: + limit: 6 + required: false + enum.HumanoidVisualLayers.LLeg: + limit: 6 + required: false + enum.HumanoidVisualLayers.RLeg: + limit: 6 + required: false + enum.HumanoidVisualLayers.LFoot: + limit: 6 + required: false + enum.HumanoidVisualLayers.RFoot: + limit: 6 + required: false + +- type: entity + parent: BaseSpeciesAppearance + id: AppearanceOvinia + name: ovinia appearance + components: + - type: Inventory + displacements: + jumpsuit: + sizeMaps: + 32: + sprite: _MACRO/Mobs/Species/Ovinia/displacement.rsi + state: jumpsuit + shoes: + sizeMaps: + 32: + sprite: _MACRO/Mobs/Species/Ovinia/displacement.rsi + state: shoes + outerClothing: + sizeMaps: + 32: + sprite: _MACRO/Mobs/Species/Ovinia/displacement.rsi + state: outerclothing-hardsuit + femaleDisplacements: + jumpsuit: + sizeMaps: + 32: + sprite: _MACRO/Mobs/Species/Ovinia/displacement.rsi + state: jumpsuit-female + shoes: + sizeMaps: + 32: + sprite: _MACRO/Mobs/Species/Ovinia/displacement.rsi + state: shoes + outerClothing: + sizeMaps: + 32: + sprite: _MACRO/Mobs/Species/Ovinia/displacement.rsi + state: outerclothing-hardsuit + - type: InitialBody + organs: + Torso: OrganOviniaTorso + Head: OrganOviniaHead + ArmLeft: OrganOviniaArmLeft + ArmRight: OrganOviniaArmRight + HandRight: OrganOviniaHandRight + HandLeft: OrganOviniaHandLeft + LegLeft: OrganOviniaLegLeft + LegRight: OrganOviniaLegRight + FootLeft: OrganOviniaFootLeft + FootRight: OrganOviniaFootRight + Brain: OrganOviniaBrain + Eyes: OrganOviniaEyes + Tongue: OrganOviniaTongue + Appendix: OrganOviniaAppendix + Ears: OrganOviniaEars + Lungs: OrganOviniaLungs + Heart: OrganOviniaHeart + Stomach: OrganOviniaStomach + Liver: OrganOviniaLiver + Kidneys: OrganOviniaKidneys + - type: HumanoidProfile + species: Ovinia + +- type: entity + parent: + - AppearanceOvinia + - BaseSpeciesMobOrganic + id: MobOvinia + name: Urist McSheepie + components: + - type: TypingIndicator + proto: ovinia + - type: Vocal + emoteSounds: MaleOvinia + - type: Speech + speechSounds: Ovinia + speechVerb: Ovinia + allowedEmotes: [ 'Baa', 'Moo' ] + - type: Damageable + damageModifierSet: Ovinia + - type: Flammable + - type: FireStackModifier + modifier: 0.75 # less fire stacks! + - type: EatTimeModifier + modifier: 1.2 # quite slow eaters + - type: Hunger + baseDecayRate: 0.0083 # slower than normal (chewin they cud) + - type: Thirst + baseDecayRate: 0.0083 # slower than normal + - type: SleepTimeModifier + modifier: 2 + - type: PettingChanceModifier + modifier: 1.2 + - type: ProtectedFromStepTriggers + - type: Tag + tags: + - OviniaEmotes + - DoorBumpOpener + - CanPilot + - FootstepSound + - AnomalyHost + + - type: NpcFactionMember + factions: + - AnimalFriend + +- type: entity + parent: OrganBase + id: OrganOvinia + abstract: true + suffix: ovinia + +- type: entity + id: OrganOviniaMetabolizer + abstract: true + components: + - type: Metabolizer + metabolizerTypes: [ Animal ] + +- type: entity + id: OrganOviniaVisual + abstract: true + components: + - type: VisualOrgan + data: + sprite: _MACRO/Mobs/Species/Ovinia/parts.rsi + - type: VisualOrganMarkings + markingData: + group: Ovinia + +- type: entity + parent: OrganOvinia + id: OrganOviniaExternal + abstract: true + components: + - type: Sprite + sprite: _MACRO/Mobs/Species/Ovinia/parts.rsi + - type: VisualOrgan + data: + sprite: _MACRO/Mobs/Species/Ovinia/parts.rsi + - type: VisualOrganMarkings + markingData: + group: Ovinia + +- type: entity + parent: OrganOvinia + id: OrganOviniaInternal + abstract: true + components: + - type: Sprite + sprite: Mobs/Species/Human/organs.rsi + +- type: entity + parent: [ OrganBaseTorsoSexed, OrganBaseTorso, OrganOviniaExternal] + id: OrganOviniaTorso + +- type: entity + parent: [ OrganBaseHeadSexed, OrganBaseHead, OrganOviniaExternal ] + id: OrganOviniaHead + components: + - type: VisualOrganMarkings + hideableLayers: + - enum.HumanoidVisualLayers.Snout + - enum.HumanoidVisualLayers.HeadTop + - enum.HumanoidVisualLayers.HeadSide + - enum.HumanoidVisualLayers.Hair + - enum.HumanoidVisualLayers.FacialHair + dependentHidingLayers: + enum.HumanoidVisualLayers.Snout: + - enum.HumanoidVisualLayers.SnoutCover + +- type: entity + parent: [ OrganBaseArmLeft, OrganOviniaExternal ] + id: OrganOviniaArmLeft + +- type: entity + parent: [ OrganBaseArmRight, OrganOviniaExternal ] + id: OrganOviniaArmRight + +- type: entity + parent: [ OrganBaseHandLeft, OrganOviniaExternal ] + id: OrganOviniaHandLeft + +- type: entity + parent: [ OrganBaseHandRight, OrganOviniaExternal ] + id: OrganOviniaHandRight + +- type: entity + parent: [ OrganBaseLegLeft, OrganOviniaExternal ] + id: OrganOviniaLegLeft + +- type: entity + parent: [ OrganBaseLegRight, OrganOviniaExternal ] + id: OrganOviniaLegRight + +- type: entity + parent: [ OrganBaseFootLeft, OrganOviniaExternal ] + id: OrganOviniaFootLeft + +- type: entity + parent: [ OrganBaseFootRight, OrganOviniaExternal ] + id: OrganOviniaFootRight + +- type: entity + parent: [ OrganBaseBrain, OrganSpriteHumanInternal, OrganOviniaInternal ] + id: OrganOviniaBrain + +- type: entity + parent: [ OrganOviniaVisual, OrganBaseEyes, OrganOviniaInternal ] + id: OrganOviniaEyes + components: + - type: VisualOrgan + layer: enum.HumanoidVisualLayers.Eyes + data: + sprite: _MACRO/Mobs/Species/Ovinia/parts.rsi + state: eyes + +- type: entity + parent: [ OrganBaseTongue, OrganOviniaInternal ] + id: OrganOviniaTongue + +- type: entity + parent: [ OrganBaseAppendix, OrganOviniaInternal ] + id: OrganOviniaAppendix + +- type: entity + parent: [ OrganBaseEars, OrganOviniaInternal ] + id: OrganOviniaEars + +- type: entity + parent: [ OrganBaseLungs, OrganOviniaInternal, OrganOviniaMetabolizer ] + id: OrganOviniaLungs + +- type: entity + parent: [ OrganBaseHeart, OrganOviniaInternal, OrganOviniaMetabolizer ] + id: OrganOviniaHeart + +- type: entity + parent: [ OrganBaseStomach, OrganOviniaInternal, OrganOviniaMetabolizer ] + id: OrganOviniaStomach + +- type: entity + parent: [ OrganBaseLiver, OrganOviniaInternal, OrganOviniaMetabolizer ] + id: OrganOviniaLiver + +- type: entity + parent: [ OrganBaseKidneys, OrganOviniaInternal, OrganOviniaMetabolizer ] + id: OrganOviniaKidneys diff --git a/Resources/Prototypes/_MACRO/Damage/ovinia.yml b/Resources/Prototypes/_MACRO/Damage/ovinia.yml new file mode 100644 index 00000000000..3e5dc55ce50 --- /dev/null +++ b/Resources/Prototypes/_MACRO/Damage/ovinia.yml @@ -0,0 +1,8 @@ +- type: damageModifierSet + id: Ovinia + coefficients: + Piercing: 1.15 + Slash: 1.15 + Heat: 0.8 + Cold: 0.8 + Shock: 0.8 diff --git a/Resources/Prototypes/_MACRO/Datasets/Names/ovinia.yml b/Resources/Prototypes/_MACRO/Datasets/Names/ovinia.yml new file mode 100644 index 00000000000..cadaedfd8bf --- /dev/null +++ b/Resources/Prototypes/_MACRO/Datasets/Names/ovinia.yml @@ -0,0 +1,11 @@ +- type: localizedDataset + id: NamesOviniaFirst + values: + prefix: names-ovinia-first- + count: 32 + +- type: localizedDataset + id: NamesOviniaLast + values: + prefix: names-ovinia-last- + count: 16 diff --git a/Resources/Prototypes/_MACRO/Entities/Mobs/Customization/Markings/ovinia.yml b/Resources/Prototypes/_MACRO/Entities/Mobs/Customization/Markings/ovinia.yml new file mode 100644 index 00000000000..b6be0392382 --- /dev/null +++ b/Resources/Prototypes/_MACRO/Entities/Mobs/Customization/Markings/ovinia.yml @@ -0,0 +1,325 @@ +# HeadTop + +- type: marking + id: OviniaLambHorns + bodyPart: HeadTop + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/horn_markings.rsi + state: ovinia-lamb-horns + +- type: marking + id: OviniaRamHorns + bodyPart: HeadTop + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/horn_markings.rsi + state: ovinia-ram-horns + +- type: marking + id: OviniaPointyHorns + bodyPart: HeadTop + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/horn_markings.rsi + state: ovinia-pointy-horns + +- type: marking + id: OviniaCurvedHorns + bodyPart: HeadTop + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/horn_markings.rsi + state: ovinia-curved-horns + +- type: marking + id: OviniaDeerHorns + bodyPart: HeadTop + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/horn_markings.rsi + state: ovinia-deer-horns + +- type: marking + id: OviniaDevilHorns + bodyPart: HeadTop + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/horn_markings.rsi + state: ovinia-devil-horns + +- type: marking + id: OviniaBaphometHorns + bodyPart: HeadTop + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/horn_markings.rsi + state: ovinia-baphomet-horns + +- type: marking + id: OviniaIbexHorns + bodyPart: HeadTop + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/horn_markings.rsi + state: ovinia-ibex-horns + +- type: marking + id: OviniaJacobHorns + bodyPart: HeadTop + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/horn_markings.rsi + state: ovinia-jacob-horns + +# Ears + +- type: marking + id: OviniaEars + bodyPart: HeadSide + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/ear_markings.rsi + state: ovinia-ears + - sprite: _MACRO/Mobs/Customization/Ovinia/ear_markings.rsi + state: ovinia-ears-inner + +- type: marking + id: OviniaEarsCow + bodyPart: HeadSide + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/ear_markings.rsi + state: cow-ears + - sprite: _MACRO/Mobs/Customization/Ovinia/ear_markings.rsi + state: cow-ears-inner + +- type: marking + id: OviniaEarsDeer + bodyPart: HeadSide + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/ear_markings.rsi + state: deer-ears + - sprite: _MACRO/Mobs/Customization/Ovinia/ear_markings.rsi + state: deer-ears-inner + +- type: marking + id: OviniaEarsHorse + bodyPart: Headside + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/ear_markings.rsi + state: horse-ears + - sprite: _MACRO/Mobs/Customization/Ovinia/ear_markings.rsi + state: horse-ears-inner + +# Head + +# FacialHair + +- type: marking + id: OviniaNeckfluff + bodyPart: FacialHair # will fix this if we decide on introducing neck fluff layer + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/head_markings.rsi + state: ovinia-neck-fluff + +# Snout + +- type: marking + id: OviniaSnout + bodyPart: Snout + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/snout_markings.rsi + state: ovinia-snout + - sprite: _MACRO/Mobs/Customization/Ovinia/snout_markings.rsi + state: ovinia-nose + +- type: marking + id: OviniaFace + bodyPart: Snout + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/snout_markings.rsi + state: ovinia-face + - sprite: _MACRO/Mobs/Customization/Ovinia/snout_markings.rsi + state: ovinia-nose + +- type: marking + id: OviniaBlaze + bodyPart: Snout + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/snout_markings.rsi + state: ovinia-blaze + - sprite: _MACRO/Mobs/Customization/Ovinia/snout_markings.rsi + state: ovinia-nose + +# Chest +- type: marking + id: OviniaTummy + bodyPart: Chest + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/body_markings.rsi + state: ovinia-tummy + +- type: marking + id: OviniaChestFullMasc + bodyPart: Chest + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/body_markings.rsi + state: ovinia-full-m + +- type: marking + id: OviniaChestFullFem + bodyPart: Chest + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/body_markings.rsi + state: ovinia-full-f + +- type: marking + id: OviniaPatternFawn + bodyPart: Chest + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/body_markings.rsi + state: torso-fawn + coloring: + default: + type: !type:SimpleColoring + color: "#FFFFFF" + +- type: marking + id: OviniaPatternCattleMasc + bodyPart: Chest + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/body_markings.rsi + state: torso-cow-m + +- type: marking + id: OviniaPatternCattleFem + bodyPart: Chest + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/body_markings.rsi + state: torso-cow-f + +# RArm +- type: marking + id: OviniaRightArmValais + bodyPart: RArm + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/body_markings.rsi + state: ovinia-arm-valais-right + +# LArm + +- type: marking + id: OviniaLeftArmValais + bodyPart: LArm + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/body_markings.rsi + state: ovinia-arm-valais-left + +# RHand + +- type: marking + id: OviniaRightHandHoof + bodyPart: RHand + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/body_markings.rsi + state: hand-hoof-right + coloring: + default: + type: !type:SimpleColoring + color: "#07090f" + +# LHand + +- type: marking + id: OviniaLeftHandHoof + bodyPart: LHand + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/body_markings.rsi + state: hand-hoof-left + coloring: + default: + type: !type:SimpleColoring + color: "#07090f" + +# Tail + +- type: marking + id: OviniaTailAnimated + bodyPart: Tail + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/tail_markings.rsi + state: ovinia-tail_wag + +- type: marking + id: OviniaTail + bodyPart: Tail + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/tail_markings.rsi + state: ovinia-tail + +# RLeg + +- type: marking + id: OviniaRightLegValais + bodyPart: RLeg + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/body_markings.rsi + state: ovinia-leg-valais-right + +# LLeg + +- type: marking + id: OviniaLeftLegValais + bodyPart: LLeg + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/body_markings.rsi + state: ovinia-leg-valais-left + +# RFoot + +- type: marking + id: OviniaLeftHoof + bodyPart: RFoot + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/body_markings.rsi + state: ovinia-hoof-right + coloring: + default: + type: !type:SimpleColoring + color: "#07090f" + +# LFoot + +- type: marking + id: OviniaRightHoof + bodyPart: LFoot + groupWhitelist: [ Ovinia ] + sprites: + - sprite: _MACRO/Mobs/Customization/Ovinia/body_markings.rsi + state: ovinia-hoof-left + coloring: + default: + type: !type:SimpleColoring + color: "#07090f" diff --git a/Resources/Prototypes/_MACRO/Guidebook/species.yml b/Resources/Prototypes/_MACRO/Guidebook/species.yml new file mode 100644 index 00000000000..d56f03f8888 --- /dev/null +++ b/Resources/Prototypes/_MACRO/Guidebook/species.yml @@ -0,0 +1,4 @@ +- type: guideEntry + id: Ovinia + name: species-name-ovinia + text: "/ServerInfo/_MACRO/Guidebook/Mobs/Ovinia.xml" diff --git a/Resources/Prototypes/_MACRO/SoundCollections/ovinia.yml b/Resources/Prototypes/_MACRO/SoundCollections/ovinia.yml new file mode 100644 index 00000000000..cf86f9889cc --- /dev/null +++ b/Resources/Prototypes/_MACRO/SoundCollections/ovinia.yml @@ -0,0 +1,14 @@ +- type: soundCollection + id: OviniaBaa + files: + - /Audio/_MACRO/Voice/Ovinia/ovinia_baa1.ogg + - /Audio/_MACRO/Voice/Ovinia/ovinia_baa2.ogg + - /Audio/_MACRO/Voice/Ovinia/ovinia_baa3.ogg + +- type: soundCollection + id: CowMoo + files: + - /Audio/_MACRO/Voice/Ovinia/ovinia_moo1.ogg + - /Audio/_MACRO/Voice/Ovinia/ovinia_moo2.ogg + - /Audio/_MACRO/Voice/Ovinia/ovinia_moo3.ogg + - /Audio/_MACRO/Voice/Ovinia/ovinia_moo4.ogg diff --git a/Resources/Prototypes/_MACRO/Species/ovinia.yml b/Resources/Prototypes/_MACRO/Species/ovinia.yml new file mode 100644 index 00000000000..94e34be90a8 --- /dev/null +++ b/Resources/Prototypes/_MACRO/Species/ovinia.yml @@ -0,0 +1,24 @@ +- type: species + id: Ovinia + name: species-name-ovinia + roundStart: true # DeltaV - Enable roundstart + prototype: MobOvinia + defaultSkinTone: "#ffffff" + dollPrototype: AppearanceOvinia + skinColoration: Hues + maleFirstNames: NamesOviniaFirst + femaleFirstNames: NamesOviniaFirst + lastNames: NamesOviniaLast + # BEGIN DeltaV + voices: + - MaleOvinia + - FemaleOvinia + # END DeltaV + sexes: + - Male + - Female + - Unsexed + defaultSoundsBySex: + - MaleOvinia + - FemaleOvinia + - MaleOvinia diff --git a/Resources/Prototypes/_MACRO/Voice/ovinia.yml b/Resources/Prototypes/_MACRO/Voice/ovinia.yml new file mode 100644 index 00000000000..25238f87746 --- /dev/null +++ b/Resources/Prototypes/_MACRO/Voice/ovinia.yml @@ -0,0 +1,91 @@ +- type: speechVerb + id: Ovinia + name: chat-speech-verb-name-ovinia + speechVerbStrings: + - chat-speech-verb-ovinia-1 + - chat-speech-verb-ovinia-2 + - chat-speech-verb-ovinia-3 + - chat-speech-verb-ovinia-4 + +- type: speechSounds + id: Ovinia + saySound: + path: /Audio/_MACRO/Voice/Ovinia/ovinia_say.ogg + askSound: + path: /Audio/_MACRO/Voice/Ovinia/ovinia_ask.ogg + exclaimSound: + path: /Audio/_MACRO/Voice/Ovinia/ovinia_exclaim.ogg + +- type: emoteSounds + id: MaleOvinia + voiceSelectorName: humanoid-profile-editor-voice-masculine # DeltaV + params: + variation: 0.125 + sounds: + Scream: + path: /Audio/_MACRO/Voice/Ovinia/ovinia_scream.ogg + Laugh: + collection: MaleLaugh + Sneeze: + collection: MaleSneezes + Cough: + collection: MaleCoughs + Yawn: + collection: MaleYawn + Snore: + collection: Snores + Honk: + collection: BikeHorn + Sigh: + collection: MaleSigh + Crying: + collection: MaleCry + Whistle: + collection: Whistles + Weh: + collection: Weh + Hew: + collection: Hew + Baa: + collection: OviniaBaa + Moo: + collection: CowMoo + Gasp: + collection: MaleGasp + DefaultDeathgasp: + collection: MaleDeathGasp + +- type: emoteSounds + id: FemaleOvinia + voiceSelectorName: humanoid-profile-editor-voice-feminine # DeltaV + params: + variation: 0.125 + sounds: + Scream: + path: /Audio/_MACRO/Voice/Ovinia/ovinia_scream.ogg + Laugh: + collection: FemaleLaugh + Sneeze: + collection: FemaleSneezes + Cough: + collection: FemaleCoughs + Yawn: + collection: FemaleYawn + Snore: + collection: Snores + Honk: + collection: BikeHorn + Sigh: + collection: FemaleSigh + Crying: + collection: FemaleCry + Whistle: + collection: Whistles + Baa: + collection: OviniaBaa + Moo: + collection: CowMoo + Gasp: + collection: FemaleGasp + DefaultDeathgasp: + collection: FemaleDeathGasp diff --git a/Resources/Prototypes/_MACRO/Voice/speech_emotes.yml b/Resources/Prototypes/_MACRO/Voice/speech_emotes.yml new file mode 100644 index 00000000000..bdfa99c7ef7 --- /dev/null +++ b/Resources/Prototypes/_MACRO/Voice/speech_emotes.yml @@ -0,0 +1,45 @@ +# Ovinia +- type: emote + id: Baa + name: chat-emote-name-baa + category: Vocal + available: false + icon: _MACRO/Interface/Emotes/baa.png + whitelist: + requireAll: true + components: + - Vocal + tags: + - OviniaEmotes + chatMessages: [ chat-emote-msg-baa ] + chatTriggers: + - baas + - baa + - baahs + - baah + - baahed + - baah'd + - baahing + - bah + - bahs + - bahed + - bah'd + + +- type: emote + id: Moo + name: chat-emote-name-moo + category: Vocal + icon: _MACRO/Interface/Emotes/moo.png + available: false + whitelist: + components: + - Vocal + tags: + - OviniaEmotes + chatMessages: [ chat-emote-msg-moo ] + chatTriggers: + - moos + - moo + - mooed + - moo'd diff --git a/Resources/Prototypes/_MACRO/ai_factions.yml b/Resources/Prototypes/_MACRO/ai_factions.yml new file mode 100644 index 00000000000..11b76ccd753 --- /dev/null +++ b/Resources/Prototypes/_MACRO/ai_factions.yml @@ -0,0 +1,4 @@ +- type: npcFaction # for ovinia's animal friend trait (makes bees, space kangaroos and bears, and angry slimes not including reagents be friendly towards ovinia) + id: AnimalFriend + hostile: + - SimpleHostile diff --git a/Resources/Prototypes/_MACRO/tags.yml b/Resources/Prototypes/_MACRO/tags.yml new file mode 100644 index 00000000000..57cc961c804 --- /dev/null +++ b/Resources/Prototypes/_MACRO/tags.yml @@ -0,0 +1,4 @@ +# Sort all tags in alphabetical order and document their purpose here + +- type: Tag + id: OviniaEmotes # Used for Ovinia specific emotes diff --git a/Resources/Prototypes/_MACRO/typing_indicator.yml b/Resources/Prototypes/_MACRO/typing_indicator.yml new file mode 100644 index 00000000000..40aa6e95988 --- /dev/null +++ b/Resources/Prototypes/_MACRO/typing_indicator.yml @@ -0,0 +1,6 @@ +- type: typingIndicator + id: ovinia + spritePath: /Textures/_MACRO/Effects/speech.rsi + typingState: ovinia0 + idleState: ovinia-idle + offset: 0, 0 diff --git a/Resources/Prototypes/ai_factions.yml b/Resources/Prototypes/ai_factions.yml index 0d1e0a6bc02..925fa92af8e 100644 --- a/Resources/Prototypes/ai_factions.yml +++ b/Resources/Prototypes/ai_factions.yml @@ -60,6 +60,7 @@ - AllHostile - Wizard - Xenoborg + - AnimalFriend # MACRO - type: npcFaction id: SimpleNeutral diff --git a/Resources/ServerInfo/_MACRO/Guidebook/Mobs/Ovinia.xml b/Resources/ServerInfo/_MACRO/Guidebook/Mobs/Ovinia.xml new file mode 100644 index 00000000000..0fd9bbd9546 --- /dev/null +++ b/Resources/ServerInfo/_MACRO/Guidebook/Mobs/Ovinia.xml @@ -0,0 +1,40 @@ + + # Ovinia + + + + + + Ovinia are a species of ruminant-like humanoids native to the pasture world of Runia, located in the binary Lanei system. Known for its vast, flowing pastures and pristine waterbeds, this world was notably only at a tribal stage of civilization at the time of first contact, and has since been rapidly elevated through technological intervention into a space-faring society. + + ## Physiology + + Ovinia posess a dense, sturdy build, with strong musculature and [color=#1e90ff]hard-wearing hooves, which protect their feet from most common hazards, such as broken glass[/color]. In addition, their body is mostly coated in thick, insulative wool, which [color=#1e90ff]reduces their heat, cold and shock damage taken by 20%, as well as reducing their overall flammability by around 25%[/color]. Their coat, however, does little to protect them from physical harm, and their musculature is [color=#ffa500]15% more vulnerable to slash and piercing damage[/color]. + + + + + + The evolutionary advantages of this coat, however, come at a cost. Almost 73% of their metabolic intake is dedicated purely to growing their wool, and as of such they are often [color=#ffa500]sleepy and docile, causing them to sleep for far longer periods than most species[/color]. Notably, however, their gentle demeanor and naturalistic tendencies [color=#1e90ff]cause wild animals to behave in a much more docile manner around them[/color]. + This lopsided metabolic structure also manifests in their digestive system "slow-burning" food to increase efficiency, resulting in them [color=#1e90ff]becoming hungry and thirsty 25% slower[/color], although their evolutionary background of grazing has led them to [color=#ffa500]chew food and drink fluids roughly 20% slower than an average human[/color] in the same age and physical performance range. Notably, they also join Moths, Reptiles and various other species in being [color=#ffa500]poisoned by Theobromine (Chocolate, Tea, Coffee) and Allicin (Onion, Garlic)[/color]. + + ## Culture + + An Ovinia's woolen coat is deeply important to both their physical and mental wellbeing, holding an incredibly high significance in Ovinia culture. They pride themselves on their coat, hold great import in gifting their excess wool to others, and often forgo standard Nanotrasen uniform options to avoid hiding it, though exposure to outside cultural influence has trended to warm them to more traditional fashion. It is [bold]highly[/bold] recommended for staff to maintain respect regarding their wool as to not cause workplace incidents. + + ## Ovinia Naming Conventions + + Ovinia culture lacks gendered names or pronouns, with names generally consisting of soft consonants and often being between 1 and 4 syllables long, with names being flowy. More often than not, Ovinia will resort to nicknames by shortening longer names to their first syllables. First names are often abstract, named after concepts or virtues, while last names are used to differentiate flock lineages. Ovinia also have a habit of adopting the naming schemes of other species, showcasing a herd mentality. + + - [color=#449944]Acceptable:[/color] Mera Phaelarune + - [color=#449944]Acceptable:[/color] Lethaavul Rhymehelai + - [color=#449944]Acceptable:[/color] Baareivelaa Vylune + - [color=#449944]Acceptable:[/color] Ruth Lyvahlia + - [color=#449944]Acceptable:[/color] Thallinn Mehhvaa + - [color=#994444]Bad:[/color] Sheepie Beepie + - [color=#994444]Bad:[/color] BaaBaa Woolie + - [color=#994444]Bad:[/color] Arnold Palmer + - [color=#994444]Bad:[/color] Screaming Goat + - [color=#994444]Bad:[/color] Benry + + diff --git a/Resources/Textures/_MACRO/Effects/speech.rsi/meta.json b/Resources/Textures/_MACRO/Effects/speech.rsi/meta.json new file mode 100644 index 00000000000..3734308605d --- /dev/null +++ b/Resources/Textures/_MACRO/Effects/speech.rsi/meta.json @@ -0,0 +1,28 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Ovinia sprites made by P4yn7 (Discord) for Den", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "ovinia0", + "delays": [ + [ + 0.2, + 0.3, + 0.3, + 0.5 + ] + ] + }, + { + "name": "ovinia-idle" + }, + { + "name": "ovinia2" + } + ] + } diff --git a/Resources/Textures/_MACRO/Effects/speech.rsi/ovinia-idle.png b/Resources/Textures/_MACRO/Effects/speech.rsi/ovinia-idle.png new file mode 100644 index 00000000000..48b6469fe6e Binary files /dev/null and b/Resources/Textures/_MACRO/Effects/speech.rsi/ovinia-idle.png differ diff --git a/Resources/Textures/_MACRO/Effects/speech.rsi/ovinia0.png b/Resources/Textures/_MACRO/Effects/speech.rsi/ovinia0.png new file mode 100644 index 00000000000..9dd8545c031 Binary files /dev/null and b/Resources/Textures/_MACRO/Effects/speech.rsi/ovinia0.png differ diff --git a/Resources/Textures/_MACRO/Effects/speech.rsi/ovinia2.png b/Resources/Textures/_MACRO/Effects/speech.rsi/ovinia2.png new file mode 100644 index 00000000000..5cbbbfdf8c5 Binary files /dev/null and b/Resources/Textures/_MACRO/Effects/speech.rsi/ovinia2.png differ diff --git a/Resources/Textures/_MACRO/Interface/Emotes/attributions.yml b/Resources/Textures/_MACRO/Interface/Emotes/attributions.yml new file mode 100644 index 00000000000..39ae3757db7 --- /dev/null +++ b/Resources/Textures/_MACRO/Interface/Emotes/attributions.yml @@ -0,0 +1,9 @@ +- files: ["baa.png"] + license: "CC-BY-SA-3.0" + copyright: "Taken/modified from tgstation at https://github.com/tgstation/tgstation/blob/HEAD/icons/ui/chat/emoji.dmi" + source: "https://github.com/tgstation/tgstation" + +- files: ["moo.png"] + license: "CC-BY-SA-3.0" + copyright: "Taken/modified from tgstation at https://github.com/tgstation/tgstation/blob/HEAD/icons/ui/chat/emoji.dmi" + source: "https://github.com/tgstation/tgstation" diff --git a/Resources/Textures/_MACRO/Interface/Emotes/baa.png b/Resources/Textures/_MACRO/Interface/Emotes/baa.png new file mode 100644 index 00000000000..a49cbba44c3 Binary files /dev/null and b/Resources/Textures/_MACRO/Interface/Emotes/baa.png differ diff --git a/Resources/Textures/_MACRO/Interface/Emotes/moo.png b/Resources/Textures/_MACRO/Interface/Emotes/moo.png new file mode 100644 index 00000000000..74e002a837c Binary files /dev/null and b/Resources/Textures/_MACRO/Interface/Emotes/moo.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/hand-hoof-left.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/hand-hoof-left.png new file mode 100644 index 00000000000..412b00cecb4 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/hand-hoof-left.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/hand-hoof-right.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/hand-hoof-right.png new file mode 100644 index 00000000000..96080855816 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/hand-hoof-right.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/meta.json b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/meta.json new file mode 100644 index 00000000000..f3cc2e33e3e --- /dev/null +++ b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/meta.json @@ -0,0 +1,67 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Ovinia tummy / Valais / full torso sprites by juniwoofs. Fawn, cow, and hand hoof sprites by portfiend", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "ovinia-tummy", + "directions": 4 + }, + { + "name": "ovinia-arm-valais-left", + "directions": 4 + }, + { + "name": "ovinia-arm-valais-right", + "directions": 4 + }, + { + "name": "ovinia-leg-valais-left", + "directions": 4 + }, + { + "name": "ovinia-leg-valais-right", + "directions": 4 + }, + { + "name": "torso-fawn", + "directions": 4 + }, + { + "name": "torso-cow-f", + "directions": 4 + }, + { + "name": "torso-cow-m", + "directions": 4 + }, + { + "name": "ovinia-full-m", + "directions": 4 + }, + { + "name": "ovinia-full-f", + "directions": 4 + }, + { + "name": "hand-hoof-left", + "directions": 4 + }, + { + "name": "hand-hoof-right", + "directions": 4 + }, + { + "name": "ovinia-hoof-left", + "directions": 4 + }, + { + "name": "ovinia-hoof-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-arm-valais-left.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-arm-valais-left.png new file mode 100644 index 00000000000..3f22a65dbda Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-arm-valais-left.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-arm-valais-right.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-arm-valais-right.png new file mode 100644 index 00000000000..b1a360368af Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-arm-valais-right.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-full-f.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-full-f.png new file mode 100644 index 00000000000..54ace434bdf Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-full-f.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-full-m.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-full-m.png new file mode 100644 index 00000000000..60aa5e3cbe3 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-full-m.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-hoof-left.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-hoof-left.png new file mode 100644 index 00000000000..01296771730 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-hoof-left.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-hoof-right.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-hoof-right.png new file mode 100644 index 00000000000..962f132c1ac Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-hoof-right.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-leg-valais-left.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-leg-valais-left.png new file mode 100644 index 00000000000..25e04f58ceb Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-leg-valais-left.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-leg-valais-right.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-leg-valais-right.png new file mode 100644 index 00000000000..319b2798dbe Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-leg-valais-right.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-tummy.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-tummy.png new file mode 100644 index 00000000000..98ae686218f Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/ovinia-tummy.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/torso-cow-f.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/torso-cow-f.png new file mode 100644 index 00000000000..7ecde4009a6 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/torso-cow-f.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/torso-cow-m.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/torso-cow-m.png new file mode 100644 index 00000000000..4a798c7330b Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/torso-cow-m.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/torso-fawn.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/torso-fawn.png new file mode 100644 index 00000000000..2421278ea9c Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/body_markings.rsi/torso-fawn.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/cow-ears-inner.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/cow-ears-inner.png new file mode 100644 index 00000000000..a236a7b1022 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/cow-ears-inner.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/cow-ears.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/cow-ears.png new file mode 100644 index 00000000000..07508679f19 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/cow-ears.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/deer-ears-inner.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/deer-ears-inner.png new file mode 100644 index 00000000000..7d99664ec95 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/deer-ears-inner.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/deer-ears.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/deer-ears.png new file mode 100644 index 00000000000..1d2b7fcc89a Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/deer-ears.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/horse-ears-inner.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/horse-ears-inner.png new file mode 100644 index 00000000000..d8d5d642097 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/horse-ears-inner.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/horse-ears.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/horse-ears.png new file mode 100644 index 00000000000..ae8b8225829 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/horse-ears.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/meta.json b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/meta.json new file mode 100644 index 00000000000..622db11deb7 --- /dev/null +++ b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/meta.json @@ -0,0 +1,43 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Ovinia ears made by juniwoofs. Cow, deer, and horse ears made by portfiend.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "ovinia-ears", + "directions": 4 + }, + { + "name": "ovinia-ears-inner", + "directions": 4 + }, + { + "name": "cow-ears", + "directions": 4 + }, + { + "name": "cow-ears-inner", + "directions": 4 + }, + { + "name": "deer-ears", + "directions": 4 + }, + { + "name": "deer-ears-inner", + "directions": 4 + }, + { + "name": "horse-ears", + "directions": 4 + }, + { + "name": "horse-ears-inner", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/ovinia-ears-inner.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/ovinia-ears-inner.png new file mode 100644 index 00000000000..d2982c47d17 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/ovinia-ears-inner.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/ovinia-ears.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/ovinia-ears.png new file mode 100644 index 00000000000..0c8d572222e Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/ear_markings.rsi/ovinia-ears.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/head_markings.rsi/meta.json b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/head_markings.rsi/meta.json new file mode 100644 index 00000000000..5dceeb7c14b --- /dev/null +++ b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/head_markings.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Made by juniwoofs, Edited by BlitzTheSquishy", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "ovinia-neck-fluff", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/head_markings.rsi/ovinia-neck-fluff.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/head_markings.rsi/ovinia-neck-fluff.png new file mode 100644 index 00000000000..008bea0aa3a Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/head_markings.rsi/ovinia-neck-fluff.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/meta.json b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/meta.json new file mode 100644 index 00000000000..1818969d788 --- /dev/null +++ b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/meta.json @@ -0,0 +1,47 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Lamb horns by Rosycup. ram, pointy, and curved horns by P4ny7, deer, devil, baphomet and ibex horns by Monotheonist. Jacob horns by portfiend.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "ovinia-lamb-horns", + "directions": 4 + }, + { + "name": "ovinia-ram-horns", + "directions": 4 + }, + { + "name": "ovinia-pointy-horns", + "directions": 4 + }, + { + "name": "ovinia-curved-horns", + "directions": 4 + }, + { + "name": "ovinia-baphomet-horns", + "directions": 4 + }, + { + "name": "ovinia-deer-horns", + "directions": 4 + }, + { + "name": "ovinia-devil-horns", + "directions": 4 + }, + { + "name": "ovinia-ibex-horns", + "directions": 4 + }, + { + "name": "ovinia-jacob-horns", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-baphomet-horns.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-baphomet-horns.png new file mode 100644 index 00000000000..8f8b71d8050 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-baphomet-horns.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-curved-horns.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-curved-horns.png new file mode 100644 index 00000000000..66c8c1bcaa6 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-curved-horns.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-deer-horns.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-deer-horns.png new file mode 100644 index 00000000000..034c4270e61 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-deer-horns.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-devil-horns.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-devil-horns.png new file mode 100644 index 00000000000..9db02ff85f8 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-devil-horns.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-ibex-horns.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-ibex-horns.png new file mode 100644 index 00000000000..efd3b3ed724 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-ibex-horns.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-jacob-horns.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-jacob-horns.png new file mode 100644 index 00000000000..e434a737c41 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-jacob-horns.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-lamb-horns.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-lamb-horns.png new file mode 100644 index 00000000000..619c3e8e9c4 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-lamb-horns.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-pointy-horns.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-pointy-horns.png new file mode 100644 index 00000000000..71719126487 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-pointy-horns.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-ram-horns.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-ram-horns.png new file mode 100644 index 00000000000..f4c8a5aa7f3 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/horn_markings.rsi/ovinia-ram-horns.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/snout_markings.rsi/meta.json b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/snout_markings.rsi/meta.json new file mode 100644 index 00000000000..e85034d4496 --- /dev/null +++ b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/snout_markings.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Made by juniwoofs, blaze by Monotheonist", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "ovinia-snout", + "directions": 4 + }, + { + "name": "ovinia-blaze", + "directions": 4 + }, + { + "name": "ovinia-nose", + "directions": 4 + }, + { + "name": "ovinia-face", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/snout_markings.rsi/ovinia-blaze.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/snout_markings.rsi/ovinia-blaze.png new file mode 100644 index 00000000000..2470cb84a37 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/snout_markings.rsi/ovinia-blaze.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/snout_markings.rsi/ovinia-face.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/snout_markings.rsi/ovinia-face.png new file mode 100644 index 00000000000..eaf20b0217e Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/snout_markings.rsi/ovinia-face.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/snout_markings.rsi/ovinia-nose.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/snout_markings.rsi/ovinia-nose.png new file mode 100644 index 00000000000..24d3730155b Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/snout_markings.rsi/ovinia-nose.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/snout_markings.rsi/ovinia-snout.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/snout_markings.rsi/ovinia-snout.png new file mode 100644 index 00000000000..ac89996ff72 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/snout_markings.rsi/ovinia-snout.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/tail_markings.rsi/meta.json b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/tail_markings.rsi/meta.json new file mode 100644 index 00000000000..52b69a34a99 --- /dev/null +++ b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/tail_markings.rsi/meta.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Made by juniwoofs", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "ovinia-tail", + "directions": 4 + }, + { + "name": "ovinia-tail_wag", + "directions": 4, + "delays": [[0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]] + } + ] +} diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/tail_markings.rsi/ovinia-tail.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/tail_markings.rsi/ovinia-tail.png new file mode 100644 index 00000000000..21c8b790407 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/tail_markings.rsi/ovinia-tail.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/tail_markings.rsi/ovinia-tail_wag.png b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/tail_markings.rsi/ovinia-tail_wag.png new file mode 100644 index 00000000000..7866b5736c3 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Ovinia/tail_markings.rsi/ovinia-tail_wag.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Species/Ovinia/displacement.rsi/jumpsuit-female.png b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/displacement.rsi/jumpsuit-female.png new file mode 100644 index 00000000000..913adc877cc Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/displacement.rsi/jumpsuit-female.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Species/Ovinia/displacement.rsi/jumpsuit.png b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/displacement.rsi/jumpsuit.png new file mode 100644 index 00000000000..e6d477d43f8 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/displacement.rsi/jumpsuit.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Species/Ovinia/displacement.rsi/meta.json b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/displacement.rsi/meta.json new file mode 100644 index 00000000000..d38ac5d6798 --- /dev/null +++ b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/displacement.rsi/meta.json @@ -0,0 +1,30 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "by Litogin", + "size": { + "x": 32, + "y": 32 + }, + "load": { + "srgb": false + }, + "states": [ + { + "name": "jumpsuit", + "directions": 4 + }, + { + "name": "shoes", + "directions" : 4 + }, + { + "name": "jumpsuit-female", + "directions" : 4 + }, + { + "name": "outerclothing-hardsuit", + "directions" : 4 + } + ] +} diff --git a/Resources/Textures/_MACRO/Mobs/Species/Ovinia/displacement.rsi/outerclothing-hardsuit.png b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/displacement.rsi/outerclothing-hardsuit.png new file mode 100644 index 00000000000..e6d477d43f8 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/displacement.rsi/outerclothing-hardsuit.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Species/Ovinia/displacement.rsi/shoes.png b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/displacement.rsi/shoes.png new file mode 100644 index 00000000000..3350a0513a8 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/displacement.rsi/shoes.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/eyes.png b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/eyes.png new file mode 100644 index 00000000000..5c5b16ba180 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/eyes.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/full.png b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/full.png new file mode 100644 index 00000000000..54c8b5482a5 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/full.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/head_f.png b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/head_f.png new file mode 100644 index 00000000000..3dfb18c772f Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/head_f.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/head_m.png b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/head_m.png new file mode 100644 index 00000000000..3dfb18c772f Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/head_m.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/l_arm.png b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/l_arm.png new file mode 100644 index 00000000000..8eda928dffd Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/l_arm.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/l_foot.png b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/l_foot.png new file mode 100644 index 00000000000..0dd3bb508fb Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/l_foot.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/l_hand.png b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/l_hand.png new file mode 100644 index 00000000000..6fa402acab3 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/l_hand.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/l_leg.png b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/l_leg.png new file mode 100644 index 00000000000..70835735c46 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/l_leg.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/meta.json b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/meta.json new file mode 100644 index 00000000000..b9ecd59aa05 --- /dev/null +++ b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/meta.json @@ -0,0 +1,70 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Legs from https://github.com/tgstation/tgstation/blob/08898964e67a0d517ca4e47eec7039394b694ac2/icons/mob/species/lizard/bodyparts.dmi edited by PuroSlavKing (Github) and further modified by By juniwoofs, snout modifications by Aikakakah, everything else by juniwoofs", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "full" + }, + { + "name": "head_f", + "directions": 4 + }, + { + "name": "head_m", + "directions": 4 + }, + { + "name": "snout", + "directions": 4 + }, + { + "name": "l_arm", + "directions": 4 + }, + { + "name": "l_foot", + "directions": 4 + }, + { + "name": "l_hand", + "directions": 4 + }, + { + "name": "l_leg", + "directions": 4 + }, + { + "name": "r_arm", + "directions": 4 + }, + { + "name": "r_foot", + "directions": 4 + }, + { + "name": "r_hand", + "directions": 4 + }, + { + "name": "r_leg", + "directions": 4 + }, + { + "name": "torso_f", + "directions": 4 + }, + { + "name": "torso_m", + "directions": 4 + }, + { + "name": "eyes", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/r_arm.png b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/r_arm.png new file mode 100644 index 00000000000..3c1d7886754 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/r_arm.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/r_foot.png b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/r_foot.png new file mode 100644 index 00000000000..bc31eb1f80c Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/r_foot.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/r_hand.png b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/r_hand.png new file mode 100644 index 00000000000..3ff6f120086 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/r_hand.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/r_leg.png b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/r_leg.png new file mode 100644 index 00000000000..7ff0e6d7bee Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/r_leg.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/snout.png b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/snout.png new file mode 100644 index 00000000000..409bc187688 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/snout.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/torso_f.png b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/torso_f.png new file mode 100644 index 00000000000..3771277acb1 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/torso_f.png differ diff --git a/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/torso_m.png b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/torso_m.png new file mode 100644 index 00000000000..e6bc88d1844 Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Ovinia/parts.rsi/torso_m.png differ