diff --git a/Content.Client/Buckle/BuckleSystem.cs b/Content.Client/Buckle/BuckleSystem.cs index a71e4c10a84..bc33081c992 100644 --- a/Content.Client/Buckle/BuckleSystem.cs +++ b/Content.Client/Buckle/BuckleSystem.cs @@ -65,7 +65,7 @@ private void OnAppearanceChange(EntityUid uid, BuckleComponent component, ref Ap !buckled || args.Sprite == null) { - // _CorvaxNext: Laying System + // CorvaxNext: Laying System //_rotationVisualizerSystem.SetHorizontalAngle((uid, rotVisuals), rotVisuals.DefaultRotation); return; } diff --git a/Content.Client/Hands/Systems/HandsSystem.cs b/Content.Client/Hands/Systems/HandsSystem.cs index 18e4540e153..7b55f66e699 100644 --- a/Content.Client/Hands/Systems/HandsSystem.cs +++ b/Content.Client/Hands/Systems/HandsSystem.cs @@ -4,6 +4,7 @@ using Content.Client.Examine; using Content.Client.Strip; using Content.Client.Verbs.UI; +using Content.Shared._CorvaxNext.Surgery.Body.Events; using Content.Shared.Body.Part; using Content.Shared.Hands; using Content.Shared.Hands.Components; @@ -51,8 +52,8 @@ public override void Initialize() SubscribeLocalEvent(OnHandsShutdown); SubscribeLocalEvent(HandleComponentState); SubscribeLocalEvent(OnVisualsChanged); - SubscribeLocalEvent(HandleBodyPartRemoved); // _CorvaxNext: surgery - SubscribeLocalEvent(HandleBodyPartDisabled); // _CorvaxNext: surgery + SubscribeLocalEvent(HandleBodyPartRemoved); // CorvaxNext: surgery + SubscribeLocalEvent(HandleBodyPartDisabled); // CorvaxNext: surgery OnHandSetActive += OnHandActivated; } diff --git a/Content.Client/Humanoid/HumanoidAppearanceSystem.cs b/Content.Client/Humanoid/HumanoidAppearanceSystem.cs index 7bdc9483235..4fa0ce0f858 100644 --- a/Content.Client/Humanoid/HumanoidAppearanceSystem.cs +++ b/Content.Client/Humanoid/HumanoidAppearanceSystem.cs @@ -55,7 +55,7 @@ private void UpdateLayers(HumanoidAppearanceComponent component, SpriteComponent foreach (var (key, info) in component.CustomBaseLayers) { oldLayers.Remove(key); - // Shitmed modification: For whatever reason these weren't actually ignoring the skin color as advertised. + // CorvaxNext modification: For whatever reason these weren't actually ignoring the skin color as advertised. SetLayerData(component, sprite, key, info.Id, sexMorph: false, color: info.Color, overrideSkin: true); } diff --git a/Content.Client/Input/ContentContexts.cs b/Content.Client/Input/ContentContexts.cs index 685b79c8cbc..0d862774702 100644 --- a/Content.Client/Input/ContentContexts.cs +++ b/Content.Client/Input/ContentContexts.cs @@ -84,12 +84,12 @@ public static void SetupContexts(IInputContextContainer contexts) human.AddFunction(ContentKeyFunctions.Arcade1); human.AddFunction(ContentKeyFunctions.Arcade2); human.AddFunction(ContentKeyFunctions.Arcade3); - human.AddFunction(ContentKeyFunctions.TargetHead); // _CorvaxNext: surgery - human.AddFunction(ContentKeyFunctions.TargetTorso); // _CorvaxNext: surgery - human.AddFunction(ContentKeyFunctions.TargetLeftArm); // _CorvaxNext: surgery - human.AddFunction(ContentKeyFunctions.TargetRightArm); // _CorvaxNext: surgery - human.AddFunction(ContentKeyFunctions.TargetLeftLeg); // _CorvaxNext: surgery - human.AddFunction(ContentKeyFunctions.TargetRightLeg); // _CorvaxNext: surgery + human.AddFunction(ContentKeyFunctions.TargetHead); // CorvaxNext: surgery + human.AddFunction(ContentKeyFunctions.TargetTorso); // CorvaxNext: surgery + human.AddFunction(ContentKeyFunctions.TargetLeftArm); // CorvaxNext: surgery + human.AddFunction(ContentKeyFunctions.TargetRightArm); // CorvaxNext: surgery + human.AddFunction(ContentKeyFunctions.TargetLeftLeg); // CorvaxNext: surgery + human.AddFunction(ContentKeyFunctions.TargetRightLeg); // CorvaxNext: surgery human.AddFunction(ContentKeyFunctions.OfferItem); // Corvax-Next-Offer human.AddFunction(ContentKeyFunctions.ToggleStanding); // CorvaxNext: laying system toggle standing diff --git a/Content.Client/Inventory/ClientInventorySystem.cs b/Content.Client/Inventory/ClientInventorySystem.cs index b49bdb48f6f..497af47ef97 100644 --- a/Content.Client/Inventory/ClientInventorySystem.cs +++ b/Content.Client/Inventory/ClientInventorySystem.cs @@ -40,7 +40,7 @@ public override void Initialize() SubscribeLocalEvent(OnPlayerAttached); SubscribeLocalEvent(OnPlayerDetached); - SubscribeLocalEvent(OnRefreshInventorySlots); // _CorvaxNext: surgery + SubscribeLocalEvent(OnRefreshInventorySlots); // CorvaxNext: surgery SubscribeLocalEvent(OnShutdown); SubscribeLocalEvent((_, comp, args) => diff --git a/Content.Client/Options/UI/Tabs/KeyRebindTab.xaml.cs b/Content.Client/Options/UI/Tabs/KeyRebindTab.xaml.cs index 744a8937080..8d8ccd5ed5c 100644 --- a/Content.Client/Options/UI/Tabs/KeyRebindTab.xaml.cs +++ b/Content.Client/Options/UI/Tabs/KeyRebindTab.xaml.cs @@ -169,7 +169,7 @@ void HandleToggleAutoGetUp(BaseButton.ButtonToggledEventArgs args) // WD EDIT AddButton(EngineKeyFunctions.MoveRight); AddButton(EngineKeyFunctions.Walk); AddCheckBox("ui-options-hotkey-toggle-walk", _cfg.GetCVar(CCVars.ToggleWalk), HandleToggleWalk); - AddCheckBox("ui-options-hotkey-auto-up", _cfg.GetCVar(Shared._CorvaxNext.NextVars.NextVars.AutoGetUp), HandleToggleAutoGetUp); // _CorvaxNext: Laying System + AddCheckBox("ui-options-hotkey-auto-up", _cfg.GetCVar(Shared._CorvaxNext.NextVars.NextVars.AutoGetUp), HandleToggleAutoGetUp); // CorvaxNext: Laying System InitToggleWalk(); AddHeader("ui-options-header-camera"); @@ -194,7 +194,7 @@ void HandleToggleAutoGetUp(BaseButton.ButtonToggledEventArgs args) // WD EDIT AddButton(ContentKeyFunctions.RotateStoredItem); AddButton(ContentKeyFunctions.SaveItemLocation); AddButton(ContentKeyFunctions.OfferItem); // Corvax-Next-Offer - AddButton(ContentKeyFunctions.ToggleStanding); // _CorvaxNext: Laying System + AddButton(ContentKeyFunctions.ToggleStanding); // CorvaxNext: Laying System AddHeader("ui-options-header-interaction-adv"); AddButton(ContentKeyFunctions.SmartEquipBackpack); AddButton(ContentKeyFunctions.SmartEquipBelt); @@ -245,9 +245,13 @@ void HandleToggleAutoGetUp(BaseButton.ButtonToggledEventArgs args) // WD EDIT AddButton(ContentKeyFunctions.TargetHead); AddButton(ContentKeyFunctions.TargetTorso); AddButton(ContentKeyFunctions.TargetLeftArm); + AddButton(ContentKeyFunctions.TargetLeftHand); AddButton(ContentKeyFunctions.TargetRightArm); + AddButton(ContentKeyFunctions.TargetRightHand); AddButton(ContentKeyFunctions.TargetLeftLeg); + AddButton(ContentKeyFunctions.TargetLeftFoot); AddButton(ContentKeyFunctions.TargetRightLeg); + AddButton(ContentKeyFunctions.TargetRightFoot); // end-_CorvaxNext: surgery AddHeader("ui-options-header-misc"); diff --git a/Content.Client/Smoking/MatchstickSystem.cs b/Content.Client/Smoking/MatchstickSystem.cs new file mode 100644 index 00000000000..3568642861e --- /dev/null +++ b/Content.Client/Smoking/MatchstickSystem.cs @@ -0,0 +1,9 @@ +// CorvaxNext Change Start + +using Content.Shared.Smoking.Systems; + +namespace Content.Client.Smoking; + +public sealed class MatchstickSystem : SharedMatchstickSystem; + +// CorvaxNext Change End diff --git a/Content.Client/_CorvaxNext/Targeting/TargetingSystem.cs b/Content.Client/_CorvaxNext/Targeting/TargetingSystem.cs index 96b0ce3df7c..d339f3e65e2 100644 --- a/Content.Client/_CorvaxNext/Targeting/TargetingSystem.cs +++ b/Content.Client/_CorvaxNext/Targeting/TargetingSystem.cs @@ -31,20 +31,20 @@ public override void Initialize() InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.Torso))) .Bind(ContentKeyFunctions.TargetLeftArm, InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.LeftArm))) -/* .Bind(ContentKeyFunctions.TargetLeftHand, - InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.LeftHand))) SOON :TM: */ + .Bind(ContentKeyFunctions.TargetLeftHand, + InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.LeftHand))) .Bind(ContentKeyFunctions.TargetRightArm, InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.RightArm))) -/* .Bind(ContentKeyFunctions.TargetRightHand, - InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.RightHand)))*/ + .Bind(ContentKeyFunctions.TargetRightHand, + InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.RightHand))) .Bind(ContentKeyFunctions.TargetLeftLeg, InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.LeftLeg))) -/* .Bind(ContentKeyFunctions.TargetLeftFoot, - InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.LeftFoot)))*/ + .Bind(ContentKeyFunctions.TargetLeftFoot, + InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.LeftFoot))) .Bind(ContentKeyFunctions.TargetRightLeg, InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.RightLeg))) -/* .Bind(ContentKeyFunctions.TargetRightFoot, - InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.RightFoot)))*/ + .Bind(ContentKeyFunctions.TargetRightFoot, + InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.RightFoot))) .Register(); } diff --git a/Content.Server/Atmos/EntitySystems/BarotraumaSystem.cs b/Content.Server/Atmos/EntitySystems/BarotraumaSystem.cs index 6dc18523fbb..97899cafa6f 100644 --- a/Content.Server/Atmos/EntitySystems/BarotraumaSystem.cs +++ b/Content.Server/Atmos/EntitySystems/BarotraumaSystem.cs @@ -237,7 +237,7 @@ public override void Update(float frameTime) if (pressure <= Atmospherics.HazardLowPressure) { // Deal damage and ignore resistances. Resistance to pressure damage should be done via pressure protection gear. - _damageableSystem.TryChangeDamage(uid, barotrauma.Damage * Atmospherics.LowPressureDamage, true, false, canSever: false); // _CorvaxNext + _damageableSystem.TryChangeDamage(uid, barotrauma.Damage * Atmospherics.LowPressureDamage, true, false, canSever: false); // CorvaxNext if (!barotrauma.TakingDamage) { barotrauma.TakingDamage = true; @@ -251,7 +251,7 @@ public override void Update(float frameTime) var damageScale = MathF.Min(((pressure / Atmospherics.HazardHighPressure) - 1) * Atmospherics.PressureDamageCoefficient, Atmospherics.MaxHighPressureDamage); // Deal damage and ignore resistances. Resistance to pressure damage should be done via pressure protection gear. - _damageableSystem.TryChangeDamage(uid, barotrauma.Damage * damageScale, true, false, canSever: false); // _CorvaxNext + _damageableSystem.TryChangeDamage(uid, barotrauma.Damage * damageScale, true, false, canSever: false); // CorvaxNext if (!barotrauma.TakingDamage) { diff --git a/Content.Server/Body/Components/BrainComponent.cs b/Content.Server/Body/Components/BrainComponent.cs index 004ff24eaff..003146bd228 100644 --- a/Content.Server/Body/Components/BrainComponent.cs +++ b/Content.Server/Body/Components/BrainComponent.cs @@ -5,5 +5,10 @@ namespace Content.Server.Body.Components [RegisterComponent, Access(typeof(BrainSystem))] public sealed partial class BrainComponent : Component { + /// + /// CorvaxNext Change: Is this brain currently controlling the entity? + /// + [DataField] + public bool Active = true; } } diff --git a/Content.Server/Body/Systems/BodySystem.cs b/Content.Server/Body/Systems/BodySystem.cs index c87a0eb0399..8be015e3466 100644 --- a/Content.Server/Body/Systems/BodySystem.cs +++ b/Content.Server/Body/Systems/BodySystem.cs @@ -33,7 +33,7 @@ public override void Initialize() SubscribeLocalEvent(OnRelayMoveInput); SubscribeLocalEvent(OnApplyMetabolicMultiplier); - SubscribeLocalEvent(OnGibTorsoAttempt); // _CorvaxNext: surgery + SubscribeLocalEvent(OnGibTorsoAttempt); // CorvaxNext: surgery } // start-_CorvaxNext: surgery @@ -178,6 +178,16 @@ public override HashSet GibPart( return gibs; } + public override bool BurnPart(EntityUid partId, BodyPartComponent? part = null) + { + if (!Resolve(partId, ref part, logMissing: false) + || TerminatingOrDeleted(partId) + || EntityManager.IsQueuedForDeletion(partId)) + return false; + + return base.BurnPart(partId, part); + } + protected override void ApplyPartMarkings(EntityUid target, BodyPartAppearanceComponent component) { return; diff --git a/Content.Server/Body/Systems/BrainSystem.cs b/Content.Server/Body/Systems/BrainSystem.cs index 91d8e1e76e7..7283664a0b1 100644 --- a/Content.Server/Body/Systems/BrainSystem.cs +++ b/Content.Server/Body/Systems/BrainSystem.cs @@ -4,7 +4,6 @@ using Content.Shared.Body.Components; using Content.Shared.Body.Systems; using Content.Shared.Body.Events; -using Content.Shared.Body.Organ; using Content.Server._CorvaxNext.DelayedDeath; using Content.Shared._CorvaxNext.Surgery.Body.Organs; using Content.Shared.Mind; @@ -28,30 +27,38 @@ public override void Initialize() } // start-_CorvaxNext: surgery - private void HandleRemoval(EntityUid uid, BrainComponent _, ref OrganRemovedFromBodyEvent args) + private void HandleRemoval(EntityUid uid, BrainComponent brain, ref OrganRemovedFromBodyEvent args) { if (TerminatingOrDeleted(uid) || TerminatingOrDeleted(args.OldBody)) return; - // Prevents revival, should kill the user within a given timespan too. - EnsureComp(args.OldBody); - EnsureComp(args.OldBody); - HandleMind(uid, args.OldBody); + brain.Active = false; + if (!CheckOtherBrains(args.OldBody)) + { + // Prevents revival, should kill the user within a given timespan too. + EnsureComp(args.OldBody); + EnsureComp(args.OldBody); + HandleMind(uid, args.OldBody); + } } - private void HandleAddition(EntityUid uid, BrainComponent _, ref OrganAddedToBodyEvent args) + private void HandleAddition(EntityUid uid, BrainComponent brain, ref OrganAddedToBodyEvent args) { if (TerminatingOrDeleted(uid) || TerminatingOrDeleted(args.Body)) return; - RemComp(args.Body); - if (_bodySystem.TryGetBodyOrganEntityComps(args.Body, out var _)) - RemComp(args.Body); - HandleMind(args.Body, uid); + if (!CheckOtherBrains(args.Body)) + { + RemComp(args.Body); + if (_bodySystem.TryGetBodyOrganEntityComps(args.Body, out var _)) + RemComp(args.Body); + HandleMind(args.Body, uid); + } } // end-_CorvaxNext: surgery - private void HandleMind(EntityUid newEntity, EntityUid oldEntity) + // CorvaxNext: surgery + private void HandleMind(EntityUid newEntity, EntityUid oldEntity, BrainComponent? brain = null) { if (TerminatingOrDeleted(newEntity) || TerminatingOrDeleted(oldEntity)) return; @@ -67,8 +74,35 @@ private void HandleMind(EntityUid newEntity, EntityUid oldEntity) return; _mindSystem.TransferTo(mindId, newEntity, mind: mind); + if (brain != null) // CorvaxNext: surgery + brain.Active = true; // CorvaxNext: surgery } + // start-_CorvaxNext: surgery + private bool CheckOtherBrains(EntityUid entity) + { + var hasOtherBrains = false; + if (TryComp(entity, out var body)) + { + if (TryComp(entity, out var bodyBrain)) + hasOtherBrains = true; + else + { + foreach (var (organ, _) in _bodySystem.GetBodyOrgans(entity, body)) + { + if (TryComp(organ, out var brain) && brain.Active) + { + hasOtherBrains = true; + break; + } + } + } + } + + return hasOtherBrains; + } + + // end-_CorvaxNext: surgery private void OnPointAttempt(Entity ent, ref PointAttemptEvent args) { args.Cancel(); diff --git a/Content.Server/Body/Systems/RespiratorSystem.cs b/Content.Server/Body/Systems/RespiratorSystem.cs index 891f6d9f620..480d18030ef 100644 --- a/Content.Server/Body/Systems/RespiratorSystem.cs +++ b/Content.Server/Body/Systems/RespiratorSystem.cs @@ -78,7 +78,7 @@ public override void Update(float frameTime) UpdateSaturation(uid, -(float)respirator.UpdateInterval.TotalSeconds, respirator); - if (!_mobState.IsIncapacitated(uid) && !HasComp(uid)) // Shitmed: cannot breathe in crit or when no brain. + if (!_mobState.IsIncapacitated(uid) && !HasComp(uid)) // CorvaxNext Change - Cannot breathe in crit or when no brain. { switch (respirator.Status) { @@ -296,7 +296,7 @@ private void TakeSuffocationDamage(Entity ent) } } - _damageableSys.TryChangeDamage(ent, HasComp(ent) ? ent.Comp.Damage * 4.5f : ent.Comp.Damage, interruptsDoAfters: false); // _CorvaxNext: surgery + _damageableSys.TryChangeDamage(ent, HasComp(ent) ? ent.Comp.Damage * 4.5f : ent.Comp.Damage, interruptsDoAfters: false); // CorvaxNext: surgery } private void StopSuffocation(Entity ent) diff --git a/Content.Server/Cloning/CloningConsoleSystem.cs b/Content.Server/Cloning/CloningConsoleSystem.cs index 050e2b7f064..c0fa9833602 100644 --- a/Content.Server/Cloning/CloningConsoleSystem.cs +++ b/Content.Server/Cloning/CloningConsoleSystem.cs @@ -213,7 +213,7 @@ private CloningConsoleBoundUserInterfaceState GetUserInterfaceState(CloningConso { scanBodyInfo = MetaData(scanBody.Value).EntityName; - if (!_mobStateSystem.IsDead(scanBody.Value)) + if (false) // CorvaxNext: surgery Lets you clone living people { clonerStatus = ClonerStatus.ScannerOccupantAlive; } diff --git a/Content.Server/Cloning/CloningSystem.cs b/Content.Server/Cloning/CloningSystem.cs index 65f92740016..49676426dff 100644 --- a/Content.Server/Cloning/CloningSystem.cs +++ b/Content.Server/Cloning/CloningSystem.cs @@ -144,7 +144,8 @@ public bool TryCloning(EntityUid uid, EntityUid bodyToClone, Entity(bodyToClone, out var physics)) return false; - var cloningCost = (int) Math.Round(physics.FixturesMass); + var cloningCost = (int)Math.Round(physics.FixturesMass); if (_configManager.GetCVar(CCVars.BiomassEasyMode)) - cloningCost = (int) Math.Round(cloningCost * EasyModeCloningCost); + cloningCost = (int)Math.Round(cloningCost * EasyModeCloningCost); // biomass checks var biomassAmount = _material.GetMaterialAmount(uid, clonePod.RequiredMaterial); @@ -194,7 +196,7 @@ public bool TryCloning(EntityUid uid, EntityUid bodyToClone, Entity(bodyToClone, out var damageable) && damageable.Damage.DamageDict.TryGetValue("Cellular", out var cellularDmg)) { - var chance = Math.Clamp((float) (cellularDmg / 100), 0, 1); + var chance = Math.Clamp((float)(cellularDmg / 100), 0, 1); chance *= failChanceModifier; if (cellularDmg > 0 && clonePod.ConnectedConsole != null) @@ -223,7 +225,7 @@ public bool TryCloning(EntityUid uid, EntityUid bodyToClone, Entity(bodyId, out var bodyPart)) + { + if (bodyPart.CanSever + && system.BodySystem.BurnPart(bodyId, bodyPart)) + sharedPopupSystem.PopupCoordinates(Loc.GetString("bodyburn-text-others", ("name", bodyId)), transformSystem.GetMoverCoordinates(bodyId), PopupType.LargeCaution); + } + else + { + sharedPopupSystem.PopupCoordinates(Loc.GetString("bodyburn-text-others", ("name", bodyId)), transformSystem.GetMoverCoordinates(bodyId), PopupType.LargeCaution); + system.EntityManager.QueueDeleteEntity(bodyId); + } + // end-_CorvaxNext: surgery } } diff --git a/Content.Server/Destructible/Thresholds/Behaviors/GibBehavior.cs b/Content.Server/Destructible/Thresholds/Behaviors/GibBehavior.cs index 3e391b7e784..c1a70c56173 100644 --- a/Content.Server/Destructible/Thresholds/Behaviors/GibBehavior.cs +++ b/Content.Server/Destructible/Thresholds/Behaviors/GibBehavior.cs @@ -8,8 +8,8 @@ namespace Content.Server.Destructible.Thresholds.Behaviors [DataDefinition] public sealed partial class GibBehavior : IThresholdBehavior { - [DataField] public GibType GibType = GibType.Gib; // _CorvaxNext: surgery - [DataField] public GibContentsOption GibContents = GibContentsOption.Drop; // _CorvaxNext: surgery + [DataField] public GibType GibType = GibType.Gib; // CorvaxNext: surgery + [DataField] public GibContentsOption GibContents = GibContentsOption.Drop; // CorvaxNext: surgery [DataField("recursive")] private bool _recursive = true; public void Execute(EntityUid owner, DestructibleSystem system, EntityUid? cause = null) diff --git a/Content.Server/Goobstation/Speech/Components/OhioAccentComponent.cs b/Content.Server/Goobstation/Speech/Components/OhioAccentComponent.cs new file mode 100644 index 00000000000..c76c3c516b8 --- /dev/null +++ b/Content.Server/Goobstation/Speech/Components/OhioAccentComponent.cs @@ -0,0 +1,8 @@ +using Content.Server.Speech.EntitySystems; + +namespace Content.Server.Speech.Components; + +[RegisterComponent] +[Access(typeof(OhioAccentSystem))] +public sealed partial class OhioAccentComponent : Component +{ } diff --git a/Content.Server/Goobstation/Speech/EntitySystems/OhioAccentSystem.cs b/Content.Server/Goobstation/Speech/EntitySystems/OhioAccentSystem.cs new file mode 100644 index 00000000000..3ad0e2c9a6b --- /dev/null +++ b/Content.Server/Goobstation/Speech/EntitySystems/OhioAccentSystem.cs @@ -0,0 +1,46 @@ +using System.Text.RegularExpressions; +using Content.Server.Speech.Components; +using Robust.Shared.Random; + +namespace Content.Server.Speech.EntitySystems; + +public sealed class OhioAccentSystem : EntitySystem +{ + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly ReplacementAccentSystem _replacement = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnAccent); + } + + private void OnAccent(EntityUid uid, OhioAccentComponent component, AccentGetEvent args) + { + var message = args.Message; + + message = _replacement.ApplyReplacements(message, "ohio"); + + // Prefix + if (_random.Prob(0.15f)) + { + var pick = _random.Next(1, 7); + + // Reverse sanitize capital + message = message[0].ToString().ToLower() + message.Remove(0, 1); + message = Loc.GetString($"accent-ohio-prefix-{pick}") + " " + message; + } + + // Sanitize capital again, in case we substituted a word that should be capitalized + message = message[0].ToString().ToUpper() + message.Remove(0, 1); + + // Suffixes + if (_random.Prob(0.3f)) + { + var pick = _random.Next(1, 13); + message += Loc.GetString($"accent-ohio-suffix-{pick}"); + } + + args.Message = message; + } +}; diff --git a/Content.Server/Hands/Systems/HandsSystem.cs b/Content.Server/Hands/Systems/HandsSystem.cs index 163104202dc..35345f0a250 100644 --- a/Content.Server/Hands/Systems/HandsSystem.cs +++ b/Content.Server/Hands/Systems/HandsSystem.cs @@ -5,6 +5,7 @@ using Content.Shared.Body.Systems; using Content.Shared.Body.Events; using Content.Shared.ActionBlocker; +using Content.Shared._CorvaxNext.Surgery.Body.Events; using Content.Shared.Body.Part; using Content.Shared.CombatMode; using Content.Shared.Damage.Systems; @@ -54,8 +55,8 @@ public override void Initialize() SubscribeLocalEvent(GetComponentState); SubscribeLocalEvent(OnExploded); - SubscribeLocalEvent(HandleBodyPartEnabled); // _CorvaxNext: surgery - SubscribeLocalEvent(HandleBodyPartDisabled); // _CorvaxNext: surgery + SubscribeLocalEvent(HandleBodyPartEnabled); // CorvaxNext: surgery + SubscribeLocalEvent(HandleBodyPartDisabled); // CorvaxNext: surgery CommandBinds.Builder .Bind(ContentKeyFunctions.ThrowItemInHand, new PointerInputCmdHandler(HandleThrowItem)) @@ -105,7 +106,7 @@ private void OnDisarmed(EntityUid uid, HandsComponent component, DisarmedEvent a args.Handled = true; // no shove/stun. } - // _CorvaxNext: surgery + // CorvaxNext: surgery private void TryAddHand(EntityUid uid, HandsComponent component, Entity part, string slot) { if (part.Comp is null diff --git a/Content.Server/Light/Components/MatchstickComponent.cs b/Content.Server/Light/Components/MatchstickComponent.cs deleted file mode 100644 index 3c47f4c18b3..00000000000 --- a/Content.Server/Light/Components/MatchstickComponent.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Content.Server.Light.EntitySystems; -using Content.Shared.Smoking; -using Robust.Shared.Audio; - -namespace Content.Server.Light.Components -{ - [RegisterComponent] - [Access(typeof(MatchstickSystem))] - public sealed partial class MatchstickComponent : Component - { - /// - /// Current state to matchstick. Can be Unlit, Lit or Burnt. - /// - [DataField("state")] - public SmokableState CurrentState = SmokableState.Unlit; - - /// - /// How long will matchstick last in seconds. - /// - [ViewVariables(VVAccess.ReadOnly)] - [DataField("duration")] - public int Duration = 10; - - /// - /// Sound played when you ignite the matchstick. - /// - [DataField("igniteSound", required: true)] public SoundSpecifier IgniteSound = default!; - } -} diff --git a/Content.Server/Light/EntitySystems/MatchboxSystem.cs b/Content.Server/Light/EntitySystems/MatchboxSystem.cs index 9a73e44f878..c90f2047796 100644 --- a/Content.Server/Light/EntitySystems/MatchboxSystem.cs +++ b/Content.Server/Light/EntitySystems/MatchboxSystem.cs @@ -2,6 +2,7 @@ using Content.Server.Storage.EntitySystems; using Content.Shared.Interaction; using Content.Shared.Smoking; +using Content.Shared.Smoking.Components; // CorvaxNext Change namespace Content.Server.Light.EntitySystems { diff --git a/Content.Server/Light/EntitySystems/MatchstickSystem.cs b/Content.Server/Light/EntitySystems/MatchstickSystem.cs index 96e4695784d..af29d6fc019 100644 --- a/Content.Server/Light/EntitySystems/MatchstickSystem.cs +++ b/Content.Server/Light/EntitySystems/MatchstickSystem.cs @@ -4,6 +4,9 @@ using Content.Shared.Interaction; using Content.Shared.Item; using Content.Shared.Smoking; +using Content.Shared.Smoking.Components; // CorvaxNext Change +using Content.Shared.Smoking.Systems; +using Content.Shared.Smoking.Systems; // CorvaxNext Change using Content.Shared.Temperature; using Robust.Server.GameObjects; using Robust.Shared.Audio; @@ -12,7 +15,7 @@ namespace Content.Server.Light.EntitySystems { - public sealed class MatchstickSystem : EntitySystem + public sealed class MatchstickSystem : SharedMatchstickSystem // CorvaxNext Change { [Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!; @@ -84,22 +87,24 @@ public void Ignite(Entity matchstick, EntityUid user) _audio.PlayPvs(component.IgniteSound, matchstick, AudioParams.Default.WithVariation(0.125f).WithVolume(-0.125f)); // Change state - SetState(matchstick, component, SmokableState.Lit); + SetState((matchstick, component), SmokableState.Lit); // CorvaxNext Change _litMatches.Add(matchstick); matchstick.Owner.SpawnTimer(component.Duration * 1000, delegate { - SetState(matchstick, component, SmokableState.Burnt); + SetState((matchstick, component), SmokableState.Burnt); // CorvaxNext Change _litMatches.Remove(matchstick); }); } - private void SetState(EntityUid uid, MatchstickComponent component, SmokableState value) + // CorvaxNext Change Start + public override bool SetState(Entity ent, SmokableState value) { - component.CurrentState = value; + var uid = ent.Owner; + var component = ent.Comp; + component.CurrentState = value; if (_lights.TryGetLight(uid, out var pointLightComponent)) { - _lights.SetEnabled(uid, component.CurrentState == SmokableState.Lit, pointLightComponent); } if (EntityManager.TryGetComponent(uid, out ItemComponent? item)) @@ -119,6 +124,8 @@ private void SetState(EntityUid uid, MatchstickComponent component, SmokableStat { _appearance.SetData(uid, SmokingVisuals.Smoking, component.CurrentState, appearance); } + + return true; // CorvaxNext Change } } } diff --git a/Content.Server/Medical/HealthAnalyzerSystem.cs b/Content.Server/Medical/HealthAnalyzerSystem.cs index 83a776dd019..6e39dfbae97 100644 --- a/Content.Server/Medical/HealthAnalyzerSystem.cs +++ b/Content.Server/Medical/HealthAnalyzerSystem.cs @@ -6,10 +6,10 @@ using Content.Server.Traits.Assorted; using Content.Shared._CorvaxNext.Targeting; using Content.Shared.Chemistry.EntitySystems; -// _CorvaxNext: surgery Start +// CorvaxNext: surgery Start using Content.Shared.Body.Part; using Content.Shared.Body.Systems; -// _CorvaxNext: surgery End +// CorvaxNext: surgery End using Content.Shared.Damage; using Content.Shared.DoAfter; using Content.Shared.IdentityManagement; @@ -75,7 +75,7 @@ public override void Update(float frameTime) continue; } - // _CorvaxNext: surgery Change Start + // CorvaxNext: surgery Change Start if (component.CurrentBodyPart != null && (Deleted(component.CurrentBodyPart) || TryComp(component.CurrentBodyPart, out BodyPartComponent? bodyPartComponent) @@ -84,7 +84,7 @@ public override void Update(float frameTime) BeginAnalyzingEntity((uid, component), patient, null); continue; } - // _CorvaxNext: surgery Change End + // CorvaxNext: surgery Change End component.NextUpdate = _timing.CurTime + component.UpdateInterval; @@ -274,8 +274,8 @@ public void UpdateScannedUser(EntityUid healthAnalyzer, EntityUid target, bool s scanMode, bleeding, unrevivable, - body, // _CorvaxNext: surgery - part != null ? GetNetEntity(part) : null // _CorvaxNext: surgery + body, // CorvaxNext: surgery + part != null ? GetNetEntity(part) : null // CorvaxNext: surgery )); } } diff --git a/Content.Server/NPC/Systems/NPCCombatSystem.Ranged.cs b/Content.Server/NPC/Systems/NPCCombatSystem.Ranged.cs index ef46415ceac..e10250fd7e2 100644 --- a/Content.Server/NPC/Systems/NPCCombatSystem.Ranged.cs +++ b/Content.Server/NPC/Systems/NPCCombatSystem.Ranged.cs @@ -201,7 +201,7 @@ private void UpdateRanged(float frameTime) { return; } - _gun.SetTarget(gun, comp.Target); // _CorvaxNext: Laying System + _gun.SetTarget(gun, comp.Target); // CorvaxNext: Laying System _gun.AttemptShoot(uid, gunUid, gun, targetCordinates); } } diff --git a/Content.Server/_CorvaxNext/Body/Components/RespiratorImmunityComponent.cs b/Content.Server/_CorvaxNext/Body/Components/RespiratorImmunityComponent.cs new file mode 100644 index 00000000000..cd52a2b3fa5 --- /dev/null +++ b/Content.Server/_CorvaxNext/Body/Components/RespiratorImmunityComponent.cs @@ -0,0 +1,7 @@ +namespace Content.Server._CorvaxNext.Body.Components; + +[RegisterComponent] +public sealed partial class RespiratorImmunityComponent : Component +{ + +} diff --git a/Content.Server/_CorvaxNext/Body/Components/StatusEffectOrganComponent.cs b/Content.Server/_CorvaxNext/Body/Components/StatusEffectOrganComponent.cs new file mode 100644 index 00000000000..a064f9e1e1c --- /dev/null +++ b/Content.Server/_CorvaxNext/Body/Components/StatusEffectOrganComponent.cs @@ -0,0 +1,27 @@ +using Content.Shared.StatusEffect; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; +using Content.Server._CorvaxNext.Body.Systems; + +namespace Content.Server._CorvaxNext.Body.Components; + +[RegisterComponent, Access(typeof(StatusEffectOrganSystem))] +[AutoGenerateComponentPause] +public sealed partial class StatusEffectOrganComponent : Component +{ + /// + /// List of status effects and components to refresh while the organ is installed. + /// + [DataField(required: true)] + public Dictionary, string> Refresh = new(); + + /// + /// How long to wait between each refresh. + /// Effects can only last at most this long once the organ is removed. + /// + [DataField] + public TimeSpan Delay = TimeSpan.FromSeconds(5); + + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField] + public TimeSpan NextUpdate = TimeSpan.Zero; +} diff --git a/Content.Server/_CorvaxNext/Body/Systems/StatusEffectOrganSystem.cs b/Content.Server/_CorvaxNext/Body/Systems/StatusEffectOrganSystem.cs new file mode 100644 index 00000000000..53e8f51f14a --- /dev/null +++ b/Content.Server/_CorvaxNext/Body/Systems/StatusEffectOrganSystem.cs @@ -0,0 +1,34 @@ +using Content.Shared.Body.Organ; +using Content.Shared.StatusEffect; +using Robust.Shared.Timing; +using Content.Server._CorvaxNext.Body.Components; + +namespace Content.Server._CorvaxNext.Body.Systems; + +public sealed class StatusEffectOrganSystem : EntitySystem +{ + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly StatusEffectsSystem _effects = default!; + + public override void Update(float frameTime) + { + base.Update(frameTime); + + var query = EntityQueryEnumerator(); + var now = _timing.CurTime; + while (query.MoveNext(out var uid, out var comp, out var organ)) + { + if (now < comp.NextUpdate || organ.Body is not {} body) + continue; + + comp.NextUpdate = now + comp.Delay; + if (!TryComp(body, out var effects)) + continue; + + foreach (var (key, component) in comp.Refresh) + { + _effects.TryAddStatusEffect(body, key, comp.Delay, refresh: true, component, effects); + } + } + } +} diff --git a/Content.Server/_CorvaxNext/Cybernetics/CyberneticsSystem.cs b/Content.Server/_CorvaxNext/Cybernetics/CyberneticsSystem.cs new file mode 100644 index 00000000000..b46770b0fe7 --- /dev/null +++ b/Content.Server/_CorvaxNext/Cybernetics/CyberneticsSystem.cs @@ -0,0 +1,55 @@ +using Content.Server.Emp; +using Content.Shared._CorvaxNext.Surgery.Body; +using Content.Shared._CorvaxNext.Surgery.Body.Events; +using Content.Shared._CorvaxNext.Surgery.Body.Organs; +using Content.Shared.Body.Part; +using Content.Shared.Body.Organ; + +namespace Content.Server._CorvaxNext.Cybernetics; + +internal sealed class CyberneticsSystem : EntitySystem +{ + public override void Initialize() + { + SubscribeLocalEvent(OnEmpPulse); + SubscribeLocalEvent(OnEmpDisabledRemoved); + } + private void OnEmpPulse(Entity cyberEnt, ref EmpPulseEvent ev) + { + if (!cyberEnt.Comp.Disabled) + { + ev.Affected = true; + ev.Disabled = true; + cyberEnt.Comp.Disabled = true; + + if (HasComp(cyberEnt)) + { + var disableEvent = new OrganEnableChangedEvent(false); + RaiseLocalEvent(cyberEnt, ref disableEvent); + } + else if (HasComp(cyberEnt)) + { + var disableEvent = new BodyPartEnableChangedEvent(false); + RaiseLocalEvent(cyberEnt, ref disableEvent); + } + } + } + + private void OnEmpDisabledRemoved(Entity cyberEnt, ref EmpDisabledRemoved ev) + { + if (cyberEnt.Comp.Disabled) + { + cyberEnt.Comp.Disabled = false; + if (HasComp(cyberEnt)) + { + var enableEvent = new OrganEnableChangedEvent(true); + RaiseLocalEvent(cyberEnt, ref enableEvent); + } + else if (HasComp(cyberEnt)) + { + var enableEvent = new BodyPartEnableChangedEvent(true); + RaiseLocalEvent(cyberEnt, ref enableEvent); + } + } + } +} diff --git a/Content.Server/_CorvaxNext/DelayedDeath/DelayedDeathComponent.cs b/Content.Server/_CorvaxNext/DelayedDeath/DelayedDeathComponent.cs index 54a6d848cc1..20b432c130e 100644 --- a/Content.Server/_CorvaxNext/DelayedDeath/DelayedDeathComponent.cs +++ b/Content.Server/_CorvaxNext/DelayedDeath/DelayedDeathComponent.cs @@ -13,4 +13,4 @@ public sealed partial class DelayedDeathComponent : Component /// How long it has been since the delayed death timer started. /// public float DeathTimer; -} \ No newline at end of file +} diff --git a/Content.Server/_CorvaxNext/DelayedDeath/DelayedDeathSystem.cs b/Content.Server/_CorvaxNext/DelayedDeath/DelayedDeathSystem.cs index 7f53b7776b9..1bf9272e24e 100644 --- a/Content.Server/_CorvaxNext/DelayedDeath/DelayedDeathSystem.cs +++ b/Content.Server/_CorvaxNext/DelayedDeath/DelayedDeathSystem.cs @@ -1,9 +1,6 @@ -using Content.Shared.Body.Organ; -using Content.Shared.Body.Events; using Content.Shared.Damage; using Content.Shared.Damage.Prototypes; using Content.Shared.Mobs.Systems; -using Robust.Shared.Timing; using Robust.Shared.Prototypes; namespace Content.Server._CorvaxNext.DelayedDeath; @@ -29,4 +26,4 @@ public override void Update(float frameTime) } } } -} \ No newline at end of file +} diff --git a/Content.Server/_CorvaxNext/Surgery/SurgerySystem.cs b/Content.Server/_CorvaxNext/Surgery/SurgerySystem.cs index 6a7711893d0..9c760623efb 100644 --- a/Content.Server/_CorvaxNext/Surgery/SurgerySystem.cs +++ b/Content.Server/_CorvaxNext/Surgery/SurgerySystem.cs @@ -130,6 +130,15 @@ private void OnToolAfterInteract(Entity ent, ref AfterInte private void OnSurgeryStepDamage(Entity ent, ref SurgeryStepDamageEvent args) => SetDamage(args.Body, args.Damage, args.PartMultiplier, args.User, args.Part); + private void OnSurgeryDamageChange(Entity ent, ref SurgeryStepDamageChangeEvent args) + { + var damageChange = ent.Comp.Damage; + if (HasComp(args.Body)) + damageChange = damageChange * ent.Comp.SleepModifier; + + SetDamage(args.Body, damageChange, 0.5f, args.User, args.Part); + } + private void OnSurgerySpecialDamageChange(Entity ent, ref SurgeryStepDamageChangeEvent args) { if (ent.Comp.DamageType == "Rot") @@ -140,15 +149,6 @@ private void OnSurgerySpecialDamageChange(Entity ent, ref SurgeryStepDamageChangeEvent args) - { - var damageChange = ent.Comp.Damage; - if (HasComp(args.Body)) - damageChange = damageChange * ent.Comp.SleepModifier; - - SetDamage(args.Body, damageChange, 0.5f, args.User, args.Part); - } - private void OnStepScreamComplete(Entity ent, ref SurgeryStepEvent args) { if (HasComp(args.Body)) diff --git a/Content.Server/_CorvaxNext/Systems/DebrainedSystem.cs b/Content.Server/_CorvaxNext/Systems/DebrainedSystem.cs new file mode 100644 index 00000000000..dab37fb4427 --- /dev/null +++ b/Content.Server/_CorvaxNext/Systems/DebrainedSystem.cs @@ -0,0 +1,62 @@ +using Content.Server._CorvaxNext.DelayedDeath; +using Content.Shared.Body.Systems; +using Content.Server.Popups; +using Content.Shared._CorvaxNext.Surgery.Body; +using Content.Shared._CorvaxNext.Surgery.Body.Organs; +using Content.Shared.Speech; +using Content.Shared.Standing; +using Content.Shared.Stunnable; + +namespace Content.Server._CorvaxNext.Body.Systems; + +/// +/// This system handles behavior on entities when they lose their head or their brains are removed. +/// MindComponent fuckery should still be mainly handled on BrainSystem as usual. +/// +public sealed class DebrainedSystem : EntitySystem +{ + [Dependency] private readonly SharedBodySystem _bodySystem = default!; + [Dependency] private readonly PopupSystem _popupSystem = default!; + [Dependency] private readonly StandingStateSystem _standingSystem = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnComponentInit); + SubscribeLocalEvent(OnComponentRemove); + SubscribeLocalEvent(OnSpeakAttempt); + SubscribeLocalEvent(OnStandAttempt); + } + + private void OnComponentInit(EntityUid uid, DebrainedComponent _, ComponentInit args) + { + if (TerminatingOrDeleted(uid)) + return; + + EnsureComp(uid); + EnsureComp(uid); + _standingSystem.Down(uid); + } + + private void OnComponentRemove(EntityUid uid, DebrainedComponent _, ComponentRemove args) + { + if (TerminatingOrDeleted(uid)) + return; + + RemComp(uid); + RemComp(uid); + if (_bodySystem.TryGetBodyOrganEntityComps(uid, out var _)) + RemComp(uid); + } + + private void OnSpeakAttempt(EntityUid uid, DebrainedComponent _, SpeakAttemptEvent args) + { + _popupSystem.PopupEntity(Loc.GetString("speech-muted"), uid, uid); + args.Cancel(); + } + + private void OnStandAttempt(EntityUid uid, DebrainedComponent _, StandAttemptEvent args) + { + args.Cancel(); + } +} diff --git a/Content.Server/_CorvaxNext/Systems/EyesSystem.cs b/Content.Server/_CorvaxNext/Systems/EyesSystem.cs new file mode 100644 index 00000000000..e3779ba7ed8 --- /dev/null +++ b/Content.Server/_CorvaxNext/Systems/EyesSystem.cs @@ -0,0 +1,86 @@ +using Content.Server.Body.Systems; +using Content.Shared.Body.Components; +using Content.Shared._CorvaxNext.Surgery.Body.Organs; +using Content.Shared.Eye.Blinding.Components; +using Content.Shared.Eye.Blinding.Systems; + +namespace Content.Server._CorvaxNext.Body.Systems +{ + public sealed class EyesSystem : EntitySystem + { + [Dependency] private readonly IEntityManager _entityManager = default!; + [Dependency] private readonly BlindableSystem _blindableSystem = default!; + [Dependency] private readonly BodySystem _bodySystem = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnOrganEnabled); + SubscribeLocalEvent(OnOrganDisabled); + } + + private void HandleSight(EntityUid newEntity, EntityUid oldEntity) + { + if (TerminatingOrDeleted(newEntity) || TerminatingOrDeleted(oldEntity)) + return; + + BlindableComponent? newSight; + BlindableComponent? oldSight; + //transfer existing component to organ + if (!TryComp(newEntity, out newSight)) + newSight = EnsureComp(newEntity); + + if (!TryComp(oldEntity, out oldSight)) + oldSight = EnsureComp(oldEntity); + + //give new sight all values of old sight + _blindableSystem.TransferBlindness(newSight, oldSight, newEntity); + + var hasOtherEyes = false; + //check for other eye components on owning body and owning body organs (if old entity has a body) + if (TryComp(oldEntity, out var body)) + { + if (TryComp(oldEntity, out var bodyEyes)) //some bodies see through their skin!!! (slimes) + hasOtherEyes = true; + else + { + foreach (var (organ, _) in _bodySystem.GetBodyOrgans(oldEntity, body)) + { + if (TryComp(organ, out var eyes)) + { + hasOtherEyes = true; + break; + } + } + //TODO (MS14): Should we do this for body parts too? might be a little overpowered but could be funny/interesting + } + } + + //if there are no existing eye components for the old entity - set old sight to be blind otherwise leave it as is + if (!hasOtherEyes && !TryComp(oldEntity, out var self)) + _blindableSystem.AdjustEyeDamage((oldEntity, oldSight), oldSight.MaxDamage); + + } + + private void OnOrganEnabled(EntityUid uid, EyesComponent component, OrganEnabledEvent args) + { + if (TerminatingOrDeleted(uid) + || args.Organ.Comp.Body is not { Valid: true } body) + return; + + RemComp(body); + HandleSight(uid, body); + } + + private void OnOrganDisabled(EntityUid uid, EyesComponent component, OrganDisabledEvent args) + { + if (TerminatingOrDeleted(uid) + || args.Organ.Comp.Body is not { Valid: true } body) + return; + + EnsureComp(body); + HandleSight(body, uid); + } + } +} diff --git a/Content.Server/_CorvaxNext/Systems/HeartSystem.cs b/Content.Server/_CorvaxNext/Systems/HeartSystem.cs index 905575343b3..9b8413c9af5 100644 --- a/Content.Server/_CorvaxNext/Systems/HeartSystem.cs +++ b/Content.Server/_CorvaxNext/Systems/HeartSystem.cs @@ -36,5 +36,5 @@ private void HandleAddition(EntityUid uid, HeartComponent _, ref OrganAddedToBod if (_bodySystem.TryGetBodyOrganEntityComps(args.Body, out var _)) RemComp(args.Body); } - // Shitmed-End + // CorvaxNext-End } diff --git a/Content.Shared/Body/Organ/OrganComponent.cs b/Content.Shared/Body/Organ/OrganComponent.cs index 43bbc99a9d4..c6e97a7e922 100644 --- a/Content.Shared/Body/Organ/OrganComponent.cs +++ b/Content.Shared/Body/Organ/OrganComponent.cs @@ -1,6 +1,7 @@ using Content.Shared._CorvaxNext.Surgery.Tools; using Content.Shared.Body.Systems; using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; namespace Content.Shared.Body.Organ; @@ -26,17 +27,43 @@ public sealed partial class OrganComponent : Component, ISurgeryToolComponent /// Shitcodey solution to not being able to know what name corresponds to each organ's slot ID /// without referencing the prototype or hardcoding. /// - - [DataField] + [DataField, AlwaysPushInheritance] public string SlotId = ""; - [DataField] + [DataField, AlwaysPushInheritance] public string ToolName { get; set; } = "An organ"; + [DataField, AlwaysPushInheritance] + public float Speed { get; set; } = 1f; + /// /// If true, the organ will not heal an entity when transplanted into them. /// [DataField, AutoNetworkedField] public bool? Used { get; set; } + + /// + /// When attached, the organ will ensure these components on the entity, and delete them on removal. + /// + [DataField] + public ComponentRegistry? OnAdd; + + /// + /// When removed, the organ will ensure these components on the entity, and add them on removal. + /// + [DataField] + public ComponentRegistry? OnRemove; + + /// + /// Is this organ working or not? + /// + [DataField, AutoNetworkedField] + public bool Enabled = true; + + /// + /// Can this organ be enabled or disabled? Used mostly for prop, damaged or useless organs. + /// + [DataField] + public bool CanEnable = true; // end-_CorvaxNext: surgery } diff --git a/Content.Shared/Body/Part/BodyPartComponent.cs b/Content.Shared/Body/Part/BodyPartComponent.cs index 46ce34103d2..addf5e22a0e 100644 --- a/Content.Shared/Body/Part/BodyPartComponent.cs +++ b/Content.Shared/Body/Part/BodyPartComponent.cs @@ -7,6 +7,7 @@ using Robust.Shared.Containers; using Robust.Shared.GameStates; using Robust.Shared.Serialization; +using Robust.Shared.Prototypes; namespace Content.Shared.Body.Part; @@ -29,101 +30,106 @@ public sealed partial class BodyPartComponent : Component, ISurgeryToolComponent public BodyPartSlot? ParentSlot; // end-_CorvaxNext: surgery - [DataField, AutoNetworkedField] - public BodyPartType PartType = BodyPartType.Other; - - // TODO BODY Replace with a simulation of organs - /// - /// Whether or not the owning will die if all - /// s of this type are removed from it. - /// - [DataField("vital"), AutoNetworkedField] - public bool IsVital; - // start-_CorvaxNext: surgery /// - /// Amount of damage to deal when the part gets removed. - /// Only works if IsVital is true. + /// CorvaxNext Change: Amount of damage to deal when the part gets removed. + /// Only works if IsVital is true. /// [DataField, AutoNetworkedField] public FixedPoint2 VitalDamage = 100; // end-_CorvaxNext: surgery - [DataField, AutoNetworkedField] - public BodyPartSymmetry Symmetry = BodyPartSymmetry.None; - // start-_CorvaxNext: surgery - [DataField] + [DataField, AlwaysPushInheritance] public string ToolName { get; set; } = "A body part"; [DataField, AutoNetworkedField] public bool? Used { get; set; } = null; - // end-_CorvaxNext: surgery + + [DataField, AlwaysPushInheritance] + public float Speed { get; set; } = 1f; /// - /// Child body parts attached to this body part. + /// CorvaxNext Change: What's the max health this body part can have? + /// + [DataField] + public float MinIntegrity; + + /// + /// Whether this body part can be severed or not /// [DataField, AutoNetworkedField] - public Dictionary Children = new(); + public bool CanSever = true; /// - /// Organs attached to this body part. + /// CorvaxNext Change: Whether this body part is enabled or not. /// [DataField, AutoNetworkedField] - public Dictionary Organs = new(); + public bool Enabled = true; - // start-_CorvaxNext: surgery /// - /// What's the max health this body part can have? + /// CorvaxNext Change: Whether this body part can be enabled or not. Used for non-functional prosthetics. /// [DataField] - public float MinIntegrity; + public bool CanEnable = true; /// - /// Whether this body part is enabled or not. + /// Whether this body part can attach children or not. /// - [DataField, AutoNetworkedField] - public bool Enabled = true; + [DataField] + public bool CanAttachChildren = true; /// - /// How long it takes to run another self heal tick on the body part. + /// CorvaxNext Change: How long it takes to run another self heal tick on the body part. /// [DataField] public float HealingTime = 30; /// - /// How long it has been since the last self heal tick on the body part. + /// CorvaxNext Change: How long it has been since the last self heal tick on the body part. /// public float HealingTimer; /// - /// How much health to heal on the body part per tick. + /// CorvaxNext Change: How much health to heal on the body part per tick. /// [DataField] public float SelfHealingAmount = 5; + /// + /// CorvaxNext Change: The name of the container for this body part. Used in insertion surgeries. + /// [DataField] public string ContainerName { get; set; } = "part_slot"; + /// + /// CorvaxNext Change: The slot for item insertion. + /// [DataField, AutoNetworkedField] public ItemSlot ItemInsertionSlot = new(); /// - /// Current species. Dictates things like body part sprites. + /// CorvaxNext Change: Current species. Dictates things like body part sprites. /// [DataField, AutoNetworkedField] public string Species { get; set; } = ""; /// - /// The total damage that has to be dealt to a body part - /// to make possible severing it. + /// CorvaxNext Change: The total damage that has to be dealt to a body part + /// to make possible severing it. /// [DataField, AutoNetworkedField] - public float SeverIntegrity = 80; // Corvax-Next-Surgery flavor damage + public float SeverIntegrity = 90; /// - /// On what TargetIntegrity we should re-enable the part. + /// CorvaxNext Change: The ID of the base layer for this body part. + /// + [DataField, AutoNetworkedField, AlwaysPushInheritance] + public string? BaseLayerId; + + /// + /// CorvaxNext Change: On what TargetIntegrity we should re-enable the part. /// [DataField, AutoNetworkedField] public TargetIntegrity EnableIntegrity = TargetIntegrity.ModeratelyWounded; @@ -131,14 +137,54 @@ public sealed partial class BodyPartComponent : Component, ISurgeryToolComponent [DataField, AutoNetworkedField] public Dictionary IntegrityThresholds = new() { - { TargetIntegrity.CriticallyWounded, 70 }, // Corvax-Next-Surgery flavor damage - { TargetIntegrity.HeavilyWounded, 60 }, // Corvax-Next-Surgery flavor damage - { TargetIntegrity.ModeratelyWounded, 45 }, // Corvax-Next-Surgery flavor damage - { TargetIntegrity.SomewhatWounded, 30}, // Corvax-Next-Surgery flavor damage - { TargetIntegrity.LightlyWounded, 15 }, // Corvax-Next-Surgery flavor damage + { TargetIntegrity.CriticallyWounded, 75 }, + { TargetIntegrity.HeavilyWounded, 60 }, + { TargetIntegrity.ModeratelyWounded, 50 }, + { TargetIntegrity.SomewhatWounded, 35 }, + { TargetIntegrity.LightlyWounded, 20 }, { TargetIntegrity.Healthy, 10 }, }; - // end-_CorvaxNext: surgery + + [DataField, AutoNetworkedField, AlwaysPushInheritance] + public BodyPartType PartType = BodyPartType.Other; + + + // TODO BODY Replace with a simulation of organs + /// + /// Whether or not the owning will die if all + /// s of this type are removed from it. + /// + [DataField("vital"), AutoNetworkedField] + public bool IsVital; + + [DataField, AutoNetworkedField] + public BodyPartSymmetry Symmetry = BodyPartSymmetry.None; + + /// + /// When attached, the part will ensure these components on the entity, and delete them on removal. + /// + [DataField, AlwaysPushInheritance] + public ComponentRegistry? OnAdd; + + /// + /// When removed, the part will ensure these components on the entity, and add them on removal. + /// + [DataField, AlwaysPushInheritance] + public ComponentRegistry? OnRemove; + + /// + /// Child body parts attached to this body part. + /// + [DataField, AutoNetworkedField] + public Dictionary Children = new(); + + /// + /// Organs attached to this body part. + /// + [DataField, AutoNetworkedField] + public Dictionary Organs = new(); + + // end-_CorvaxNext: surgery Change End /// /// These are only for VV/Debug do not use these for gameplay/systems diff --git a/Content.Shared/Body/Systems/SharedBodySystem.Body.cs b/Content.Shared/Body/Systems/SharedBodySystem.Body.cs index 87538fd763f..0005d3c88d6 100644 --- a/Content.Shared/Body/Systems/SharedBodySystem.Body.cs +++ b/Content.Shared/Body/Systems/SharedBodySystem.Body.cs @@ -52,8 +52,8 @@ private void InitializeBody() SubscribeLocalEvent(OnBodyInit); SubscribeLocalEvent(OnBodyMapInit); SubscribeLocalEvent(OnBodyCanDrag); - SubscribeLocalEvent(OnStandAttempt); // _CorvaxNext: surgery - SubscribeLocalEvent(OnProfileLoadFinished); // _CorvaxNext: surgery + SubscribeLocalEvent(OnStandAttempt); // CorvaxNext: surgery + SubscribeLocalEvent(OnProfileLoadFinished); // CorvaxNext: surgery } private void OnBodyInserted(Entity ent, ref EntInsertedIntoContainerMessage args) @@ -394,12 +394,12 @@ public virtual HashSet GibPart( if (part.Body is { } bodyEnt) { - if (IsPartRoot(bodyEnt, partId, part: part)) + if (IsPartRoot(bodyEnt, partId, part: part) || !part.CanSever) return gibs; - RemovePartChildren((partId, part), bodyEnt); + ChangeSlotState((partId, part), true); - // We have to iterate though every organ to drop it when part is being destroyed + RemovePartChildren((partId, part), bodyEnt); foreach (var organ in GetPartOrgans(partId, part)) { _gibbingSystem.TryGibEntityWithRef(bodyEnt, organ.Id, GibType.Drop, GibContentsOption.Skip, @@ -413,19 +413,39 @@ public virtual HashSet GibPart( playAudio: true, launchGibs: true, launchDirection: splatDirection, launchImpulse: GibletLaunchImpulse * splatModifier, launchImpulseVariance: GibletLaunchImpulseVariance, launchCone: splatCone); + if (HasComp(partId)) { - foreach (var item in _inventory.GetHandOrInventoryEntities((partId))) + foreach (var item in _inventory.GetHandOrInventoryEntities(partId)) { SharedTransform.AttachToGridOrMap(item); gibs.Add(item); } } - _audioSystem.PlayPredicted(gibSoundOverride, Transform(partId).Coordinates, null); return gibs; } + public virtual bool BurnPart(EntityUid partId, + BodyPartComponent? part = null) + { + if (!Resolve(partId, ref part, logMissing: false)) + return false; + + if (part.Body is { } bodyEnt) + { + if (IsPartRoot(bodyEnt, partId, part: part)) + return false; + + ChangeSlotState((partId, part), true); + RemovePartChildren((partId, part), bodyEnt); + QueueDel(partId); + return true; + } + + return false; + } + private void OnProfileLoadFinished(EntityUid uid, BodyComponent component, ProfileLoadFinishedEvent args) { if (!HasComp(uid) @@ -433,9 +453,7 @@ private void OnProfileLoadFinished(EntityUid uid, BodyComponent component, Profi return; foreach (var part in GetBodyChildren(uid, component)) - { EnsureComp(part.Id); - } } // end-_CorvaxNext: surgery } diff --git a/Content.Shared/Body/Systems/SharedBodySystem.Organs.cs b/Content.Shared/Body/Systems/SharedBodySystem.Organs.cs index 14137e7057c..61083811a69 100644 --- a/Content.Shared/Body/Systems/SharedBodySystem.Organs.cs +++ b/Content.Shared/Body/Systems/SharedBodySystem.Organs.cs @@ -1,4 +1,5 @@ using System.Diagnostics.CodeAnalysis; +using Content.Shared._CorvaxNext.Surgery.Body.Organs; using Content.Shared.Body.Components; using Content.Shared.Body.Events; using Content.Shared.Body.Organ; @@ -6,10 +7,28 @@ using Content.Shared.Damage; using Robust.Shared.Containers; +// CorvaxNext: surgery + namespace Content.Shared.Body.Systems; public partial class SharedBodySystem { + // start-_CorvaxNext: surgery Change Start + + private void InitializeOrgans() + { + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnOrganEnableChanged); + } + + private void OnMapInit(Entity ent, ref MapInitEvent args) + { + if (ent.Comp.OnAdd is not null || ent.Comp.OnRemove is not null) + EnsureComp(ent); + } + + // end-_CorvaxNext: surgery Change End + private void AddOrgan( Entity organEnt, EntityUid bodyUid, @@ -21,11 +40,20 @@ private void AddOrgan( if (organEnt.Comp.Body is not null) { - organEnt.Comp.OriginalBody = organEnt.Comp.Body; // _CorvaxNext: surgery + organEnt.Comp.OriginalBody = organEnt.Comp.Body; // CorvaxNext: surgery + organEnt.Comp.OriginalBody = organEnt.Comp.Body; // CorvaxNext: surgery Change var addedInBodyEv = new OrganAddedToBodyEvent(bodyUid, parentPartUid); RaiseLocalEvent(organEnt, ref addedInBodyEv); + var organEnabledEv = new OrganEnableChangedEvent(true); + RaiseLocalEvent(organEnt, ref organEnabledEv); // CorvaxNext: surgery } + // start-_CorvaxNext: surgery Change Start + if (TryComp(parentPartUid, out DamageableComponent? damageable) + && damageable.TotalDamage > 200) + TrySetOrganUsed(organEnt, true, organEnt.Comp); + // end-_CorvaxNext: surgery Change End + Dirty(organEnt, organEnt.Comp); } @@ -36,11 +64,16 @@ private void RemoveOrgan(Entity organEnt, EntityUid parentPartUi if (organEnt.Comp.Body is { Valid: true } bodyUid) { + // start-_CorvaxNext: surgery Change Start + organEnt.Comp.OriginalBody = organEnt.Comp.Body; + var organDisabledEv = new OrganEnableChangedEvent(false); + RaiseLocalEvent(organEnt, ref organDisabledEv); + // end-_CorvaxNext: surgery Change End var removedInBodyEv = new OrganRemovedFromBodyEvent(bodyUid, parentPartUid); RaiseLocalEvent(organEnt, ref removedInBodyEv); } - if (TryComp(parentPartUid, out DamageableComponent? damageable) // _CorvaxNext: surgery + if (TryComp(parentPartUid, out DamageableComponent? damageable) // CorvaxNext: surgery && damageable.TotalDamage > 200) TrySetOrganUsed(organEnt, true, organEnt.Comp); @@ -216,7 +249,8 @@ public bool TryGetBodyOrganEntityComps( return false; } - // start-_CorvaxNext: surgery + // start-_CorvaxNext: surgery Change Start + public bool TrySetOrganUsed(EntityUid organId, bool used, OrganComponent? organ = null) { if (!Resolve(organId, ref organ) @@ -227,5 +261,50 @@ public bool TrySetOrganUsed(EntityUid organId, bool used, OrganComponent? organ Dirty(organId, organ); return true; } - // end-_CorvaxNext: surgery + + private void OnOrganEnableChanged(Entity organEnt, ref OrganEnableChangedEvent args) + { + if (!organEnt.Comp.CanEnable && args.Enabled) + return; + + organEnt.Comp.Enabled = args.Enabled; + + if (args.Enabled) + EnableOrgan(organEnt); + else + DisableOrgan(organEnt); + + if (organEnt.Comp.Body is { Valid: true } bodyEnt) + RaiseLocalEvent(organEnt, new OrganComponentsModifyEvent(bodyEnt, args.Enabled)); + + Dirty(organEnt, organEnt.Comp); + } + + private void EnableOrgan(Entity organEnt) + { + if (!TryComp(organEnt.Comp.Body, out BodyComponent? body)) + return; + + // I hate having to hardcode these checks so much. + if (HasComp(organEnt)) + { + var ev = new OrganEnabledEvent(organEnt); + RaiseLocalEvent(organEnt, ref ev); + } + } + + private void DisableOrgan(Entity organEnt) + { + if (!TryComp(organEnt.Comp.Body, out BodyComponent? body)) + return; + + // I hate having to hardcode these checks so much. + if (HasComp(organEnt)) + { + var ev = new OrganDisabledEvent(organEnt); + RaiseLocalEvent(organEnt, ref ev); + } + } + + // end-_CorvaxNext: surgery Change End } diff --git a/Content.Shared/Body/Systems/SharedBodySystem.Parts.cs b/Content.Shared/Body/Systems/SharedBodySystem.Parts.cs index ca05e568767..c436e7166c9 100644 --- a/Content.Shared/Body/Systems/SharedBodySystem.Parts.cs +++ b/Content.Shared/Body/Systems/SharedBodySystem.Parts.cs @@ -4,7 +4,6 @@ using Content.Shared.Body.Part; using Content.Shared.Damage; using Content.Shared.Damage.Prototypes; -using Content.Shared.Hands.EntitySystems; using Content.Shared.Humanoid; using Content.Shared.Inventory; using Content.Shared.Movement.Components; @@ -14,13 +13,14 @@ using Robust.Shared.Utility; using System.Diagnostics.CodeAnalysis; using System.Linq; +using Content.Shared._CorvaxNext.Surgery.Body.Events; +using Content.Shared._CorvaxNext.Surgery.Body.Organs; +using AmputateAttemptEvent = Content.Shared.Body.Events.AmputateAttemptEvent; namespace Content.Shared.Body.Systems; public partial class SharedBodySystem { - [Dependency] private readonly SharedContainerSystem _containerSystem = default!; - [Dependency] private readonly SharedHandsSystem _handsSystem = default!; [Dependency] private readonly RandomHelperSystem _randomHelper = default!; [Dependency] private readonly InventorySystem _inventorySystem = default!; @@ -29,12 +29,12 @@ private void InitializeParts() // TODO: This doesn't handle comp removal on child ents. // If you modify this also see the Body partial for root parts. - SubscribeLocalEvent(OnMapInit); // _CorvaxNext: surgery - SubscribeLocalEvent(OnBodyPartRemove); // _CorvaxNext: surgery + SubscribeLocalEvent(OnMapInit); // CorvaxNext: surgery + SubscribeLocalEvent(OnBodyPartRemove); // CorvaxNext: surgery SubscribeLocalEvent(OnBodyPartInserted); SubscribeLocalEvent(OnBodyPartRemoved); - SubscribeLocalEvent(OnAmputateAttempt); // _CorvaxNext: surgery - SubscribeLocalEvent(OnPartEnableChanged); // _CorvaxNext: surgery + SubscribeLocalEvent(OnAmputateAttempt); // CorvaxNext: surgery + SubscribeLocalEvent(OnPartEnableChanged); // CorvaxNext: surgery } // start-_CorvaxNext: surgery @@ -45,6 +45,14 @@ private void OnMapInit(Entity ent, ref MapInitEvent args) _slots.AddItemSlot(ent, ent.Comp.ContainerName, ent.Comp.ItemInsertionSlot); Dirty(ent, ent.Comp); } + + if (ent.Comp.OnAdd is not null || ent.Comp.OnRemove is not null) + EnsureComp(ent); + + foreach (var connection in ent.Comp.Children.Keys) + { + Containers.EnsureContainer(ent, GetPartSlotContainerId(connection)); + } } private void OnBodyPartRemove(Entity ent, ref ComponentRemove args) @@ -52,7 +60,107 @@ private void OnBodyPartRemove(Entity ent, ref ComponentRemove if (ent.Comp.PartType == BodyPartType.Torso) _slots.RemoveItemSlot(ent, ent.Comp.ItemInsertionSlot); } - // end-_CorvaxNext: surgery + + private void OnPartEnableChanged(Entity partEnt, ref BodyPartEnableChangedEvent args) + { + if (!partEnt.Comp.CanEnable && args.Enabled) + return; + + partEnt.Comp.Enabled = args.Enabled; + + if (args.Enabled) + { + EnablePart(partEnt); + if (partEnt.Comp.Body is { Valid: true } bodyEnt) + RaiseLocalEvent(partEnt, new BodyPartComponentsModifyEvent(bodyEnt, true)); + } + else + { + DisablePart(partEnt); + if (partEnt.Comp.Body is { Valid: true } bodyEnt) + RaiseLocalEvent(partEnt, new BodyPartComponentsModifyEvent(bodyEnt, false)); + } + + Dirty(partEnt, partEnt.Comp); + } + + /// + /// This function handles disabling or enabling equipment slots when an entity is + /// missing all of a given part type, or they get one added to them. + /// It is called right before dropping a part, or right after adding one. + /// + public void ChangeSlotState(Entity partEnt, bool disable) + { + if (partEnt.Comp.Body is not null + && TryComp(partEnt.Comp.Body, out var inventory) // Prevent error for non-humanoids + && GetBodyPartCount(partEnt.Comp.Body.Value, partEnt.Comp.PartType) == 1 + && TryGetPartSlotContainerName(partEnt.Comp.PartType, out var containerNames)) + { + foreach (var containerName in containerNames) + { + _inventorySystem.SetSlotStatus(partEnt.Comp.Body.Value, containerName, disable, inventory); + var ev = new RefreshInventorySlotsEvent(containerName); + RaiseLocalEvent(partEnt.Comp.Body.Value, ev); + } + } + + } + + // TODO: Refactor this crap. I hate it so much. + private void RemovePartEffect(Entity partEnt, Entity bodyEnt) + { + if (TerminatingOrDeleted(bodyEnt) + || !Resolve(bodyEnt, ref bodyEnt.Comp, logMissing: false)) + return; + + RemovePartChildren(partEnt, bodyEnt, bodyEnt.Comp); + } + + protected void RemovePartChildren(Entity partEnt, EntityUid bodyEnt, BodyComponent? body = null) + { + if (!Resolve(bodyEnt, ref body, logMissing: false)) + return; + + if (partEnt.Comp.Children.Any()) + { + foreach (var slotId in partEnt.Comp.Children.Keys) + { + if (Containers.TryGetContainer(partEnt, GetPartSlotContainerId(slotId), out var container) && + container is ContainerSlot slot && + slot.ContainedEntity is { } childEntity && + TryComp(childEntity, out BodyPartComponent? childPart)) + { + var ev = new BodyPartEnableChangedEvent(false); + RaiseLocalEvent(childEntity, ref ev); + DropPart((childEntity, childPart)); + } + } + + Dirty(bodyEnt, body); + } + } + + protected virtual void DropPart(Entity partEnt) + { + ChangeSlotState(partEnt, true); + // I don't know if this can cause issues, since any part that's being detached HAS to have a Body. + // though I really just want the compiler to shut the fuck up. + var body = partEnt.Comp.Body.GetValueOrDefault(); + if (TryComp(partEnt, out TransformComponent? transform) && _gameTiming.IsFirstTimePredicted) + { + var enableEvent = new BodyPartEnableChangedEvent(false); + RaiseLocalEvent(partEnt, ref enableEvent); + var droppedEvent = new BodyPartDroppedEvent(partEnt); + RaiseLocalEvent(body, ref droppedEvent); + SharedTransform.AttachToGridOrMap(partEnt, transform); + _randomHelper.RandomOffset(partEnt, 0.5f); + } + } + + private void OnAmputateAttempt(Entity partEnt, ref AmputateAttemptEvent args) => + DropPart(partEnt); + + // end-_CorvaxNext: surgery Change End private void OnBodyPartInserted(Entity ent, ref EntInsertedIntoContainerMessage args) { // Body part inserted into another body part. @@ -82,7 +190,7 @@ private void OnBodyPartRemoved(Entity ent, ref EntRemovedFrom if (TryComp(removedUid, out BodyPartComponent? part) && part.Body is not null) { - CheckBodyPart((removedUid, part), GetTargetBodyPart(part), true); // _CorvaxNext: surgery + CheckBodyPart((removedUid, part), GetTargetBodyPart(part), true); // CorvaxNext: surgery RemovePart(part.Body.Value, (removedUid, part), slotId); RecursiveBodyUpdate((removedUid, part), null); } @@ -146,6 +254,9 @@ protected virtual void AddPart( Dirty(partEnt, partEnt.Comp); partEnt.Comp.Body = bodyEnt; + if (partEnt.Comp.Enabled && partEnt.Comp.Body is { Valid: true } body) // CorvaxNext: surgery Change + RaiseLocalEvent(partEnt, new BodyPartComponentsModifyEvent(body, true)); + var ev = new BodyPartAddedEvent(slotId, partEnt); RaiseLocalEvent(bodyEnt, ref ev); @@ -160,8 +271,13 @@ protected virtual void RemovePart( Resolve(bodyEnt, ref bodyEnt.Comp, logMissing: false); Dirty(partEnt, partEnt.Comp); - partEnt.Comp.ParentSlot = null; + // start-_CorvaxNext: surgery Change Start partEnt.Comp.OriginalBody = partEnt.Comp.Body; + if (partEnt.Comp.Body is { Valid: true } body) + RaiseLocalEvent(partEnt, new BodyPartComponentsModifyEvent(body, false)); + partEnt.Comp.ParentSlot = null; + // end-_CorvaxNext: surgery Change End + var ev = new BodyPartRemovedEvent(slotId, partEnt); RaiseLocalEvent(bodyEnt, ref ev); RemoveLeg(partEnt, bodyEnt); @@ -169,34 +285,6 @@ protected virtual void RemovePart( PartRemoveDamage(bodyEnt, partEnt); } - // start-_CorvaxNext: surgery - protected virtual void DropPart(Entity partEnt) - { - // I don't know if this can cause issues, since any part that's being detached HAS to have a Body. - // though I really just want the compiler to shut the fuck up. - var body = partEnt.Comp.Body.GetValueOrDefault(); - if (TryComp(partEnt, out TransformComponent? transform) && _gameTiming.IsFirstTimePredicted) - { - var enableEvent = new BodyPartEnableChangedEvent(false); - RaiseLocalEvent(partEnt, ref enableEvent); - - if (TryComp(body, out HumanoidAppearanceComponent? bodyAppearance) - && !HasComp(partEnt) - && !TerminatingOrDeleted(body) - && !TerminatingOrDeleted(partEnt)) - EnsureComp(partEnt); - - SharedTransform.AttachToGridOrMap(partEnt, transform); - _randomHelper.RandomOffset(partEnt, 0.5f); - var droppedEvent = new BodyPartDroppedEvent(partEnt); - RaiseLocalEvent(body, ref droppedEvent); - } - - } - - private void OnAmputateAttempt(Entity partEnt, ref AmputateAttemptEvent args) => - DropPart(partEnt); - // end-_CorvaxNext: surgery private void AddLeg(Entity legEnt, Entity bodyEnt) { if (!Resolve(bodyEnt, ref bodyEnt.Comp, logMissing: false)) @@ -220,44 +308,9 @@ private void RemoveLeg(Entity legEnt, Entity bodyEnt.Comp.LegEntities.Remove(legEnt); UpdateMovementSpeed(bodyEnt); Dirty(bodyEnt, bodyEnt.Comp); - Standing.Down(bodyEnt); // _CorvaxNext: surgery - } - } - - // start-_CorvaxNext: surgery - // TODO: Refactor this crap. - private void RemovePartEffect(Entity partEnt, Entity bodyEnt) - { - if (TerminatingOrDeleted(bodyEnt) || !Resolve(bodyEnt, ref bodyEnt.Comp, logMissing: false)) - return; - - RemovePartChildren(partEnt, bodyEnt, bodyEnt.Comp); - } - - protected void RemovePartChildren(Entity partEnt, EntityUid bodyEnt, BodyComponent? body = null) - { - if (!Resolve(bodyEnt, ref body, logMissing: false)) - return; - - if (partEnt.Comp.Children.Any()) - { - foreach (var slotId in partEnt.Comp.Children.Keys) - { - if (Containers.TryGetContainer(partEnt, GetPartSlotContainerId(slotId), out var container) && - container is ContainerSlot slot && - slot.ContainedEntity is { } childEntity && - TryComp(childEntity, out BodyPartComponent? childPart)) - { - var ev = new BodyPartEnableChangedEvent(false); - RaiseLocalEvent(childEntity, ref ev); - DropPart((childEntity, childPart)); - } - } - - Dirty(bodyEnt, body); + Standing.Down(bodyEnt); // CorvaxNext: surgery } } - // end-_CorvaxNext: surgery private void PartRemoveDamage(Entity bodyEnt, Entity partEnt) { @@ -276,17 +329,6 @@ private void PartRemoveDamage(Entity bodyEnt, Entity partEnt, ref BodyPartEnableChangedEvent args) - { - partEnt.Comp.Enabled = args.Enabled; - Dirty(partEnt, partEnt.Comp); - - if (args.Enabled) - EnablePart(partEnt); - else - DisablePart(partEnt); - } private void EnablePart(Entity partEnt) { if (!TryComp(partEnt.Comp.Body, out BodyComponent? body)) @@ -845,7 +887,7 @@ public bool BodyHasChild( { foreach (var part in GetBodyChildren(bodyId, body)) { - if (part.Component.PartType == type && (symmetry == null || part.Component.Symmetry == symmetry)) // _CorvaxNext: surgery + if (part.Component.PartType == type && (symmetry == null || part.Component.Symmetry == symmetry)) // CorvaxNext: surgery yield return part; } } @@ -949,7 +991,28 @@ public bool TryGetBodyPartOrgans( organs = null; return false; } - // end-_CorvaxNext: surgery + + private bool TryGetPartSlotContainerName(BodyPartType partType, out HashSet containerNames) + { + containerNames = partType switch + { + BodyPartType.Hand => new() { "gloves" }, + BodyPartType.Foot => new() { "shoes" }, + BodyPartType.Head => new() { "eyes", "ears", "head", "mask" }, + _ => new() + }; + return containerNames.Count > 0; + } + + public string GetSlotFromBodyPart(BodyPartComponent part) + { + if (part.Symmetry != BodyPartSymmetry.None) + return $"{part.Symmetry.ToString().ToLower()} {part.PartType.ToString().ToLower()}"; + else + return part.PartType.ToString().ToLower(); + } + + // end-_CorvaxNext: surgery Change End /// /// Gets the parent body part and all immediate child body parts for the partId. @@ -1020,17 +1083,6 @@ public bool TryGetBodyPartAdjacentPartsComponents( } // start-_CorvaxNext: surgery - private bool TryGetPartSlotContainerName(BodyPartType partType, out HashSet containerNames) - { - containerNames = partType switch - { - BodyPartType.Arm => new() { "gloves" }, - BodyPartType.Leg => new() { "shoes" }, - BodyPartType.Head => new() { "eyes", "ears", "head", "mask" }, - _ => new() - }; - return containerNames.Count > 0; - } public int GetBodyPartCount(EntityUid bodyId, BodyPartType partType, BodyComponent? body = null) { diff --git a/Content.Shared/Body/Systems/SharedBodySystem.cs b/Content.Shared/Body/Systems/SharedBodySystem.cs index 441aeb256cd..55271657d9e 100644 --- a/Content.Shared/Body/Systems/SharedBodySystem.cs +++ b/Content.Shared/Body/Systems/SharedBodySystem.cs @@ -1,3 +1,4 @@ +using Content.Shared.Body.Part; // CorvaxNext Change using Content.Shared.Damage; using Content.Shared.Movement.Systems; using Content.Shared.Standing; @@ -42,7 +43,8 @@ public override void Initialize() InitializeBody(); InitializeParts(); - InitializeBkm(); // _CorvaxNext: surgery + InitializeBkm(); // CorvaxNext: surgery + InitializeOrgans(); // CorvaxNext: surgery // To try and mitigate the server load due to integrity checks, we set up a Job Queue. InitializePartAppearances(); } diff --git a/Content.Shared/Damage/Systems/DamageableSystem.cs b/Content.Shared/Damage/Systems/DamageableSystem.cs index b65eabaa660..646558d06b9 100644 --- a/Content.Shared/Damage/Systems/DamageableSystem.cs +++ b/Content.Shared/Damage/Systems/DamageableSystem.cs @@ -23,9 +23,8 @@ public sealed class DamageableSystem : EntitySystem [Dependency] private readonly SharedAppearanceSystem _appearance = default!; [Dependency] private readonly INetManager _netMan = default!; [Dependency] private readonly MobThresholdSystem _mobThreshold = default!; - [Dependency] private readonly SharedBodySystem _body = default!; - [Dependency] private readonly IRobustRandom _random = default!; + private EntityQuery _appearanceQuery; private EntityQuery _damageableQuery; private EntityQuery _mindContainerQuery; @@ -144,12 +143,21 @@ public void DamageChanged(EntityUid uid, DamageableComponent component, DamageSp return damage; } - var before = new BeforeDamageChangedEvent(damage, origin, targetPart, canSever ?? true, canEvade ?? false, partMultiplier ?? 1.00f); + var before = new BeforeDamageChangedEvent(damage, origin, targetPart); // CorvaxNext: surgery Change RaiseLocalEvent(uid.Value, ref before); - if (before.Cancelled || before.Evaded) + if (before.Cancelled) + return null; + + // start-_CorvaxNext: surgery Change Start + var partDamage = new TryChangePartDamageEvent(damage, origin, targetPart, canSever ?? true, canEvade ?? false, partMultiplier ?? 1.00f); + RaiseLocalEvent(uid.Value, ref partDamage); + + if (partDamage.Evaded || partDamage.Cancelled) return null; + // end-_CorvaxNext: surgery Change End + // Apply resistances if (!ignoreResistances) { @@ -220,6 +228,19 @@ public void SetAllDamage(EntityUid uid, DamageableComponent component, FixedPoin // Setting damage does not count as 'dealing' damage, even if it is set to a larger value, so we pass an // empty damage delta. DamageChanged(uid, component, new DamageSpecifier()); + + // start-_CorvaxNext: surgery Change Start + if (HasComp(uid)) + { + foreach (var (part, _) in _body.GetBodyChildren(uid)) + { + if (!TryComp(part, out DamageableComponent? damageComp)) + continue; + + SetAllDamage(part, damageComp, newValue); + } + } + // end-_CorvaxNext: surgery Change End } public void SetDamageModifierSetId(EntityUid uid, string damageModifierSetId, DamageableComponent? comp = null) @@ -263,11 +284,6 @@ private void OnRejuvenate(EntityUid uid, DamageableComponent component, Rejuvena TryComp(uid, out var thresholds); _mobThreshold.SetAllowRevives(uid, true, thresholds); // do this so that the state changes when we set the damage SetAllDamage(uid, component, 0); - // start-_CorvaxNext: surgery Shitmed Start - if (HasComp(uid)) - foreach (var part in _body.GetBodyChildren(uid)) - RaiseLocalEvent(part.Id, new RejuvenateEvent()); - // start-_CorvaxNext: surgery Shitmed End _mobThreshold.SetAllowRevives(uid, false, thresholds); } @@ -299,6 +315,16 @@ private void DamageableHandleState(EntityUid uid, DamageableComponent component, /// [ByRefEvent] public record struct BeforeDamageChangedEvent( + DamageSpecifier Damage, + EntityUid? Origin = null, + TargetBodyPart? TargetPart = null, // CorvaxNext: surgery Change + bool Cancelled = false); + + /// + /// CorvaxNext: surgery _CorvaxNext Change: Raised on parts before damage is done so we can cancel the damage if they evade. + /// + [ByRefEvent] + public record struct TryChangePartDamageEvent( DamageSpecifier Damage, EntityUid? Origin = null, TargetBodyPart? TargetPart = null, diff --git a/Content.Shared/Damage/Systems/SharedGodmodeSystem.cs b/Content.Shared/Damage/Systems/SharedGodmodeSystem.cs index 20e29ef4341..88d4e9ddc63 100644 --- a/Content.Shared/Damage/Systems/SharedGodmodeSystem.cs +++ b/Content.Shared/Damage/Systems/SharedGodmodeSystem.cs @@ -2,6 +2,7 @@ using Content.Shared.Rejuvenate; using Content.Shared.Slippery; using Content.Shared.StatusEffect; +using Content.Shared.Body.Systems; // CorvaxNext Change namespace Content.Shared.Damage.Systems; @@ -9,6 +10,8 @@ public abstract class SharedGodmodeSystem : EntitySystem { [Dependency] private readonly DamageableSystem _damageable = default!; + [Dependency] private readonly SharedBodySystem _bodySystem = default!; // CorvaxNext Change + public override void Initialize() { base.Initialize(); @@ -50,6 +53,9 @@ public virtual void EnableGodmode(EntityUid uid, GodmodeComponent? godmode = nul // Rejuv to cover other stuff RaiseLocalEvent(uid, new RejuvenateEvent()); + + foreach (var (id, _) in _bodySystem.GetBodyChildren(uid)) // CorvaxNext Change + EnableGodmode(id); } public virtual void DisableGodmode(EntityUid uid, GodmodeComponent? godmode = null) @@ -63,6 +69,9 @@ public virtual void DisableGodmode(EntityUid uid, GodmodeComponent? godmode = nu } RemComp(uid); + + foreach (var (id, _) in _bodySystem.GetBodyChildren(uid)) // CorvaxNext Change + DisableGodmode(id); } /// diff --git a/Content.Shared/Eye/Blinding/Systems/BlindableSystem.cs b/Content.Shared/Eye/Blinding/Systems/BlindableSystem.cs index 24eed3adcf5..c594c5e1c40 100644 --- a/Content.Shared/Eye/Blinding/Systems/BlindableSystem.cs +++ b/Content.Shared/Eye/Blinding/Systems/BlindableSystem.cs @@ -87,6 +87,19 @@ public void SetMinDamage(Entity blindable, int amount) blindable.Comp.MinDamage = amount; UpdateEyeDamage(blindable, false); } + + // CorvaxNext Change Start + public void TransferBlindness(BlindableComponent newSight, BlindableComponent oldSight, EntityUid newEntity) + { + newSight.IsBlind = oldSight.IsBlind; + newSight.EyeDamage = oldSight.EyeDamage; + newSight.LightSetup = oldSight.LightSetup; + newSight.GraceFrame = oldSight.GraceFrame; + newSight.MinDamage = oldSight.MinDamage; + newSight.MaxDamage = oldSight.MaxDamage; + UpdateEyeDamage((newEntity, newSight), true); + } + // CorvaxNext Change End } /// diff --git a/Content.Shared/Humanoid/HumanoidVisualLayersExtension.cs b/Content.Shared/Humanoid/HumanoidVisualLayersExtension.cs index 5417bad82be..3a88b1814a2 100644 --- a/Content.Shared/Humanoid/HumanoidVisualLayersExtension.cs +++ b/Content.Shared/Humanoid/HumanoidVisualLayersExtension.cs @@ -47,28 +47,28 @@ public static IEnumerable Sublayers(HumanoidVisualLayers l yield return HumanoidVisualLayers.LArm; yield return HumanoidVisualLayers.LHand; break; - case HumanoidVisualLayers.LHand: // _CorvaxNext: surgery + case HumanoidVisualLayers.LHand: // CorvaxNext: surgery yield return HumanoidVisualLayers.LHand; break; case HumanoidVisualLayers.RArm: yield return HumanoidVisualLayers.RArm; yield return HumanoidVisualLayers.RHand; break; - case HumanoidVisualLayers.RHand: // _CorvaxNext: surgery + case HumanoidVisualLayers.RHand: // CorvaxNext: surgery yield return HumanoidVisualLayers.RHand; break; case HumanoidVisualLayers.LLeg: yield return HumanoidVisualLayers.LLeg; yield return HumanoidVisualLayers.LFoot; break; - case HumanoidVisualLayers.LFoot: // _CorvaxNext: surgery + case HumanoidVisualLayers.LFoot: // CorvaxNext: surgery yield return HumanoidVisualLayers.LFoot; break; case HumanoidVisualLayers.RLeg: yield return HumanoidVisualLayers.RLeg; yield return HumanoidVisualLayers.RFoot; break; - case HumanoidVisualLayers.RFoot: // _CorvaxNext: surgery + case HumanoidVisualLayers.RFoot: // CorvaxNext: surgery yield return HumanoidVisualLayers.RFoot; break; case HumanoidVisualLayers.Chest: diff --git a/Content.Shared/Input/ContentKeyFunctions.cs b/Content.Shared/Input/ContentKeyFunctions.cs index 2188324555f..fe11bba2558 100644 --- a/Content.Shared/Input/ContentKeyFunctions.cs +++ b/Content.Shared/Input/ContentKeyFunctions.cs @@ -57,16 +57,20 @@ public static class ContentKeyFunctions public static readonly BoundKeyFunction ToggleFullscreen = "ToggleFullscreen"; public static readonly BoundKeyFunction Point = "Point"; public static readonly BoundKeyFunction OfferItem = "OfferItem"; // Corvax-Next-Offer - public static readonly BoundKeyFunction ToggleStanding = "ToggleStanding"; // _CorvaxNext: Laying System standing + public static readonly BoundKeyFunction ToggleStanding = "ToggleStanding"; // CorvaxNext: Laying System standing public static readonly BoundKeyFunction ZoomOut = "ZoomOut"; public static readonly BoundKeyFunction ZoomIn = "ZoomIn"; public static readonly BoundKeyFunction ResetZoom = "ResetZoom"; - public static readonly BoundKeyFunction TargetHead = "TargetHead"; // _CorvaxNext: surgery - public static readonly BoundKeyFunction TargetTorso = "TargetTorso"; // _CorvaxNext: surgery - public static readonly BoundKeyFunction TargetLeftArm = "TargetLeftArm"; // _CorvaxNext: surgery - public static readonly BoundKeyFunction TargetRightArm = "TargetRightArm"; // _CorvaxNext: surgery - public static readonly BoundKeyFunction TargetLeftLeg = "TargetLeftLeg"; // _CorvaxNext: surgery - public static readonly BoundKeyFunction TargetRightLeg = "TargetRightLeg"; // _CorvaxNext: surgery + public static readonly BoundKeyFunction TargetHead = "TargetHead"; // CorvaxNext: surgery + public static readonly BoundKeyFunction TargetTorso = "TargetTorso"; // CorvaxNext: surgery + public static readonly BoundKeyFunction TargetLeftArm = "TargetLeftArm"; // CorvaxNext: surgery + public static readonly BoundKeyFunction TargetLeftHand = "TargetLeftHand"; // CorvaxNext: surgery + public static readonly BoundKeyFunction TargetRightArm = "TargetRightArm"; // CorvaxNext: surgery + public static readonly BoundKeyFunction TargetRightHand = "TargetRightHand"; // CorvaxNext: surgery + public static readonly BoundKeyFunction TargetLeftLeg = "TargetLeftLeg"; // CorvaxNext: surgery + public static readonly BoundKeyFunction TargetLeftFoot = "TargetLeftFoot"; // CorvaxNext: surgery + public static readonly BoundKeyFunction TargetRightLeg = "TargetRightLeg"; // CorvaxNext: surgery + public static readonly BoundKeyFunction TargetRightFoot = "TargetRightFoot"; // CorvaxNext: surgery public static readonly BoundKeyFunction ArcadeUp = "ArcadeUp"; public static readonly BoundKeyFunction ArcadeDown = "ArcadeDown"; diff --git a/Content.Shared/Inventory/InventorySystem.Slots.cs b/Content.Shared/Inventory/InventorySystem.Slots.cs index 3a5f2b71d98..498777336ca 100644 --- a/Content.Shared/Inventory/InventorySystem.Slots.cs +++ b/Content.Shared/Inventory/InventorySystem.Slots.cs @@ -13,8 +13,8 @@ public partial class InventorySystem : EntitySystem { [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly IViewVariablesManager _vvm = default!; - [Dependency] private readonly RandomHelperSystem _randomHelper = default!; // _CorvaxNext: surgery - [Dependency] private readonly ISerializationManager _serializationManager = default!; // _CorvaxNext: surgery + [Dependency] private readonly RandomHelperSystem _randomHelper = default!; // CorvaxNext: surgery + [Dependency] private readonly ISerializationManager _serializationManager = default!; // CorvaxNext: surgery private void InitializeSlots() { SubscribeLocalEvent(OnInit); @@ -62,7 +62,7 @@ protected virtual void OnInit(EntityUid uid, InventoryComponent component, Compo if (!_prototypeManager.TryIndex(component.TemplateId, out InventoryTemplatePrototype? invTemplate)) return; - _serializationManager.CopyTo(invTemplate.Slots, ref component.Slots, notNullableOverride: true); // _CorvaxNext: surgery + _serializationManager.CopyTo(invTemplate.Slots, ref component.Slots, notNullableOverride: true); // CorvaxNext: surgery component.Containers = new ContainerSlot[component.Slots.Length]; for (var i = 0; i < component.Containers.Length; i++) @@ -142,7 +142,7 @@ public bool TryGetSlot(EntityUid uid, string slot, [NotNullWhen(true)] out SlotD foreach (var slotDef in inventory.Slots) { - if (!slotDef.Name.Equals(slot) || slotDef.Disabled) // _CorvaxNext: surgery + if (!slotDef.Name.Equals(slot) || slotDef.Disabled) // CorvaxNext: surgery continue; slotDefinition = slotDef; return true; @@ -286,7 +286,7 @@ public bool MoveNext([NotNullWhen(true)] out ContainerSlot? container) var i = _nextIdx++; var slot = _slots[i]; - if ((slot.SlotFlags & _flags) == 0 || slot.Disabled) // _CorvaxNext: surgery + if ((slot.SlotFlags & _flags) == 0 || slot.Disabled) // CorvaxNext: surgery continue; container = _containers[i]; @@ -304,7 +304,7 @@ public bool NextItem(out EntityUid item) var i = _nextIdx++; var slot = _slots[i]; - if ((slot.SlotFlags & _flags) == 0 || slot.Disabled) // _CorvaxNext: surgery + if ((slot.SlotFlags & _flags) == 0 || slot.Disabled) // CorvaxNext: surgery continue; var container = _containers[i]; diff --git a/Content.Shared/MedicalScanner/HealthAnalyzerScannedUserMessage.cs b/Content.Shared/MedicalScanner/HealthAnalyzerScannedUserMessage.cs index 1bb203c434e..f7193cf44cf 100644 --- a/Content.Shared/MedicalScanner/HealthAnalyzerScannedUserMessage.cs +++ b/Content.Shared/MedicalScanner/HealthAnalyzerScannedUserMessage.cs @@ -16,8 +16,8 @@ public sealed class HealthAnalyzerScannedUserMessage : BoundUserInterfaceMessage public bool? ScanMode; public bool? Bleeding; public bool? Unrevivable; - public Dictionary? Body; // _CorvaxNext: surgery - public NetEntity? Part; // _CorvaxNext: surgery + public Dictionary? Body; // CorvaxNext: surgery + public NetEntity? Part; // CorvaxNext: surgery public HealthAnalyzerScannedUserMessage(NetEntity? targetEntity, float temperature, float bloodLevel, bool? scanMode, bool? bleeding, bool? unrevivable, Dictionary? body, NetEntity? part = null) { @@ -27,8 +27,8 @@ public HealthAnalyzerScannedUserMessage(NetEntity? targetEntity, float temperatu ScanMode = scanMode; Bleeding = bleeding; Unrevivable = unrevivable; - Body = body; // _CorvaxNext: surgery - Part = part; // _CorvaxNext: surgery + Body = body; // CorvaxNext: surgery + Part = part; // CorvaxNext: surgery } } diff --git a/Content.Shared/Overlays/ShowHealthBarsComponent.cs b/Content.Shared/Overlays/ShowHealthBarsComponent.cs index 3f27885db18..8d847b72d7a 100644 --- a/Content.Shared/Overlays/ShowHealthBarsComponent.cs +++ b/Content.Shared/Overlays/ShowHealthBarsComponent.cs @@ -8,15 +8,13 @@ namespace Content.Shared.Overlays; /// /// This component allows you to see health bars above damageable mobs. /// -[RegisterComponent, NetworkedComponent] -[AutoGenerateComponentState(true)] +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class ShowHealthBarsComponent : Component { /// /// Displays health bars of the damage containers. /// - [DataField] - [AutoNetworkedField] + [DataField, AutoNetworkedField] public List> DamageContainers = new() { "Biological" diff --git a/Content.Shared/Overlays/ShowHealthIconsComponent.cs b/Content.Shared/Overlays/ShowHealthIconsComponent.cs index bc8b5419d2a..08f86e6ccf9 100644 --- a/Content.Shared/Overlays/ShowHealthIconsComponent.cs +++ b/Content.Shared/Overlays/ShowHealthIconsComponent.cs @@ -7,15 +7,14 @@ namespace Content.Shared.Overlays; /// /// This component allows you to see health status icons above damageable mobs. /// -[RegisterComponent, NetworkedComponent] -[AutoGenerateComponentState(true)] +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] + public sealed partial class ShowHealthIconsComponent : Component { /// /// Displays health status icons of the damage containers. /// - [DataField] - [AutoNetworkedField] + [DataField, AutoNetworkedField] public List> DamageContainers = new() { "Biological" diff --git a/Content.Shared/Prying/Components/PryingComponent.cs b/Content.Shared/Prying/Components/PryingComponent.cs index 93713e52c67..0776ae9fd54 100644 --- a/Content.Shared/Prying/Components/PryingComponent.cs +++ b/Content.Shared/Prying/Components/PryingComponent.cs @@ -3,13 +3,13 @@ namespace Content.Shared.Prying.Components; -[RegisterComponent, NetworkedComponent] +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] // CorvaxNext Change public sealed partial class PryingComponent : Component { /// /// Whether the entity can pry open powered doors /// - [DataField] + [DataField, AutoNetworkedField] // CorvaxNext Change public bool PryPowered; /// @@ -22,7 +22,7 @@ public sealed partial class PryingComponent : Component /// Modifier on the prying time. /// Lower values result in more time. /// - [DataField] + [DataField, AutoNetworkedField] // CorvaxNext Change public float SpeedModifier = 1.0f; /// diff --git a/Content.Shared/Smoking/Components/MatchstickComponent.cs b/Content.Shared/Smoking/Components/MatchstickComponent.cs new file mode 100644 index 00000000000..51a93d13636 --- /dev/null +++ b/Content.Shared/Smoking/Components/MatchstickComponent.cs @@ -0,0 +1,32 @@ +// CorvaxNext Change Start + +using Content.Shared.Smoking.Systems; +using Robust.Shared.Audio; +using Robust.Shared.GameStates; + +namespace Content.Shared.Smoking.Components; + +[RegisterComponent, NetworkedComponent, Access(typeof(SharedMatchstickSystem))] +[AutoGenerateComponentState] +public sealed partial class MatchstickComponent : Component +{ + /// + /// Current state to matchstick. Can be Unlit, Lit or Burnt. + /// + [DataField("state"), AutoNetworkedField] + public SmokableState CurrentState = SmokableState.Unlit; + + /// + /// How long will matchstick last in seconds. + /// + [DataField] + public int Duration = 10; + + /// + /// Sound played when you ignite the matchstick. + /// + [DataField(required: true)] + public SoundSpecifier IgniteSound = default!; +} + +// CorvaxNext Change End diff --git a/Content.Shared/Smoking/Systems/SharedMatchstickSystem.cs b/Content.Shared/Smoking/Systems/SharedMatchstickSystem.cs new file mode 100644 index 00000000000..4573df8fbbd --- /dev/null +++ b/Content.Shared/Smoking/Systems/SharedMatchstickSystem.cs @@ -0,0 +1,18 @@ +// CorvaxNext Change Start +using Content.Shared.Smoking.Components; + +namespace Content.Shared.Smoking.Systems; + +public abstract class SharedMatchstickSystem : EntitySystem +{ + public virtual bool SetState(Entity ent, SmokableState state) + { + if (ent.Comp.CurrentState == state) + return false; + + ent.Comp.CurrentState = state; + Dirty(ent); + return true; + } +} +// CorvaxNext Change End diff --git a/Content.Shared/Standing/StandingStateComponent.cs b/Content.Shared/Standing/StandingStateComponent.cs index 8770b79269e..a2ed185a6a3 100644 --- a/Content.Shared/Standing/StandingStateComponent.cs +++ b/Content.Shared/Standing/StandingStateComponent.cs @@ -10,10 +10,10 @@ public sealed partial class StandingStateComponent : Component [DataField] public SoundSpecifier DownSound { get; private set; } = new SoundCollectionSpecifier("BodyFall"); - // _CorvaxNext EDIT START + // CorvaxNext EDIT START [DataField, AutoNetworkedField, ViewVariables(VVAccess.ReadWrite)] public StandingState CurrentState { get; set; } = StandingState.Standing; - // _CorvaxNext EDIT END + // CorvaxNext EDIT END public bool Standing { @@ -28,11 +28,11 @@ public bool Standing [DataField, AutoNetworkedField] public List ChangedFixtures = new(); } -// _CorvaxNext EDIT START +// CorvaxNext EDIT START public enum StandingState { Lying, GettingUp, Standing, } -// _CorvaxNext EDIT END +// CorvaxNext EDIT END diff --git a/Content.Shared/Standing/StandingStateSystem.cs b/Content.Shared/Standing/StandingStateSystem.cs index d50ee64f2e2..19191925ca1 100644 --- a/Content.Shared/Standing/StandingStateSystem.cs +++ b/Content.Shared/Standing/StandingStateSystem.cs @@ -15,7 +15,7 @@ public sealed class StandingStateSystem : EntitySystem [Dependency] private readonly SharedAppearanceSystem _appearance = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly SharedPhysicsSystem _physics = default!; - [Dependency] private readonly MovementSpeedModifierSystem _movement = default!; // _CorvaxNext EDIT + [Dependency] private readonly MovementSpeedModifierSystem _movement = default!; // CorvaxNext EDIT // If StandingCollisionLayer value is ever changed to more than one layer, the logic needs to be edited. private const int StandingCollisionLayer = (int)CollisionGroup.MidImpassable; @@ -97,7 +97,7 @@ public bool Down(EntityUid uid, _audio.PlayPredicted(standingState.DownSound, uid, null); } - _movement.RefreshMovementSpeedModifiers(uid); // _CorvaxNext EDIT + _movement.RefreshMovementSpeedModifiers(uid); // CorvaxNext EDIT return true; } @@ -143,7 +143,7 @@ public bool Stand(EntityUid uid, } } standingState.ChangedFixtures.Clear(); - _movement.RefreshMovementSpeedModifiers(uid); // _CorvaxNext EDIT + _movement.RefreshMovementSpeedModifiers(uid); // CorvaxNext EDIT return true; } diff --git a/Content.Shared/_CorvaxNext/NextVars.cs b/Content.Shared/_CorvaxNext/NextVars.cs index 1e38ee75e96..925932f8c72 100644 --- a/Content.Shared/_CorvaxNext/NextVars.cs +++ b/Content.Shared/_CorvaxNext/NextVars.cs @@ -16,7 +16,7 @@ public sealed class NextVars CVarDef.Create("hud.offer_mode_indicators_point_show", true, CVar.ARCHIVE | CVar.CLIENTONLY); /// - /// _CorvaxNext Surgery cvars + /// CorvaxNext Surgery cvars /// #region Surgery diff --git a/Content.Shared/_CorvaxNext/Surgery/Body/CyberneticsComponent.cs b/Content.Shared/_CorvaxNext/Surgery/Body/CyberneticsComponent.cs new file mode 100644 index 00000000000..f06646ec85e --- /dev/null +++ b/Content.Shared/_CorvaxNext/Surgery/Body/CyberneticsComponent.cs @@ -0,0 +1,16 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared._CorvaxNext.Surgery.Body; + +/// +/// Component for cybernetic implants that can be installed in entities +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class CyberneticsComponent : Component +{ + /// + /// Is the cybernetic implant disabled by EMPs, etc? + /// + [DataField, AutoNetworkedField] + public bool Disabled = false; +} diff --git a/Content.Shared/Body/Part/BodyPartEvents.cs b/Content.Shared/_CorvaxNext/Surgery/Body/Events/BodyPartEvents.cs similarity index 60% rename from Content.Shared/Body/Part/BodyPartEvents.cs rename to Content.Shared/_CorvaxNext/Surgery/Body/Events/BodyPartEvents.cs index d3aa89e592a..7ec2c061fa2 100644 --- a/Content.Shared/Body/Part/BodyPartEvents.cs +++ b/Content.Shared/_CorvaxNext/Surgery/Body/Events/BodyPartEvents.cs @@ -1,21 +1,21 @@ -using Content.Shared.Humanoid; +using Content.Shared.Body.Part; -namespace Content.Shared.Body.Part; +namespace Content.Shared._CorvaxNext.Surgery.Body.Events; +/// +/// Raised on an entity when attempting to remove a body part. +/// [ByRefEvent] -public readonly record struct BodyPartAddedEvent(string Slot, Entity Part); +public readonly record struct AmputateAttemptEvent(EntityUid Part); // start-_CorvaxNext: surgery -// Kind of a clone of the above for surgical reattachment specifically. +// Kind of a clone of BodyPartAddedEvent for surgical reattachment specifically. [ByRefEvent] public readonly record struct BodyPartAttachedEvent(Entity Part); // end-_CorvaxNext: surgery -[ByRefEvent] -public readonly record struct BodyPartRemovedEvent(string Slot, Entity Part); - // start-_CorvaxNext: surgery -// Kind of a clone of the above for any instances where we call DropPart(), reasoning being that RemovedEvent fires off +// Kind of a clone of BodyPartRemovedEvent for any instances where we call DropPart(), reasoning being that RemovedEvent fires off // a lot more often than what I'd like due to PVS. [ByRefEvent] public readonly record struct BodyPartDroppedEvent(Entity Part); @@ -28,4 +28,12 @@ namespace Content.Shared.Body.Part; [ByRefEvent] public readonly record struct BodyPartDisabledEvent(Entity Part); + +[ByRefEvent] +public readonly record struct BodyPartAddedEvent(string Slot, Entity Part); + +[ByRefEvent] +public readonly record struct BodyPartRemovedEvent(string Slot, Entity Part); + +public readonly record struct BodyPartComponentsModifyEvent(EntityUid Body, bool Add); // end-_CorvaxNext: surgery diff --git a/Content.Shared/_CorvaxNext/Surgery/Body/Organs/BodyPartEffectComponent.cs b/Content.Shared/_CorvaxNext/Surgery/Body/Organs/BodyPartEffectComponent.cs new file mode 100644 index 00000000000..c2ee98bbf30 --- /dev/null +++ b/Content.Shared/_CorvaxNext/Surgery/Body/Organs/BodyPartEffectComponent.cs @@ -0,0 +1,26 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Shared._CorvaxNext.Surgery.Body.Organs; + +[RegisterComponent, NetworkedComponent] +[AutoGenerateComponentPause] +public sealed partial class BodyPartEffectComponent : Component +{ + /// + /// The components that are active on the part and will be refreshed every 5s + /// + [DataField] + public ComponentRegistry Active = new(); + + /// + /// How long to wait between each refresh. + /// Effects can only last at most this long once the organ is removed. + /// + [DataField] + public TimeSpan Delay = TimeSpan.FromSeconds(5); + + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField] + public TimeSpan NextUpdate = TimeSpan.Zero; +} diff --git a/Content.Shared/_CorvaxNext/Surgery/Body/Organs/BodyPartEffectSystem.cs b/Content.Shared/_CorvaxNext/Surgery/Body/Organs/BodyPartEffectSystem.cs new file mode 100644 index 00000000000..286de4b2cac --- /dev/null +++ b/Content.Shared/_CorvaxNext/Surgery/Body/Organs/BodyPartEffectSystem.cs @@ -0,0 +1,96 @@ +using Content.Shared.Body.Part; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.Manager; +using Robust.Shared.Timing; +using System.Linq; +using Content.Shared._CorvaxNext.Surgery.Body.Events; + +namespace Content.Shared._CorvaxNext.Surgery.Body.Organs; + +public partial class BodyPartEffectSystem : EntitySystem +{ + [Dependency] private readonly ISerializationManager _serManager = default!; + [Dependency] private readonly IGameTiming _gameTiming = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnPartComponentsModify); + } + + // While I would love to kill this function, problem is that if we happen to have two parts that add the same + // effect, removing one will remove both of them, since we cant tell what the source of a Component is. + public override void Update(float frameTime) + { + base.Update(frameTime); + + var query = EntityQueryEnumerator(); + var now = _gameTiming.CurTime; + while (query.MoveNext(out var uid, out var comp, out var part)) + { + if (now < comp.NextUpdate || !comp.Active.Any() || part.Body is not { } body) + continue; + + comp.NextUpdate = now + comp.Delay; + AddComponents(body, uid, comp.Active); + } + } + + private void OnPartComponentsModify(Entity partEnt, + ref BodyPartComponentsModifyEvent ev) + { + if (partEnt.Comp.OnAdd != null) + { + if (ev.Add) + AddComponents(ev.Body, partEnt, partEnt.Comp.OnAdd); + else + RemoveComponents(ev.Body, partEnt, partEnt.Comp.OnAdd); + } + + if (partEnt.Comp.OnRemove != null) + { + if (ev.Add) + AddComponents(ev.Body, partEnt, partEnt.Comp.OnRemove); + else + RemoveComponents(ev.Body, partEnt, partEnt.Comp.OnRemove); + } + + Dirty(partEnt, partEnt.Comp); + } + + private void AddComponents(EntityUid body, + EntityUid part, + ComponentRegistry reg, + BodyPartEffectComponent? effectComp = null) + { + if (!Resolve(part, ref effectComp, logMissing: false)) + return; + + foreach (var (key, comp) in reg) + { + var compType = comp.Component.GetType(); + if (HasComp(body, compType)) + continue; + + var newComp = (Component) _serManager.CreateCopy(comp.Component, notNullableOverride: true); + EntityManager.AddComponent(body, newComp, true); + + effectComp.Active[key] = comp; + } + } + + private void RemoveComponents(EntityUid body, + EntityUid part, + ComponentRegistry reg, + BodyPartEffectComponent? effectComp = null) + { + if (!Resolve(part, ref effectComp, logMissing: false)) + return; + + foreach (var (key, comp) in reg) + { + RemComp(body, comp.Component.GetType()); + effectComp.Active.Remove(key); + } + } +} diff --git a/Content.Shared/_CorvaxNext/Surgery/Body/Organs/OrganEffectComponent.cs b/Content.Shared/_CorvaxNext/Surgery/Body/Organs/OrganEffectComponent.cs new file mode 100644 index 00000000000..5d5cb770e68 --- /dev/null +++ b/Content.Shared/_CorvaxNext/Surgery/Body/Organs/OrganEffectComponent.cs @@ -0,0 +1,27 @@ +// We keep this clone of the other component since I don't know yet if I'll need organ specific functions in the future. +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Shared._CorvaxNext.Surgery.Body.Organs; + +[RegisterComponent, NetworkedComponent] +[AutoGenerateComponentPause] +public sealed partial class OrganEffectComponent : Component +{ + /// + /// The components that are active on the part and will be refreshed every 5s + /// + [DataField] + public ComponentRegistry Active = new(); + + /// + /// How long to wait between each refresh. + /// Effects can only last at most this long once the organ is removed. + /// + [DataField] + public TimeSpan Delay = TimeSpan.FromSeconds(5); + + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField] + public TimeSpan NextUpdate = TimeSpan.Zero; +} diff --git a/Content.Shared/_CorvaxNext/Surgery/Body/Organs/OrganEffectSystem.cs b/Content.Shared/_CorvaxNext/Surgery/Body/Organs/OrganEffectSystem.cs new file mode 100644 index 00000000000..590990adc51 --- /dev/null +++ b/Content.Shared/_CorvaxNext/Surgery/Body/Organs/OrganEffectSystem.cs @@ -0,0 +1,109 @@ +// We keep this clone of the other system since I don't know yet if I'll need organ specific functions in the future. +// will delete or refactor as time goes on. +using Content.Shared.Body.Organ; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.Manager; +using Robust.Shared.Timing; +using System.Linq; +using Robust.Shared.Network; + + +namespace Content.Shared._CorvaxNext.Surgery.Body.Organs; +public partial class OrganEffectSystem : EntitySystem +{ + [Dependency] private readonly IComponentFactory _compFactory = default!; + [Dependency] private readonly ISerializationManager _serManager = default!; + [Dependency] private readonly IGameTiming _gameTiming = default!; + [Dependency] private readonly INetManager _net = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnOrganComponentsModify); + } + + // While I would love to kill this function, problem is that if we happen to have two parts that add the same + // effect, removing one will remove both of them, since we cant tell what the source of a Component is. + public override void Update(float frameTime) + { + base.Update(frameTime); + + if (!_net.IsServer) // TODO: Kill this once I figure out whats breaking the Diagnostic Cybernetics. + return; + + var query = EntityQueryEnumerator(); + var now = _gameTiming.CurTime; + while (query.MoveNext(out var uid, out var comp, out var part)) + { + if (now < comp.NextUpdate || !comp.Active.Any() || part.Body is not { } body) + continue; + + comp.NextUpdate = now + comp.Delay; + AddComponents(body, uid, comp.Active); + } + } + + private void OnOrganComponentsModify(Entity organEnt, + ref OrganComponentsModifyEvent ev) + { + if (!_net.IsServer) // TODO: Kill this once I figure out whats breaking the Diagnostic Cybernetics. + return; + + if (organEnt.Comp.OnAdd != null) + { + if (ev.Add) + AddComponents(ev.Body, organEnt, organEnt.Comp.OnAdd); + else + RemoveComponents(ev.Body, organEnt, organEnt.Comp.OnAdd); + } + + if (organEnt.Comp.OnRemove != null) + { + if (ev.Add) + AddComponents(ev.Body, organEnt, organEnt.Comp.OnRemove); + else + RemoveComponents(ev.Body, organEnt, organEnt.Comp.OnRemove); + } + } + + private void AddComponents(EntityUid body, + EntityUid part, + ComponentRegistry reg, + OrganEffectComponent? effectComp = null) + { + if (!Resolve(part, ref effectComp, logMissing: false)) + return; + + foreach (var (key, comp) in reg) + { + var compType = comp.Component.GetType(); + if (HasComp(body, compType)) + continue; + + var newComp = (Component) _serManager.CreateCopy(comp.Component, notNullableOverride: true); + newComp.Owner = body; + EntityManager.AddComponent(body, newComp, true); + effectComp.Active[key] = comp; + if (newComp.NetSyncEnabled) + { + Dirty(body, newComp); + Dirty(part, effectComp); + } + } + } + + private void RemoveComponents(EntityUid body, + EntityUid part, + ComponentRegistry reg, + OrganEffectComponent? effectComp = null) + { + if (!Resolve(part, ref effectComp, logMissing: false)) + return; + + foreach (var (key, comp) in reg) + { + RemComp(body, comp.Component.GetType()); + effectComp.Active.Remove(key); + } + } +} diff --git a/Content.Shared/_CorvaxNext/Surgery/Body/Organs/OrganEvents.cs b/Content.Shared/_CorvaxNext/Surgery/Body/Organs/OrganEvents.cs new file mode 100644 index 00000000000..f757bd437ae --- /dev/null +++ b/Content.Shared/_CorvaxNext/Surgery/Body/Organs/OrganEvents.cs @@ -0,0 +1,13 @@ +using Content.Shared.Body.Organ; +namespace Content.Shared._CorvaxNext.Surgery.Body.Organs; + +public readonly record struct OrganComponentsModifyEvent(EntityUid Body, bool Add); + +[ByRefEvent] +public readonly record struct OrganEnableChangedEvent(bool Enabled); + +[ByRefEvent] +public readonly record struct OrganEnabledEvent(Entity Organ); + +[ByRefEvent] +public readonly record struct OrganDisabledEvent(Entity Organ); diff --git a/Content.Shared/_CorvaxNext/Surgery/Body/SharedBodySystem.PartAppearance.cs b/Content.Shared/_CorvaxNext/Surgery/Body/SharedBodySystem.PartAppearance.cs index 9ec90434327..67674086ad2 100644 --- a/Content.Shared/_CorvaxNext/Surgery/Body/SharedBodySystem.PartAppearance.cs +++ b/Content.Shared/_CorvaxNext/Surgery/Body/SharedBodySystem.PartAppearance.cs @@ -1,4 +1,3 @@ -using System.Diagnostics; using System.Linq; using Content.Shared.Body.Components; using Content.Shared.Body.Part; @@ -6,8 +5,9 @@ using Content.Shared.Humanoid.Markings; using Content.Shared.Humanoid.Prototypes; using Robust.Shared.Prototypes; -using Robust.Shared.Utility; +using Content.Shared._CorvaxNext.Surgery.Body.Events; +// ReSharper disable once CheckNamespace namespace Content.Shared.Body.Systems; public partial class SharedBodySystem @@ -21,21 +21,22 @@ private void InitializePartAppearances() SubscribeLocalEvent(OnPartAppearanceStartup); SubscribeLocalEvent(HandleState); - SubscribeLocalEvent(OnPartAttachedToBody); - SubscribeLocalEvent(OnPartDroppedFromBody); + SubscribeLocalEvent(OnPartAttachedToBody); + SubscribeLocalEvent(OnPartDroppedFromBody); } private void OnPartAppearanceStartup(EntityUid uid, BodyPartAppearanceComponent component, ComponentStartup args) { if (!TryComp(uid, out BodyPartComponent? part) || part.ToHumanoidLayers() is not { } relevantLayer) + return; if (part.OriginalBody == null || TerminatingOrDeleted(part.OriginalBody.Value) || !TryComp(part.OriginalBody.Value, out HumanoidAppearanceComponent? bodyAppearance)) { - //component.ID = part.BaseLayerId; + component.ID = part.BaseLayerId; component.Type = relevantLayer; return; } @@ -73,8 +74,7 @@ private void OnPartAppearanceStartup(EntityUid uid, BodyPartAppearanceComponent { var category = MarkingCategoriesConversion.FromHumanoidVisualLayers(layer); if (bodyAppearance.MarkingSet.Markings.TryGetValue(category, out var markingList)) - markingsByLayer[layer] = - markingList.Select(m => new Marking(m.MarkingId, m.MarkingColors.ToList())).ToList(); + markingsByLayer[layer] = markingList.Select(m => new Marking(m.MarkingId, m.MarkingColors.ToList())).ToList(); } component.Markings = markingsByLayer; @@ -125,13 +125,13 @@ public void ModifyMarkings(EntityUid uid, partAppearance.Comp.Markings[targetLayer].Add(marking); } //else - //RemovePartMarkings(uid, component, bodyAppearance); + //RemovePartMarkings(uid, component, bodyAppearance); } private void HandleState(EntityUid uid, BodyPartAppearanceComponent component, ref AfterAutoHandleStateEvent args) => ApplyPartMarkings(uid, component); - private void OnPartAttachedToBody(EntityUid uid, BodyComponent component, ref BodyPartAttachedEvent args) + private void OnPartAttachedToBody(EntityUid uid, BodyComponent component, ref BodyPartAddedEvent args) { if (!TryComp(args.Part, out BodyPartAppearanceComponent? partAppearance) || !TryComp(uid, out HumanoidAppearanceComponent? bodyAppearance)) @@ -143,13 +143,20 @@ private void OnPartAttachedToBody(EntityUid uid, BodyComponent component, ref Bo UpdateAppearance(uid, partAppearance); } - private void OnPartDroppedFromBody(EntityUid uid, BodyComponent component, ref BodyPartDroppedEvent args) + private void OnPartDroppedFromBody(EntityUid uid, BodyComponent component, ref BodyPartRemovedEvent args) { if (TerminatingOrDeleted(uid) - || !TryComp(args.Part, out BodyPartAppearanceComponent? appearance)) + || TerminatingOrDeleted(args.Part) + || !TryComp(uid, out HumanoidAppearanceComponent? bodyAppearance)) return; - RemoveAppearance(uid, appearance, args.Part); + // We check for this conditional here since some entities may not have a profile... If they dont + // have one, and their part is gibbed, the markings will not be removed or applied properly. + if (!HasComp(args.Part)) + EnsureComp(args.Part); + + if (TryComp(args.Part, out var partAppearance)) + RemoveAppearance(uid, partAppearance, args.Part); } protected void UpdateAppearance(EntityUid target, diff --git a/Content.Shared/_CorvaxNext/Surgery/Body/SharedBodySystem.Targeting.cs b/Content.Shared/_CorvaxNext/Surgery/Body/SharedBodySystem.Targeting.cs index 503b77910e3..5e02e4f4465 100644 --- a/Content.Shared/_CorvaxNext/Surgery/Body/SharedBodySystem.Targeting.cs +++ b/Content.Shared/_CorvaxNext/Surgery/Body/SharedBodySystem.Targeting.cs @@ -15,6 +15,7 @@ using Robust.Shared.Timing; using System.Threading; using System.Threading.Tasks; +using Content.Shared._CorvaxNext.Surgery.Body.Events; using Content.Shared._CorvaxNext.Surgery.Steps.Parts; using Content.Shared.Damage.Prototypes; using Content.Shared.FixedPoint; @@ -62,7 +63,7 @@ public IntegrityJob(SharedBodySystem self, Entity ent, double private void InitializeBkm() { _queryTargeting = GetEntityQuery(); - SubscribeLocalEvent(OnBeforeDamageChanged); + SubscribeLocalEvent(OnTryChangePartDamage); SubscribeLocalEvent(OnBodyDamageModify); SubscribeLocalEvent(OnPartDamageModify); SubscribeLocalEvent(OnDamageChanged); @@ -123,7 +124,7 @@ public override void Update(float frameTime) } } - private void OnBeforeDamageChanged(Entity ent, ref BeforeDamageChangedEvent args) + private void OnTryChangePartDamage(Entity ent, ref TryChangePartDamageEvent args) { // If our target has a TargetingComponent, that means they will take limb damage // And if their attacker also has one, then we use that part. @@ -238,6 +239,7 @@ private void OnDamageChanged(Entity partEnt, ref DamageChange var delta = args.DamageDelta; if (args.CanSever + && partEnt.Comp.CanSever && partIdSlot is not null && delta != null && !HasComp(partEnt) diff --git a/Content.Shared/_CorvaxNext/Surgery/Body/Subsystems/GenerateChildPartComponent.cs b/Content.Shared/_CorvaxNext/Surgery/Body/Subsystems/GenerateChildPartComponent.cs new file mode 100644 index 00000000000..0185f0aab7d --- /dev/null +++ b/Content.Shared/_CorvaxNext/Surgery/Body/Subsystems/GenerateChildPartComponent.cs @@ -0,0 +1,18 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared._CorvaxNext.Surgery.Body.Subsystems; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class GenerateChildPartComponent : Component +{ + + [DataField(required: true)] + public EntProtoId Id = ""; + + [DataField, AutoNetworkedField] + public EntityUid? ChildPart; + + [DataField] + public bool Active = false; +} diff --git a/Content.Shared/_CorvaxNext/Surgery/Body/Subsystems/GenerateChildPartSystem.cs b/Content.Shared/_CorvaxNext/Surgery/Body/Subsystems/GenerateChildPartSystem.cs new file mode 100644 index 00000000000..7956db8e964 --- /dev/null +++ b/Content.Shared/_CorvaxNext/Surgery/Body/Subsystems/GenerateChildPartSystem.cs @@ -0,0 +1,69 @@ +using Content.Shared.Body.Part; +using Content.Shared.Body.Systems; +using Robust.Shared.Map; +using Robust.Shared.Timing; +using Robust.Shared.Network; +using System.Numerics; +using Content.Shared._CorvaxNext.Surgery.Body.Events; + +namespace Content.Shared._CorvaxNext.Surgery.Body.Subsystems; + +public sealed class GenerateChildPartSystem : EntitySystem +{ + [Dependency] private readonly SharedBodySystem _bodySystem = default!; + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly INetManager _net = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnPartComponentsModify); + } + + private void OnPartComponentsModify(EntityUid uid, GenerateChildPartComponent component, ref BodyPartComponentsModifyEvent args) + { + if (args.Add) + CreatePart(uid, component); + //else + //DeletePart(uid, component); + } + + private void CreatePart(EntityUid uid, GenerateChildPartComponent component) + { + if (!TryComp(uid, out BodyPartComponent? partComp) + || partComp.Body is null + || component.Active) + return; + + // I pinky swear to also move this to the server side properly next update :) + if (_net.IsServer) + { + var childPart = Spawn(component.Id, new EntityCoordinates(partComp.Body.Value, Vector2.Zero)); + + if (!TryComp(childPart, out BodyPartComponent? childPartComp)) + return; + + var slotName = _bodySystem.GetSlotFromBodyPart(childPartComp); + _bodySystem.TryCreatePartSlot(uid, slotName, childPartComp.PartType, out var _); + _bodySystem.AttachPart(uid, slotName, childPart, partComp, childPartComp); + component.ChildPart = childPart; + component.Active = true; + Dirty(childPart, childPartComp); + } + + _bodySystem.ChangeSlotState((uid, partComp), false); + } + + // Still unusued, gotta figure out what I want to do with this function outside of fuckery with mantis blades. + private void DeletePart(EntityUid uid, GenerateChildPartComponent component) + { + if (!TryComp(uid, out BodyPartComponent? partComp)) + return; + + _bodySystem.ChangeSlotState((uid, partComp), true); + var ev = new BodyPartDroppedEvent((uid, partComp)); + RaiseLocalEvent(uid, ref ev); + QueueDel(uid); + } +} + diff --git a/Content.Shared/_CorvaxNext/Surgery/Conditions/SurgeryComponentConditionComponent.cs b/Content.Shared/_CorvaxNext/Surgery/Conditions/SurgeryComponentConditionComponent.cs new file mode 100644 index 00000000000..621ce43108a --- /dev/null +++ b/Content.Shared/_CorvaxNext/Surgery/Conditions/SurgeryComponentConditionComponent.cs @@ -0,0 +1,17 @@ +using Content.Shared.Body.Part; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared._CorvaxNext.Surgery.Conditions; + +// Quite the redundant name eh? +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryComponentConditionComponent : Component +{ + [DataField] + public ComponentRegistry Component; + + [DataField] + public bool Inverse; + +} diff --git a/Content.Shared/_CorvaxNext/Surgery/SharedSurgerySystem.Steps.cs b/Content.Shared/_CorvaxNext/Surgery/SharedSurgerySystem.Steps.cs index faddb67af6c..0cb3c264d49 100644 --- a/Content.Shared/_CorvaxNext/Surgery/SharedSurgerySystem.Steps.cs +++ b/Content.Shared/_CorvaxNext/Surgery/SharedSurgerySystem.Steps.cs @@ -5,7 +5,6 @@ using Content.Shared.Bed.Sleep; using Content.Shared.Body.Part; using Content.Shared.Body.Organ; -using Content.Shared.Body.Events; using Content.Shared.Buckle.Components; using Content.Shared.Damage; using Content.Shared.Damage.Prototypes; @@ -16,6 +15,7 @@ using Content.Shared.Popups; using Robust.Shared.Prototypes; using System.Linq; +using Content.Shared._CorvaxNext.Surgery.Body.Events; using Content.Shared._CorvaxNext.Surgery.Body.Organs; using Content.Shared._CorvaxNext.Surgery.Effects.Step; using Content.Shared._CorvaxNext.Surgery.Steps; @@ -23,6 +23,7 @@ using Content.Shared._CorvaxNext.Surgery.Tools; using Content.Shared.Containers.ItemSlots; using Content.Shared.Medical.Surgery; +using AmputateAttemptEvent = Content.Shared.Body.Events.AmputateAttemptEvent; namespace Content.Shared._CorvaxNext.Surgery; @@ -71,7 +72,7 @@ private void OnToolStep(Entity ent, ref SurgeryStepEvent a { foreach (var reg in ent.Comp.Tool.Values) { - if (!AnyHaveComp(args.Tools, reg.Component, out var tool)) + if (!AnyHaveComp(args.Tools, reg.Component, out var tool, out _)) return; if (_net.IsServer && @@ -102,6 +103,17 @@ private void OnToolStep(Entity ent, ref SurgeryStepEvent a } } + if (ent.Comp.BodyAdd != null) + { + foreach (var reg in ent.Comp.BodyAdd.Values) + { + var compType = reg.Component.GetType(); + if (HasComp(args.Body, compType)) + continue; + AddComp(args.Body, _compFactory.GetComponent(compType)); + } + } + if (ent.Comp.BodyRemove != null) { foreach (var reg in ent.Comp.BodyRemove.Values) @@ -146,6 +158,18 @@ private void OnToolCheck(Entity ent, ref SurgeryStepComple } } + if (ent.Comp.BodyAdd != null) + { + foreach (var reg in ent.Comp.BodyAdd.Values) + { + if (!HasComp(args.Body, reg.Component.GetType())) + { + args.Cancelled = true; + return; + } + } + } + if (ent.Comp.BodyRemove != null) { foreach (var reg in ent.Comp.BodyRemove.Values) @@ -191,21 +215,21 @@ private void OnToolCanPerform(Entity ent, ref SurgeryCanPe if (ent.Comp.Tool != null) { - args.ValidTools ??= new HashSet(); + args.ValidTools ??= new Dictionary(); foreach (var reg in ent.Comp.Tool.Values) { - if (!AnyHaveComp(args.Tools, reg.Component, out var withComp)) + if (!AnyHaveComp(args.Tools, reg.Component, out var tool, out var speed)) { args.Invalid = StepInvalidReason.MissingTool; - if (reg.Component is ISurgeryToolComponent tool) - args.Popup = $"You need {tool.ToolName} to perform this step!"; + if (reg.Component is ISurgeryToolComponent required) + args.Popup = $"You need {required.ToolName} to perform this step!"; return; } - args.ValidTools.Add(withComp); + args.ValidTools[tool] = speed; } } } @@ -248,12 +272,9 @@ private void OnTendWoundsStep(Entity ent, ref bonus *= 0.2; var adjustedDamage = new DamageSpecifier(ent.Comp.Damage); - var bonusPerType = bonus / group.Length; foreach (var type in group) - { - adjustedDamage.DamageDict[type] -= bonusPerType; - } + adjustedDamage.DamageDict[type] -= bonus; var ev = new SurgeryStepDamageEvent(args.User, args.Body, args.Part, args.Surgery, adjustedDamage, 0.5f); RaiseLocalEvent(args.Body, ref ev); @@ -594,14 +615,29 @@ private void OnSurgeryTargetStepChosen(Entity ent, ref S if (!CanPerformStep(user, body, part, step, true, out _, out _, out var validTools)) return; - if (_net.IsServer && validTools?.Count > 0) + var speed = 1f; + var usedEv = new SurgeryToolUsedEvent(user, body); + // We need to check for nullability because of surgeries that dont require a tool, like Cavity Implants + if (validTools?.Count > 0) { - foreach (var tool in validTools) + foreach (var (tool, toolSpeed) in validTools) { - if (TryComp(tool, out SurgeryToolComponent? toolComp) && - toolComp.EndSound != null) + RaiseLocalEvent(tool, ref usedEv); + if (usedEv.Cancelled) + return; + + speed *= toolSpeed; + } + + if (_net.IsServer) + { + foreach (var tool in validTools.Keys) { - _audio.PlayEntity(toolComp.StartSound, user, tool); + if (TryComp(tool, out SurgeryToolComponent? toolComp) && + toolComp.EndSound != null) + { + _audio.PlayEntity(toolComp.StartSound, user, tool); + } } } } @@ -610,8 +646,8 @@ private void OnSurgeryTargetStepChosen(Entity ent, ref S _rotateToFace.TryFaceCoordinates(user, _transform.GetMapCoordinates(body, xform).Position); var ev = new SurgeryDoAfterEvent(args.Surgery, args.Step); - // TODO: Make this serialized on a per surgery step basis, and also add penalties based on ghetto tools. - var duration = 2f; + // TODO: Move 2 seconds to a field of SurgeryStepComponent + var duration = 2f / speed; if (TryComp(user, out SurgerySpeedModifierComponent? surgerySpeedMod) && surgerySpeedMod is not null) duration = duration / surgerySpeedMod.SpeedModifier; @@ -642,6 +678,18 @@ private void OnSurgeryTargetStepChosen(Entity ent, ref S } } + private float GetSurgeryDuration(EntityUid surgeryStep, EntityUid user, EntityUid target, float toolSpeed) + { + if (!TryComp(surgeryStep, out SurgeryStepComponent? stepComp)) + return 2f; // Shouldnt really happen but just a failsafe. + + var speed = toolSpeed; + + if (TryComp(user, out SurgerySpeedModifierComponent? surgerySpeedMod)) + speed *= surgerySpeedMod.SpeedModifier; + + return stepComp.Duration / speed; + } private (Entity Surgery, int Step)? GetNextStep(EntityUid body, EntityUid part, Entity surgery, List requirements) { if (!Resolve(surgery, ref surgery.Comp)) @@ -701,7 +749,7 @@ public bool PreviousStepsComplete(EntityUid body, EntityUid part, Entity? validTools) + out Dictionary? validTools) { var type = BodyPartType.Other; if (TryComp(part, out BodyPartComponent? partComp)) @@ -755,18 +803,20 @@ public bool IsStepComplete(EntityUid body, EntityUid part, EntProtoId step, Enti return !ev.Cancelled; } - private bool AnyHaveComp(List tools, IComponent component, out EntityUid withComp) + private bool AnyHaveComp(List tools, IComponent component, out EntityUid withComp, out float speed) { foreach (var tool in tools) { - if (HasComp(tool, component.GetType())) + if (EntityManager.TryGetComponent(tool, component.GetType(), out var found) && found is ISurgeryToolComponent toolComp) { withComp = tool; + speed = toolComp.Speed; return true; } } - withComp = default; + withComp = EntityUid.Invalid; + speed = 1f; return false; } } diff --git a/Content.Shared/_CorvaxNext/Surgery/SharedSurgerySystem.cs b/Content.Shared/_CorvaxNext/Surgery/SharedSurgerySystem.cs index b85066ba6ed..48b19e21fd7 100644 --- a/Content.Shared/_CorvaxNext/Surgery/SharedSurgerySystem.cs +++ b/Content.Shared/_CorvaxNext/Surgery/SharedSurgerySystem.cs @@ -1,4 +1,5 @@ using System.Linq; +using Content.Shared._CorvaxNext.Surgery.Conditions; using Content.Shared._CorvaxNext.Surgery.Steps.Parts; using Content.Shared.Medical.Surgery.Conditions; using Content.Shared.Body.Systems; @@ -56,6 +57,7 @@ public override void Initialize() SubscribeLocalEvent(OnTargetDoAfter); SubscribeLocalEvent(OnCloseIncisionValid); //SubscribeLocalEvent(OnLarvaValid); + SubscribeLocalEvent(OnComponentConditionValid); SubscribeLocalEvent(OnPartConditionValid); SubscribeLocalEvent(OnOrganConditionValid); SubscribeLocalEvent(OnWoundedValid); @@ -125,6 +127,21 @@ private void OnWoundedValid(Entity ent, ref Su if (infected != null && infected.SpawnedLarva != null) args.Cancelled = true; }*/ + + private void OnComponentConditionValid(Entity ent, ref SurgeryValidEvent args) + { + var present = true; + foreach (var reg in ent.Comp.Component.Values) + { + var compType = reg.Component.GetType(); + if (!HasComp(args.Part, compType)) + present = false; + } + + if (ent.Comp.Inverse ? present : !present) + args.Cancelled = true; + } + private void OnPartConditionValid(Entity ent, ref SurgeryValidEvent args) { if (!TryComp(args.Part, out var part)) @@ -175,7 +192,7 @@ private void OnPartRemovedConditionValid(Entity? ValidTools = null + Dictionary? ValidTools = null ) : IInventoryRelayEvent; diff --git a/Content.Shared/_CorvaxNext/Surgery/Steps/SurgeryStepComponent.cs b/Content.Shared/_CorvaxNext/Surgery/Steps/SurgeryStepComponent.cs index 65dcbd4d195..8a4bee9541d 100644 --- a/Content.Shared/_CorvaxNext/Surgery/Steps/SurgeryStepComponent.cs +++ b/Content.Shared/_CorvaxNext/Surgery/Steps/SurgeryStepComponent.cs @@ -14,9 +14,15 @@ public sealed partial class SurgeryStepComponent : Component [DataField] public ComponentRegistry? Add; + [DataField] + public ComponentRegistry? BodyAdd; + [DataField] public ComponentRegistry? Remove; [DataField] public ComponentRegistry? BodyRemove; + + [DataField] + public float Duration = 2f; } diff --git a/Content.Shared/_CorvaxNext/Surgery/SurgeryStepDamageChangeEvent.cs b/Content.Shared/_CorvaxNext/Surgery/SurgeryStepDamageChangeEvent.cs index e8f0a34cde3..c92a4589274 100644 --- a/Content.Shared/_CorvaxNext/Surgery/SurgeryStepDamageChangeEvent.cs +++ b/Content.Shared/_CorvaxNext/Surgery/SurgeryStepDamageChangeEvent.cs @@ -1,6 +1,6 @@ using Content.Shared.Damage; -namespace Content.Shared.Medical.Surgery; +namespace Content.Shared._CorvaxNext.Surgery; /// /// Raised on the target entity. diff --git a/Content.Shared/_CorvaxNext/Surgery/Tools/BoneGelComponent.cs b/Content.Shared/_CorvaxNext/Surgery/Tools/BoneGelComponent.cs index 4f186113d3c..14f0d8720f0 100644 --- a/Content.Shared/_CorvaxNext/Surgery/Tools/BoneGelComponent.cs +++ b/Content.Shared/_CorvaxNext/Surgery/Tools/BoneGelComponent.cs @@ -8,4 +8,7 @@ public sealed partial class BoneGelComponent : Component, ISurgeryToolComponent public string ToolName => "bone gel"; public bool? Used { get; set; } = null; + + [DataField] + public float Speed { get; set; } = 1f; } diff --git a/Content.Shared/_CorvaxNext/Surgery/Tools/BoneSawComponent.cs b/Content.Shared/_CorvaxNext/Surgery/Tools/BoneSawComponent.cs index 214058f1901..74307449204 100644 --- a/Content.Shared/_CorvaxNext/Surgery/Tools/BoneSawComponent.cs +++ b/Content.Shared/_CorvaxNext/Surgery/Tools/BoneSawComponent.cs @@ -7,4 +7,6 @@ public sealed partial class BoneSawComponent : Component, ISurgeryToolComponent { public string ToolName => "a bone saw"; public bool? Used { get; set; } = null; + [DataField] + public float Speed { get; set; } = 1f; } diff --git a/Content.Shared/_CorvaxNext/Surgery/Tools/BoneSetterComponent.cs b/Content.Shared/_CorvaxNext/Surgery/Tools/BoneSetterComponent.cs index 262c6814896..f8c7421e4b5 100644 --- a/Content.Shared/_CorvaxNext/Surgery/Tools/BoneSetterComponent.cs +++ b/Content.Shared/_CorvaxNext/Surgery/Tools/BoneSetterComponent.cs @@ -3,4 +3,10 @@ namespace Content.Shared._CorvaxNext.Surgery.Tools; [RegisterComponent, NetworkedComponent] -public sealed partial class BoneSetterComponent : Component; +public sealed partial class BoneSetterComponent : Component, ISurgeryToolComponent +{ + public string ToolName => "a bone setter"; + public bool? Used { get; set; } = null; + [DataField] + public float Speed { get; set; } = 1f; +} diff --git a/Content.Shared/_CorvaxNext/Surgery/Tools/CauteryComponent.cs b/Content.Shared/_CorvaxNext/Surgery/Tools/CauteryComponent.cs index 0fd34f31776..44ac0d8c3dc 100644 --- a/Content.Shared/_CorvaxNext/Surgery/Tools/CauteryComponent.cs +++ b/Content.Shared/_CorvaxNext/Surgery/Tools/CauteryComponent.cs @@ -7,4 +7,6 @@ public sealed partial class CauteryComponent : Component, ISurgeryToolComponent { public string ToolName => "a cautery"; public bool? Used { get; set; } = null; + [DataField] + public float Speed { get; set; } = 1f; } diff --git a/Content.Shared/_CorvaxNext/Surgery/Tools/DrillComponent.cs b/Content.Shared/_CorvaxNext/Surgery/Tools/DrillComponent.cs new file mode 100644 index 00000000000..6e71567e65a --- /dev/null +++ b/Content.Shared/_CorvaxNext/Surgery/Tools/DrillComponent.cs @@ -0,0 +1,13 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared._CorvaxNext.Surgery.Tools; + +[RegisterComponent, NetworkedComponent] +public sealed partial class DrillComponent : Component, ISurgeryToolComponent +{ + public string ToolName => "a drill"; + public bool? Used { get; set; } = null; + + [DataField] + public float Speed { get; set; } = 1f; +} diff --git a/Content.Shared/_CorvaxNext/Surgery/Tools/HemostatComponent.cs b/Content.Shared/_CorvaxNext/Surgery/Tools/HemostatComponent.cs index 109133ca4fa..91ce2be49d5 100644 --- a/Content.Shared/_CorvaxNext/Surgery/Tools/HemostatComponent.cs +++ b/Content.Shared/_CorvaxNext/Surgery/Tools/HemostatComponent.cs @@ -7,4 +7,6 @@ public sealed partial class HemostatComponent : Component, ISurgeryToolComponent { public string ToolName => "a hemostat"; public bool? Used { get; set; } = null; + [DataField] + public float Speed { get; set; } = 1f; } diff --git a/Content.Shared/_CorvaxNext/Surgery/Tools/ISurgeryToolComponent.cs b/Content.Shared/_CorvaxNext/Surgery/Tools/ISurgeryToolComponent.cs index 9c536c24c65..51d527abe3d 100644 --- a/Content.Shared/_CorvaxNext/Surgery/Tools/ISurgeryToolComponent.cs +++ b/Content.Shared/_CorvaxNext/Surgery/Tools/ISurgeryToolComponent.cs @@ -8,4 +8,11 @@ public interface ISurgeryToolComponent // Mostly intended for discardable or non-reusable tools. [DataField] public bool? Used { get; set; } + + /// + /// Multiply the step's doafter by this value. + /// This is per-type so you can have something that's a good scalpel but a bad retractor. + /// + [DataField] + public float Speed { get; set; } } diff --git a/Content.Shared/_CorvaxNext/Surgery/Tools/RetractorComponent.cs b/Content.Shared/_CorvaxNext/Surgery/Tools/RetractorComponent.cs index 1f8493d26be..bd991db0cd3 100644 --- a/Content.Shared/_CorvaxNext/Surgery/Tools/RetractorComponent.cs +++ b/Content.Shared/_CorvaxNext/Surgery/Tools/RetractorComponent.cs @@ -7,4 +7,6 @@ public sealed partial class RetractorComponent : Component, ISurgeryToolComponen { public string ToolName => "a retractor"; public bool? Used { get; set; } = null; + [DataField] + public float Speed { get; set; } = 1f; } diff --git a/Content.Shared/_CorvaxNext/Surgery/Tools/ScalpelComponent.cs b/Content.Shared/_CorvaxNext/Surgery/Tools/ScalpelComponent.cs index 4bf01726f6e..1c5193a922b 100644 --- a/Content.Shared/_CorvaxNext/Surgery/Tools/ScalpelComponent.cs +++ b/Content.Shared/_CorvaxNext/Surgery/Tools/ScalpelComponent.cs @@ -7,4 +7,6 @@ public sealed partial class ScalpelComponent : Component, ISurgeryToolComponent { public string ToolName => "a scalpel"; public bool? Used { get; set; } = null; + [DataField] + public float Speed { get; set; } = 1f; } diff --git a/Content.Shared/_CorvaxNext/Surgery/Tools/SurgeryToolComponent.cs b/Content.Shared/_CorvaxNext/Surgery/Tools/SurgeryToolComponent.cs index d02bddb803b..e9cae2b3c06 100644 --- a/Content.Shared/_CorvaxNext/Surgery/Tools/SurgeryToolComponent.cs +++ b/Content.Shared/_CorvaxNext/Surgery/Tools/SurgeryToolComponent.cs @@ -14,3 +14,10 @@ public sealed partial class SurgeryToolComponent : Component [DataField, AutoNetworkedField] public SoundSpecifier? EndSound; } + +/// +/// Raised on a tool to see if it can be used in a surgery step. +/// If this is cancelled the step can't be completed. +/// +[ByRefEvent] +public record struct SurgeryToolUsedEvent(EntityUid User, EntityUid Target, bool Cancelled = false); diff --git a/Content.Shared/_CorvaxNext/Surgery/Tools/SurgeryToolConditionsSystem.cs b/Content.Shared/_CorvaxNext/Surgery/Tools/SurgeryToolConditionsSystem.cs new file mode 100644 index 00000000000..f8b9205a126 --- /dev/null +++ b/Content.Shared/_CorvaxNext/Surgery/Tools/SurgeryToolConditionsSystem.cs @@ -0,0 +1,57 @@ +using Content.Shared.Item.ItemToggle.Components; +using Content.Shared.Popups; +using Content.Shared.Smoking; +using Content.Shared.Smoking.Components; +using Content.Shared.Weapons.Ranged; +using Content.Shared.Weapons.Ranged.Components; +using Content.Shared.Weapons.Ranged.Events; + +namespace Content.Shared._CorvaxNext.Surgery.Tools; + +/// +/// Prevents using esword or welder when off, laser when no charges. +/// +public sealed class SurgeryToolConditionsSystem : EntitySystem +{ + [Dependency] private readonly SharedPopupSystem _popup = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnToggleUsed); + SubscribeLocalEvent(OnGunUsed); + SubscribeLocalEvent(OnMatchUsed); + } + + private void OnToggleUsed(Entity ent, ref SurgeryToolUsedEvent args) + { + if (ent.Comp.Activated) + return; + + _popup.PopupEntity(Loc.GetString("surgery-tool-turn-on"), ent, args.User); + args.Cancelled = true; + } + + private void OnGunUsed(Entity ent, ref SurgeryToolUsedEvent args) + { + var coords = Transform(args.User).Coordinates; + var ev = new TakeAmmoEvent(1, new List<(EntityUid? Entity, IShootable Shootable)>(), coords, args.User); + if (ev.Ammo.Count > 0) + return; + + _popup.PopupEntity(Loc.GetString("surgery-tool-reload"), ent, args.User); + args.Cancelled = true; + } + + private void OnMatchUsed(Entity ent, ref SurgeryToolUsedEvent args) + { + var state = ent.Comp.CurrentState; + if (state == SmokableState.Lit) + return; + + var key = "surgery-tool-match-" + (state == SmokableState.Burnt ? "replace" : "light"); + _popup.PopupEntity(Loc.GetString(key), ent, args.User); + args.Cancelled = true; + } +} diff --git a/Content.Shared/_CorvaxNext/Surgery/Tools/SurgeryToolExamineSystem.cs b/Content.Shared/_CorvaxNext/Surgery/Tools/SurgeryToolExamineSystem.cs new file mode 100644 index 00000000000..112b2043ffb --- /dev/null +++ b/Content.Shared/_CorvaxNext/Surgery/Tools/SurgeryToolExamineSystem.cs @@ -0,0 +1,65 @@ +using Content.Shared.Body.Organ; +using Content.Shared.Body.Part; +using Content.Shared.Examine; +using Content.Shared.Verbs; +using Robust.Shared.Utility; + +namespace Content.Shared._CorvaxNext.Surgery.Tools; + +/// +/// Examining a surgical or ghetto tool shows everything it can be used for. +/// +public sealed class SurgeryToolExamineSystem : EntitySystem +{ + [Dependency] private readonly ExamineSystemShared _examine = default!; + + public override void Initialize() + { + SubscribeLocalEvent>(OnGetVerbs); + + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnExamined); + + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnExamined); + } + + private void OnGetVerbs(Entity ent, ref GetVerbsEvent args) + { + if (!args.CanInteract || !args.CanAccess) + return; + + var msg = FormattedMessage.FromMarkupOrThrow(Loc.GetString("surgery-tool-header")); + msg.PushNewline(); + var ev = new SurgeryToolExaminedEvent(msg); + RaiseLocalEvent(ent, ref ev); + + _examine.AddDetailedExamineVerb(args, ent.Comp, ev.Message, + Loc.GetString("surgery-tool-examinable-verb-text"), "/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/scalpel.png", + Loc.GetString("surgery-tool-examinable-verb-message")); + } + + private void OnExamined(EntityUid uid, ISurgeryToolComponent comp, ref SurgeryToolExaminedEvent args) + { + var msg = args.Message; + var color = comp.Speed switch + { + < 1f => "red", + > 1f => "green", + _ => "white" + }; + var key = "surgery-tool-" + (comp.Used == true ? "used" : "unlimited"); + var speed = comp.Speed.ToString("N2"); // 2 decimal places to not get trolled by float + msg.PushMarkup(Loc.GetString(key, ("tool", comp.ToolName), ("speed", speed), ("color", color))); + } +} + +[ByRefEvent] +public record struct SurgeryToolExaminedEvent(FormattedMessage Message); diff --git a/Content.Shared/_CorvaxNext/Surgery/Tools/SurgicalDrillComponent.cs b/Content.Shared/_CorvaxNext/Surgery/Tools/SurgicalDrillComponent.cs deleted file mode 100644 index 0ae8ff57b95..00000000000 --- a/Content.Shared/_CorvaxNext/Surgery/Tools/SurgicalDrillComponent.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Robust.Shared.GameStates; - -namespace Content.Shared._CorvaxNext.Surgery.Tools; - -[RegisterComponent, NetworkedComponent] -public sealed partial class SurgicalDrillComponent : Component, ISurgeryToolComponent -{ - public string ToolName => "a surgical drill"; - public bool? Used { get; set; } = null; -} diff --git a/Content.Shared/_CorvaxNext/Surgery/Tools/TendingComponent.cs b/Content.Shared/_CorvaxNext/Surgery/Tools/TendingComponent.cs new file mode 100644 index 00000000000..42dde8264da --- /dev/null +++ b/Content.Shared/_CorvaxNext/Surgery/Tools/TendingComponent.cs @@ -0,0 +1,15 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared._CorvaxNext.Surgery.Tools; + +/// +/// Like Hemostat but lets ghetto tools be used differently for clamping and tending wounds. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class TendingComponent : Component, ISurgeryToolComponent +{ + public string ToolName => "a wound tender"; + public bool? Used { get; set; } = null; + [DataField] + public float Speed { get; set; } = 1f; +} diff --git a/Content.Shared/_CorvaxNext/Surgery/Tools/TweezersComponent.cs b/Content.Shared/_CorvaxNext/Surgery/Tools/TweezersComponent.cs new file mode 100644 index 00000000000..cac94fae0e8 --- /dev/null +++ b/Content.Shared/_CorvaxNext/Surgery/Tools/TweezersComponent.cs @@ -0,0 +1,15 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared._CorvaxNext.Surgery.Tools; + +/// +/// Like Hemostat but lets ghetto tools be used differently for clamping and removing organs. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class TweezersComponent : Component, ISurgeryToolComponent +{ + public string ToolName => "tweezers"; + public bool? Used { get; set; } = null; + [DataField] + public float Speed { get; set; } = 1f; +} diff --git a/Resources/Audio/_CorvaxNext/Medical/Surgery/attributions.yml b/Resources/Audio/_CorvaxNext/Medical/Surgery/attributions.yml new file mode 100644 index 00000000000..c88a3e0b70f --- /dev/null +++ b/Resources/Audio/_CorvaxNext/Medical/Surgery/attributions.yml @@ -0,0 +1,49 @@ +- files: ["cautery1.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/cautery1.ogg" + +- files: ["cautery2.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/cautery2.ogg" + +- files: ["hemostat.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/hemostat.ogg" + +- files: ["organ1.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/organ1.ogg" + +- files: ["organ2.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/organ2.ogg" + +- files: ["retractor1.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/retractor1.ogg" + +- files: ["retractor2.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/retractor2.ogg" + +- files: ["saw.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/saw.ogg" + +- files: ["scalpel1.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/scalpel1.ogg" + +- files: ["scalpel2.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/scalpel2.ogg" \ No newline at end of file diff --git a/Resources/Audio/_CorvaxNext/Medical/Surgery/cautery1.ogg b/Resources/Audio/_CorvaxNext/Medical/Surgery/cautery1.ogg new file mode 100644 index 00000000000..fbd9f2b4d86 Binary files /dev/null and b/Resources/Audio/_CorvaxNext/Medical/Surgery/cautery1.ogg differ diff --git a/Resources/Audio/_CorvaxNext/Medical/Surgery/cautery2.ogg b/Resources/Audio/_CorvaxNext/Medical/Surgery/cautery2.ogg new file mode 100644 index 00000000000..cc91e9f3ce6 Binary files /dev/null and b/Resources/Audio/_CorvaxNext/Medical/Surgery/cautery2.ogg differ diff --git a/Resources/Audio/_CorvaxNext/Medical/Surgery/hemostat1.ogg b/Resources/Audio/_CorvaxNext/Medical/Surgery/hemostat1.ogg new file mode 100644 index 00000000000..e624bafafbf Binary files /dev/null and b/Resources/Audio/_CorvaxNext/Medical/Surgery/hemostat1.ogg differ diff --git a/Resources/Audio/_CorvaxNext/Medical/Surgery/organ1.ogg b/Resources/Audio/_CorvaxNext/Medical/Surgery/organ1.ogg new file mode 100644 index 00000000000..37eaffc1a34 Binary files /dev/null and b/Resources/Audio/_CorvaxNext/Medical/Surgery/organ1.ogg differ diff --git a/Resources/Audio/_CorvaxNext/Medical/Surgery/organ2.ogg b/Resources/Audio/_CorvaxNext/Medical/Surgery/organ2.ogg new file mode 100644 index 00000000000..43b22f8354c Binary files /dev/null and b/Resources/Audio/_CorvaxNext/Medical/Surgery/organ2.ogg differ diff --git a/Resources/Audio/_CorvaxNext/Medical/Surgery/retractor1.ogg b/Resources/Audio/_CorvaxNext/Medical/Surgery/retractor1.ogg new file mode 100644 index 00000000000..70625c961cf Binary files /dev/null and b/Resources/Audio/_CorvaxNext/Medical/Surgery/retractor1.ogg differ diff --git a/Resources/Audio/_CorvaxNext/Medical/Surgery/retractor2.ogg b/Resources/Audio/_CorvaxNext/Medical/Surgery/retractor2.ogg new file mode 100644 index 00000000000..94548ec2504 Binary files /dev/null and b/Resources/Audio/_CorvaxNext/Medical/Surgery/retractor2.ogg differ diff --git a/Resources/Audio/_CorvaxNext/Medical/Surgery/saw.ogg b/Resources/Audio/_CorvaxNext/Medical/Surgery/saw.ogg new file mode 100644 index 00000000000..62623f6aa3a Binary files /dev/null and b/Resources/Audio/_CorvaxNext/Medical/Surgery/saw.ogg differ diff --git a/Resources/Audio/_CorvaxNext/Medical/Surgery/scalpel1.ogg b/Resources/Audio/_CorvaxNext/Medical/Surgery/scalpel1.ogg new file mode 100644 index 00000000000..f292d1024da Binary files /dev/null and b/Resources/Audio/_CorvaxNext/Medical/Surgery/scalpel1.ogg differ diff --git a/Resources/Audio/_CorvaxNext/Medical/Surgery/scalpel2.ogg b/Resources/Audio/_CorvaxNext/Medical/Surgery/scalpel2.ogg new file mode 100644 index 00000000000..7335f3d9cef Binary files /dev/null and b/Resources/Audio/_CorvaxNext/Medical/Surgery/scalpel2.ogg differ diff --git a/Resources/Audio/_Shitmed/Medical/Surgery/attributions.yml b/Resources/Audio/_Shitmed/Medical/Surgery/attributions.yml new file mode 100644 index 00000000000..c88a3e0b70f --- /dev/null +++ b/Resources/Audio/_Shitmed/Medical/Surgery/attributions.yml @@ -0,0 +1,49 @@ +- files: ["cautery1.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/cautery1.ogg" + +- files: ["cautery2.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/cautery2.ogg" + +- files: ["hemostat.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/hemostat.ogg" + +- files: ["organ1.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/organ1.ogg" + +- files: ["organ2.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/organ2.ogg" + +- files: ["retractor1.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/retractor1.ogg" + +- files: ["retractor2.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/retractor2.ogg" + +- files: ["saw.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/saw.ogg" + +- files: ["scalpel1.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/scalpel1.ogg" + +- files: ["scalpel2.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/scalpel2.ogg" \ No newline at end of file diff --git a/Resources/Audio/_Shitmed/Medical/Surgery/cautery1.ogg b/Resources/Audio/_Shitmed/Medical/Surgery/cautery1.ogg new file mode 100644 index 00000000000..fbd9f2b4d86 Binary files /dev/null and b/Resources/Audio/_Shitmed/Medical/Surgery/cautery1.ogg differ diff --git a/Resources/Audio/_Shitmed/Medical/Surgery/cautery2.ogg b/Resources/Audio/_Shitmed/Medical/Surgery/cautery2.ogg new file mode 100644 index 00000000000..cc91e9f3ce6 Binary files /dev/null and b/Resources/Audio/_Shitmed/Medical/Surgery/cautery2.ogg differ diff --git a/Resources/Audio/_Shitmed/Medical/Surgery/hemostat1.ogg b/Resources/Audio/_Shitmed/Medical/Surgery/hemostat1.ogg new file mode 100644 index 00000000000..e624bafafbf Binary files /dev/null and b/Resources/Audio/_Shitmed/Medical/Surgery/hemostat1.ogg differ diff --git a/Resources/Audio/_Shitmed/Medical/Surgery/organ1.ogg b/Resources/Audio/_Shitmed/Medical/Surgery/organ1.ogg new file mode 100644 index 00000000000..37eaffc1a34 Binary files /dev/null and b/Resources/Audio/_Shitmed/Medical/Surgery/organ1.ogg differ diff --git a/Resources/Audio/_Shitmed/Medical/Surgery/organ2.ogg b/Resources/Audio/_Shitmed/Medical/Surgery/organ2.ogg new file mode 100644 index 00000000000..43b22f8354c Binary files /dev/null and b/Resources/Audio/_Shitmed/Medical/Surgery/organ2.ogg differ diff --git a/Resources/Audio/_Shitmed/Medical/Surgery/retractor1.ogg b/Resources/Audio/_Shitmed/Medical/Surgery/retractor1.ogg new file mode 100644 index 00000000000..70625c961cf Binary files /dev/null and b/Resources/Audio/_Shitmed/Medical/Surgery/retractor1.ogg differ diff --git a/Resources/Audio/_Shitmed/Medical/Surgery/retractor2.ogg b/Resources/Audio/_Shitmed/Medical/Surgery/retractor2.ogg new file mode 100644 index 00000000000..94548ec2504 Binary files /dev/null and b/Resources/Audio/_Shitmed/Medical/Surgery/retractor2.ogg differ diff --git a/Resources/Audio/_Shitmed/Medical/Surgery/saw.ogg b/Resources/Audio/_Shitmed/Medical/Surgery/saw.ogg new file mode 100644 index 00000000000..62623f6aa3a Binary files /dev/null and b/Resources/Audio/_Shitmed/Medical/Surgery/saw.ogg differ diff --git a/Resources/Audio/_Shitmed/Medical/Surgery/scalpel1.ogg b/Resources/Audio/_Shitmed/Medical/Surgery/scalpel1.ogg new file mode 100644 index 00000000000..f292d1024da Binary files /dev/null and b/Resources/Audio/_Shitmed/Medical/Surgery/scalpel1.ogg differ diff --git a/Resources/Audio/_Shitmed/Medical/Surgery/scalpel2.ogg b/Resources/Audio/_Shitmed/Medical/Surgery/scalpel2.ogg new file mode 100644 index 00000000000..7335f3d9cef Binary files /dev/null and b/Resources/Audio/_Shitmed/Medical/Surgery/scalpel2.ogg differ diff --git a/Resources/Locale/en-US/Goobstation/accent/accents.ftl b/Resources/Locale/en-US/Goobstation/accent/accents.ftl new file mode 100644 index 00000000000..504b08d0194 --- /dev/null +++ b/Resources/Locale/en-US/Goobstation/accent/accents.ftl @@ -0,0 +1,299 @@ +# Gondola +accent-words-gondola-1 = ... + +#Ohio +accent-ohio-prefix-1 = Gyatt dang, +accent-ohio-prefix-2 = Chat... +accent-ohio-prefix-3 = Epic win, + +accent-ohio-suffix-1 = . Like in Ohio. +accent-ohio-suffix-2 = . From Ohio... +accent-ohio-suffix-3 = . Like in Fortnite. +accent-ohio-suffix-4 = . Like from Fortnite. +accent-ohio-suffix-5 = . For the Rizzler. +accent-ohio-suffix-6 = . Chat is this real? +accent-ohio-suffix-7 = . Bro knew what he was doing. +accent-ohio-suffix-8 = . Goofy ahh. + +accent-ohio-words-1 = charisma +accent-ohio-words-replace-1 = rizz + +accent-ohio-words-2 = cool +accent-ohio-words-replace-2 = rizz + +accent-ohio-words-3 = amazing +accent-ohio-words-replace-3 = rizzlike + +accent-ohio-words-4 = god +accent-ohio-words-replace-4 = gyatt + +accent-ohio-words-5 = attack +accent-ohio-words-replace-5 = unalive + +accent-ohio-words-6 = kill +accent-ohio-words-replace-6 = unalive + +accent-ohio-words-7 = murder +accent-ohio-words-replace-7 = unalive + +accent-ohio-words-8 = dead +accent-ohio-words-replace-8 = in ohio + +accent-ohio-words-9 = maints +accent-ohio-words-replace-9 = the backrooms + +accent-ohio-words-10 = maintenance +accent-ohio-words-replace-10 = the backrooms + +accent-ohio-words-11 = maint +accent-ohio-words-replace-11 = the backrooms + +accent-ohio-words-12 = attacked +accent-ohio-words-replace-12 = unalived + +accent-ohio-words-13 = nukie +accent-ohio-words-replace-13 = sussy baka impostor from Among Us + +accent-ohio-words-14 = syndicate +accent-ohio-words-replace-14 = sussy baka impostor from Among Us + +accent-ohio-words-15 = syndi +accent-ohio-words-replace-15 = sussy baka impostor from Among Us + +accent-ohio-words-16 = traitor +accent-ohio-words-replace-16 = sussy baka impostor from Among Us + +accent-ohio-words-17 = got +accent-ohio-words-replace-17 = gyatt + +accent-ohio-words-18 = delicious +accent-ohio-words-replace-18 = bussin' + +accent-ohio-words-19 = yummy +accent-ohio-words-replace-19 = bussin' + +accent-ohio-words-20 = women +accent-ohio-words-replace-20 = FEMALES + +accent-ohio-words-21 = girls +accent-ohio-words-replace-21 = FEMALES + +accent-ohio-words-22 = girl +accent-ohio-words-replace-22 = FEMALE + +accent-ohio-words-23 = woman +accent-ohio-words-replace-23 = FEMALE + +accent-ohio-words-24 = miss +accent-ohio-words-replace-24 = FEMALE + +accent-ohio-words-25 = ms +accent-ohio-words-replace-25 = FEMALE + +accent-ohio-words-26 = mrs +accent-ohio-words-replace-26 = FEMALE + +accent-ohio-words-27 = ms. +accent-ohio-words-replace-27 = FEMALE + +accent-ohio-words-28 = mrs. +accent-ohio-words-replace-28 = FEMALE + +accent-ohio-words-29 = bitch +accent-ohio-words-replace-29 = FEMALE + +accent-ohio-words-30 = really +accent-ohio-words-replace-30 = for real + +accent-ohio-words-31 = definitely +accent-ohio-words-replace-31 = lowkey + +accent-ohio-words-32 = mhm +accent-ohio-words-replace-32 = on god + +accent-ohio-words-33 = epic +accent-ohio-words-replace-33 = poggers + +accent-ohio-words-34 = lingium +accent-ohio-words-replace-34 = ligma + +accent-ohio-words-35 = game +accent-ohio-words-replace-35 = roblox + +accent-ohio-words-36 = nah +accent-ohio-words-replace-36 = cope + +accent-ohio-words-37 = weird +accent-ohio-words-replace-37 = sus + +accent-ohio-words-38 = brother +accent-ohio-words-replace-38 = bro + +accent-ohio-words-39 = man +accent-ohio-words-replace-39 = bro + +accent-ohio-words-40 = marijuana +accent-ohio-words-replace-40 = 420 leaf + +accent-ohio-words-41 = weed +accent-ohio-words-replace-41 = 420 leaf + +accent-ohio-words-42 = best +accent-ohio-words-replace-42 = GOAT + +accent-ohio-words-43 = loss +accent-ohio-words-replace-43 = L + +accent-ohio-words-44 = lose +accent-ohio-words-replace-44 = take an L + +accent-ohio-words-45 = lost +accent-ohio-words-replace-45 = took an L + +accent-ohio-words-46 = silly +accent-ohio-words-replace-46 = goofy ahh + +accent-ohio-words-47 = clown +accent-ohio-words-replace-47 = goofy ahh + +accent-ohio-words-48 = funny +accent-ohio-words-replace-48 = goofy + +accent-ohio-words-49 = joke +accent-ohio-words-replace-49 = meme + +accent-ohio-words-50 = idiot +accent-ohio-words-replace-50 = baka + +accent-ohio-words-51 = ugly +accent-ohio-words-replace-51 = rizzless + +accent-ohio-words-52 = smartass +accent-ohio-words-replace-52 = nerd + +accent-ohio-words-53 = smart +accent-ohio-words-replace-53 = nerdlike + +accent-ohio-words-54 = science +accent-ohio-words-replace-54 = nerdland + +accent-ohio-words-55 = scientist +accent-ohio-words-replace-55 = professional nerd + +accent-ohio-words-56 = story +accent-ohio-words-replace-56 = lorepage + +accent-ohio-words-57 = loser +accent-ohio-words-replace-57 = L + Ratio idiot + +accent-ohio-words-58 = nice +accent-ohio-words-replace-58 = rizzlike + +accent-ohio-words-59 = spesos +accent-ohio-words-replace-59 = rizzbucks + +accent-ohio-words-60 = dollars +accent-ohio-words-replace-60 = rizzbucks + +accent-ohio-words-61 = dollar +accent-ohio-words-replace-61 = rizzbuck + +accent-ohio-words-62 = speso +accent-ohio-words-replace-62 = rizzbuck + +accent-ohio-words-63 = money +accent-ohio-words-replace-63 = rizzbucks + +accent-ohio-words-64 = kill you +accent-ohio-words-replace-64 = send you to Brazil + +accent-ohio-words-65 = dick +accent-ohio-words-replace-65 = glizzy + +accent-ohio-words-66 = hot dog +accent-ohio-words-replace-66 = glizzy + +accent-ohio-words-67 = butt +accent-ohio-words-replace-67 = bussy + +accent-ohio-words-68 = bum +accent-ohio-words-replace-68 = bussy + +accent-ohio-words-69 = ass +accent-ohio-words-replace-69 = bussy + +accent-ohio-words-70 = kill yourself +accent-ohio-words-replace-70 = send yourself to Brazil you stupid rizzless citizen of Ohio + +accent-ohio-words-71 = felinid +accent-ohio-words-replace-71 = hecking chonker + +accent-ohio-words-72 = cat +accent-ohio-words-replace-72 = hecking chonker + +accent-ohio-words-73 = kitty +accent-ohio-words-replace-73 = hecking chonker + +accent-ohio-words-74 = ian +accent-ohio-words-replace-74 = hecking chonker + +accent-ohio-words-75 = dog +accent-ohio-words-replace-75 = hecking chonker + +accent-ohio-words-76 = cerberus +accent-ohio-words-replace-76 = hecking chonker + +accent-ohio-words-77 = puppy +accent-ohio-words-replace-77 = hecking chonker + +accent-ohio-words-78 = pup +accent-ohio-words-replace-78 = hecking chonker + +accent-ohio-words-79 = tesla +accent-ohio-words-replace-79 = sparkly rizzball + +accent-ohio-words-80 = singularity +accent-ohio-words-replace-80 = sussy singuawungoose + +accent-ohio-words-81 = singu +accent-ohio-words-replace-81 = sussy singuawungoose + +accent-ohio-words-82 = singulo +accent-ohio-words-replace-82 = sussy singuawungoose + +accent-ohio-words-83 = tesloose +accent-ohio-words-replace-83 = SPARKLY RIZZBALL LOOSE NO CAP + +accent-ohio-words-84 = tesla loose +accent-ohio-words-replace-84 = SPARKLY RIZZBALL LOOSE NO CAP + +accent-ohio-words-85 = hacking +accent-ohio-words-replace-85 = hacking like in a video game + +accent-ohio-words-86 = robust +accent-ohio-words-replace-86 = cooking + +accent-ohio-words-87 = die +accent-ohio-words-replace-87 = get unalived + +accent-ohio-words-88 = died +accent-ohio-words-replace-88 = was unalived + +accent-ohio-words-89 = goddamn +accent-ohio-words-replace-89 = gyattdamn + +accent-ohio-words-90 = godamn +accent-ohio-words-replace-90 = gyattdamn + +accent-ohio-words-91 = goddamned +accent-ohio-words-replace-91 = gyatdamned + +accent-ohio-words-92 = goddang +accent-ohio-words-replace-92 = gyattdang + +accent-ohio-words-93 = fuck +accent-ohio-words-replace-93 = skibidi + +accent-ohio-words-94 = shit +accent-ohio-words-replace-94 = skibidi + diff --git a/Resources/Locale/en-US/_corvaxnext/entities/bodyparts.ftl b/Resources/Locale/en-US/_corvaxnext/entities/bodyparts.ftl new file mode 100644 index 00000000000..1b679d1e785 --- /dev/null +++ b/Resources/Locale/en-US/_corvaxnext/entities/bodyparts.ftl @@ -0,0 +1,26 @@ +ent-PartMonkey = monkey part +ent-TorsoMonkey = monkey torso +ent-HeadMonkey = monkey head +ent-LeftArmMonkey = monkey left arm +ent-RightArmMonkey = monkey right arm +ent-LeftHandMonkey = monkey left hand +ent-RightHandMonkey = monkey right hand +ent-LeftLegMonkey = monkey left leg +ent-RightLegMonkey = monkey right leg +ent-LeftFootMonkey = monkey left foot +ent-RightFootMonkey = monkey right foot + +ent-PartKobold = kobold part +ent-TorsoKobold = kobold torso +ent-HeadKobold = kobold head +ent-LeftArmKobold = kobold left arm +ent-RightArmKobold = kobold right arm +ent-LeftHandKobold = kobold left hand +ent-RightHandKobold = kobold right hand +ent-LeftLegKobold = kobold left leg +ent-RightLegKobold = kobold right leg +ent-LeftFootKobold = kobold left foot +ent-RightFootKobold = kobold right foot + +ent-OrganAnimalBrain = animal brain +ent-OrganAnimalEyes = animal eyes diff --git a/Resources/Locale/en-US/_corvaxnext/species/species.ftl b/Resources/Locale/en-US/_corvaxnext/species/species.ftl new file mode 100644 index 00000000000..72a9b48f10e --- /dev/null +++ b/Resources/Locale/en-US/_corvaxnext/species/species.ftl @@ -0,0 +1,2 @@ +species-name-monkey = Monkey +species-name-kobold = Kobold diff --git a/Resources/Locale/en-US/_corvaxnext/surgery/surgery-popup.ftl b/Resources/Locale/en-US/_corvaxnext/surgery/surgery-popup.ftl index 8ded2fcaec9..dd49176148b 100644 --- a/Resources/Locale/en-US/_corvaxnext/surgery/surgery-popup.ftl +++ b/Resources/Locale/en-US/_corvaxnext/surgery/surgery-popup.ftl @@ -50,3 +50,4 @@ surgery-popup-step-SurgeryStepInsertHeart = {$user} is inserting a heart into {$ surgery-popup-step-SurgeryStepInsertStomach = {$user} is inserting a stomach into {$target}'s {$part}! surgery-popup-step-SurgeryStepSealOrganWound = {$user} is sealing the wounds on {$target}'s {$part}. +surgery-popup-step-SurgeryStepLobotomize = {$user} is drilling a hole into {$target}'s {$part}. \ No newline at end of file diff --git a/Resources/Locale/en-US/research/technologies.ftl b/Resources/Locale/en-US/research/technologies.ftl index 0b0970ec08f..c70ca9090a4 100644 --- a/Resources/Locale/en-US/research/technologies.ftl +++ b/Resources/Locale/en-US/research/technologies.ftl @@ -71,3 +71,8 @@ research-technology-advanced-spray = Advanced Spray research-technology-bluespace-cargo-transport = Bluespace Cargo Transport research-technology-quantum-fiber-weaving = Quantum Fiber Weaving research-technology-bluespace-chemistry = Bluespace Chemistry + +## _CorvaxNext Change +research-technology-advanced-treatment = Advanced Treatment +research-technology-high-end-surgery = High End Surgical Tools +research-technology-cybernetic-enhancements = Cybernetic Enhancements diff --git a/Resources/Locale/ru-RU/_CorvaxNext/accent/ohio.ftl b/Resources/Locale/ru-RU/_CorvaxNext/accent/ohio.ftl new file mode 100644 index 00000000000..2390989ed5b --- /dev/null +++ b/Resources/Locale/ru-RU/_CorvaxNext/accent/ohio.ftl @@ -0,0 +1,305 @@ +# Ohio +accent-ohio-prefix-1 = Вперёд челы, +accent-ohio-prefix-2 = Чат... +accent-ohio-prefix-3 = Эпик вин, +accent-ohio-prefix-4 = Литерали... +accent-ohio-prefix-5 = БРО... +accent-ohio-prefix-6 = Называйте меня риззлером потомушо, +accent-ohio-prefix-7 = Это типа... +accent-ohio-suffix-1 = . Как в Саратове. +accent-ohio-suffix-2 = . Из Саратова... +accent-ohio-suffix-3 = . Как Марсианин. +accent-ohio-suffix-4 = . Как из Марса. +accent-ohio-suffix-5 = . Для Ризза. +accent-ohio-suffix-6 = . Погодите это реально? +accent-ohio-suffix-7 = . Бро знал что он творит. +accent-ohio-suffix-8 = . Такой молодца! +accent-ohio-suffix-9 = . Эм... Чё за сигма? +accent-ohio-suffix-10 = . У кого столько ризза? +accent-ohio-suffix-11 = . Это такой конец. +accent-ohio-suffix-12 = . Чозанафек! +accent-ohio-suffix-13 = . Нужно бы сделать мьюинг. +accent-ohio-words-1 = харизма +accent-ohio-words-replace-1 = ризз +accent-ohio-words-2 = крутой +accent-ohio-words-replace-2 = сигма +accent-ohio-words-3 = потрясающий +accent-ohio-words-replace-3 = ризз +accent-ohio-words-4 = бог +accent-ohio-words-replace-4 = футбол +accent-ohio-words-5 = атаковал +accent-ohio-words-replace-5 = разоживил +accent-ohio-words-6 = убил +accent-ohio-words-replace-6 = разоживил +accent-ohio-words-7 = убийство +accent-ohio-words-replace-7 = разоживление +accent-ohio-words-8 = мёртв +accent-ohio-words-replace-8 = в Саратове +accent-ohio-words-9 = техи +accent-ohio-words-replace-9 = Закулисье +accent-ohio-words-10 = технические +accent-ohio-words-replace-10 = Закулисные +accent-ohio-words-11 = туннели +accent-ohio-words-replace-11 = Закулисье +accent-ohio-words-12 = атакован +accent-ohio-words-replace-12 = разживлён +accent-ohio-words-13 = ядерный оперативник +accent-ohio-words-replace-13 = сасси бака предатель из Амонг Ас +accent-ohio-words-14 = синдикат +accent-ohio-words-replace-14 = сасси бака предатель из Амонг Ас +accent-ohio-words-15 = синди +accent-ohio-words-replace-15 = сасси бака предатель из Амонг Ас +accent-ohio-words-16 = предатель +accent-ohio-words-replace-16 = сасси бака предатель из Амонг Ас +accent-ohio-words-17 = вот +accent-ohio-words-replace-17 = ну как там, ну вот +accent-ohio-words-18 = вкусный +accent-ohio-words-replace-18 = няма +accent-ohio-words-19 = милый +accent-ohio-words-replace-19 = НЯШНИ!!11! UwU OwO +accent-ohio-words-20 = женщины +accent-ohio-words-replace-20 = ЖЕНЩИНЫ +accent-ohio-words-21 = девочки +accent-ohio-words-replace-21 = ЖЕНЩИНЫ +accent-ohio-words-22 = девочка +accent-ohio-words-replace-22 = ЖЕНЩИНА +accent-ohio-words-23 = woman +accent-ohio-words-replace-23 = ЖЕНЩИНА +accent-ohio-words-24 = мисс +accent-ohio-words-replace-24 = ЖЕНЩИНА +accent-ohio-words-25 = мис +accent-ohio-words-replace-25 = ЖЕНЩИНА +accent-ohio-words-26 = мисис +accent-ohio-words-replace-26 = ЖЕНЩИНА +accent-ohio-words-27 = мис. +accent-ohio-words-replace-27 = ЖЕНЩИНА +accent-ohio-words-28 = миссис +accent-ohio-words-replace-28 = ЖЕНЩИНА +accent-ohio-words-29 = сучка +accent-ohio-words-replace-29 = ЖЕНЩИНА +accent-ohio-words-30 = реально +accent-ohio-words-replace-30 = фор рил +accent-ohio-words-31 = действительно +accent-ohio-words-replace-31 = мелким шрифтом +accent-ohio-words-32 = терпим +accent-ohio-words-replace-32 = терпим карлики +accent-ohio-words-33 = эпик +accent-ohio-words-replace-33 = поггерс +accent-ohio-words-34 = язык +accent-ohio-words-replace-34 = лигма +accent-ohio-words-35 = игра +accent-ohio-words-replace-35 = фуфлоблоки +accent-ohio-words-36 = не +accent-ohio-words-replace-36 = нах +accent-ohio-words-37 = странный +accent-ohio-words-replace-37 = сасси +accent-ohio-words-38 = брат +accent-ohio-words-replace-38 = бро +accent-ohio-words-39 = человек +accent-ohio-words-replace-39 = бро +accent-ohio-words-40 = марихуана +accent-ohio-words-replace-40 = 420 листок +accent-ohio-words-41 = травка +accent-ohio-words-replace-41 = 420 листок +accent-ohio-words-42 = лучший +accent-ohio-words-replace-42 = МОЛОДЕЦ!! +accent-ohio-words-43 = проиграли +accent-ohio-words-replace-43 = залузили +accent-ohio-words-44 = поражение +accent-ohio-words-replace-44 = луз +accent-ohio-words-45 = проиграл +accent-ohio-words-replace-45 = залузил +accent-ohio-words-46 = глупый +accent-ohio-words-replace-46 = гуффи +accent-ohio-words-47 = клоун +accent-ohio-words-replace-47 = гуффи бро +accent-ohio-words-48 = смешной +accent-ohio-words-replace-48 = гуффи +accent-ohio-words-49 = шутка +accent-ohio-words-replace-49 = мем +accent-ohio-words-50 = идиот +accent-ohio-words-replace-50 = бака +accent-ohio-words-51 = урод +accent-ohio-words-replace-51 = нет ризза +accent-ohio-words-52 = засранец +accent-ohio-words-replace-52 = задрот +accent-ohio-words-53 = умн +accent-ohio-words-replace-53 = задрот +accent-ohio-words-54 = учёный +accent-ohio-words-replace-54 = учёный-капчёный +accent-ohio-words-55 = ученый +accent-ohio-words-replace-55 = ученый-капчёный +accent-ohio-words-56 = история +accent-ohio-words-replace-56 = лор +accent-ohio-words-57 = лузер +accent-ohio-words-replace-57 = L и минус реп, лох +accent-ohio-words-58 = хорошо +accent-ohio-words-replace-58 = риззово +accent-ohio-words-59 = кредитов +accent-ohio-words-replace-59 = риззбаксов +accent-ohio-words-60 = долларов +accent-ohio-words-replace-60 = риззбаксов +accent-ohio-words-61 = доллары +accent-ohio-words-replace-61 = риззбаксы +accent-ohio-words-62 = кредиты +accent-ohio-words-replace-62 = риззбаксы +accent-ohio-words-63 = деньги +accent-ohio-words-replace-63 = риззбаксы +accent-ohio-words-64 = убью тебя +accent-ohio-words-replace-64 = отправлю тебя в Бразилию +accent-ohio-words-65 = хуй +accent-ohio-words-replace-65 = ссисочка +accent-ohio-words-66 = хот дог +accent-ohio-words-replace-66 = ссисочка +accent-ohio-words-67 = попа +accent-ohio-words-replace-67 = эсс +accent-ohio-words-68 = попы +accent-ohio-words-replace-68 = эссы +accent-ohio-words-69 = жопа +accent-ohio-words-replace-69 = эсс +accent-ohio-words-70 = убейся +accent-ohio-words-replace-70 = отправь себя в Бразилию тупой типикал Саратов житель +accent-ohio-words-71 = фелинид +accent-ohio-words-replace-71 = жируха +accent-ohio-words-72 = кот +accent-ohio-words-replace-72 = жируха +accent-ohio-words-73 = котёнок +accent-ohio-words-replace-73 = жируха +accent-ohio-words-74 = иан +accent-ohio-words-replace-74 = жируха +accent-ohio-words-75 = собака +accent-ohio-words-replace-75 = жируха +accent-ohio-words-76 = цербер +accent-ohio-words-replace-76 = жируха +accent-ohio-words-77 = щенок +accent-ohio-words-replace-77 = жируха +accent-ohio-words-78 = песик +accent-ohio-words-replace-78 = жируха +accent-ohio-words-79 = tesla +accent-ohio-words-replace-79 = колючий ризз-шар +accent-ohio-words-80 = сингулярность +accent-ohio-words-replace-80 = ссаси дырка +accent-ohio-words-81 = singu +accent-ohio-words-replace-81 = ссаси дырка +accent-ohio-words-82 = singulo +accent-ohio-words-replace-82 = ссаси дырка +accent-ohio-words-83 = тесла убежала +accent-ohio-words-replace-83 = КОЛЮЧИЙ РИЗЗ-ШАР СБЕЖАЛО БЕЗ РОФЛОВ +accent-ohio-words-84 = тесла сбежала +accent-ohio-words-replace-84 = КОЛЮЧИЙ РИЗЗ-ШАР СБЕЖАЛО БЕЗ РОФЛОВ +accent-ohio-words-85 = взлом +accent-ohio-words-replace-85 = взлом типо видеогигра +accent-ohio-words-86 = робаст +accent-ohio-words-replace-86 = сигма-энергия +accent-ohio-words-87 = смерть +accent-ohio-words-replace-87 = разживление +accent-ohio-words-88 = умер +accent-ohio-words-replace-88 = разживился +accent-ohio-words-89 = чёрт +accent-ohio-words-replace-89 = чьортбля +accent-ohio-words-90 = черт +accent-ohio-words-replace-90 = чьортбля +accent-ohio-words-91 = пиздец +accent-ohio-words-replace-91 = овер +accent-ohio-words-92 = писец +accent-ohio-words-replace-92 = овер +accent-ohio-words-93 = блять +accent-ohio-words-replace-93 = скибиди +accent-ohio-words-94 = сука +accent-ohio-words-replace-94 = скибиди +accent-ohio-words-95 = приход +accent-ohio-words-replace-95 = тверк +accent-ohio-words-96 = я в приходе +accent-ohio-words-replace-96 = я тверкаю +accent-ohio-words-97 = суперматерия +accent-ohio-words-replace-97 = кристалл-жратель +accent-ohio-words-98 = ерпшим +accent-ohio-words-replace-98 = ужастим +accent-ohio-words-99 = ерп +accent-ohio-words-replace-99 = ужас +accent-ohio-words-100 = см +accent-ohio-words-replace-100 = кристалл-жратель +accent-ohio-words-101 = генокрад +accent-ohio-words-replace-101 = мутант из саратова +accent-ohio-words-102 = культист +accent-ohio-words-replace-102 = чел из ВК +accent-ohio-words-103 = культисты +accent-ohio-words-replace-103 = сообщество ВК +accent-ohio-words-104 = блоб +accent-ohio-words-replace-104 = кусок Реддита +accent-ohio-words-105 = новости +accent-ohio-words-replace-105 = фейк новости +accent-ohio-words-106 = взять +accent-ohio-words-replace-106 = фанум такс +accent-ohio-words-107 = крутой чел +accent-ohio-words-replace-107 = реальный сигма альфа чувак +accent-ohio-words-108 = наелся +accent-ohio-words-replace-108 = нафанумтаксился +accent-ohio-words-109 = спортсмен +accent-ohio-words-replace-109 = мелстрой +accent-ohio-words-110 = мет +accent-ohio-words-replace-110 = спиды +accent-ohio-words-111 = химия +accent-ohio-words-replace-111 = волтер вайт +accent-ohio-words-112 = химка +accent-ohio-words-replace-112 = волтер вайт +accent-ohio-words-113 = новости +accent-ohio-words-replace-113 = фейк новости +accent-ohio-words-114 = важно +accent-ohio-words-replace-114 = важно как делиться фанум таксом +accent-ohio-words-115 = буквально +accent-ohio-words-replace-115 = литерали +accent-ohio-words-116 = лучший друг +accent-ohio-words-replace-116 = браточек +accent-ohio-words-117 = увидел +accent-ohio-words-replace-117 = увидел в 4к +accent-ohio-words-118 = заметил +accent-ohio-words-replace-118 = заметил в 4к +accent-ohio-words-119 = палец +accent-ohio-words-replace-119 = dogs +accent-ohio-words-120 = босс +accent-ohio-words-replace-120 = томбой +accent-ohio-words-121 = переделай +accent-ohio-words-replace-121 = фикси +accent-ohio-words-122 = исправляй +accent-ohio-words-replace-122 = фикси +accent-ohio-words-123 = чини +accent-ohio-words-replace-123 = фикси +accent-ohio-words-124 = величайший +accent-ohio-words-replace-124 = наиглубочайший +accent-ohio-words-125 = мерзко +accent-ohio-words-replace-125 = ваще фуу +accent-ohio-words-126 = пун пун +accent-ohio-words-replace-126 = ай-пад зависимая обезьяна +accent-ohio-words-127 = служба безопасности +accent-ohio-words-replace-127 = департамент яжемамок +accent-ohio-words-128 = офицер +accent-ohio-words-replace-128 = свинтус +accent-ohio-words-129 = гсб +accent-ohio-words-replace-129 = я не мама +accent-ohio-words-130 = юмор +accent-ohio-words-replace-130 = гнег +accent-ohio-words-131 = кинь +accent-ohio-words-replace-131 = заскамь +accent-ohio-words-132 = оригинальный +accent-ohio-words-replace-132 = переиграл +accent-ohio-words-133 = отсылка +accent-ohio-words-replace-133 = пасхалко +accent-ohio-words-134 = мужик +accent-ohio-words-replace-134 = МУЖЛАН +accent-ohio-words-135 = переделать +accent-ohio-words-replace-135 = пофиксить +accent-ohio-words-136 = исправить +accent-ohio-words-replace-136 = пофиксить +accent-ohio-words-137 = починить +accent-ohio-words-replace-137 = пофиксить +accent-ohio-words-138 = обиделся +accent-ohio-words-replace-138 = плаки плаки +accent-ohio-words-139 = грустно +accent-ohio-words-replace-139 = плаки плаки +accent-ohio-words-140 = я грущю +accent-ohio-words-replace-140 = у меня плаки плаки +accent-ohio-words-141 = всё нормально +accent-ohio-words-replace-141 = нормалдаки +accent-ohio-words-142 = отлично +accent-ohio-words-replace-142 = нормалдаки diff --git a/Resources/Locale/ru-RU/_CorvaxNext/surgery/surgery-borg-modules.ftl b/Resources/Locale/ru-RU/_CorvaxNext/surgery/surgery-borg-modules.ftl new file mode 100644 index 00000000000..94c024c89be --- /dev/null +++ b/Resources/Locale/ru-RU/_CorvaxNext/surgery/surgery-borg-modules.ftl @@ -0,0 +1,3 @@ +ent-BorgModuleSurgery = модуль хирургического киборга + +ent-BorgModuleAdvancedSurgery = модуль продвинутого хирургического киборга diff --git a/Resources/Locale/ru-RU/_corvaxnext/entities/bodyparts.ftl b/Resources/Locale/ru-RU/_corvaxnext/entities/bodyparts.ftl new file mode 100644 index 00000000000..5a148ad0391 --- /dev/null +++ b/Resources/Locale/ru-RU/_corvaxnext/entities/bodyparts.ftl @@ -0,0 +1,26 @@ +ent-PartMonkey = часть обезьяны +ent-TorsoMonkey = торс обезьяны +ent-HeadMonkey = голова обезьяны +ent-LeftArmMonkey = левая рука обезьяны +ent-RightArmMonkey = правая рука обезьяны +ent-LeftHandMonkey = левая ладонь обезьяны +ent-RightHandMonkey = правая ладонь обезьяны +ent-LeftLegMonkey = левая нога обезьяны +ent-RightLegMonkey = правая нога обезьяны +ent-LeftFootMonkey = левая стопа обезьяны +ent-RightFootMonkey = правая стопа обезьяны + +ent-PartKobold = часть кобольда +ent-TorsoKobold = торс кобольда +ent-HeadKobold = голова кобольда +ent-LeftArmKobold = левая рука кобольда +ent-RightArmKobold = правая рука кобольда +ent-LeftHandKobold = левая ладонь кобольда +ent-RightHandKobold = правая ладонь кобольда +ent-LeftLegKobold = левая нога кобольда +ent-RightLegKobold = правая нога кобольда +ent-LeftFootKobold = левая стопа кобольда +ent-RightFootKobold = правая стопа кобольда + +ent-OrganAnimalBrain = мозг животного +ent-OrganAnimalEyes = глаза животного diff --git a/Resources/Locale/ru-RU/_corvaxnext/species/species.ftl b/Resources/Locale/ru-RU/_corvaxnext/species/species.ftl new file mode 100644 index 00000000000..1a3dd5ff7b0 --- /dev/null +++ b/Resources/Locale/ru-RU/_corvaxnext/species/species.ftl @@ -0,0 +1,2 @@ +species-name-monkey = Обезьяна +species-name-kobold = Кобольд diff --git a/Resources/Locale/ru-RU/_corvaxnext/surgery/surgery-cybernetic-items.ftl b/Resources/Locale/ru-RU/_corvaxnext/surgery/surgery-cybernetic-items.ftl new file mode 100644 index 00000000000..0fa549a37fb --- /dev/null +++ b/Resources/Locale/ru-RU/_corvaxnext/surgery/surgery-cybernetic-items.ftl @@ -0,0 +1,48 @@ +## Organs + +ent-BasicCyberneticEyes = базовые кибернетические глаза + .desc = Пара кибернетических глаз, усиливающих ваше зрение и защищающих от повреждений глаз. + +ent-SecurityCyberneticEyes = кибернетические глаза безопасности + .desc = Пара кибернетических глаз, усиливающих ваше зрение, с встроенной системой SecHUD. + +ent-MedicalCyberneticEyes = кибернетические диагностические глаза + .desc = Пара кибернетических глаз, усиливающих ваше зрение, с встроенной системой MedHUD. + +## Body parts + +ent-LeftArmCybernetic = кибернетическая левая рука + .desc = Кибернетическая левая рука, выполненная из материала на основе кремния. + +ent-RightArmCybernetic = кибернетическая правая рука + .desc = Кибернетическая правая рука, выполненная из материала на основе кремния. + +ent-LeftLegCybernetic = кибернетическая левая нога + .desc = Кибернетическая левая нога, выполненная из материала на основе кремния. + +ent-RightLegCybernetic = кибернетическая правая нога + .desc = Кибернетическая правая нога, выполненная из материала на основе кремния. + +ent-LeftHandCybernetic = кибернетическая левая кисть + .desc = Кибернетическая левая кисть, выполненная из материала на основе кремния. + +ent-RightHandCybernetic = кибернетическая правая кисть + .desc = Кибернетическая правая кисть, выполненная из материала на основе кремния. + +ent-LeftFootCybernetic = кибернетическая левая стопа + .desc = Кибернетическая левая стопа, выполненная из материала на основе кремния. + +ent-RightFootCybernetic = кибернетическая правая стопа + .desc = Кибернетическая правая стопа, выполненная из материала на основе кремния. + +ent-JawsOfLifeLeftArm = левая рука "Челюсти Жизни" + .desc = Кибернетическая левая рука с возможностью вскрытия дверей. + +ent-JawsOfLifeRightArm = правая рука "Челюсти Жизни" + .desc = Кибернетическая правая рука с возможностью вскрытия дверей. + +ent-SpeedLeftLeg = левая нога "Б.Е.Г.И" + .desc = Кибернетическая левая нога, позволяющая своему владельцу бегать быстрее. + +ent-SpeedRightLeg = правая нога "Б.Е.Г.И" + .desc =Кибернетическая правая нога, позволяющая своему владельцу бегать быстрее. diff --git a/Resources/Locale/ru-RU/_corvaxnext/surgery/surgery-items.ftl b/Resources/Locale/ru-RU/_corvaxnext/surgery/surgery-items.ftl index 15cb777981e..0945fbe1c82 100644 --- a/Resources/Locale/ru-RU/_corvaxnext/surgery/surgery-items.ftl +++ b/Resources/Locale/ru-RU/_corvaxnext/surgery/surgery-items.ftl @@ -31,3 +31,18 @@ ent-MedicalBiofabMachineBoard = медицинский биофабрикато .desc = Машинная плата, необходимая для создания медицинского биофабрикатора. ent-BoneGel = бутылка костяного геля .desc = Контейнер для костяного геля, нужно время от времени пополнять в специальной машине. + +ent-OrganSpaceAnimalLungs = космические лёгкие +ent-OrganSpaceAnimalHeart = космическое сердце + +ent-TorsoCarp = туловище карпа +ent-TailCarp = плавник карпа + +ent-EnergyCautery = энергетический прибор для прижигания + .desc = Энергетический хирургический инструмент, используемый для прижигания открытых ран, также служит дрелью в активированном состоянии. +ent-EnergyScalpel = энергетический скальпель + .desc = Скальпель с энергетическим лезвием, также служит пилой в активированном состоянии. +ent-AdvancedRetractor = продвинутый ретрактор + .desc = Ретрактор с механическими зажимами, также служит гемостатом в активированном состоянии. +ent-OmnimedTool = медицинский мультитул + .desc = Вершина хирургических инструментов, способен выполнять различные медицинские операции, объединяя функции всех хирургических инструментов. diff --git a/Resources/Locale/ru-RU/_corvaxnext/surgery/surgery-operations.ftl b/Resources/Locale/ru-RU/_corvaxnext/surgery/surgery-operations.ftl index dd7bfaeee9b..fc9b37bd291 100644 --- a/Resources/Locale/ru-RU/_corvaxnext/surgery/surgery-operations.ftl +++ b/Resources/Locale/ru-RU/_corvaxnext/surgery/surgery-operations.ftl @@ -43,6 +43,7 @@ ent-SurgeryAttachLeftHand = Прикрепить левую ладонь ent-SurgeryAttachRightHand = Прикрепить правую ладонь ent-SurgeryAttachLeftFoot = Прикрепить левую стопу ent-SurgeryAttachRightFoot = Прикрепить правую стопу +ent-SurgeryAttachTail = Прикрепить хвост ent-SurgeryTendWoundsBrute = Восстановить механические повреждения ent-SurgeryTendWoundsBurn = Восстановить термические повреждения @@ -57,5 +58,8 @@ ent-SurgeryRemoveLiver = Удалить печень ent-SurgeryInsertLiver = Вставить печень ent-SurgeryRemoveLungs = Удалить лёгкие ent-SurgeryInsertLungs = Вставить лёгкие +ent-SurgeryRemoveStomach = Удалить желудок +ent-SurgeryInsertStomach = Вставить желудок ent-SurgeryRemoveEyes = Удалить глаза ent-SurgeryInsertEyes = Вставить глаза +ent-SurgeryLobotomize = Лоботомировать diff --git a/Resources/Locale/ru-RU/_corvaxnext/surgery/surgery-popup.ftl b/Resources/Locale/ru-RU/_corvaxnext/surgery/surgery-popup.ftl index 82dd9ecc384..9e7acedc0b2 100644 --- a/Resources/Locale/ru-RU/_corvaxnext/surgery/surgery-popup.ftl +++ b/Resources/Locale/ru-RU/_corvaxnext/surgery/surgery-popup.ftl @@ -50,3 +50,4 @@ surgery-popup-step-SurgeryStepInsertHeart = {$user} вставляет серд surgery-popup-step-SurgeryStepInsertStomach = {$user} вставляет желудок в {$part} {$target}! surgery-popup-step-SurgeryStepSealOrganWound = {$user} лечит раны на {$part} {$target}. +surgery-popup-step-SurgeryStepLobotomize = {$user} выполняет трепанацию на {$target} {$part}. diff --git a/Resources/Locale/ru-RU/_corvaxnext/surgery/technologies.ftl b/Resources/Locale/ru-RU/_corvaxnext/surgery/technologies.ftl new file mode 100644 index 00000000000..6199e442df0 --- /dev/null +++ b/Resources/Locale/ru-RU/_corvaxnext/surgery/technologies.ftl @@ -0,0 +1,3 @@ +research-technology-advanced-treatment = Продвинутое лечение +research-technology-high-end-surgery = Передовые хирургические инструменты +research-technology-cybernetic-enhancements = Кибернетические протезы diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/_corvaxnext/body/organs/resomi_organs.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/_corvaxnext/body/organs/resomi_organs.ftl new file mode 100644 index 00000000000..c283341f51e --- /dev/null +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/_corvaxnext/body/organs/resomi_organs.ftl @@ -0,0 +1,2 @@ +ent-OrganResomiLungs = { ent-OrganHumanLungs } + .desc = Продвинутая пара лёгких Резоми. Фильтрует кислород, постоянно перемещая воздух через воздушные мешки. diff --git a/Resources/Prototypes/Body/Organs/Animal/animal.yml b/Resources/Prototypes/Body/Organs/Animal/animal.yml index 6c20ded68e6..37dfaa72a92 100644 --- a/Resources/Prototypes/Body/Organs/Animal/animal.yml +++ b/Resources/Prototypes/Body/Organs/Animal/animal.yml @@ -126,6 +126,11 @@ groups: - id: Alcohol rateModifier: 0.1 + - type: Tag # goob edit + tags: + - Meat + - Organ + - Liver - type: Item size: Small heldPrefix: liver @@ -139,8 +144,7 @@ - type: Sprite state: heart-on - type: Organ - slotId: heart - - type: Heart + slotId: heart # _CorvaxNext - type: Metabolizer maxReagents: 2 metabolizerTypes: [ Animal ] @@ -148,6 +152,12 @@ - id: Medicine - id: Poison - id: Narcotic + - type: Heart # _CorvaxNext + - type: Tag # goob edit + tags: + - Meat + - Organ + - Heart - type: Item size: Small heldPrefix: heart @@ -163,7 +173,7 @@ - state: kidney-l - state: kidney-r - type: Organ - slotId: kidneys + slotId: kidneys # _CorvaxNext - type: Metabolizer maxReagents: 5 metabolizerTypes: [ Animal ] @@ -171,3 +181,64 @@ - type: Item size: Small heldPrefix: kidneys + +- type: entity + id: OrganAnimalBrain + parent: BaseAnimalOrganUnGibbable + name: animal brain + description: "Not so intelligence, not so honk." + components: + - type: Sprite + state: brain + - type: Organ + slotId: brain # backmen: surgery + - type: Input + context: "ghost" + - type: Brain + - type: InputMover + - type: Examiner + - type: BlockMovement + - type: BadFood + - type: Tag + tags: + - Meat + - type: SolutionContainerManager + solutions: + organ: + reagents: + - ReagentId: Nutriment + Quantity: 10 + food: + maxVol: 5 + reagents: + - ReagentId: GreyMatter + Quantity: 5 + - type: FlavorProfile + flavors: + - people + - type: FoodSequenceElement + entries: + Burger: Brain + Taco: Brain + - type: Item + size: Small + heldPrefix: brain + +- type: entity + id: OrganAnimalEyes + parent: BaseAnimalOrgan + name: animal eyes + description: "I see you!" + components: + # start-backmen: surgery + - type: Organ + slotId: eyes + - type: Eyes + # end-backmen: surgery + - type: Sprite + layers: + - state: eyeball-l + - state: eyeball-r + - type: Item + size: Small + heldPrefix: eyeballs diff --git a/Resources/Prototypes/Body/Organs/arachnid.yml b/Resources/Prototypes/Body/Organs/arachnid.yml index 18e5e925c45..a65622b6649 100644 --- a/Resources/Prototypes/Body/Organs/arachnid.yml +++ b/Resources/Prototypes/Body/Organs/arachnid.yml @@ -109,6 +109,11 @@ - id: Medicine - id: Poison - id: Narcotic + - type: Tag # goob edit + tags: + - Meat + - Organ + - Heart - type: entity id: OrganArachnidLiver @@ -132,6 +137,11 @@ groups: - id: Alcohol rateModifier: 0.1 # removes alcohol very slowly along with the stomach removing it as a drink + - type: Tag # goob edit + tags: + - Meat + - Organ + - Liver - type: entity id: OrganArachnidKidneys @@ -164,9 +174,17 @@ layers: - state: eyeball-l - state: eyeball-r - - type: Eyes - - type: Organ + - type: Organ # _CorvaxNext slotId: eyes + - type: Eyes # _CorvaxNext + - type: Tag # goob edit + tags: + - Meat + - Organ + - Eyes + - type: Item + size: Small + heldPrefix: eyeballs - type: entity id: OrganArachnidTongue diff --git a/Resources/Prototypes/Body/Organs/diona.yml b/Resources/Prototypes/Body/Organs/diona.yml index 04b0dae1223..d779dc64113 100644 --- a/Resources/Prototypes/Body/Organs/diona.yml +++ b/Resources/Prototypes/Body/Organs/diona.yml @@ -36,9 +36,9 @@ heldPrefix: brain - type: Sprite state: brain - - type: Brain - - type: Organ - slotId: brain + - type: Organ # _CorvaxNext + slotId: Brain + - type: Brain # _CorvaxNext - type: SolutionContainerManager solutions: organ: @@ -65,8 +65,13 @@ layers: - state: eyeball-l - state: eyeball-r - - type: Eyes - + - type: Organ # _CorvaxNext + slotId: eyes + - type: Tag # goob edit + tags: + - Meat + - Organ + - Eyes - type: entity id: OrganDionaStomach @@ -111,10 +116,10 @@ description: "A spongy mess of slimy, leaf-like structures. Capable of breathing both carbon dioxide and oxygen." components: - type: Sprite - sprite: Mobs/Species/Human/organs.rsi - layers: - - state: lung-l - - state: lung-r + state: lungs + - type: Item + size: Small + heldPrefix: lungs - type: Lung - type: Organ slotId: lungs @@ -146,7 +151,7 @@ description: "The source of incredible, unending intelligence. Honk." components: - type: Brain - - type: Nymph # This will make the organs turn into a nymph when they're removed. + - type: Nymph # This will make the organs turn into a nymph when they're removed. entityPrototype: OrganDionaNymphBrain transferMind: true @@ -185,11 +190,11 @@ - type: entity id: OrganDionaNymphStomach - parent: MobDionaNymphAccent + parent: MobDionaNymphAccent categories: [ HideSpawnMenu ] name: diona nymph suffix: Stomach - description: Contains the stomach of a formerly fully-formed Diona. It doesn't taste any better for it. + description: Contains the stomach of a formerly fully-formed Diona. It doesn't taste any better for it. components: - type: IsDeadIC - type: Body @@ -201,7 +206,7 @@ categories: [ HideSpawnMenu ] name: diona nymph suffix: Lungs - description: Contains the lungs of a formerly fully-formed Diona. Breathtaking. + description: Contains the lungs of a formerly fully-formed Diona. Breathtaking. components: - type: IsDeadIC - type: Body diff --git a/Resources/Prototypes/Body/Organs/slime.yml b/Resources/Prototypes/Body/Organs/slime.yml index f07b734b39c..5b3a5d66f27 100644 --- a/Resources/Prototypes/Body/Organs/slime.yml +++ b/Resources/Prototypes/Body/Organs/slime.yml @@ -39,7 +39,7 @@ size: Small heldPrefix: brain - + - type: entity id: OrganSlimeLungs parent: BaseHumanOrgan diff --git a/Resources/Prototypes/Body/Parts/Animal/kobold.yml b/Resources/Prototypes/Body/Parts/Animal/kobold.yml new file mode 100644 index 00000000000..2ca5bd7ea78 --- /dev/null +++ b/Resources/Prototypes/Body/Parts/Animal/kobold.yml @@ -0,0 +1,119 @@ +# TODO: Add descriptions (many) + +- type: entity + id: PartKobold + parent: [BaseItem, BasePart] + name: "Kobold body part" + abstract: true + components: + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 3 + - ReagentId: Blood + Quantity: 10 + +- type: entity + id: TorsoKobold + name: "Kobold torso" + parent: [PartKobold, BaseTorso] + components: + - type: Sprite + sprite: Mobs/Animals/kobold.rsi + state: "torso_m" + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 10 + - ReagentId: Blood + Quantity: 20 + +- type: entity + id: HeadKobold + name: "Kobold head" + parent: [PartKobold, BaseHead] + components: + - type: Sprite + sprite: Mobs/Animals/kobold.rsi + state: "head_m" + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 5 + - ReagentId: Blood + Quantity: 10 + +- type: entity + id: LeftArmKobold + name: "left Kobold arm" + parent: [PartKobold, BaseLeftArm] + components: + - type: Sprite + sprite: Mobs/Animals/kobold.rsi + state: "l_arm" + +- type: entity + id: RightArmKobold + name: "right Kobold arm" + parent: [PartKobold, BaseRightArm] + components: + - type: Sprite + sprite: Mobs/Animals/kobold.rsi + state: "r_arm" + +- type: entity + id: LeftHandKobold + name: "left Kobold hand" + parent: [PartKobold, BaseLeftHand] + components: + - type: Sprite + sprite: Mobs/Animals/kobold.rsi + state: "l_hand" + +- type: entity + id: RightHandKobold + name: "right Kobold hand" + parent: [PartKobold, BaseRightHand] + components: + - type: Sprite + sprite: Mobs/Animals/kobold.rsi + state: "r_hand" + +- type: entity + id: LeftLegKobold + name: "left Kobold leg" + parent: [PartKobold, BaseLeftLeg] + components: + - type: Sprite + sprite: Mobs/Animals/kobold.rsi + state: "l_leg" + +- type: entity + id: RightLegKobold + name: "right Kobold leg" + parent: [PartKobold, BaseRightLeg] + components: + - type: Sprite + sprite: Mobs/Animals/kobold.rsi + state: "r_leg" + +- type: entity + id: LeftFootKobold + name: "left Kobold foot" + parent: [PartKobold, BaseLeftFoot] + components: + - type: Sprite + sprite: Mobs/Animals/kobold.rsi + state: "l_foot" + +- type: entity + id: RightFootKobold + name: "right Kobold foot" + parent: [PartKobold, BaseRightFoot] + components: + - type: Sprite + sprite: Mobs/Animals/kobold.rsi + state: "r_foot" diff --git a/Resources/Prototypes/Body/Parts/Animal/monkey.yml b/Resources/Prototypes/Body/Parts/Animal/monkey.yml new file mode 100644 index 00000000000..01b8aa4de8a --- /dev/null +++ b/Resources/Prototypes/Body/Parts/Animal/monkey.yml @@ -0,0 +1,119 @@ +# TODO: Add descriptions (many) + +- type: entity + id: PartMonkey + parent: [BaseItem, BasePart] + name: "monkey body part" + abstract: true + components: + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 3 + - ReagentId: Blood + Quantity: 10 + +- type: entity + id: TorsoMonkey + name: "monkey torso" + parent: [PartMonkey, BaseTorso] + components: + - type: Sprite + sprite: Mobs/Animals/monkey.rsi + state: "torso_m" + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 10 + - ReagentId: Blood + Quantity: 20 + +- type: entity + id: HeadMonkey + name: "monkey head" + parent: [PartMonkey, BaseHead] + components: + - type: Sprite + sprite: Mobs/Animals/monkey.rsi + state: "head_m" + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Fat + Quantity: 5 + - ReagentId: Blood + Quantity: 10 + +- type: entity + id: LeftArmMonkey + name: "left monkey arm" + parent: [PartMonkey, BaseLeftArm] + components: + - type: Sprite + sprite: Mobs/Animals/monkey.rsi + state: "l_arm" + +- type: entity + id: RightArmMonkey + name: "right monkey arm" + parent: [PartMonkey, BaseRightArm] + components: + - type: Sprite + sprite: Mobs/Animals/monkey.rsi + state: "r_arm" + +- type: entity + id: LeftHandMonkey + name: "left monkey hand" + parent: [PartMonkey, BaseLeftHand] + components: + - type: Sprite + sprite: Mobs/Animals/monkey.rsi + state: "l_hand" + +- type: entity + id: RightHandMonkey + name: "right monkey hand" + parent: [PartMonkey, BaseRightHand] + components: + - type: Sprite + sprite: Mobs/Animals/monkey.rsi + state: "r_hand" + +- type: entity + id: LeftLegMonkey + name: "left monkey leg" + parent: [PartMonkey, BaseLeftLeg] + components: + - type: Sprite + sprite: Mobs/Animals/monkey.rsi + state: "l_leg" + +- type: entity + id: RightLegMonkey + name: "right monkey leg" + parent: [PartMonkey, BaseRightLeg] + components: + - type: Sprite + sprite: Mobs/Animals/monkey.rsi + state: "r_leg" + +- type: entity + id: LeftFootMonkey + name: "left monkey foot" + parent: [PartMonkey, BaseLeftFoot] + components: + - type: Sprite + sprite: Mobs/Animals/monkey.rsi + state: "l_foot" + +- type: entity + id: RightFootMonkey + name: "right monkey foot" + parent: [PartMonkey, BaseRightFoot] + components: + - type: Sprite + sprite: Mobs/Animals/monkey.rsi + state: "r_foot" diff --git a/Resources/Prototypes/Body/Parts/rat.yml b/Resources/Prototypes/Body/Parts/Animal/rat.yml similarity index 100% rename from Resources/Prototypes/Body/Parts/rat.yml rename to Resources/Prototypes/Body/Parts/Animal/rat.yml diff --git a/Resources/Prototypes/Body/Parts/animal.yml b/Resources/Prototypes/Body/Parts/animal.yml index e9e529ad3a8..c5ab0068241 100644 --- a/Resources/Prototypes/Body/Parts/animal.yml +++ b/Resources/Prototypes/Body/Parts/animal.yml @@ -12,7 +12,7 @@ - type: Sprite sprite: Mobs/Species/Reptilian/parts.rsi - type: Damageable - damageContainer: OrganicPart # _CorvaxNext: surgery Shitmed + damageContainer: OrganicPart # _CorvaxNext: surgery _CorvaxNext - type: BodyPart - type: ContainerContainer containers: diff --git a/Resources/Prototypes/Body/Prototypes/Specific/mothroach.yml b/Resources/Prototypes/Body/Prototypes/Animal/mothroach.yml similarity index 100% rename from Resources/Prototypes/Body/Prototypes/Specific/mothroach.yml rename to Resources/Prototypes/Body/Prototypes/Animal/mothroach.yml diff --git a/Resources/Prototypes/Body/Prototypes/rat.yml b/Resources/Prototypes/Body/Prototypes/Animal/rat.yml similarity index 100% rename from Resources/Prototypes/Body/Prototypes/rat.yml rename to Resources/Prototypes/Body/Prototypes/Animal/rat.yml diff --git a/Resources/Prototypes/Body/Prototypes/kobold.yml b/Resources/Prototypes/Body/Prototypes/kobold.yml new file mode 100644 index 00000000000..8316d1db99b --- /dev/null +++ b/Resources/Prototypes/Body/Prototypes/kobold.yml @@ -0,0 +1,51 @@ +# _CorvaxNext - this is just a copy of human body but with animal organs. +- type: body + id: Kobold + name: "Kobold" + root: torso + slots: + head: + part: HeadKobold + connections: + - torso + organs: + brain: OrganAnimalBrain + eyes: OrganAnimalEyes + torso: + part: TorsoKobold + connections: + - right arm + - left arm + - right leg + - left leg + - head + organs: + heart: OrganAnimalHeart + lungs: OrganAnimalLungs + stomach: OrganAnimalStomach + liver: OrganAnimalLiver + kidneys: OrganAnimalKidneys + right arm: + part: RightArmKobold + connections: + - right hand + left arm: + part: LeftArmKobold + connections: + - left hand + right hand: + part: RightHandKobold + left hand: + part: LeftHandKobold + right leg: + part: RightLegKobold + connections: + - right foot + left leg: + part: LeftLegKobold + connections: + - left foot + right foot: + part: RightFootKobold + left foot: + part: LeftFootKobold diff --git a/Resources/Prototypes/Body/Prototypes/monkey.yml b/Resources/Prototypes/Body/Prototypes/monkey.yml new file mode 100644 index 00000000000..e9a1655ec7a --- /dev/null +++ b/Resources/Prototypes/Body/Prototypes/monkey.yml @@ -0,0 +1,51 @@ +# _CorvaxNext - this is just a copy of human body but with animal organs. +- type: body + id: Monkey + name: "Monkey" + root: torso + slots: + head: + part: HeadMonkey + connections: + - torso + organs: + brain: OrganAnimalBrain + eyes: OrganAnimalEyes + torso: + part: TorsoMonkey + connections: + - right arm + - left arm + - right leg + - left leg + - head + organs: + heart: OrganAnimalHeart + lungs: OrganAnimalLungs + stomach: OrganAnimalStomach + liver: OrganAnimalLiver + kidneys: OrganAnimalKidneys + right arm: + part: RightArmMonkey + connections: + - right hand + left arm: + part: LeftArmMonkey + connections: + - left hand + right hand: + part: RightHandMonkey + left hand: + part: LeftHandMonkey + right leg: + part: RightLegMonkey + connections: + - right foot + left leg: + part: LeftLegMonkey + connections: + - left foot + right foot: + part: RightFootMonkey + left foot: + part: LeftFootMonkey diff --git a/Resources/Prototypes/Corvax/Body/Parts/vulpkanin.yml b/Resources/Prototypes/Corvax/Body/Parts/vulpkanin.yml index 5dc4bcef418..730b7da79be 100644 --- a/Resources/Prototypes/Corvax/Body/Parts/vulpkanin.yml +++ b/Resources/Prototypes/Corvax/Body/Parts/vulpkanin.yml @@ -2,124 +2,269 @@ # TODO BODY: Part damage - type: entity id: PartVulpkanin - parent: [BaseItem, BasePart] + parent: BaseItem name: "vulpkanin body part" abstract: true components: - - type: Extractable - juiceSolution: - reagents: - - ReagentId: Fat - Quantity: 3 - - ReagentId: Blood - Quantity: 10 + - type: Damageable + damageContainer: OrganicPart # _CorvaxNext Change + - type: BodyPart + - type: ContainerContainer + containers: + bodypart: !type:Container + ents: [] + - type: StaticPrice #DynamicPrice + price: 100 + - type: Tag + tags: + - Trash + # _CorvaxNext Change Start + - type: Gibbable + - type: SurgeryTool + startSound: + path: /Audio/_CorvaxNext/Medical/Surgery/organ1.ogg + endSound: + path: /Audio/_CorvaxNext/Medical/Surgery/organ2.ogg + - type: Destructible + thresholds: + - trigger: + !type:DamageTypeTrigger + damageType: Blunt + damage: 110 + behaviors: + - !type:GibPartBehavior { } + - trigger: + !type:DamageTypeTrigger + damageType: Slash + damage: 150 + behaviors: + - !type:GibPartBehavior { } + - trigger: + !type:DamageTypeTrigger + damageType: Heat + damage: 200 + behaviors: + - !type:SpawnEntitiesBehavior + spawnInContainer: true + spawn: + Ash: + min: 1 + max: 1 + - !type:BurnBodyBehavior { } + - !type:PlaySoundBehavior + sound: + collection: MeatLaserImpact + # _CorvaxNext Change End - type: entity id: TorsoVulpkanin name: "vulpkanin torso" - parent: [PartVulpkanin, BaseTorso] + parent: PartVulpkanin components: - - type: Sprite - sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi - state: "torso_m" - - type: Extractable - juiceSolution: - reagents: - - ReagentId: Fat - Quantity: 10 - - ReagentId: Blood - Quantity: 20 + - type: Sprite + netsync: false + sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi + state: "torso_m" + - type: Icon + sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi + state: "torso_m" + # _CorvaxNext Change Start + - type: BodyPart + partType: Torso + toolName: "a torso" + containerName: "torso_slot" + - type: ContainerContainer + containers: + torso_slot: !type:ContainerSlot {} + - type: Destructible + thresholds: + - trigger: + !type:DamageTypeTrigger + damageType: Blunt + damage: 400 + behaviors: + - !type:GibPartBehavior { } + - trigger: + !type:DamageTypeTrigger + damageType: Slash + damage: 400 + behaviors: + - !type:GibPartBehavior { } + - trigger: + !type:DamageTypeTrigger + damageType: Heat + damage: 400 + behaviors: + - !type:SpawnEntitiesBehavior + spawnInContainer: true + spawn: + Ash: + min: 1 + max: 1 + - !type:BurnBodyBehavior { } + - !type:PlaySoundBehavior + sound: + collection: MeatLaserImpact + # _CorvaxNext Change End - type: entity id: HeadVulpkanin name: "vulpkanin head" - parent: [PartVulpkanin, BaseHead] + parent: PartVulpkanin components: - - type: Sprite - sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi - state: "head_m" - - type: Extractable - juiceSolution: - reagents: - - ReagentId: Fat - Quantity: 5 - - ReagentId: Blood - Quantity: 10 + - type: Sprite + netsync: false + sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi + state: "head_m" + - type: Icon + sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi + state: "head_m" + - type: BodyPart + partType: Head + vital: true + toolName: "a head" # _CorvaxNext Change + - type: Input + context: "ghost" + - type: InputMover + - type: GhostOnMove + - type: Tag + tags: + - Head - type: entity id: LeftArmVulpkanin name: "left vulpkanin arm" - parent: [PartVulpkanin, BaseLeftArm] + parent: PartVulpkanin components: - - type: Sprite - sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi - state: "l_arm" + - type: Sprite + netsync: false + sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi + state: "l_arm" + - type: Icon + sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi + state: "l_arm" + - type: BodyPart + partType: Arm + symmetry: Left + toolName: "a left arm" # _CorvaxNext Change - type: entity id: RightArmVulpkanin name: "right vulpkanin arm" - parent: [PartVulpkanin, BaseRightArm] + parent: PartVulpkanin components: - - type: Sprite - sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi - state: "r_arm" + - type: Sprite + netsync: false + sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi + state: "r_arm" + - type: Icon + sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi + state: "r_arm" + - type: BodyPart + partType: Arm + symmetry: Right + toolName: "a right arm" # _CorvaxNext Change - type: entity id: LeftHandVulpkanin name: "left vulpkanin hand" - parent: [PartVulpkanin, BaseLeftHand] + parent: PartVulpkanin components: - - type: Sprite - sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi - state: "l_hand" + - type: Sprite + netsync: false + sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi + state: "l_hand" + - type: Icon + sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi + state: "l_hand" + - type: BodyPart + partType: Hand + symmetry: Left + toolName: "a left hand" # _CorvaxNext Change - type: entity id: RightHandVulpkanin name: "right vulpkanin hand" - parent: [PartVulpkanin, BaseRightHand] + parent: PartVulpkanin components: - - type: Sprite - sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi - state: "r_hand" + - type: Sprite + netsync: false + sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi + state: "r_hand" + - type: Icon + sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi + state: "r_hand" + - type: BodyPart + partType: Hand + symmetry: Right + toolName: "a right hand" # _CorvaxNext Change - type: entity id: LeftLegVulpkanin name: "left vulpkanin leg" - parent: [PartVulpkanin, BaseLeftLeg] + parent: PartVulpkanin components: - - type: Sprite - sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi - state: "l_leg" - - type: MovementBodyPart - walkSpeed : 2.7 - sprintSpeed : 4.5 + - type: Sprite + netsync: false + sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi + state: "l_leg" + - type: Icon + sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi + state: "l_leg" + - type: BodyPart + partType: Leg + symmetry: Left + toolName: "a left leg" # _CorvaxNext Change + - type: MovementBodyPart - type: entity id: RightLegVulpkanin name: "right vulpkanin leg" - parent: [PartVulpkanin, BaseRightLeg] + parent: PartVulpkanin components: - - type: Sprite - sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi - state: "r_leg" - - type: MovementBodyPart - walkSpeed : 2.7 - sprintSpeed : 4.5 + - type: Sprite + netsync: false + sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi + state: "r_leg" + - type: Icon + sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi + state: "r_leg" + - type: BodyPart + partType: Leg + symmetry: Right + toolName: "a right leg" # _CorvaxNext Change + - type: MovementBodyPart - type: entity id: LeftFootVulpkanin name: "left vulpkanin foot" - parent: [PartVulpkanin, BaseLeftFoot] + parent: PartVulpkanin components: - - type: Sprite - sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi - state: "l_foot" + - type: Sprite + netsync: false + sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi + state: "l_foot" + - type: Icon + sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi + state: "l_foot" + - type: BodyPart + partType: Foot + symmetry: Left + toolName: "a left foot" # _CorvaxNext Change - type: entity id: RightFootVulpkanin name: "right vulpkanin foot" - parent: [PartVulpkanin, BaseRightFoot] + parent: PartVulpkanin components: - - type: Sprite - sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi - state: "r_foot" + - type: Sprite + netsync: false + sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi + state: "r_foot" + - type: Icon + sprite: Corvax/Mobs/Species/Vulpkanin/parts.rsi + state: "r_foot" + - type: BodyPart + partType: Foot + symmetry: Right + toolName: "a right foot" # _CorvaxNext Change diff --git a/Resources/Prototypes/Corvax/Body/Prototypes/vulpkanin.yml b/Resources/Prototypes/Corvax/Body/Prototypes/vulpkanin.yml index df3f5d708d4..bdbfc1747af 100644 --- a/Resources/Prototypes/Corvax/Body/Prototypes/vulpkanin.yml +++ b/Resources/Prototypes/Corvax/Body/Prototypes/vulpkanin.yml @@ -12,38 +12,39 @@ eyes: OrganHumanEyes torso: part: TorsoVulpkanin + connections: + - right arm + - left arm + - right leg + - left leg + - head organs: heart: OrganAnimalHeart lungs: OrganHumanLungs stomach: OrganVulpkaninStomach liver: OrganAnimalLiver kidneys: OrganHumanKidneys - connections: - - right_arm - - left_arm - - right_leg - - left_leg - right_arm: + right arm: part: RightArmVulpkanin connections: - - right_hand - left_arm: + - right hand + left arm: part: LeftArmVulpkanin connections: - - left_hand - right_hand: + - left hand + right hand: part: RightHandVulpkanin - left_hand: + left hand: part: LeftHandVulpkanin - right_leg: + right leg: part: RightLegVulpkanin connections: - - right_foot - left_leg: + - right foot + left leg: part: LeftLegVulpkanin connections: - - left_foot - right_foot: + - left foot + right foot: part: RightFootVulpkanin - left_foot: + left foot: part: LeftFootVulpkanin diff --git a/Resources/Prototypes/Corvax/Species/cybernetics.yml b/Resources/Prototypes/Corvax/Species/cybernetics.yml new file mode 100644 index 00000000000..006924024d8 --- /dev/null +++ b/Resources/Prototypes/Corvax/Species/cybernetics.yml @@ -0,0 +1,47 @@ +- type: humanoidBaseSprite + id: MobCyberneticBishopLArm + baseSprite: + sprite: _CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "l_arm-combined" + +- type: humanoidBaseSprite + id: MobCyberneticBishopRArm + baseSprite: + sprite: _CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "r_arm-combined" + +- type: humanoidBaseSprite + id: MobCyberneticBishopLLeg + baseSprite: + sprite: _CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "l_leg-combined" + +- type: humanoidBaseSprite + id: MobCyberneticBishopRLeg + baseSprite: + sprite: _CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "r_leg-combined" + +- type: humanoidBaseSprite + id: MobCyberneticBishopLHand + baseSprite: + sprite: _CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "l_hand" + +- type: humanoidBaseSprite + id: MobCyberneticBishopRHand + baseSprite: + sprite: _CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "r_hand" + +- type: humanoidBaseSprite + id: MobCyberneticBishopLFoot + baseSprite: + sprite: _CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "l_foot" + +- type: humanoidBaseSprite + id: MobCyberneticBishopRFoot + baseSprite: + sprite: _CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "r_foot" diff --git a/Resources/Prototypes/Corvax/Species/kobold.yml b/Resources/Prototypes/Corvax/Species/kobold.yml new file mode 100644 index 00000000000..42542c29164 --- /dev/null +++ b/Resources/Prototypes/Corvax/Species/kobold.yml @@ -0,0 +1,148 @@ +- type: species + id: Kobold + name: species-name-kobold + roundStart: false # sad... + prototype: MobKobold + sprites: MobKoboldSprites + dollPrototype: MobKoboldDummy + skinColoration: Hues + defaultSkinTone: "#9a7c5a" + markingLimits: MobKoboldMarkingLimits + +- type: speciesBaseSprites + id: MobKoboldSprites + sprites: + Special: MobKoboldAnyMarking + Head: MobKoboldHead + Chest: MobKoboldTorso + Tail: MobKoboldTail + Eyes: MobKoboldEyes + HeadTop: MobKoboldHorns + LArm: MobKoboldLArm + RArm: MobKoboldRArm + LHand: MobKoboldLHand + RHand: MobKoboldRHand + LLeg: MobKoboldLLeg + RLeg: MobKoboldRLeg + LFoot: MobKoboldLFoot + RFoot: MobKoboldRFoot + +- type: humanoidBaseSprite + id: MobKoboldAnyMarking + +- type: humanoidBaseSprite + id: MobKoboldMarkingMatchSkin + markingsMatchSkin: true + +- type: humanoidBaseSprite + id: MobKoboldHorns + matchSkin: false + baseSprite: + sprite: Mobs/Customization/reptilian_parts.rsi + state: horns_short + +- type: humanoidBaseSprite + id: MobKoboldHead + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobKoboldHeadMale + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobKoboldHeadFemale + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: head_f + +- type: humanoidBaseSprite + id: MobKoboldTorso + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobKoboldTorsoMale + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobKoboldTorsoFemale + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: torso_f + +- type: humanoidBaseSprite + id: MobKoboldLLeg + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: l_leg + +- type: humanoidBaseSprite + id: MobKoboldLArm + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: l_arm + +- type: humanoidBaseSprite + id: MobKoboldLHand + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: l_hand + +- type: humanoidBaseSprite + id: MobKoboldLFoot + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: l_foot + +- type: humanoidBaseSprite + id: MobKoboldRLeg + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: r_leg + +- type: humanoidBaseSprite + id: MobKoboldRArm + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: r_arm + +- type: humanoidBaseSprite + id: MobKoboldRHand + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: r_hand + +- type: humanoidBaseSprite + id: MobKoboldRFoot + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: r_foot + +- type: humanoidBaseSprite + id: MobKoboldTail + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: tail + +- type: humanoidBaseSprite + id: MobKoboldEyes + baseSprite: + sprite: Mobs/Animals/kobold.rsi + state: eyes + +- type: markingPoints + id: MobKoboldMarkingLimits + points: + Special: # the cat ear joke + points: 1 + required: false + Chest: + points: 1 + required: false diff --git a/Resources/Prototypes/Corvax/Species/monkey.yml b/Resources/Prototypes/Corvax/Species/monkey.yml new file mode 100644 index 00000000000..9102ea7acfa --- /dev/null +++ b/Resources/Prototypes/Corvax/Species/monkey.yml @@ -0,0 +1,144 @@ +- type: species + id: Monkey + name: species-name-monkey + roundStart: false # sad... + prototype: MobMonkey + sprites: MobMonkeySprites + dollPrototype: MobMonkeyDummy + skinColoration: Hues + defaultSkinTone: "#ffffff" + markingLimits: MobMonkeyMarkingLimits + +- type: speciesBaseSprites + id: MobMonkeySprites + sprites: + Special: MobMonkeyAnyMarking + Head: MobMonkeyHead + Chest: MobMonkeyTorso + Tail: MobMonkeyTail + Eyes: MobMonkeyEyes + HeadTop: MobMonkeyAnyMarking + LArm: MobMonkeyLArm + RArm: MobMonkeyRArm + LHand: MobMonkeyLHand + RHand: MobMonkeyRHand + LLeg: MobMonkeyLLeg + RLeg: MobMonkeyRLeg + LFoot: MobMonkeyLFoot + RFoot: MobMonkeyRFoot + +- type: humanoidBaseSprite + id: MobMonkeyAnyMarking + +- type: humanoidBaseSprite + id: MobMonkeyMarkingMatchSkin + markingsMatchSkin: true + +- type: humanoidBaseSprite + id: MobMonkeyHead + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobMonkeyHeadMale + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: head_m + +- type: humanoidBaseSprite + id: MobMonkeyHeadFemale + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: head_f + +- type: humanoidBaseSprite + id: MobMonkeyTorso + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobMonkeyTorsoMale + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: torso_m + +- type: humanoidBaseSprite + id: MobMonkeyTorsoFemale + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: torso_f + +- type: humanoidBaseSprite + id: MobMonkeyLLeg + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: l_leg + +- type: humanoidBaseSprite + id: MobMonkeyLArm + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: l_arm + +- type: humanoidBaseSprite + id: MobMonkeyLHand + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: l_hand + +- type: humanoidBaseSprite + id: MobMonkeyLFoot + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: l_foot + +- type: humanoidBaseSprite + id: MobMonkeyRLeg + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: r_leg + +- type: humanoidBaseSprite + id: MobMonkeyRArm + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: r_arm + +- type: humanoidBaseSprite + id: MobMonkeyRHand + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: r_hand + +- type: humanoidBaseSprite + id: MobMonkeyRFoot + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: r_foot + +- type: humanoidBaseSprite + id: MobMonkeyTail + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: tail + +- type: humanoidBaseSprite + id: MobMonkeyEyes + baseSprite: + sprite: Mobs/Animals/monkey.rsi + state: eyes + +- type: markingPoints + id: MobMonkeyMarkingLimits + points: + Special: # the cat ear joke + points: 1 # Corvax-Sponsors + required: false + HeadTop: + points: 1 + required: false + Chest: + points: 1 + required: false diff --git a/Resources/Prototypes/Entities/Debugging/debug_sweps.yml b/Resources/Prototypes/Entities/Debugging/debug_sweps.yml index 9ba7c85e1e1..1685fba88fa 100644 --- a/Resources/Prototypes/Entities/Debugging/debug_sweps.yml +++ b/Resources/Prototypes/Entities/Debugging/debug_sweps.yml @@ -129,3 +129,55 @@ damage: types: Blunt: 200 + +# _CorvaxNext Change Start + +- type: entity + name: bang severer + parent: BaseItem + id: MeleeDebugSever + description: sever yer parts a week from now + suffix: DEBUG + components: + - type: Tag + tags: + - Debug + - type: Sprite + sprite: Objects/Weapons/Melee/debug.rsi + state: icon + - type: MeleeWeapon + damage: + types: + Slash: 20000 + clickPartDamageMultiplier: 10 + - type: Item + size: Tiny + sprite: Objects/Weapons/Melee/debug.rsi + +- type: entity + name: bang severer 100dmg + parent: MeleeDebugSever + id: MeleeDebugSever100 + components: + - type: Tag + tags: + - Debug + - type: MeleeWeapon + damage: + types: + Slash: 100 + +- type: entity + name: bang severer 200dmg + parent: MeleeDebugSever + id: MeleeDebugSever200 + components: + - type: Tag + tags: + - Debug + - type: MeleeWeapon + damage: + types: + Slash: 200 + +# _CorvaxNext Change End diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/gauze.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/gauze.yml index 870a7cf7d75..9a42088cd97 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/gauze.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/gauze.yml @@ -81,7 +81,7 @@ sprites: - sprite: Mobs/Customization/gauze.rsi state: gauze_shoulder - + - type: marking id: GauzeStomach bodyPart: Chest @@ -179,7 +179,7 @@ sprites: - sprite: Mobs/Customization/gauze.rsi state: gauze_upperleg_r - + - type: marking id: GauzeLowerLegRight bodyPart: RFoot @@ -193,7 +193,7 @@ sprites: - sprite: Mobs/Customization/gauze.rsi state: gauze_lowerleg_r - + - type: marking id: GauzeBoxerWrapRight bodyPart: RHand @@ -207,7 +207,7 @@ sprites: - sprite: Mobs/Customization/gauze.rsi state: gauze_boxerwrap_r - + - type: marking id: GauzeBoxerWrapLeft bodyPart: LHand diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/reptilian.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/reptilian.yml index 19768f8dc23..6a9e97a0023 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/reptilian.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/reptilian.yml @@ -262,7 +262,7 @@ id: LizardHornsArgali bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Kobold] # backmen: species sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_argali @@ -271,7 +271,7 @@ id: LizardHornsAyrshire bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Kobold] # backmen: species sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_ayrshire @@ -280,7 +280,7 @@ id: LizardHornsMyrsore bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Kobold] # backmen: species sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_myrsore @@ -289,7 +289,7 @@ id: LizardHornsBighorn bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Kobold] # backmen: species sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_bighorn @@ -298,7 +298,7 @@ id: LizardHornsDemonic bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Kobold] # backmen: species sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_demonic @@ -307,7 +307,7 @@ id: LizardHornsKoboldEars bodyPart: HeadTop markingCategory: HeadTop - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Kobold] # backmen: species sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_kobold_ears @@ -316,7 +316,7 @@ id: LizardHornsFloppyKoboldEars bodyPart: HeadSide markingCategory: HeadSide - speciesRestriction: [Reptilian] + speciesRestriction: [Reptilian, Kobold] # backmen: species sprites: - sprite: Mobs/Customization/reptilian_parts.rsi state: horns_floppy_kobold_ears diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml index bfe12f6b504..8f8a116a4e3 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml @@ -72,6 +72,7 @@ components: - type: BorgSwitchableType selectedBorgType: medical + - type: SurgeryTarget - type: TTS # Corvax-TTS voice: TrainingRobot diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index a2181453afc..b76c0261a2a 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -858,6 +858,11 @@ - Passive - type: Body prototype: AnimalRuminant + - type: SurgeryTarget # _CorvaxNext + - type: UserInterface # _CorvaxNext + interfaces: + enum.SurgeryUIKey.Key: + type: SurgeryBui - type: HTN rootTask: task: RuminantCompound @@ -1248,6 +1253,8 @@ description: The genetic bipedal ancestor of... Uh... Something. Yeah, there's definitely something on the station that descended from whatever this is. abstract: true components: + - type: HumanoidAppearance + species: Monkey # backmen: species - type: CombatMode - type: SurgeryTarget - type: Targeting @@ -1282,24 +1289,42 @@ - type: Sprite drawdepth: Mobs layers: - - map: ["enum.DamageStateVisualLayers.Base"] - state: monkey - sprite: Mobs/Animals/monkey.rsi - - map: [ "jumpsuit" ] - - map: [ "enum.HumanoidVisualLayers.Handcuffs" ] + - map: [ "enum.HumanoidVisualLayers.Chest" ] + - map: [ "enum.HumanoidVisualLayers.Head" ] + - map: [ "enum.HumanoidVisualLayers.Snout" ] + - map: [ "enum.HumanoidVisualLayers.Eyes" ] + - map: [ "enum.HumanoidVisualLayers.RArm" ] + - map: [ "enum.HumanoidVisualLayers.LArm" ] + - map: [ "enum.HumanoidVisualLayers.RLeg" ] + - map: [ "enum.HumanoidVisualLayers.LLeg" ] + - map: ["jumpsuit"] + - map: ["enum.HumanoidVisualLayers.LFoot"] + - map: ["enum.HumanoidVisualLayers.RFoot"] + - map: ["enum.HumanoidVisualLayers.LHand"] + - map: ["enum.HumanoidVisualLayers.RHand"] + - map: ["enum.HumanoidVisualLayers.Handcuffs"] color: "#ffffff" sprite: Objects/Misc/handcuffs.rsi state: body-overlay-2 visible: false + - map: [ "gloves" ] + - map: [ "shoes" ] - map: [ "ears" ] - map: [ "outerClothing" ] + - map: [ "eyes" ] + - map: [ "belt" ] - map: [ "id" ] + - map: [ "neck" ] + - map: [ "back" ] + - map: [ "enum.HumanoidVisualLayers.FacialHair" ] + - map: [ "enum.HumanoidVisualLayers.Hair" ] + - map: [ "enum.HumanoidVisualLayers.HeadSide" ] + - map: [ "enum.HumanoidVisualLayers.HeadTop" ] + - map: [ "enum.HumanoidVisualLayers.Tail" ] - map: [ "mask" ] - map: [ "head" ] - - map: [ "clownedon" ] - sprite: "Effects/creampie.rsi" - state: "creampie_human" - visible: false + - map: [ "pocket1" ] + - map: [ "pocket2" ] - type: Hands - type: ComplexInteraction - type: GenericVisualizer @@ -1309,8 +1334,8 @@ True: {visible: true} False: {visible: false} - type: Body - prototype: Primate - requiredLegs: 1 # TODO: More than 1 leg + prototype: Monkey + requiredLegs: 2 # finally 2 legs - type: CreamPied - type: FireVisuals sprite: Mobs/Effects/onfire.rsi @@ -1457,6 +1482,11 @@ - type: NameIdentifier group: Kobold - type: LizardAccent + - type: HumanoidAppearance + species: Kobold + - type: Body + prototype: Kobold + requiredLegs: 2 # finally 2 legs - type: ReplacementAccent accent: kobold - type: Speech @@ -1503,47 +1533,6 @@ coldDamageThreshold: 285 currentTemperature: 310.15 specificHeat: 42 - - type: Sprite - drawdepth: Mobs - layers: - - map: ["enum.DamageStateVisualLayers.Base"] - sprite: Mobs/Animals/kobold.rsi - state: kobold - - map: [ "outline" ] - sprite: Mobs/Animals/kobold.rsi - state: outline - - map: [ "horns" ] - sprite: Mobs/Customization/reptilian_parts.rsi - state: horns_short - - map: [ "enum.HumanoidVisualLayers.Handcuffs" ] - color: "#ffffff" - sprite: Objects/Misc/handcuffs.rsi - state: body-overlay-2 - visible: false - - map: [ "ears" ] - - map: [ "id" ] - - map: [ "mask" ] - - map: [ "head" ] - - map: [ "clownedon" ] - sprite: "Effects/creampie.rsi" - state: "creampie_human" - visible: false - - type: RandomSprite - getAllGroups: true - available: - - enum.DamageStateVisualLayers.Base: - kobold: KoboldColors - - horns: - horns_curled: KoboldHornColors - horns_ram: KoboldHornColors - horns_short: KoboldHornColors - horns_myrsore: KoboldHornColors - horns_bighorn: KoboldHornColors - horns_argali: KoboldHornColors - horns_ayrshire: KoboldHornColors - horns_floppy_kobold_ears: Inherit - horns_double: Inherit - horns_kobold_ears: Inherit - type: Butcherable butcheringType: Spike spawned: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml index eb52d04aaa0..b42f2de7d4e 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml @@ -85,6 +85,15 @@ interactFailureString: petting-failure-carp interactFailureSound: path: /Audio/Effects/bite.ogg + # start-backmen: surgery + - type: Body + prototype: Carp + - type: SurgeryTarget + - type: UserInterface + interfaces: + enum.SurgeryUIKey.Key: + type: SurgeryBui + # end-backmen: surgery - type: entity parent: BaseMobCarp diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml index 2dcdddd06ac..7a8ddb902db 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml @@ -305,6 +305,9 @@ - type: FireVisuals sprite: Mobs/Effects/onfire.rsi normalState: Mouse_burning + - type: Food + - type: Item + size: Tiny # _CorvaxNext - Make them edible and pickable. - type: weightedRandomEntity id: RatKingLoot diff --git a/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml b/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml index 198c3ee507c..11ca0497fb8 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml @@ -2,6 +2,11 @@ - type: randomHumanoidSettings id: EventHumanoid + # start-backmen: species + speciesBlacklist: + - Monkey + - Kobold + # end-backmen: species components: - type: RandomHumanoidAppearance randomizeName: false diff --git a/Resources/Prototypes/Entities/Objects/Materials/shards.yml b/Resources/Prototypes/Entities/Objects/Materials/shards.yml index 718d1ad8e3f..02a5b07623a 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/shards.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/shards.yml @@ -78,6 +78,13 @@ - type: DeleteOnTrigger - type: StaticPrice price: 0 + - type: Scalpel # _CorvaxNext + speed: 0.45 + - type: SurgeryTool # _CorvaxNext + startSound: + path: /Audio/_CorvaxNext/Medical/Surgery/scalpel1.ogg + endSound: + path: /Audio/_CorvaxNext/Medical/Surgery/scalpel2.ogg - type: entity parent: ShardBase diff --git a/Resources/Prototypes/Entities/Objects/Misc/pen.yml b/Resources/Prototypes/Entities/Objects/Misc/pen.yml index 55117e63602..694d19980c2 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/pen.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/pen.yml @@ -42,6 +42,13 @@ damage: types: Piercing: 3 +# - type: Tending # _CorvaxNext TODO: Uncomment this when surgeries arent tied to interaction events, but verbs. +# speed: 0.55 +# - type: SurgeryTool # _CorvaxNext +# startSound: +# path: /Audio/_CorvaxNext/Medical/Surgery/retractor1.ogg +# endSound: +# path: /Audio/_CorvaxNext/Medical/Surgery/hemostat1.ogg #TODO: I want the luxury pen to write a cool font like Merriweather in the future. diff --git a/Resources/Prototypes/Entities/Objects/Misc/utensils.yml b/Resources/Prototypes/Entities/Objects/Misc/utensils.yml index e735b2dcddc..e7e112fc445 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/utensils.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/utensils.yml @@ -8,6 +8,13 @@ - type: Item # TODO add inhand sprites for all utensils sprite: Objects/Misc/utensils.rsi - type: SpaceGarbage + - type: Tweezers # _CorvaxNext: Any utensil can poorly remove organs + speed: 0.2 + - type: SurgeryTool # _CorvaxNext + startSound: + path: /Audio/_CorvaxNext/Medical/Surgery/retractor1.ogg + endSound: + path: /Audio/_CorvaxNext/Medical/Surgery/hemostat1.ogg - type: entity parent: UtensilBase @@ -50,6 +57,8 @@ damage: types: Piercing: 5 + - type: Tweezers # _CorvaxNext: Forks are better than spoons + speed: 0.35 - type: entity parent: UtensilBasePlastic @@ -62,6 +71,8 @@ - type: Utensil types: - Fork + - type: Tweezers # _CorvaxNext: Forks are better than spoons + speed: 0.35 - type: entity parent: UtensilBase diff --git a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/tools.yml b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/tools.yml index 727c75c8794..ab37f932bb4 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/tools.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/tools.yml @@ -40,6 +40,15 @@ - type: Item sprite: Objects/Tools/Hydroponics/clippers.rsi storedRotation: -90 + - type: Retractor # _CorvaxNext: Same as wirecutters + speed: 0.35 + - type: Hemostat + speed: 0.6 + - type: SurgeryTool # _CorvaxNext + startSound: + path: /Audio/_CorvaxNext/Medical/Surgery/retractor1.ogg + endSound: + path: /Audio/_CorvaxNext/Medical/Surgery/retractor2.ogg - type: entity name: scythe @@ -87,6 +96,11 @@ Piercing: 2 - type: Item sprite: Objects/Tools/Hydroponics/hatchet.rsi + - type: BoneSaw # _CorvaxNext + speed: 0.35 + - type: SurgeryTool # _CorvaxNext + startSound: + path: /Audio/_CorvaxNext/Medical/Surgery/saw.ogg - type: entity name: spade diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml index 5940027defe..7818a6cfe8f 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml @@ -1,3 +1,5 @@ +# Im not even gonna bother marking this file with _CorvaxNext Change(s), I'm fucking with almost everything. + # Base - type: entity @@ -8,9 +10,9 @@ - type: Sprite - type: StaticPrice price: 20 -# - type: Tag -# tags: -# - SurgeryTool + - type: Tag # _CorvaxNext: surgery + tags: # _CorvaxNext: surgery + - SurgeryTool # _CorvaxNext: surgery - type: SurgeryTool # _CorvaxNext: surgery # Cautery @@ -22,10 +24,10 @@ description: A surgical tool used to cauterize open wounds. components: - type: Sprite - sprite: Objects/Specific/Medical/Surgery/cautery.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/cautery.rsi state: cautery - type: Item - sprite: Objects/Specific/Medical/Surgery/cautery.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/cautery.rsi storedRotation: 90 - type: MeleeWeapon damage: @@ -51,10 +53,10 @@ description: A surgical drill for making holes into hard material. components: - type: Sprite - sprite: Objects/Specific/Medical/Surgery/drill.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/drill.rsi state: drill - type: Item - sprite: Objects/Specific/Medical/Surgery/drill.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/drill.rsi shape: - 0,0,1,0 - 1,1,1,1 @@ -69,8 +71,8 @@ # start-_CorvaxNext: surgery - type: SurgeryTool startSound: - path: /Audio/Medical/Surgery/saw.ogg - - type: SurgicalDrill + path: /Audio/_CorvaxNext/Medical/Surgery/saw.ogg + - type: Drill # end-_CorvaxNext: surgery # Scalpel @@ -91,10 +93,10 @@ types: - Knife - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scalpel.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/scalpel.rsi state: scalpel - type: Item - sprite: Objects/Specific/Medical/Surgery/scalpel.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/scalpel.rsi storedRotation: 90 - type: MeleeWeapon wideAnimationRotation: 90 @@ -122,8 +124,11 @@ description: A pointy piece of glass, abraded to an edge and wrapped in tape for a handle. # Could become a decent tool or weapon with right tool mods. components: - type: Sprite + sprite: Objects/Specific/Medical/Surgery/scalpel.rsi state: shiv - type: Item + sprite: Objects/Specific/Medical/Surgery/scalpel.rsi + storedRotation: 90 heldPrefix: shiv - type: entity @@ -133,13 +138,18 @@ description: Made of more expensive materials, sharper and generally more reliable. components: - type: Sprite + sprite: Objects/Specific/Medical/Surgery/scalpel.rsi state: advanced - type: Item + sprite: Objects/Specific/Medical/Surgery/scalpel.rsi + storedRotation: 90 heldPrefix: advanced - type: MeleeWeapon damage: types: Slash: 12 + - type: Scalpel # _CorvaxNext + speed: 1.25 - type: entity name: laser scalpel @@ -148,11 +158,17 @@ description: A scalpel which uses a directed laser to slice instead of a blade, for more precise surgery while also cauterizing as it cuts. components: - type: Sprite + sprite: Objects/Specific/Medical/Surgery/scalpel.rsi state: laser - type: Item + sprite: Objects/Specific/Medical/Surgery/scalpel.rsi + storedRotation: 90 heldPrefix: laser + - type: Scalpel # _CorvaxNext + speed: 1.5 + # TODO: prevent bleeding from incisions -# Scissors +# Retractor - type: entity name: retractor @@ -161,10 +177,10 @@ description: A surgical tool used to hold open incisions. components: - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/retractor.rsi state: retractor - type: Item - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/retractor.rsi storedRotation: 90 # start-_CorvaxNext: surgery - type: SurgeryTool @@ -175,6 +191,8 @@ - type: Retractor # end-_CorvaxNext: surgery +# Hemostat + - type: entity name: hemostat id: Hemostat @@ -182,11 +200,11 @@ description: A surgical tool used to compress blood vessels to prevent bleeding. components: - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/hemostat.rsi # _CorvaxNext Change state: hemostat - type: Item heldPrefix: hemostat - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/hemostat.rsi # _CorvaxNext Change storedRotation: 90 # start-_CorvaxNext: surgery - type: SurgeryTool @@ -195,6 +213,8 @@ endSound: path: /Audio/Medical/Surgery/hemostat1.ogg - type: Hemostat + - type: Tweezers + - type: Tending # end-_CorvaxNext: surgery # Bone setter @@ -219,7 +239,7 @@ description: A container for bone gel that often needs to be refilled from a specialized machine. components: - type: Sprite - sprite: Objects/Specific/Medical/Surgery/bone_gel.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/bone-gel.rsi state: bone-gel - type: BoneGel @@ -283,6 +303,7 @@ - Sawing speedModifier: 0.5 - type: BoneSaw + speed: 0.5 # end-_CorvaxNext: surgery - type: entity @@ -292,9 +313,11 @@ description: For heavy duty cutting. components: - type: Sprite - state: electric + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/circular-saw.rsi + state: circular-saw - type: Item - heldPrefix: electric + size: Normal + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/circular-saw.rsi - type: MeleeWeapon damage: groups: @@ -306,10 +329,8 @@ qualities: - Sawing speedModifier: 1.5 - - type: SurgeryTool - startSound: - path: /Audio/Medical/Surgery/saw.ogg - type: BoneSaw + speed: 1.5 # end-_CorvaxNext: surgery - type: entity @@ -319,15 +340,153 @@ description: You think you can cut anything with it. components: - type: Sprite + sprite: Objects/Specific/Medical/Surgery/saw.rsi state: advanced - type: Item + size: Normal + sprite: Objects/Specific/Medical/Surgery/saw.rsi + storedRotation: 90 heldPrefix: advanced - type: MeleeWeapon attackRate: 1.5 - # start-_CorvaxNext: surgery +# start-_CorvaxNext: surgery - type: Tool qualities: - Sawing speedModifier: 2.0 + - type: BoneSaw # _CorvaxNext + speed: 2 + +# _CorvaxNext Tools + +- type: entity + name: searing tool + id: EnergyCautery + parent: Cautery + description: A cautery with an energy tip, also serves as a drill in its powered state. + components: + - type: Sprite + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi + state: e-cautery-on + - type: Item + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi + inhandVisuals: + left: + - state: inhand-left-on + right: + - state: inhand-right-on + - type: SurgeryTool + startSound: + path: /Audio/_CorvaxNext/Medical/Surgery/cautery1.ogg + endSound: + path: /Audio/_CorvaxNext/Medical/Surgery/cautery2.ogg + - type: MeleeWeapon + damage: + types: + Piercing: 10 + Heat: 1 + - type: Cautery + speed: 1.5 + - type: Drill + speed: 1.5 + +- type: entity + name: energy scalpel + id: EnergyScalpel + parent: Scalpel + description: A scalpel which uses an energy blade, also serves as a saw in its powered state. + components: + - type: Sprite + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi + state: e-scalpel-on + - type: Item + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi + inhandVisuals: + left: + - state: inhand-left-on + right: + - state: inhand-right-on + - type: SurgeryTool + startSound: + path: /Audio/_CorvaxNext/Medical/Surgery/scalpel1.ogg + endSound: + path: /Audio/_CorvaxNext/Medical/Surgery/scalpel2.ogg + - type: MeleeWeapon + damage: + types: + Slash: 10 + Heat: 1 + - type: Scalpel + speed: 1.5 - type: BoneSaw - # end-_CorvaxNext: surgery + speed: 1.5 + +- type: entity + name: mechanical pinches + id: AdvancedRetractor + parent: Retractor + description: A retractor with mechanical pinches, also serves as a hemostat in its powered state. + components: + - type: Sprite + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi + state: adv-retractor-on + - type: Item + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi + inhandVisuals: + left: + - state: inhand-left-on + right: + - state: inhand-right-on + - type: SurgeryTool + startSound: + path: /Audio/_CorvaxNext/Medical/Surgery/retractor1.ogg + endSound: + path: /Audio/_CorvaxNext/Medical/Surgery/retractor2.ogg + - type: MeleeWeapon + damage: + types: + Slash: 6.5 + Heat: 1 + - type: Hemostat + speed: 1.5 + - type: Retractor + speed: 1.5 + - type: Tweezers + speed: 1.5 + - type: Tending + speed: 1.5 + +- type: entity + name: medical multitool + id: OmnimedTool + parent: BaseToolSurgery + components: + - type: Sprite + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/omnimed.rsi + state: omnimed + - type: Item + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/omnimed.rsi + - type: SurgeryTool + startSound: + path: /Audio/_CorvaxNext/Medical/Surgery/saw.ogg + - type: Hemostat + speed: 2 + - type: Scalpel + speed: 2 + - type: Drill + speed: 2 + - type: BoneSetter + speed: 2 + - type: Retractor + speed: 2 + - type: Cautery + speed: 2 + - type: BoneGel + speed: 2 + - type: BoneSaw + speed: 2 + - type: Tweezers + speed: 2 + - type: Tending + speed: 2 +# end-_CorvaxNext: surgery diff --git a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml index 626f816f06d..d5cb885d191 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml @@ -708,3 +708,44 @@ # Corvax-HiddenDesc-End - type: BorgModuleIcon icon: { sprite: Interface/Actions/actions_borg.rsi, state: syndicate-martyr-module } + +# _CorvaxNext Modules + +- type: entity + id: BorgModuleSurgery + parent: [ BaseBorgModuleMedical, BaseProviderBorgModule ] + name: surgery cyborg module + components: + - type: Sprite + layers: + - state: medical + - state: icon-surgery + - type: ItemBorgModule + items: + - Scalpel + - Drill + - Hemostat + - Retractor + - Cautery + - SawElectric + - BoneGel + - type: BorgModuleIcon + icon: { sprite: Interface/Actions/actions_borg.rsi, state: surgery-module } + +- type: entity + id: BorgModuleAdvancedSurgery + parent: [ BaseBorgModuleMedical, BaseProviderBorgModule ] + name: advanced surgery cyborg module + components: + - type: Sprite + layers: + - state: medical + - state: icon-advanced-surgery + - type: ItemBorgModule + items: + - EnergyScalpel + - EnergyCautery + - AdvancedRetractor + - BoneGel + - type: BorgModuleIcon + icon: { sprite: Interface/Actions/actions_borg.rsi, state: adv-surgery-module } diff --git a/Resources/Prototypes/Entities/Objects/Tools/cable_coils.yml b/Resources/Prototypes/Entities/Objects/Tools/cable_coils.yml index 7cc57faaa4b..e90235844b8 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/cable_coils.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/cable_coils.yml @@ -29,6 +29,16 @@ - type: PhysicalComposition materialComposition: Steel: 15 + # FIXME: Used isnt actually implemented so its still unlimited. + # Uncomment this when its implemented, and make sure it handles StackComponent right + #- type: Hemostat # _CorvaxNext + # speed: 0.15 + #- type: SurgeryTool # _CorvaxNext + # used: true + # startSound: + # path: /Audio/_CorvaxNext/Medical/Surgery/retractor1.ogg + # endSound: + # path: /Audio/_CorvaxNext/Medical/Surgery/hemostat1.ogg - type: entity id: CableHVStack diff --git a/Resources/Prototypes/Entities/Objects/Tools/crowbars.yml b/Resources/Prototypes/Entities/Objects/Tools/crowbars.yml index 8655d53fb61..8fb7863f902 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/crowbars.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/crowbars.yml @@ -41,6 +41,10 @@ size: Normal shape: - 0,0,0,1 + - type: Tweezers # _CorvaxNext + speed: 0.55 + - type: SurgeryTool # _CorvaxNext + startSound: /Audio/Items/crowbar.ogg # Standard (grey) Crowbar - type: entity diff --git a/Resources/Prototypes/Entities/Objects/Tools/lighters.yml b/Resources/Prototypes/Entities/Objects/Tools/lighters.yml index c35d67e7eb4..c171fb555d3 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/lighters.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/lighters.yml @@ -88,6 +88,13 @@ radius: 1.1 #smallest possible color: orange - type: ItemTogglePointLight + - type: Cautery # _CorvaxNext + speed: 0.45 + - type: SurgeryTool # _CorvaxNext + startSound: + collection: lighterOnSounds + endSound: + collection: lighterOffSounds - type: entity name: cheap lighter diff --git a/Resources/Prototypes/Entities/Objects/Tools/matches.yml b/Resources/Prototypes/Entities/Objects/Tools/matches.yml index e8601fcf355..3f84647e2c9 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/matches.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/matches.yml @@ -41,6 +41,13 @@ unlitIcon: match_unlit litIcon: match_lit burntIcon: match_burnt + - type: Cautery # _CorvaxNext + speed: 0.2 + - type: SurgeryTool # _CorvaxNext + startSound: + path: /Audio/Weapons/Guns/Hits/energy_meat1.ogg + endSound: + path: /Audio/Weapons/Guns/Hits/energy_meat1.ogg - type: entity parent: Matchstick diff --git a/Resources/Prototypes/Entities/Objects/Tools/tools.yml b/Resources/Prototypes/Entities/Objects/Tools/tools.yml index 41d167352f2..ec9e16730f4 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/tools.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/tools.yml @@ -43,6 +43,19 @@ Steel: 100 - type: StaticPrice price: 30 + - type: Retractor # _CorvaxNext + speed: 0.35 + - type: Hemostat # _CorvaxNext + speed: 0.6 + - type: SurgeryTool # _CorvaxNext + startSound: + path: /Audio/Items/wirecutter.ogg + params: + variation: 0.125 + endSound: + path: /Audio/Items/wirecutter.ogg + params: + variation: 0.125 - type: entity name: screwdriver @@ -87,6 +100,15 @@ Steel: 100 - type: StaticPrice price: 30 + - type: Retractor # _CorvaxNext + speed: 0.45 + - type: Tending # _CorvaxNext + speed: 0.65 + - type: SurgeryTool # _CorvaxNext + startSound: + collection: Screwdriver + endSound: + path: /Audio/_CorvaxNext/Medical/Surgery/retractor2.ogg - type: entity name: wrench diff --git a/Resources/Prototypes/Entities/Objects/Tools/welders.yml b/Resources/Prototypes/Entities/Objects/Tools/welders.yml index 197dca00ff8..f3923222a2d 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/welders.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/welders.yml @@ -105,6 +105,13 @@ price: 40 - type: IgnitionSource temperature: 700 + - type: Cautery # _CorvaxNext + speed: 0.7 + - type: SurgeryTool # _CorvaxNext + startSound: + collection: Welder + endSound: + collection: WelderOff - type: entity name: industrial welding tool diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml index e7fef78f809..6e4d3a59262 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml @@ -30,6 +30,11 @@ - type: Appearance - type: StaticPrice price: 500 + - type: Cautery # _CorvaxNext + speed: 0.9 + - type: SurgeryTool # _CorvaxNext + endSound: + path: /Audio/Weapons/Guns/Gunshots/laser.ogg - type: entity id: BaseWeaponPowerCell @@ -65,6 +70,11 @@ - type: ContainerContainer containers: gun_magazine: !type:ContainerSlot + - type: Cautery # _CorvaxNext + speed: 0.9 + - type: SurgeryTool # _CorvaxNext + endSound: + path: /Audio/Weapons/Guns/Gunshots/laser.ogg - type: entity id: BaseWeaponBatterySmall diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/armblade.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/armblade.yml index 398c04aee6e..87ad78db75c 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/armblade.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/armblade.yml @@ -21,3 +21,10 @@ size: Normal sprite: Objects/Weapons/Melee/armblade.rsi - type: Prying + - type: Scalpel # _CorvaxNext: surgery + speed: 0.3 + - type: BoneSaw # _CorvaxNext: surgery + speed: 0.75 + - type: SurgeryTool # _CorvaxNext: surgery + startSound: + path: /Audio/_CorvaxNext/Medical/Surgery/saw.ogg diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/chainsaw.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/chainsaw.yml index bfdd94add6c..f196b66297e 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/chainsaw.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/chainsaw.yml @@ -47,3 +47,10 @@ maxVol: 300 - type: UseDelay delay: 1 + - type: BoneSaw # _CorvaxNext: surgery + speed: 0.5 # TODO: arm-mounted version becomes 0.65 + - type: SurgeryTool # _CorvaxNext: surgery + startSound: + path: /Audio/Weapons/chainsawwield.ogg + endSound: + path: /Audio/Weapons/chainsaw.ogg diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml index 2cc527a93e1..a41a2a40ccb 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml @@ -91,6 +91,17 @@ jobRequired: - SalvageSpecialist # Corvax-HiddenDesc-End + - type: Scalpel # _CorvaxNext: surgery + speed: 0.75 + - type: Cautery # _CorvaxNext: surgery: you have to be very, very careful to cauterize with it + speed: 0.2 + - type: SurgeryTool # _CorvaxNext: surgery + startSound: + path: /Audio/Weapons/ebladehum.ogg + endSound: + path: /Audio/Weapons/eblade1.ogg + params: + variation: 0.250 - type: entity name: energy sword diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml index 69407370ce1..d401f68c54c 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml @@ -49,6 +49,13 @@ stealGroup: FireAxe - type: IgniteOnMeleeHit fireStacks: -4 + - type: Scalpel # _CorvaxNext: surgery + speed: 0.3 + - type: BoneSaw # _CorvaxNext: surgery + speed: 0.5 + - type: SurgeryTool # _CorvaxNext: surgery + startSound: + path: /Audio/_CorvaxNext/Medical/Surgery/saw.ogg - type: entity id: FireAxeFlaming diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml index 42a78ef077e..a66e603c7c0 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml @@ -27,6 +27,13 @@ - Slicing useSound: path: /Audio/Items/Culinary/chop.ogg + - type: Scalpel # _CorvaxNext: surgery + speed: 0.65 + - type: SurgeryTool # _CorvaxNext: surgery + startSound: + path: /Audio/_CorvaxNext/Medical/Surgery/scalpel1.ogg + endSound: + path: /Audio/_CorvaxNext/Medical/Surgery/scalpel2.ogg - type: entity name: kitchen knife @@ -74,6 +81,10 @@ guides: - Chef - FoodRecipes + - type: Scalpel # _CorvaxNext: surgery + speed: 0.3 + - type: BoneSaw # _CorvaxNext: surgery: Better than tg 25% because its a cleaver its meant to hack off limbs + speed: 0.5 - type: entity name: combat knife diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index dc2e27a014d..048841e9c4a 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -351,6 +351,9 @@ - FauxTileAstroSnow - OreBagOfHolding - DeviceQuantumSpinInverter + - EnergyScalpel # _CorvaxNext: surgery Change + - EnergyCautery # _CorvaxNext: surgery Change + - AdvancedRetractor # _CorvaxNext: surgery Change - type: EmagLatheRecipes emagDynamicRecipes: - BoxBeanbag @@ -606,6 +609,7 @@ - BorgModuleHarvesting - BorgModuleDefibrillator - BorgModuleAdvancedTreatment + - BorgModuleSurgery # _CorvaxNext: surgery Change - RipleyHarness - RipleyLArm - RipleyRArm @@ -625,6 +629,13 @@ - HamtrLLeg - HamtrRLeg - VimHarness + # _CorvaxNext: surgery Change + - BorgModuleAdvancedSurgery + - JawsOfLifeLeftArm + - JawsOfLifeRightArm + - SpeedLeftLeg + - SpeedRightLeg + - BasicCyberneticEyes - type: MaterialStorage whitelist: tags: @@ -798,6 +809,8 @@ - WeaponLaserCannon - WeaponLaserCarbine - WeaponXrayCannon + - SecurityCyberneticEyes # _CorvaxNext: surgery Change + - MedicalCyberneticEyes # _CorvaxNext: surgery Change - type: MaterialStorage whitelist: tags: @@ -927,6 +940,12 @@ - NTBodyBag # Corvax-Next-AdvancedBodyBags - PrisonerBodyBag # Corvax-Next-AdvancedBodyBags - RadiationBodyBag # Corvax-Next-AdvancedBodyBags + # _CorvaxNext: surgery Change + - EnergyScalpel + - EnergyCautery + - AdvancedRetractor + - OmnimedTool + - MedicalCyberneticEyes - type: EmagLatheRecipes emagDynamicRecipes: - SyndicateBodyBag # Corvax-Next-AdvancedBodyBags diff --git a/Resources/Prototypes/InventoryTemplates/monkey_inventory_template.yml b/Resources/Prototypes/InventoryTemplates/monkey_inventory_template.yml index 19875f7e1bf..25db9e96cf6 100644 --- a/Resources/Prototypes/InventoryTemplates/monkey_inventory_template.yml +++ b/Resources/Prototypes/InventoryTemplates/monkey_inventory_template.yml @@ -1,60 +1,127 @@ - type: inventoryTemplate id: monkey slots: - - name: head - slotTexture: head - slotFlags: HEAD - uiWindowPos: 1,2 - strippingWindowPos: 0,0 - displayName: Head - - name: ears - slotTexture: ears - slotFlags: EARS - stripTime: 3 - uiWindowPos: 0,2 - strippingWindowPos: 1,2 - displayName: Ears - - name: mask - slotTexture: mask - slotFlags: MASK - uiWindowPos: 0,1 - strippingWindowPos: 1,1 - displayName: Mask - - name: jumpsuit - slotTexture: uniform - slotFlags: INNERCLOTHING - stripTime: 6 - uiWindowPos: 1,0 - strippingWindowPos: 0,2 - displayName: Jumpsuit - - name: id - slotTexture: id - fullTextureName: template_small - slotFlags: IDCARD - slotGroup: SecondHotbar - stripTime: 6 - uiWindowPos: 2,1 - strippingWindowPos: 2,4 - dependsOn: jumpsuit - displayName: ID - - name: suitstorage - slotTexture: suit_storage - slotFlags: SUITSTORAGE - slotGroup: MainHotbar - stripTime: 3 - uiWindowPos: 2,0 - strippingWindowPos: 2,5 - dependsOn: outerClothing - dependsOnComponents: - - type: AllowSuitStorage - displayName: Suit Storage - - name: outerClothing - slotTexture: suit - slotFlags: OUTERCLOTHING - stripTime: 6 - uiWindowPos: 1,1 - strippingWindowPos: 1,3 - displayName: Suit - whitelist: - tags: - - MonkeyWearable + - name: jumpsuit + slotTexture: uniform + slotFlags: INNERCLOTHING + stripTime: 6 + uiWindowPos: 0,1 + strippingWindowPos: 0,2 + displayName: Jumpsuit + - name: outerClothing + slotTexture: suit + slotFlags: OUTERCLOTHING + stripTime: 6 + uiWindowPos: 1,1 + strippingWindowPos: 1,2 + displayName: Suit + #backmen:underclothing-start ERP ??? + # - name: undershirt + # slotTexture: undershirt + # slotFlags: UNDERSHIRT + # stripTime: 8 + # uiWindowPos: 4,1 + # strippingWindowPos: 3,1 + # displayName: Undershirt + # - name: underpants + # slotTexture: underpants + # slotFlags: UNDERPANTS + # stripTime: 12 + # uiWindowPos: 4,0 + # strippingWindowPos: 3,2 + # displayName: Underpants + # - name: socks + # slotTexture: socks + # slotFlags: SOCKS + # stripTime: 8 + # uiWindowPos: 4,2 + # strippingWindowPos: 3,3 + # displayName: Socks + #backmen:underclothing-end + - name: mask + slotTexture: mask + slotFlags: MASK + uiWindowPos: 1,2 + strippingWindowPos: 1,1 + displayName: Mask + - name: eyes + slotTexture: glasses + slotFlags: EYES + stripTime: 3 + uiWindowPos: 0,3 + strippingWindowPos: 0,0 + displayName: Eyes + - name: ears + slotTexture: ears + slotFlags: EARS + stripTime: 3 + uiWindowPos: 2,2 + strippingWindowPos: 2,0 + displayName: Ears + - name: head + slotTexture: head + slotFlags: HEAD + uiWindowPos: 1,3 + strippingWindowPos: 1,0 + displayName: Head + - name: pocket1 + slotTexture: pocket + fullTextureName: template_small + slotFlags: POCKET + slotGroup: MainHotbar + stripTime: 3 + uiWindowPos: 0,3 + strippingWindowPos: 0,4 + dependsOn: jumpsuit + displayName: Pocket 1 + stripHidden: true + - name: pocket2 + slotTexture: pocket + fullTextureName: template_small + slotFlags: POCKET + slotGroup: MainHotbar + stripTime: 3 + uiWindowPos: 2,3 + strippingWindowPos: 1,4 + dependsOn: jumpsuit + displayName: Pocket 2 + stripHidden: true + - name: suitstorage + slotTexture: suit_storage + slotFlags: SUITSTORAGE + slotGroup: MainHotbar + stripTime: 3 + uiWindowPos: 2,0 + strippingWindowPos: 2,5 + dependsOn: outerClothing + dependsOnComponents: + - type: AllowSuitStorage + displayName: Suit Storage + - name: id + slotTexture: id + fullTextureName: template_small + slotFlags: IDCARD + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 2,1 + strippingWindowPos: 2,4 + dependsOn: jumpsuit + displayName: ID + - name: belt + slotTexture: belt + fullTextureName: template_small + slotFlags: BELT + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 3,1 + strippingWindowPos: 1,5 + displayName: Belt + - name: back + slotTexture: back + fullTextureName: template_small + slotFlags: BACK + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 3,0 + strippingWindowPos: 0,5 + displayName: Back diff --git a/Resources/Prototypes/Reagents/gases.yml b/Resources/Prototypes/Reagents/gases.yml index 7af730061e1..1a566fac39e 100644 --- a/Resources/Prototypes/Reagents/gases.yml +++ b/Resources/Prototypes/Reagents/gases.yml @@ -282,7 +282,7 @@ shouldHave: false key: ForcedSleep component: ForcedSleeping - time: 6 # This reeks, but I guess it works LMAO + time: 300 # This reeks, but I guess it works LMAO type: Add - !type:HealthChange conditions: diff --git a/Resources/Prototypes/Recipes/Lathes/medical.yml b/Resources/Prototypes/Recipes/Lathes/medical.yml index 08250290ec7..392246eeec2 100644 --- a/Resources/Prototypes/Recipes/Lathes/medical.yml +++ b/Resources/Prototypes/Recipes/Lathes/medical.yml @@ -215,3 +215,55 @@ materials: Steel: 100 Plastic: 100 + +# _CorvaxNext: surgery Recipes + +- type: latheRecipe + id: MedicalCyberneticEyes + result: MedicalCyberneticEyes + category: Robotics + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Plastic: 500 + Gold: 300 + Silver: 300 + +- type: latheRecipe + id: EnergyScalpel + result: EnergyScalpel + completetime: 2 + materials: + Steel: 600 + Glass: 150 + Gold: 150 + +- type: latheRecipe + id: AdvancedRetractor + result: AdvancedRetractor + completetime: 2 + materials: + Steel: 600 + Glass: 150 + Silver: 150 + +- type: latheRecipe + id: EnergyCautery + result: EnergyCautery + completetime: 2 + materials: + Steel: 600 + Glass: 150 + Plasma: 150 + +- type: latheRecipe + id: OmnimedTool + result: OmnimedTool + completetime: 2 + materials: + Steel: 600 + Glass: 150 + Gold: 150 + Silver: 150 + Plasma: 150 diff --git a/Resources/Prototypes/Recipes/Lathes/robotics.yml b/Resources/Prototypes/Recipes/Lathes/robotics.yml index a4413e01ebe..f5011d4d417 100644 --- a/Resources/Prototypes/Recipes/Lathes/robotics.yml +++ b/Resources/Prototypes/Recipes/Lathes/robotics.yml @@ -195,3 +195,86 @@ parent: BaseBorgModuleRecipe id: BorgModuleHarvesting result: BorgModuleHarvesting + +# _CorvaxNext: surgery Recipes + +- type: latheRecipe + id: BorgModuleSurgery + result: BorgModuleSurgery + category: Robotics + completetime: 3 + materials: + Steel: 250 + Glass: 250 + Plastic: 250 + +- type: latheRecipe + id: BorgModuleAdvancedSurgery + result: BorgModuleAdvancedSurgery + category: Robotics + completetime: 3 + materials: + Steel: 500 + Glass: 500 + Plastic: 250 + Gold: 50 + +- type: latheRecipe + id: JawsOfLifeLeftArm + result: JawsOfLifeLeftArm + category: Robotics + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Plastic: 500 + Gold: 300 + Silver: 300 + +- type: latheRecipe + id: JawsOfLifeRightArm + result: JawsOfLifeRightArm + category: Robotics + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Plastic: 500 + Gold: 300 + Silver: 300 + +- type: latheRecipe + id: SpeedLeftLeg + result: SpeedLeftLeg + category: Robotics + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Plastic: 500 + Gold: 300 + Silver: 300 + +- type: latheRecipe + id: SpeedRightLeg + result: SpeedRightLeg + category: Robotics + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Plastic: 500 + Gold: 300 + Silver: 300 + +- type: latheRecipe + id: BasicCyberneticEyes + result: BasicCyberneticEyes + category: Robotics + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Plastic: 500 + Gold: 300 + Silver: 300 diff --git a/Resources/Prototypes/Recipes/Lathes/security.yml b/Resources/Prototypes/Recipes/Lathes/security.yml index f6f303e5e3b..55993b26a6b 100644 --- a/Resources/Prototypes/Recipes/Lathes/security.yml +++ b/Resources/Prototypes/Recipes/Lathes/security.yml @@ -676,3 +676,17 @@ Plastic: 1000 Plasma: 500 Glass: 500 + +# _CorvaxNext: surgery Recipes + +- type: latheRecipe + id: SecurityCyberneticEyes + result: SecurityCyberneticEyes + category: Robotics + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Plastic: 500 + Gold: 300 + Silver: 300 diff --git a/Resources/Prototypes/Research/civilianservices.yml b/Resources/Prototypes/Research/civilianservices.yml index 7c7baa92351..bb146b09a33 100644 --- a/Resources/Prototypes/Research/civilianservices.yml +++ b/Resources/Prototypes/Research/civilianservices.yml @@ -132,18 +132,42 @@ - PrisonerBodyBag # Corvax-Next-AdvancedBodyBags - RadiationBodyBag # Corvax-Next-AdvancedBodyBags +# _CorvaxNext: surgery Change Start - type: technology - id: MechanizedTreatment - name: research-technology-mechanized-treatment + id: AdvancedTreatment + name: research-technology-advanced-treatment icon: - sprite: Mobs/Silicon/chassis.rsi - state: medical + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi + state: e-scalpel-on discipline: CivilianServices tier: 2 cost: 5000 recipeUnlocks: - BorgModuleAdvancedTreatment - BorgModuleDefibrillator + - EnergyScalpel + - EnergyCautery + - AdvancedRetractor + - BorgModuleAdvancedSurgery + +- type: technology + id: CyberneticEnhancements + name: research-technology-cybernetic-enhancements + icon: + sprite: _CorvaxNext/Mobs/Species/IPC/organs.rsi + state: eyes + discipline: CivilianServices + tier: 2 + cost: 15000 + recipeUnlocks: + - JawsOfLifeLeftArm + - JawsOfLifeRightArm + - SpeedLeftLeg + - SpeedRightLeg + - BasicCyberneticEyes + - SecurityCyberneticEyes + - MedicalCyberneticEyes +# _CorvaxNext: surgery Change End - type: technology id: AdvancedCleaning diff --git a/Resources/Prototypes/Species/species_weights.yml b/Resources/Prototypes/Species/species_weights.yml index f1b05d66e8d..63c196b95d6 100644 --- a/Resources/Prototypes/Species/species_weights.yml +++ b/Resources/Prototypes/Species/species_weights.yml @@ -5,5 +5,4 @@ Human: 5 Reptilian: 4 SlimePerson: 4 - Vulpkanin: 4 # Corvax-Vulp Diona: 2 diff --git a/Resources/Prototypes/_CorvaxNext/Accents/word_replacements.yml b/Resources/Prototypes/_CorvaxNext/Accents/word_replacements.yml new file mode 100644 index 00000000000..56ae521da4a --- /dev/null +++ b/Resources/Prototypes/_CorvaxNext/Accents/word_replacements.yml @@ -0,0 +1,140 @@ +- type: accent + id: ohio + wordReplacements: + accent-ohio-words-1: accent-ohio-words-replace-1 + accent-ohio-words-2: accent-ohio-words-replace-2 + accent-ohio-words-3: accent-ohio-words-replace-3 + accent-ohio-words-4: accent-ohio-words-replace-4 + accent-ohio-words-5: accent-ohio-words-replace-5 + accent-ohio-words-6: accent-ohio-words-replace-6 + accent-ohio-words-7: accent-ohio-words-replace-7 + accent-ohio-words-8: accent-ohio-words-replace-8 + accent-ohio-words-9: accent-ohio-words-replace-9 + accent-ohio-words-10: accent-ohio-words-replace-10 + accent-ohio-words-11: accent-ohio-words-replace-11 + accent-ohio-words-12: accent-ohio-words-replace-12 + accent-ohio-words-13: accent-ohio-words-replace-13 + accent-ohio-words-14: accent-ohio-words-replace-14 + accent-ohio-words-15: accent-ohio-words-replace-15 + accent-ohio-words-16: accent-ohio-words-replace-16 + accent-ohio-words-17: accent-ohio-words-replace-17 + accent-ohio-words-18: accent-ohio-words-replace-18 + accent-ohio-words-19: accent-ohio-words-replace-19 + accent-ohio-words-20: accent-ohio-words-replace-20 + accent-ohio-words-21: accent-ohio-words-replace-21 + accent-ohio-words-22: accent-ohio-words-replace-22 + accent-ohio-words-23: accent-ohio-words-replace-23 + accent-ohio-words-24: accent-ohio-words-replace-24 + accent-ohio-words-25: accent-ohio-words-replace-25 + accent-ohio-words-26: accent-ohio-words-replace-26 + accent-ohio-words-27: accent-ohio-words-replace-27 + accent-ohio-words-28: accent-ohio-words-replace-28 + accent-ohio-words-29: accent-ohio-words-replace-29 + accent-ohio-words-30: accent-ohio-words-replace-30 + accent-ohio-words-31: accent-ohio-words-replace-31 + accent-ohio-words-32: accent-ohio-words-replace-32 + accent-ohio-words-33: accent-ohio-words-replace-33 + accent-ohio-words-34: accent-ohio-words-replace-34 + accent-ohio-words-35: accent-ohio-words-replace-35 + accent-ohio-words-36: accent-ohio-words-replace-36 + accent-ohio-words-37: accent-ohio-words-replace-37 + accent-ohio-words-38: accent-ohio-words-replace-38 + accent-ohio-words-39: accent-ohio-words-replace-39 + accent-ohio-words-40: accent-ohio-words-replace-40 + accent-ohio-words-41: accent-ohio-words-replace-41 + accent-ohio-words-42: accent-ohio-words-replace-42 + accent-ohio-words-43: accent-ohio-words-replace-43 + accent-ohio-words-44: accent-ohio-words-replace-44 + accent-ohio-words-45: accent-ohio-words-replace-45 + accent-ohio-words-46: accent-ohio-words-replace-46 + accent-ohio-words-47: accent-ohio-words-replace-47 + accent-ohio-words-48: accent-ohio-words-replace-48 + accent-ohio-words-49: accent-ohio-words-replace-49 + accent-ohio-words-50: accent-ohio-words-replace-50 + accent-ohio-words-51: accent-ohio-words-replace-51 + accent-ohio-words-52: accent-ohio-words-replace-52 + accent-ohio-words-53: accent-ohio-words-replace-53 + accent-ohio-words-54: accent-ohio-words-replace-54 + accent-ohio-words-55: accent-ohio-words-replace-55 + accent-ohio-words-56: accent-ohio-words-replace-56 + accent-ohio-words-57: accent-ohio-words-replace-57 + accent-ohio-words-58: accent-ohio-words-replace-58 + accent-ohio-words-59: accent-ohio-words-replace-59 + accent-ohio-words-60: accent-ohio-words-replace-60 + accent-ohio-words-61: accent-ohio-words-replace-61 + accent-ohio-words-62: accent-ohio-words-replace-62 + accent-ohio-words-63: accent-ohio-words-replace-63 + accent-ohio-words-64: accent-ohio-words-replace-64 + accent-ohio-words-65: accent-ohio-words-replace-65 + accent-ohio-words-66: accent-ohio-words-replace-66 + accent-ohio-words-67: accent-ohio-words-replace-67 + accent-ohio-words-68: accent-ohio-words-replace-68 + accent-ohio-words-69: accent-ohio-words-replace-69 + accent-ohio-words-70: accent-ohio-words-replace-70 + accent-ohio-words-71: accent-ohio-words-replace-71 + accent-ohio-words-72: accent-ohio-words-replace-72 + accent-ohio-words-73: accent-ohio-words-replace-73 + accent-ohio-words-74: accent-ohio-words-replace-74 + accent-ohio-words-75: accent-ohio-words-replace-75 + accent-ohio-words-76: accent-ohio-words-replace-76 + accent-ohio-words-77: accent-ohio-words-replace-77 + accent-ohio-words-78: accent-ohio-words-replace-78 + accent-ohio-words-79: accent-ohio-words-replace-79 + accent-ohio-words-80: accent-ohio-words-replace-80 + accent-ohio-words-81: accent-ohio-words-replace-81 + accent-ohio-words-82: accent-ohio-words-replace-82 + accent-ohio-words-83: accent-ohio-words-replace-83 + accent-ohio-words-84: accent-ohio-words-replace-84 + accent-ohio-words-85: accent-ohio-words-replace-85 + accent-ohio-words-86: accent-ohio-words-replace-86 + accent-ohio-words-87: accent-ohio-words-replace-87 + accent-ohio-words-88: accent-ohio-words-replace-88 + accent-ohio-words-89: accent-ohio-words-replace-89 + accent-ohio-words-90: accent-ohio-words-replace-90 + accent-ohio-words-91: accent-ohio-words-replace-91 + accent-ohio-words-92: accent-ohio-words-replace-92 + accent-ohio-words-93: accent-ohio-words-replace-93 + accent-ohio-words-94: accent-ohio-words-replace-94 + accent-ohio-words-95: accent-ohio-words-replace-95 + accent-ohio-words-96: accent-ohio-words-replace-96 + accent-ohio-words-97: accent-ohio-words-replace-97 + accent-ohio-words-98: accent-ohio-words-replace-98 + accent-ohio-words-99: accent-ohio-words-replace-99 + accent-ohio-words-100: accent-ohio-words-replace-100 + accent-ohio-words-101: accent-ohio-words-replace-101 + accent-ohio-words-102: accent-ohio-words-replace-102 + accent-ohio-words-103: accent-ohio-words-replace-103 + accent-ohio-words-104: accent-ohio-words-replace-104 + accent-ohio-words-105: accent-ohio-words-replace-105 + accent-ohio-words-106: accent-ohio-words-replace-106 + accent-ohio-words-107: accent-ohio-words-replace-107 + accent-ohio-words-108: accent-ohio-words-replace-108 + accent-ohio-words-109: accent-ohio-words-replace-109 + accent-ohio-words-110: accent-ohio-words-replace-110 + accent-ohio-words-111: accent-ohio-words-replace-111 + accent-ohio-words-112: accent-ohio-words-replace-112 + accent-ohio-words-113: accent-ohio-words-replace-113 + accent-ohio-words-114: accent-ohio-words-replace-114 + accent-ohio-words-115: accent-ohio-words-replace-115 + accent-ohio-words-116: accent-ohio-words-replace-116 + accent-ohio-words-117: accent-ohio-words-replace-117 + accent-ohio-words-118: accent-ohio-words-replace-118 + accent-ohio-words-119: accent-ohio-words-replace-119 + accent-ohio-words-120: accent-ohio-words-replace-120 + accent-ohio-words-121: accent-ohio-words-replace-121 + accent-ohio-words-122: accent-ohio-words-replace-122 + accent-ohio-words-123: accent-ohio-words-replace-123 + accent-ohio-words-124: accent-ohio-words-replace-124 + accent-ohio-words-125: accent-ohio-words-replace-125 + accent-ohio-words-126: accent-ohio-words-replace-126 + accent-ohio-words-127: accent-ohio-words-replace-127 + accent-ohio-words-128: accent-ohio-words-replace-128 + accent-ohio-words-129: accent-ohio-words-replace-129 + accent-ohio-words-130: accent-ohio-words-replace-130 + accent-ohio-words-131: accent-ohio-words-replace-131 + accent-ohio-words-132: accent-ohio-words-replace-132 + accent-ohio-words-133: accent-ohio-words-replace-133 + accent-ohio-words-134: accent-ohio-words-replace-134 + accent-ohio-words-135: accent-ohio-words-replace-135 + accent-ohio-words-136: accent-ohio-words-replace-136 + accent-ohio-words-137: accent-ohio-words-replace-137 diff --git a/Resources/Prototypes/_CorvaxNext/Body/Organs/Animal/space.yml b/Resources/Prototypes/_CorvaxNext/Body/Organs/Animal/space.yml new file mode 100644 index 00000000000..1196d286927 --- /dev/null +++ b/Resources/Prototypes/_CorvaxNext/Body/Organs/Animal/space.yml @@ -0,0 +1,17 @@ +- type: entity + parent: OrganAnimalLungs + id: OrganSpaceAnimalLungs + name: space animal lungs + components: + - type: Organ + onAdd: + - type: RespiratorImmunity + +- type: entity + parent: OrganAnimalHeart + id: OrganSpaceAnimalHeart + name: space animal heart + components: + - type: Organ + onAdd: + - type: PressureImmunity diff --git a/Resources/Prototypes/_CorvaxNext/Body/Organs/cybernetic.yml b/Resources/Prototypes/_CorvaxNext/Body/Organs/cybernetic.yml new file mode 100644 index 00000000000..019c4e2093b --- /dev/null +++ b/Resources/Prototypes/_CorvaxNext/Body/Organs/cybernetic.yml @@ -0,0 +1,51 @@ +- type: entity + parent: OrganHumanEyes + abstract: true + id: BaseCyberneticEyes + components: + - type: Cybernetics + - type: Sprite + sprite: _CorvaxNext/Mobs/Species/IPC/organs.rsi + state: "eyes" + +- type: entity + parent: BaseCyberneticEyes + id: BasicCyberneticEyes + name: cybernetic eyes + description: A pair of cybernetic eyes that enhance your vision, and protect you from eye damage. + components: + - type: Organ + onAdd: + - type: FlashImmunity + - type: EyeProtection + +- type: entity + parent: BaseCyberneticEyes + id: SecurityCyberneticEyes + name: cybernetic security eyes + description: A pair of cybernetic eyes that enhance your vision, featuring an integrated SecHUD. + components: + - type: Organ + onAdd: + - type: FlashImmunity + - type: EyeProtection + - type: ShowJobIcons + - type: ShowMindShieldIcons + - type: ShowCriminalRecordIcons + +- type: entity + parent: BaseCyberneticEyes + id: MedicalCyberneticEyes + name: cybernetic diagnostic eyes + description: A pair of cybernetic eyes that enhance your vision, featuring an integrated MedHUD. + components: + - type: Organ + onAdd: + - type: FlashImmunity + - type: EyeProtection + - type: ShowHealthBars + damageContainers: + - Biological + - type: ShowHealthIcons + damageContainers: + - Biological diff --git a/Resources/Prototypes/_CorvaxNext/Body/Organs/generic.yml b/Resources/Prototypes/_CorvaxNext/Body/Organs/generic.yml new file mode 100644 index 00000000000..9f032de0748 --- /dev/null +++ b/Resources/Prototypes/_CorvaxNext/Body/Organs/generic.yml @@ -0,0 +1,23 @@ +- type: entity + parent: OrganHumanHeart + id: BioSynthHeart + name: bio-synthetic heart + description: This heart can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: OrganHumanLiver + id: BioSynthLiver + name: bio-synthetic liver + description: This liver can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: OrganHumanLungs + id: BioSynthLungs + name: bio-synthetic lungs + description: These lungs can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: OrganHumanEyes + id: BioSynthEyes + name: bio-synthetic eyes + description: These eyes can be transplanted into any living organism and it will adapt to its recipient. diff --git a/Resources/Prototypes/_CorvaxNext/Body/Organs/resomi.yml b/Resources/Prototypes/_CorvaxNext/Body/Organs/resomi.yml new file mode 100644 index 00000000000..176722ca1cb --- /dev/null +++ b/Resources/Prototypes/_CorvaxNext/Body/Organs/resomi.yml @@ -0,0 +1,36 @@ +- type: entity + id: OrganResomiLungs + parent: BaseHumanOrgan + name: lungs + description: "An advanced pair of avian lungs. Filters oxygen by way of moving air constantly through air sacs." + components: + - type: Sprite + layers: + - state: lung-l + - state: lung-r + - type: Lung + - type: Organ + slotId: lungs + - type: Metabolizer + updateInterval: 2.0 + removeEmpty: true + solutionOnBody: false + solution: "Lung" + metabolizerTypes: [ Human ] + groups: + - id: Gas + rateModifier: 200.0 + - type: SolutionContainerManager + solutions: + organ: + reagents: + - ReagentId: Nutriment + Quantity: 10 + Lung: + maxVol: 100.0 + canReact: false + food: + maxVol: 5 + reagents: + - ReagentId: UncookedAnimalProteins + Quantity: 5 diff --git a/Resources/Prototypes/_CorvaxNext/Body/Parts/animal.yml b/Resources/Prototypes/_CorvaxNext/Body/Parts/animal.yml new file mode 100644 index 00000000000..1f1c278291b --- /dev/null +++ b/Resources/Prototypes/_CorvaxNext/Body/Parts/animal.yml @@ -0,0 +1,37 @@ +- type: entity + abstract: true + parent: PartAnimal + id: BaseCarpPart + components: + - type: Sprite + sprite: _CorvaxNext/Mobs/Aliens/Carps/carp_parts.rsi + +- type: entity + categories: [ HideSpawnMenu ] + parent: BaseCarpPart + id: TailCarp + name: carp tail + description: Unique glands in this tail let space carp fly in a vacuum. + components: + - type: Sprite + layers: + - state: tail + - type: BodyPart + partType: Tail + - type: MovementBodyPart + walkSpeed: 2.5 + sprintSpeed: 3.5 + # TODO: Make it actually needed. Legs are hardcoded to be the only parts that matter for movement. + # TODO: space flight stuff + +- type: entity + categories: [ HideSpawnMenu ] + parent: BaseCarpPart + id: TorsoCarp + name: carp torso + components: + - type: Sprite + layers: + - state: torso + - type: BodyPart + partType: Torso diff --git a/Resources/Prototypes/_CorvaxNext/Body/Parts/resomi.yml b/Resources/Prototypes/_CorvaxNext/Body/Parts/resomi.yml index a3b03952e3b..262effec50f 100644 --- a/Resources/Prototypes/_CorvaxNext/Body/Parts/resomi.yml +++ b/Resources/Prototypes/_CorvaxNext/Body/Parts/resomi.yml @@ -1,118 +1,270 @@ +# surgery resomi + - type: entity id: PartResomi - parent: [BaseItem, BasePart] + parent: BaseItem name: "resomi body part" abstract: true components: - - type: Extractable - juiceSolution: - reagents: - - ReagentId: Fat - Quantity: 3 - - ReagentId: Blood - Quantity: 10 + - type: Damageable + damageContainer: OrganicPart # _CorvaxNext Change + - type: BodyPart + - type: ContainerContainer + containers: + bodypart: !type:Container + ents: [] + - type: StaticPrice #DynamicPrice + price: 100 + - type: Tag + tags: + - Trash + # _CorvaxNext Change Start + - type: Gibbable + - type: SurgeryTool + startSound: + path: /Audio/_CorvaxNext/Medical/Surgery/organ1.ogg + endSound: + path: /Audio/_CorvaxNext/Medical/Surgery/organ2.ogg + - type: Destructible + thresholds: + - trigger: + !type:DamageTypeTrigger + damageType: Blunt + damage: 110 + behaviors: + - !type:GibPartBehavior { } + - trigger: + !type:DamageTypeTrigger + damageType: Slash + damage: 150 + behaviors: + - !type:GibPartBehavior { } + - trigger: + !type:DamageTypeTrigger + damageType: Heat + damage: 200 + behaviors: + - !type:SpawnEntitiesBehavior + spawnInContainer: true + spawn: + Ash: + min: 1 + max: 1 + - !type:BurnBodyBehavior { } + - !type:PlaySoundBehavior + sound: + collection: MeatLaserImpact + # _CorvaxNext Change End - type: entity id: TorsoResomi name: "resomi torso" - parent: [PartHuman, BaseTorso] + parent: PartResomi components: - type: Sprite + netsync: false sprite: _CorvaxNext/Mobs/Species/Resomi/parts.rsi state: "torso_m" - - type: Extractable - juiceSolution: - reagents: - - ReagentId: Fat - Quantity: 10 - - ReagentId: Blood - Quantity: 20 - + - type: Icon + sprite: _CorvaxNext/Mobs/Species/Resomi/parts.rsi + state: "torso_m" + - type: BodyPart + partType: Torso + # _CorvaxNext Change Start + toolName: "a torso" + containerName: "torso_slot" + - type: ContainerContainer + containers: + torso_slot: !type:ContainerSlot {} + - type: Destructible + thresholds: + - trigger: + !type:DamageTypeTrigger + damageType: Blunt + damage: 400 + behaviors: + - !type:GibPartBehavior { } + - trigger: + !type:DamageTypeTrigger + damageType: Slash + damage: 400 + behaviors: + - !type:GibPartBehavior { } + - trigger: + !type:DamageTypeTrigger + damageType: Heat + damage: 400 + behaviors: + - !type:SpawnEntitiesBehavior + spawnInContainer: true + spawn: + Ash: + min: 1 + max: 1 + - !type:BurnBodyBehavior { } + - !type:PlaySoundBehavior + sound: + collection: MeatLaserImpact + # _CorvaxNext Change End - type: entity id: HeadResomi name: "resomi head" - parent: [PartHuman, BaseHead] + parent: PartResomi components: - type: Sprite + netsync: false + sprite: _CorvaxNext/Mobs/Species/Resomi/parts.rsi + state: "head_m" + - type: Icon sprite: _CorvaxNext/Mobs/Species/Resomi/parts.rsi state: "head_m" - - type: Extractable - juiceSolution: - reagents: - - ReagentId: Fat - Quantity: 5 - - ReagentId: Blood - Quantity: 10 + - type: BodyPart + partType: Head + vital: true + toolName: "a head" # _CorvaxNext Change + - type: Input + context: "ghost" + - type: InputMover + - type: GhostOnMove + - type: Tag + tags: + - Head - type: entity id: LeftArmResomi name: "left resomi arm" - parent: [PartHuman, BaseLeftArm] + parent: PartResomi components: - type: Sprite + netsync: false sprite: _CorvaxNext/Mobs/Species/Resomi/parts.rsi state: "l_arm" + - type: Icon + sprite: _CorvaxNext/Mobs/Species/Resomi/parts.rsi + state: "l_arm" + - type: BodyPart + partType: Arm + symmetry: Left + toolName: "a left arm" # _CorvaxNext Change - type: entity id: RightArmResomi name: "right resomi arm" - parent: [PartHuman, BaseRightArm] + parent: PartResomi components: - type: Sprite + netsync: false sprite: _CorvaxNext/Mobs/Species/Resomi/parts.rsi state: "r_arm" + - type: Icon + sprite: _CorvaxNext/Mobs/Species/Resomi/parts.rsi + state: "r_arm" + - type: BodyPart + partType: Arm + symmetry: Right + toolName: "a right arm" # _CorvaxNext Change - type: entity id: LeftHandResomi name: "left resomi hand" - parent: [PartHuman, BaseLeftHand] + parent: PartResomi components: - type: Sprite + netsync: false + sprite: _CorvaxNext/Mobs/Species/Resomi/parts.rsi + state: "l_hand" + - type: Icon sprite: _CorvaxNext/Mobs/Species/Resomi/parts.rsi state: "l_hand" + - type: BodyPart + partType: Hand + symmetry: Left + toolName: "a left hand" # _CorvaxNext Change - type: entity id: RightHandResomi name: "right resomi hand" - parent: [PartHuman, BaseRightHand] + parent: PartResomi components: - type: Sprite + netsync: false + sprite: _CorvaxNext/Mobs/Species/Resomi/parts.rsi + state: "r_hand" + - type: Icon sprite: _CorvaxNext/Mobs/Species/Resomi/parts.rsi state: "r_hand" + - type: BodyPart + partType: Hand + symmetry: Right + toolName: "a right hand" # _CorvaxNext Change - type: entity id: LeftLegResomi name: "left resomi leg" - parent: [PartHuman, BaseLeftLeg] + parent: PartResomi components: - type: Sprite + netsync: false sprite: _CorvaxNext/Mobs/Species/Resomi/parts.rsi state: "l_leg" + - type: Icon + sprite: _CorvaxNext/Mobs/Species/Resomi/parts.rsi + state: "l_leg" + - type: BodyPart + partType: Leg + symmetry: Left + toolName: "a left leg" # _CorvaxNext Change + - type: MovementBodyPart - type: entity id: RightLegResomi name: "right resomi leg" - parent: [PartHuman, BaseRightLeg] + parent: PartResomi components: - type: Sprite + netsync: false sprite: _CorvaxNext/Mobs/Species/Resomi/parts.rsi state: "r_leg" + - type: Icon + sprite: _CorvaxNext/Mobs/Species/Resomi/parts.rsi + state: "r_leg" + - type: BodyPart + partType: Leg + symmetry: Right + toolName: "a right leg" # _CorvaxNext Change + - type: MovementBodyPart - type: entity id: LeftFootResomi name: "left resomi foot" - parent: [PartHuman, BaseLeftFoot] + parent: PartResomi components: - type: Sprite + netsync: false + sprite: _CorvaxNext/Mobs/Species/Resomi/parts.rsi + state: "l_foot" + - type: Icon sprite: _CorvaxNext/Mobs/Species/Resomi/parts.rsi state: "l_foot" + - type: BodyPart + partType: Foot + symmetry: Left + toolName: "a left foot" # _CorvaxNext Change - type: entity id: RightFootResomi name: "right resomi foot" - parent: [PartHuman, BaseRightFoot] + parent: PartResomi components: - type: Sprite + netsync: false + sprite: _CorvaxNext/Mobs/Species/Resomi/parts.rsi + state: "r_foot" + - type: Icon sprite: _CorvaxNext/Mobs/Species/Resomi/parts.rsi state: "r_foot" + - type: BodyPart + partType: Foot + symmetry: Right + toolName: "a right foot" # _CorvaxNext Change diff --git a/Resources/Prototypes/_CorvaxNext/Body/Prototypes/Animal/carp.yml b/Resources/Prototypes/_CorvaxNext/Body/Prototypes/Animal/carp.yml new file mode 100644 index 00000000000..81bf6a4bd5c --- /dev/null +++ b/Resources/Prototypes/_CorvaxNext/Body/Prototypes/Animal/carp.yml @@ -0,0 +1,17 @@ +- type: body + id: Carp + name: carp + root: torso + slots: + torso: + part: TorsoAnimal + connections: + - tail + organs: + lungs: OrganSpaceAnimalLungs # Immunity to airloss + stomach: OrganAnimalStomach + liver: OrganAnimalLiver + heart: OrganSpaceAnimalHeart # Immunity to cold + kidneys: OrganAnimalKidneys + tail: + part: TailCarp diff --git a/Resources/Prototypes/_CorvaxNext/Body/Prototypes/cybernetic.yml b/Resources/Prototypes/_CorvaxNext/Body/Prototypes/cybernetic.yml new file mode 100644 index 00000000000..4b334cdb3b2 --- /dev/null +++ b/Resources/Prototypes/_CorvaxNext/Body/Prototypes/cybernetic.yml @@ -0,0 +1,169 @@ +- type: entity + id: LeftArmCybernetic + parent: LeftArmHuman + abstract: true + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopLArm + - type: GenerateChildPart + id: LeftHandCybernetic + - type: Cybernetics + - type: Sprite + sprite: _CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "l_arm-combined" + +- type: entity + id: RightArmCybernetic + parent: RightArmHuman + abstract: true + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopRArm + - type: GenerateChildPart + id: RightHandCybernetic + - type: Cybernetics + - type: Sprite + sprite: _CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "r_arm-combined" + +- type: entity + id: LeftLegCybernetic + parent: LeftLegHuman + abstract: true + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopLLeg + - type: GenerateChildPart + id: LeftFootCybernetic + - type: Cybernetics + - type: Sprite + sprite: _CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "l_leg-combined" + +- type: entity + id: RightLegCybernetic + parent: RightLegHuman + abstract: true + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopRLeg + - type: GenerateChildPart + id: RightFootCybernetic + - type: Cybernetics + - type: Sprite + sprite: _CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "r_leg-combined" + +- type: entity + id: LeftHandCybernetic + parent: LeftHandHuman + name: cybernetic left hand + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopLHand + - type: Cybernetics + - type: Sprite + sprite: _CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "l_hand" + +- type: entity + id: RightHandCybernetic + parent: RightHandHuman + name: cybernetic right hand + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopRHand + - type: Cybernetics + - type: Sprite + sprite: _CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "r_hand" + +- type: entity + id: LeftFootCybernetic + parent: LeftFootHuman + name: cybernetic left foot + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopLFoot + - type: Cybernetics + - type: Sprite + sprite: _CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "l_foot" + +- type: entity + id: RightFootCybernetic + parent: RightFootHuman + name: cybernetic right foot + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopRFoot + - type: Cybernetics + - type: Sprite + sprite: _CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "r_foot" + +- type: entity + parent: LeftArmCybernetic + id: JawsOfLifeLeftArm + name: J.W.L left arm + description: A cybernetic left arm with the ability to pry doors open. + components: + - type: BodyPart + onAdd: + - type: Prying + speedModifier: 1.5 + pryPowered: true + +- type: entity + parent: RightArmCybernetic + id: JawsOfLifeRightArm + name: J.W.L right arm + description: A cybernetic right arm with the ability to pry doors open. + components: + - type: BodyPart + onAdd: + - type: Prying + speedModifier: 1.5 + pryPowered: true + +- type: entity + parent: LeftLegCybernetic + id: SpeedLeftLeg + name: S.P.E.E.D left leg + description: A cybernetic left leg that allows its wearer to run faster. + components: + - type: MovementBodyPart + walkSpeed: 3.125 + sprintSpeed: 5.625 + - type: BodyPart + onAdd: + - type: NoSlip + +- type: entity + parent: RightLegCybernetic + id: SpeedRightLeg + name: S.P.E.E.D right leg + description: A cybernetic left leg that allows its wearer to run faster. + components: + - type: MovementBodyPart + walkSpeed: 3.125 + sprintSpeed: 5.625 + - type: BodyPart + onAdd: + - type: NoSlip diff --git a/Resources/Prototypes/_CorvaxNext/Body/Prototypes/generic.yml b/Resources/Prototypes/_CorvaxNext/Body/Prototypes/generic.yml new file mode 100644 index 00000000000..f3acb4b1333 --- /dev/null +++ b/Resources/Prototypes/_CorvaxNext/Body/Prototypes/generic.yml @@ -0,0 +1,79 @@ +- type: entity + parent: LeftArmHuman + id: BioSynthLeftArm + name: bio-synthetic left arm + description: This left arm can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: RightArmHuman + id: BioSynthRightArm + name: bio-synthetic right arm + description: This right arm can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: LeftHandHuman + id: BioSynthLeftHand + name: bio-synthetic left hand + description: This left hand can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: RightHandHuman + id: BioSynthRightHand + name: bio-synthetic right hand + description: This right hand can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: LeftLegHuman + id: BioSynthLeftLeg + name: bio-synthetic left leg + description: This left leg can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: RightLegHuman + id: BioSynthRightLeg + name: bio-synthetic right leg + description: This right leg can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: LeftFootHuman + id: BioSynthLeftFoot + name: bio-synthetic left foot + description: This left foot can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: RightFootHuman + id: BioSynthRightFoot + name: bio-synthetic right foot + description: This right foot can be transplanted into any living organism and it will adapt to its recipient. + +# JOKE ITEMS + +- type: entity + parent: LeftArmHuman + id: PizzaLeftArm + name: pizza left arm + description: For when you want to turn someone into a Space John's. + components: + - type: BodyPart + partType: Arm + symmetry: Left + toolName: "a left arm" + baseLayerId: MobPizzaLArm + - type: Sprite + sprite: _CorvaxNext/Mobs/Species/Misc/Pizza/parts.rsi + state: "l_arm" + +- type: entity + parent: RightArmHuman + id: PizzaRightArm + name: pizza right arm + description: For when you want to turn someone into a Space John's. + components: + - type: BodyPart + partType: Arm + symmetry: Right + toolName: "a right arm" + baseLayerId: MobPizzaRArm + - type: Sprite + sprite: _CorvaxNext/Mobs/Species/Misc/Pizza/parts.rsi + state: "r_arm" diff --git a/Resources/Prototypes/_CorvaxNext/Body/Prototypes/resomi.yml b/Resources/Prototypes/_CorvaxNext/Body/Prototypes/resomi.yml index e05f759162c..1d27eedd639 100644 --- a/Resources/Prototypes/_CorvaxNext/Body/Prototypes/resomi.yml +++ b/Resources/Prototypes/_CorvaxNext/Body/Prototypes/resomi.yml @@ -13,37 +13,38 @@ torso: part: TorsoResomi connections: - - right_arm - - left_arm - - right_leg - - left_leg + - right arm + - left arm + - right leg + - left leg + - head organs: heart: OrganHumanHeart - lungs: OrganHumanLungs - stomach: OrganHumanStomach - liver: OrganHumanLiver - kidneys: OrganHumanKidneys - right_arm: + lungs: OrganResomiLungs + stomach: OrganAnimalStomach + liver: OrganAnimalLiver + kidneys: OrganAnimalKidneys + right arm: part: RightArmResomi connections: - - right_hand - left_arm: + - right hand + left arm: part: LeftArmResomi connections: - - left_hand - right_hand: + - left hand + right hand: part: RightHandResomi - left_hand: + left hand: part: LeftHandResomi - right_leg: + right leg: part: RightLegResomi connections: - - right_foot - left_leg: + - right foot + left leg: part: LeftLegResomi connections: - - left_foot - right_foot: + - left foot + right foot: part: RightFootResomi - left_foot: + left foot: part: LeftFootResomi diff --git a/Resources/Prototypes/_CorvaxNext/Entities/Mobs/Species/primate.yml b/Resources/Prototypes/_CorvaxNext/Entities/Mobs/Species/primate.yml new file mode 100644 index 00000000000..cc023ee0865 --- /dev/null +++ b/Resources/Prototypes/_CorvaxNext/Entities/Mobs/Species/primate.yml @@ -0,0 +1,41 @@ +- type: entity + save: false + parent: BaseSpeciesDummy + id: MobMonkeyDummy + categories: [ HideSpawnMenu ] + description: A dummy monkey meant to be used in character setup. + components: + - type: Icon + sprite: Mobs/Animals/monkey.rsi + state: full + - type: Appearance + - type: HumanoidAppearance + species: Monkey + - type: Body + prototype: Monkey + requiredLegs: 2 + - type: UserInterface + interfaces: + enum.HumanoidMarkingModifierKey.Key: # sure, this can go here too + type: HumanoidMarkingModifierBoundUserInterface + +- type: entity + save: false + parent: BaseSpeciesDummy + id: MobKoboldDummy + categories: [ HideSpawnMenu ] + description: A dummy kobold meant to be used in character setup. + components: + - type: Icon + sprite: Mobs/Animals/kobold.rsi + state: full + - type: Appearance + - type: HumanoidAppearance + species: Kobold + - type: Body + prototype: Kobold + requiredLegs: 2 + - type: UserInterface + interfaces: + enum.HumanoidMarkingModifierKey.Key: # sure, this can go here too + type: HumanoidMarkingModifierBoundUserInterface diff --git a/Resources/Prototypes/_CorvaxNext/Entities/Objects/Specific/Medical/surgery.yml b/Resources/Prototypes/_CorvaxNext/Entities/Objects/Specific/Medical/surgery.yml index 002de50e50a..647c48b079d 100644 --- a/Resources/Prototypes/_CorvaxNext/Entities/Objects/Specific/Medical/surgery.yml +++ b/Resources/Prototypes/_CorvaxNext/Entities/Objects/Specific/Medical/surgery.yml @@ -1,76 +1,14 @@ -# ORGANS - - type: entity - parent: OrganHumanHeart - id: BioSynthHeart - name: bio-synthetic heart - description: This heart can be transplanted into any living organism and it will adapt to its recipient. - -- type: entity - parent: OrganHumanLiver - id: BioSynthLiver - name: bio-synthetic liver - description: This liver can be transplanted into any living organism and it will adapt to its recipient. - -- type: entity - parent: OrganHumanLungs - id: BioSynthLungs - name: bio-synthetic lungs - description: These lungs can be transplanted into any living organism and it will adapt to its recipient. - -- type: entity - parent: OrganHumanEyes - id: BioSynthEyes - name: bio-synthetic eyes - description: These eyes can be transplanted into any living organism and it will adapt to its recipient. - - -# PARTS - -- type: entity - parent: LeftArmHuman - id: BioSynthLeftArm - name: bio-synthetic left arm - description: This left arm can be transplanted into any living organism and it will adapt to its recipient. - -- type: entity - parent: RightArmHuman - id: BioSynthRightArm - name: bio-synthetic right arm - description: This right arm can be transplanted into any living organism and it will adapt to its recipient. - -- type: entity - parent: LeftHandHuman - id: BioSynthLeftHand - name: bio-synthetic left hand - description: This left hand can be transplanted into any living organism and it will adapt to its recipient. - -- type: entity - parent: RightHandHuman - id: BioSynthRightHand - name: bio-synthetic right hand - description: This right hand can be transplanted into any living organism and it will adapt to its recipient. - -- type: entity - parent: LeftLegHuman - id: BioSynthLeftLeg - name: bio-synthetic left leg - description: This left leg can be transplanted into any living organism and it will adapt to its recipient. - -- type: entity - parent: RightLegHuman - id: BioSynthRightLeg - name: bio-synthetic right leg - description: This right leg can be transplanted into any living organism and it will adapt to its recipient. - -- type: entity - parent: LeftFootHuman - id: BioSynthLeftFoot - name: bio-synthetic left foot - description: This left foot can be transplanted into any living organism and it will adapt to its recipient. - -- type: entity - parent: RightFootHuman - id: BioSynthRightFoot - name: bio-synthetic right foot - description: This right foot can be transplanted into any living organism and it will adapt to its recipient. + name: скальпель + id: ScalpelCool + parent: BaseKnife + description: Хирургический инструмент, используемый для выполнения надрезов в плоти. + components: + - type: Tag + tags: + - Knife + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/scalpel.rsi + state: scalpel + - type: Item + sprite: Objects/Specific/Medical/Surgery/scalpel.rsi diff --git a/Resources/Prototypes/_CorvaxNext/Entities/Surgery/surgeries.yml b/Resources/Prototypes/_CorvaxNext/Entities/Surgery/surgeries.yml index 43d8adfd6ed..b9efc875106 100644 --- a/Resources/Prototypes/_CorvaxNext/Entities/Surgery/surgeries.yml +++ b/Resources/Prototypes/_CorvaxNext/Entities/Surgery/surgeries.yml @@ -281,7 +281,24 @@ - type: SurgeryPartRemovedCondition connection: feet part: Foot - symmetry: None + +- type: entity + parent: SurgeryBase + id: SurgeryAttachTail + name: Attach Tail + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepInsertFeature + - SurgeryStepSealWounds + - type: SurgeryPartCondition + part: Torso + - type: SurgeryPartRemovedCondition + connection: tail + part: Tail + #symmetry: None #- type: entity # parent: SurgeryBase @@ -382,7 +399,6 @@ inverse: true reattaching: true - - type: entity parent: SurgeryBase id: SurgeryRemoveHeart @@ -573,6 +589,41 @@ inverse: true reattaching: true +- type: entity + parent: SurgeryBase + id: SurgeryLobotomize + name: Lobotomize + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepLobotomize + - SurgeryStepCloseIncision + - type: SurgeryComponentCondition + component: + - type: OhioAccent + inverse: true + - type: SurgeryPartCondition + part: Head + +- type: entity + parent: SurgeryBase + id: SurgeryMendBrainTissue + name: Mend brain tissue + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepMendBrainTissue + - SurgeryStepCloseIncision + - type: SurgeryComponentCondition + component: + - type: OhioAccent + - type: SurgeryPartCondition + part: Head + # Fluff/Joke Surgeries #- type: entity diff --git a/Resources/Prototypes/_CorvaxNext/Entities/Surgery/surgery_steps.yml b/Resources/Prototypes/_CorvaxNext/Entities/Surgery/surgery_steps.yml index b157e6425d5..9ae15054b20 100644 --- a/Resources/Prototypes/_CorvaxNext/Entities/Surgery/surgery_steps.yml +++ b/Resources/Prototypes/_CorvaxNext/Entities/Surgery/surgery_steps.yml @@ -15,8 +15,9 @@ - type: Scalpel add: - type: IncisionOpen + duration: 2 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scalpel.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/scalpel.rsi state: scalpel - type: SurgeryDamageChangeEffect damage: @@ -36,8 +37,9 @@ - type: Hemostat add: - type: BleedersClamped + duration: 2 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/hemostat.rsi state: hemostat - type: SurgeryDamageChangeEffect damage: @@ -56,8 +58,9 @@ - type: Retractor add: - type: SkinRetracted + duration: 2 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/retractor.rsi state: retractor - type: entity @@ -71,9 +74,10 @@ - type: BoneSaw add: - type: RibcageSawed + duration: 4 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/saw.rsi - state: saw + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/circular-saw.rsi + state: circular-saw - type: SurgeryStepEmoteEffect - type: entity @@ -87,8 +91,9 @@ - type: Retractor add: - type: RibcageOpen + duration: 2 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/retractor.rsi state: retractor #- type: entity @@ -137,8 +142,9 @@ - type: Retractor remove: - type: RibcageOpen + duration: 2 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/retractor.rsi state: retractor - type: entity @@ -152,6 +158,7 @@ - type: BoneGel remove: - type: RibcageSawed + duration: 2 - type: Sprite sprite: Objects/Specific/Medical/Surgery/bone_gel.rsi state: bone-gel @@ -173,8 +180,9 @@ - type: IncisionOpen - type: BodyPartReattached - type: InternalBleedersClamped + duration: 2 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/cautery.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/cautery.rsi state: cautery - type: SurgeryDamageChangeEffect damage: @@ -194,6 +202,7 @@ - type: SurgeryStep tool: - type: BodyPart + duration: 6 - type: Sprite sprite: Objects/Specific/Medical/Surgery/manipulation.rsi state: insertion @@ -213,9 +222,10 @@ - type: BleedersClamped - type: IncisionOpen - type: InternalBleedersClamped + duration: 2 - type: SurgeryAffixPartStep - type: Sprite - sprite: Objects/Specific/Medical/Surgery/cautery.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/cautery.rsi state: cautery - type: SurgeryStepEmoteEffect - type: SurgeryDamageChangeEffect @@ -237,9 +247,10 @@ - type: BoneSaw add: - type: BodyPartSawed + duration: 4 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/saw.rsi - state: saw + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/circular-saw.rsi + state: circular-saw - type: SurgeryStepEmoteEffect - type: entity @@ -253,8 +264,9 @@ - type: Hemostat add: - type: InternalBleedersClamped + duration: 2 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/hemostat.rsi state: hemostat - type: SurgeryDamageChangeEffect damage: @@ -277,9 +289,10 @@ - type: BleedersClamped - type: InternalBleedersClamped - type: IncisionOpen + duration: 8 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/saw.rsi - state: saw + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/circular-saw.rsi + state: circular-saw - type: SurgeryRemovePartStep - type: SurgeryStepEmoteEffect @@ -296,8 +309,9 @@ - type: Scalpel add: - type: IncisionOpen + duration: 3 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scalpel.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/scalpel.rsi state: scalpel - type: SurgeryStepEmoteEffect @@ -309,9 +323,10 @@ components: - type: SurgeryStep tool: - - type: Hemostat + - type: Tending + duration: 1 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/hemostat.rsi state: hemostat - type: SurgeryTendWoundsEffect damage: @@ -327,9 +342,10 @@ components: - type: SurgeryStep tool: - - type: Hemostat + - type: Tending + duration: 1 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/hemostat.rsi state: hemostat - type: SurgeryTendWoundsEffect mainGroup: Burn @@ -349,8 +365,9 @@ - type: Cautery remove: - type: IncisionOpen + duration: 2 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/cautery.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/cautery.rsi state: cautery - type: SurgeryDamageChangeEffect damage: @@ -368,6 +385,7 @@ categories: [ HideSpawnMenu ] components: - type: SurgeryStep + duration: 4 - type: Sprite sprite: Objects/Specific/Medical/Surgery/manipulation.rsi state: insertion @@ -382,6 +400,7 @@ categories: [ HideSpawnMenu ] components: - type: SurgeryStep + duration: 4 - type: Sprite sprite: Objects/Specific/Medical/Surgery/manipulation.rsi state: insertion @@ -399,9 +418,10 @@ components: - type: SurgeryStep tool: - - type: Hemostat + - type: Tweezers + duration: 8 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/hemostat.rsi state: hemostat - type: SurgeryRemoveOrganStep - type: SurgeryStepEmoteEffect @@ -415,6 +435,7 @@ - type: SurgeryStep tool: - type: Organ + duration: 6 - type: Sprite sprite: Objects/Specific/Medical/Surgery/manipulation.rsi state: insertion @@ -452,10 +473,6 @@ id: SurgeryStepInsertEyes name: Add eyes categories: [ HideSpawnMenu ] - components: - - type: SurgerySpecialDamageChangeEffect - damageType: Eye - isConsumable: true - type: entity parent: SurgeryStepInsertOrgan @@ -483,9 +500,10 @@ - type: SurgeryStep tool: - type: Cautery + duration: 2 - type: SurgeryAffixOrganStep - type: Sprite - sprite: Objects/Specific/Medical/Surgery/cautery.rsi + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/cautery.rsi state: cautery - type: SurgeryStepEmoteEffect - type: SurgeryDamageChangeEffect @@ -494,6 +512,48 @@ Heat: -5 sleepModifier: 2 +- type: entity + parent: SurgeryStepBase + id: SurgeryStepLobotomize + name: Lobotomize patient + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: Drill + bodyAdd: + - type: OhioAccent + - type: RatvarianLanguage + - type: SlurredAccent + duration: 5 + - type: Sprite + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/drill.rsi + state: drill + - type: SurgeryStepEmoteEffect + - type: SurgeryDamageChangeEffect + damage: + types: + Piercing: 10 + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepMendBrainTissue + name: Mend brain tissue + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: Hemostat + duration: 5 + bodyRemove: + - type: OhioAccent + - type: RatvarianLanguage + - type: SlurredAccent + - type: Sprite + sprite: _CorvaxNext/Objects/Specific/Medical/Surgery/drill.rsi + state: drill + - type: SurgeryStepEmoteEffect + # The lengths I go to just for a joke... I HATE HARDCODING AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # Maybe I should modify species prototypes to include tails and ears properly... diff --git a/Resources/Prototypes/_CorvaxNext/status_effects.yml b/Resources/Prototypes/_CorvaxNext/status_effects.yml new file mode 100644 index 00000000000..8d389525183 --- /dev/null +++ b/Resources/Prototypes/_CorvaxNext/status_effects.yml @@ -0,0 +1,6 @@ +- type: statusEffect + id: BreathingImmunity + alwaysAllowed: true # Used by space animal lungs to work on anything + +- type: statusEffect + id: Brainrotted diff --git a/Resources/Prototypes/_CorvaxNext/tags.yml b/Resources/Prototypes/_CorvaxNext/tags.yml new file mode 100644 index 00000000000..59cdfd38c52 --- /dev/null +++ b/Resources/Prototypes/_CorvaxNext/tags.yml @@ -0,0 +1,11 @@ +- type: Tag + id: Organ + +- type: Tag + id: Liver + +- type: Tag + id: Heart + +- type: Tag + id: Eyes diff --git a/Resources/Prototypes/status_effects.yml b/Resources/Prototypes/status_effects.yml index 49e5ccc5794..7d8938c6f52 100644 --- a/Resources/Prototypes/status_effects.yml +++ b/Resources/Prototypes/status_effects.yml @@ -36,6 +36,7 @@ - type: statusEffect id: PressureImmunity + alwaysAllowed: true # Backmen: Used by space animal heart to work on anything - type: statusEffect id: Muted diff --git a/Resources/Textures/Backmen/Mobs/Species/Harpy/organs.rsi/lung-l.png b/Resources/Textures/Backmen/Mobs/Species/Harpy/organs.rsi/lung-l.png new file mode 100644 index 00000000000..32aca484b9f Binary files /dev/null and b/Resources/Textures/Backmen/Mobs/Species/Harpy/organs.rsi/lung-l.png differ diff --git a/Resources/Textures/Backmen/Mobs/Species/Harpy/organs.rsi/lung-r.png b/Resources/Textures/Backmen/Mobs/Species/Harpy/organs.rsi/lung-r.png new file mode 100644 index 00000000000..7e29649ccd8 Binary files /dev/null and b/Resources/Textures/Backmen/Mobs/Species/Harpy/organs.rsi/lung-r.png differ diff --git a/Resources/Textures/Backmen/Mobs/Species/Harpy/organs.rsi/meta.json b/Resources/Textures/Backmen/Mobs/Species/Harpy/organs.rsi/meta.json new file mode 100644 index 00000000000..e639085d8d0 --- /dev/null +++ b/Resources/Textures/Backmen/Mobs/Species/Harpy/organs.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation and cev-eris at https://github.com/tgstation/tgstation/commit/c4b7f3c41b6742aca260fe60cc358a778ba9b8c8 and https://github.com/discordia-space/CEV-Eris/commit/476e374cea95ff5e8b1603c48342bf700e2cd7af", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "lung-l" + }, + { + "name": "lung-r" + } + ] +} diff --git a/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/full.png b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/full.png new file mode 100644 index 00000000000..e358746ec8b Binary files /dev/null and b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/full.png differ diff --git a/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/head_f.png b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/head_f.png new file mode 100644 index 00000000000..b705d2d50e8 Binary files /dev/null and b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/head_f.png differ diff --git a/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/head_m.png b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/head_m.png new file mode 100644 index 00000000000..e555d030bea Binary files /dev/null and b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/head_m.png differ diff --git a/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/l_arm.png b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/l_arm.png new file mode 100644 index 00000000000..87c10adfa22 Binary files /dev/null and b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/l_arm.png differ diff --git a/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/l_foot.png b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/l_foot.png new file mode 100644 index 00000000000..a03b643ad62 Binary files /dev/null and b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/l_foot.png differ diff --git a/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/l_hand.png b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/l_hand.png new file mode 100644 index 00000000000..2e0ec001ce2 Binary files /dev/null and b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/l_hand.png differ diff --git a/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/l_leg.png b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/l_leg.png new file mode 100644 index 00000000000..a70f92524b6 Binary files /dev/null and b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/l_leg.png differ diff --git a/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/meta.json b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/meta.json new file mode 100644 index 00000000000..4073a762e89 --- /dev/null +++ b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/meta.json @@ -0,0 +1,62 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/tgstation/tgstation/blob/8024397cc81c5f47f74cf4279e35728487d0a1a7/icons/mob/human_parts_greyscale.dmi and modified by DrSmugleaf, Legs and lower torso parts made by @ps3moira, Full reference with parts made by @Still-Icarus", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "full" + }, + { + "name": "head_f", + "directions": 4 + }, + { + "name": "head_m", + "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 + } + ] +} diff --git a/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/r_arm.png b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/r_arm.png new file mode 100644 index 00000000000..6a47ac86071 Binary files /dev/null and b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/r_arm.png differ diff --git a/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/r_foot.png b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/r_foot.png new file mode 100644 index 00000000000..ef502c30f5c Binary files /dev/null and b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/r_foot.png differ diff --git a/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/r_hand.png b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/r_hand.png new file mode 100644 index 00000000000..2c16b27041c Binary files /dev/null and b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/r_hand.png differ diff --git a/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/r_leg.png b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/r_leg.png new file mode 100644 index 00000000000..9cdd3b85566 Binary files /dev/null and b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/r_leg.png differ diff --git a/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/torso_f.png b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/torso_f.png new file mode 100644 index 00000000000..23dde35cd8e Binary files /dev/null and b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/torso_f.png differ diff --git a/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/torso_m.png b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/torso_m.png new file mode 100644 index 00000000000..9a30fbfb574 Binary files /dev/null and b/Resources/Textures/Backmen/Mobs/Species/Harpy/parts.rsi/torso_m.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-surgery-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-surgery-module.png new file mode 100644 index 00000000000..df4b715569b Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-surgery-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json b/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json index 2ebb6eddcf5..0170e11812f 100644 --- a/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json +++ b/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json @@ -61,6 +61,12 @@ { "name":"treatment-module" }, + { + "name":"surgery-module" + }, + { + "name":"adv-surgery-module" + }, { "name":"adv-diagnosis-module" }, diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/surgery-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/surgery-module.png new file mode 100644 index 00000000000..4b333eba52a Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/surgery-module.png differ diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/eyes.png b/Resources/Textures/Mobs/Animals/kobold.rsi/eyes.png new file mode 100644 index 00000000000..626bd2fa1ea Binary files /dev/null and b/Resources/Textures/Mobs/Animals/kobold.rsi/eyes.png differ diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/full.png b/Resources/Textures/Mobs/Animals/kobold.rsi/full.png new file mode 100644 index 00000000000..25006b92124 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/kobold.rsi/full.png differ diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/head_f.png b/Resources/Textures/Mobs/Animals/kobold.rsi/head_f.png new file mode 100644 index 00000000000..6b6102a5b50 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/kobold.rsi/head_f.png differ diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/head_m.png b/Resources/Textures/Mobs/Animals/kobold.rsi/head_m.png new file mode 100644 index 00000000000..6b6102a5b50 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/kobold.rsi/head_m.png differ diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/innerline.png b/Resources/Textures/Mobs/Animals/kobold.rsi/innerline.png new file mode 100644 index 00000000000..4be7d2591e1 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/kobold.rsi/innerline.png differ diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/kobold.png b/Resources/Textures/Mobs/Animals/kobold.rsi/kobold.png index 4be7d2591e1..4a6ad59a830 100644 Binary files a/Resources/Textures/Mobs/Animals/kobold.rsi/kobold.png and b/Resources/Textures/Mobs/Animals/kobold.rsi/kobold.png differ diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/l_arm.png b/Resources/Textures/Mobs/Animals/kobold.rsi/l_arm.png new file mode 100644 index 00000000000..2c4d11a4911 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/kobold.rsi/l_arm.png differ diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/l_foot.png b/Resources/Textures/Mobs/Animals/kobold.rsi/l_foot.png new file mode 100644 index 00000000000..bf8f9af0b08 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/kobold.rsi/l_foot.png differ diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/l_hand.png b/Resources/Textures/Mobs/Animals/kobold.rsi/l_hand.png new file mode 100644 index 00000000000..3c75cb89827 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/kobold.rsi/l_hand.png differ diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/l_leg.png b/Resources/Textures/Mobs/Animals/kobold.rsi/l_leg.png new file mode 100644 index 00000000000..6b6cd11eff0 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/kobold.rsi/l_leg.png differ diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/meta.json b/Resources/Textures/Mobs/Animals/kobold.rsi/meta.json index 05e21930b6b..769f96a914e 100644 --- a/Resources/Textures/Mobs/Animals/kobold.rsi/meta.json +++ b/Resources/Textures/Mobs/Animals/kobold.rsi/meta.json @@ -5,12 +5,75 @@ "y": 32 }, "license": "CC-BY-SA-3.0", - "copyright": "Drawn by Ubaser, modified by Bhijn and Myr", + "copyright": "Drawn by Ubaser, modified by Bhijn and Myr, parts splitted up by Roudenn (GitHub)", "states": [ { "name": "kobold", "directions": 4 }, + { + "name": "full" + }, + { + "name": "head_f", + "directions": 4 + }, + { + "name": "head_m", + "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": "tail", + "directions": 4 + }, + { + "name": "eyes", + "directions": 4 + }, + { + "name": "innerline", + "directions": 4 + }, { "name": "outline", "directions": 4 diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/r_arm.png b/Resources/Textures/Mobs/Animals/kobold.rsi/r_arm.png new file mode 100644 index 00000000000..bfbfe25fb75 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/kobold.rsi/r_arm.png differ diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/r_foot.png b/Resources/Textures/Mobs/Animals/kobold.rsi/r_foot.png new file mode 100644 index 00000000000..bd9f3e77c9d Binary files /dev/null and b/Resources/Textures/Mobs/Animals/kobold.rsi/r_foot.png differ diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/r_hand.png b/Resources/Textures/Mobs/Animals/kobold.rsi/r_hand.png new file mode 100644 index 00000000000..bd3bf53a29e Binary files /dev/null and b/Resources/Textures/Mobs/Animals/kobold.rsi/r_hand.png differ diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/r_leg.png b/Resources/Textures/Mobs/Animals/kobold.rsi/r_leg.png new file mode 100644 index 00000000000..e99fca61c95 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/kobold.rsi/r_leg.png differ diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/tail.png b/Resources/Textures/Mobs/Animals/kobold.rsi/tail.png new file mode 100644 index 00000000000..9d1b337ab76 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/kobold.rsi/tail.png differ diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/torso_f.png b/Resources/Textures/Mobs/Animals/kobold.rsi/torso_f.png new file mode 100644 index 00000000000..192d2b9849e Binary files /dev/null and b/Resources/Textures/Mobs/Animals/kobold.rsi/torso_f.png differ diff --git a/Resources/Textures/Mobs/Animals/kobold.rsi/torso_m.png b/Resources/Textures/Mobs/Animals/kobold.rsi/torso_m.png new file mode 100644 index 00000000000..192d2b9849e Binary files /dev/null and b/Resources/Textures/Mobs/Animals/kobold.rsi/torso_m.png differ diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/eyes.png b/Resources/Textures/Mobs/Animals/monkey.rsi/eyes.png new file mode 100644 index 00000000000..573a605e91a Binary files /dev/null and b/Resources/Textures/Mobs/Animals/monkey.rsi/eyes.png differ diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/full.png b/Resources/Textures/Mobs/Animals/monkey.rsi/full.png new file mode 100644 index 00000000000..c36e9abf8b8 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/monkey.rsi/full.png differ diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/head_f.png b/Resources/Textures/Mobs/Animals/monkey.rsi/head_f.png new file mode 100644 index 00000000000..e84d4fbbb5f Binary files /dev/null and b/Resources/Textures/Mobs/Animals/monkey.rsi/head_f.png differ diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/head_m.png b/Resources/Textures/Mobs/Animals/monkey.rsi/head_m.png new file mode 100644 index 00000000000..e84d4fbbb5f Binary files /dev/null and b/Resources/Textures/Mobs/Animals/monkey.rsi/head_m.png differ diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/l_arm.png b/Resources/Textures/Mobs/Animals/monkey.rsi/l_arm.png new file mode 100644 index 00000000000..b72718d59a5 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/monkey.rsi/l_arm.png differ diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/l_foot.png b/Resources/Textures/Mobs/Animals/monkey.rsi/l_foot.png new file mode 100644 index 00000000000..9856dd6faef Binary files /dev/null and b/Resources/Textures/Mobs/Animals/monkey.rsi/l_foot.png differ diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/l_hand.png b/Resources/Textures/Mobs/Animals/monkey.rsi/l_hand.png new file mode 100644 index 00000000000..5ac8ce3e608 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/monkey.rsi/l_hand.png differ diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/l_leg.png b/Resources/Textures/Mobs/Animals/monkey.rsi/l_leg.png new file mode 100644 index 00000000000..7907f130f4c Binary files /dev/null and b/Resources/Textures/Mobs/Animals/monkey.rsi/l_leg.png differ diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/meta.json b/Resources/Textures/Mobs/Animals/monkey.rsi/meta.json index b62cac749ad..d22ab1556c9 100644 --- a/Resources/Textures/Mobs/Animals/monkey.rsi/meta.json +++ b/Resources/Textures/Mobs/Animals/monkey.rsi/meta.json @@ -1,15 +1,74 @@ { - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from https://github.com/tgstation/tgstation/commit/53d1f1477d22a11a99c6c6924977cd431075761b , edited by Alekshhh", - "states": [ - { - "name": "monkey", - "directions": 4 - } - ] + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/commit/53d1f1477d22a11a99c6c6924977cd431075761b , edited by Alekshhh, parts splitted up by Roudenn (GitHub)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "full" + }, + { + "name": "monkey", + "directions": 4 + }, + { + "name": "head_f", + "directions": 4 + }, + { + "name": "head_m", + "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": "tail", + "directions": 4 + }, + { + "name": "eyes", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/r_arm.png b/Resources/Textures/Mobs/Animals/monkey.rsi/r_arm.png new file mode 100644 index 00000000000..db4a7b639a9 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/monkey.rsi/r_arm.png differ diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/r_foot.png b/Resources/Textures/Mobs/Animals/monkey.rsi/r_foot.png new file mode 100644 index 00000000000..8c144840497 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/monkey.rsi/r_foot.png differ diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/r_hand.png b/Resources/Textures/Mobs/Animals/monkey.rsi/r_hand.png new file mode 100644 index 00000000000..f4e27204944 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/monkey.rsi/r_hand.png differ diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/r_leg.png b/Resources/Textures/Mobs/Animals/monkey.rsi/r_leg.png new file mode 100644 index 00000000000..c470114e15d Binary files /dev/null and b/Resources/Textures/Mobs/Animals/monkey.rsi/r_leg.png differ diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/tail.png b/Resources/Textures/Mobs/Animals/monkey.rsi/tail.png new file mode 100644 index 00000000000..ddf07fb0ae8 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/monkey.rsi/tail.png differ diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/torso_f.png b/Resources/Textures/Mobs/Animals/monkey.rsi/torso_f.png new file mode 100644 index 00000000000..aa3c5ce5487 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/monkey.rsi/torso_f.png differ diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/torso_m.png b/Resources/Textures/Mobs/Animals/monkey.rsi/torso_m.png new file mode 100644 index 00000000000..aa3c5ce5487 Binary files /dev/null and b/Resources/Textures/Mobs/Animals/monkey.rsi/torso_m.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/bonesetter.png b/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/bonesetter.png index b876de0d28e..08b79677c86 100644 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/bonesetter.png and b/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/bonesetter.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/inhand-left.png b/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/inhand-left.png new file mode 100644 index 00000000000..5dbbacced17 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/inhand-right.png new file mode 100644 index 00000000000..3b9942e76d2 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/meta.json b/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/meta.json index 227b276eda4..04cb7db3b74 100644 --- a/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/meta.json +++ b/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/meta.json @@ -1,17 +1,25 @@ { - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from cmss13 at https://github.com/cmss13-devs/cmss13/blob/7917d83bac9cddd14c0ca0b457256b2683cc047f/icons/obj/items/surgery_tools.dmi", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "bonesetter" - }, - { - "name": "predator_bonesetter" - } - ] + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "bonesetter" + }, + { + "name": "predator_bonesetter" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] } diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-advanced-surgery.png b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-advanced-surgery.png new file mode 100644 index 00000000000..291a889e4c1 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-advanced-surgery.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-surgery.png b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-surgery.png new file mode 100644 index 00000000000..8147a74b761 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-surgery.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json index 74c9893cae3..644a78b47d8 100644 --- a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json +++ b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json @@ -100,6 +100,12 @@ { "name": "icon-treatment" }, + { + "name": "icon-surgery" + }, + { + "name": "icon-advanced-surgery" + }, { "name": "icon-syndicate" }, diff --git a/Resources/Textures/_CorvaxNext/Mobs/Aliens/Carps/carp_parts.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Aliens/Carps/carp_parts.rsi/meta.json new file mode 100644 index 00000000000..cdecf550def --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Aliens/Carps/carp_parts.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from and modified by deltanedas (github) for GoobStation", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "tail" + }, + { + "name": "torso" + } + ] +} diff --git a/Resources/Textures/_CorvaxNext/Mobs/Aliens/Carps/carp_parts.rsi/tail.png b/Resources/Textures/_CorvaxNext/Mobs/Aliens/Carps/carp_parts.rsi/tail.png new file mode 100644 index 00000000000..bb0b9458102 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Aliens/Carps/carp_parts.rsi/tail.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Aliens/Carps/carp_parts.rsi/torso.png b/Resources/Textures/_CorvaxNext/Mobs/Aliens/Carps/carp_parts.rsi/torso.png new file mode 100644 index 00000000000..ab0f5ff82f0 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Aliens/Carps/carp_parts.rsi/torso.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_alt1.rsi/head.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_alt1.rsi/head.png new file mode 100644 index 00000000000..81c98564b9a Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_alt1.rsi/head.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_alt1.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_alt1.rsi/meta.json new file mode 100644 index 00000000000..9f87381cd87 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_alt1.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/head.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/head.png new file mode 100644 index 00000000000..a89de820f47 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/head.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-combined.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-combined.png new file mode 100644 index 00000000000..a6ddbf35891 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-combined.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-primary.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-primary.png new file mode 100644 index 00000000000..5d6b133523b Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-primary.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-secondary.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-secondary.png new file mode 100644 index 00000000000..de40773897f Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-secondary.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-tertiary.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-tertiary.png new file mode 100644 index 00000000000..7b83ecf161b Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-tertiary.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_foot.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_foot.png new file mode 100644 index 00000000000..534085a97c3 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_foot.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_hand.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_hand.png new file mode 100644 index 00000000000..771cd025a86 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_hand.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-combined.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-combined.png new file mode 100644 index 00000000000..915b2af4d37 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-combined.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-primary.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-primary.png new file mode 100644 index 00000000000..05f568654e6 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-primary.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-secondary.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-secondary.png new file mode 100644 index 00000000000..a96f9eb3854 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-secondary.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/meta.json new file mode 100644 index 00000000000..94020ddda5b --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/meta.json @@ -0,0 +1,95 @@ +{ + "version": 1, + "copyright": "Sprites originally from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version made by: DayOS (https://github.com/Day-OS)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_foot", + "directions": 4 + }, + { + "name": "r_foot", + "directions": 4 + }, + { + "name": "l_leg-primary", + "directions": 4 + }, + { + "name": "l_leg-secondary", + "directions": 4 + }, + { + "name": "l_leg-combined", + "directions": 4 + }, + { + "name": "r_leg-primary", + "directions": 4 + }, + { + "name": "r_leg-secondary", + "directions": 4 + }, + { + "name": "r_leg-combined", + "directions": 4 + }, + { + "name": "torso-primary", + "directions": 4 + }, + { + "name": "torso-secondary", + "directions": 4 + }, + { + "name": "l_arm-primary", + "directions": 4 + }, + { + "name": "l_arm-secondary", + "directions": 4 + }, + { + "name": "l_arm-tertiary", + "directions": 4 + }, + { + "name": "l_arm-combined", + "directions": 4 + }, + { + "name": "r_arm-primary", + "directions": 4 + }, + { + "name": "r_arm-secondary", + "directions": 4 + }, + { + "name": "r_arm-tertiary", + "directions": 4 + }, + { + "name": "r_arm-combined", + "directions": 4 + }, + { + "name": "l_hand", + "directions": 4 + }, + { + "name": "r_hand", + "directions": 4 + }, + { + "name": "head", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-combined.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-combined.png new file mode 100644 index 00000000000..eabc7e4bd88 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-combined.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-primary.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-primary.png new file mode 100644 index 00000000000..c8087d3fc19 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-primary.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-secondary.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-secondary.png new file mode 100644 index 00000000000..2cf2346bd84 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-secondary.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-tertiary.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-tertiary.png new file mode 100644 index 00000000000..0b5cecfd6c3 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-tertiary.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_foot.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_foot.png new file mode 100644 index 00000000000..a8fbe8635ea Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_foot.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_hand.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_hand.png new file mode 100644 index 00000000000..db11be34056 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_hand.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-combined.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-combined.png new file mode 100644 index 00000000000..a035dd86265 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-combined.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-primary.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-primary.png new file mode 100644 index 00000000000..d6288eedc3c Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-primary.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-secondary.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-secondary.png new file mode 100644 index 00000000000..7a406c93187 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-secondary.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/torso-primary.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/torso-primary.png new file mode 100644 index 00000000000..08cabfc99dc Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/torso-primary.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/torso-secondary.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/torso-secondary.png new file mode 100644 index 00000000000..4e61c144a95 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/torso-secondary.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/head-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/head-2.png new file mode 100644 index 00000000000..ca3cb6e9e36 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/head-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/head.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/head.png new file mode 100644 index 00000000000..a175f4dfcec Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/head.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/meta.json new file mode 100644 index 00000000000..ea5456fea10 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "copyright": "Sprites originally from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version made by: DayOS (https://github.com/Day-OS)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-1.png new file mode 100644 index 00000000000..51a3c40058f Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-2.png new file mode 100644 index 00000000000..17fbf43df08 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-3.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-3.png new file mode 100644 index 00000000000..e59e1c1d382 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-3.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/meta.json new file mode 100644 index 00000000000..5e35e7226fd --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise). Edited by Timemaster99", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head-1", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + }, + { + "name": "head-3", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_arm-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_arm-1.png new file mode 100644 index 00000000000..54ecbe28321 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_arm-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_arm-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_arm-2.png new file mode 100644 index 00000000000..c9a529d9ebb Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_arm-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_foot-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_foot-1.png new file mode 100644 index 00000000000..a4e96f5d745 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_foot-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_foot-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_foot-2.png new file mode 100644 index 00000000000..6be2024018b Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_foot-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_hand-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_hand-1.png new file mode 100644 index 00000000000..87466284b3b Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_hand-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_hand-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_hand-2.png new file mode 100644 index 00000000000..b871a179333 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_hand-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_leg-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_leg-1.png new file mode 100644 index 00000000000..880384f5ee9 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_leg-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_leg-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_leg-2.png new file mode 100644 index 00000000000..90b10eb4be5 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_leg-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/meta.json new file mode 100644 index 00000000000..9f4ca1ee51f --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/meta.json @@ -0,0 +1,83 @@ +{ + "version": 1, + "copyright": "Sprites originally from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version made by: DayOS (https://github.com/Day-OS)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_foot-1", + "directions": 4 + }, + { + "name": "l_foot-2", + "directions": 4 + }, + { + "name": "r_foot-1", + "directions": 4 + }, + { + "name": "r_foot-2", + "directions": 4 + }, + { + "name": "l_leg-1", + "directions": 4 + }, + { + "name": "l_leg-2", + "directions": 4 + }, + { + "name": "r_leg-1", + "directions": 4 + }, + { + "name": "r_leg-2", + "directions": 4 + }, + { + "name": "torso-1", + "directions": 4 + }, + { + "name": "torso-2", + "directions": 4 + }, + { + "name": "l_arm-1", + "directions": 4 + }, + { + "name": "l_arm-2", + "directions": 4 + }, + { + "name": "r_arm-1", + "directions": 4 + }, + { + "name": "r_arm-2", + "directions": 4 + }, + { + "name": "l_hand-1", + "directions": 4 + }, + { + "name": "l_hand-2", + "directions": 4 + }, + { + "name": "r_hand-1", + "directions": 4 + }, + { + "name": "r_hand-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_arm-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_arm-1.png new file mode 100644 index 00000000000..5e770056ed9 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_arm-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_arm-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_arm-2.png new file mode 100644 index 00000000000..56b363d862a Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_arm-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_foot-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_foot-1.png new file mode 100644 index 00000000000..8994994011c Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_foot-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_foot-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_foot-2.png new file mode 100644 index 00000000000..9ca884025fd Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_foot-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_hand-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_hand-1.png new file mode 100644 index 00000000000..13a46c2e092 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_hand-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_hand-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_hand-2.png new file mode 100644 index 00000000000..d203e571fca Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_hand-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_leg-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_leg-1.png new file mode 100644 index 00000000000..bb762db0c49 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_leg-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_leg-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_leg-2.png new file mode 100644 index 00000000000..16f0ee16471 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_leg-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/torso-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/torso-1.png new file mode 100644 index 00000000000..45fb93052e4 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/torso-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/torso-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/torso-2.png new file mode 100644 index 00000000000..a8782ac3b04 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/torso-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_monitor.rsi/head-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_monitor.rsi/head-1.png new file mode 100644 index 00000000000..21e0ccbbcb8 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_monitor.rsi/head-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_monitor.rsi/head-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_monitor.rsi/head-2.png new file mode 100644 index 00000000000..0d351d8822a Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_monitor.rsi/head-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_monitor.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_monitor.rsi/meta.json new file mode 100644 index 00000000000..9d2654d15cb --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_monitor.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "copyright": "Sprites originally from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version made by: DayOS (https://github.com/Day-OS)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head-1", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_alt1.rsi/head.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_alt1.rsi/head.png new file mode 100644 index 00000000000..bed52ce6714 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_alt1.rsi/head.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_alt1.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_alt1.rsi/meta.json new file mode 100644 index 00000000000..9f87381cd87 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_alt1.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/head.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/head.png new file mode 100644 index 00000000000..63a66c5f866 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/head.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_arm.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_arm.png new file mode 100644 index 00000000000..9813e583feb Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_arm.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_foot.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_foot.png new file mode 100644 index 00000000000..468d4f38989 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_foot.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_hand.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_hand.png new file mode 100644 index 00000000000..05df57f392f Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_hand.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_leg.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_leg.png new file mode 100644 index 00000000000..236edc982e1 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_leg.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/meta.json new file mode 100644 index 00000000000..118c3f613c0 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/meta.json @@ -0,0 +1,51 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_foot", + "directions": 4 + }, + { + "name": "r_foot", + "directions": 4 + }, + { + "name": "l_leg", + "directions": 4 + }, + { + "name": "r_leg", + "directions": 4 + }, + { + "name": "torso", + "directions": 4 + }, + { + "name": "l_arm", + "directions": 4 + }, + { + "name": "r_arm", + "directions": 4 + }, + { + "name": "l_hand", + "directions": 4 + }, + { + "name": "r_hand", + "directions": 4 + }, + { + "name": "head", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_arm.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_arm.png new file mode 100644 index 00000000000..27ba8e0d263 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_arm.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_foot.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_foot.png new file mode 100644 index 00000000000..e0b3dd55b59 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_foot.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_hand.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_hand.png new file mode 100644 index 00000000000..716f604b4f3 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_hand.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_leg.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_leg.png new file mode 100644 index 00000000000..92a0aa7b475 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_leg.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/torso.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/torso.png new file mode 100644 index 00000000000..49afe13d65a Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/torso.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/head-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/head-1.png new file mode 100644 index 00000000000..d89df4071be Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/head-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/head-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/head-2.png new file mode 100644 index 00000000000..1540a6cac40 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/head-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/meta.json new file mode 100644 index 00000000000..576edfc9c56 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise). Edited by Timemaster99.", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head-1", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_arm-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_arm-1.png new file mode 100644 index 00000000000..f5694178c58 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_arm-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_arm-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_arm-2.png new file mode 100644 index 00000000000..f87f611652a Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_arm-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_foot-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_foot-1.png new file mode 100644 index 00000000000..4ee57febec2 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_foot-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_foot-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_foot-2.png new file mode 100644 index 00000000000..fcdf5bf6504 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_foot-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_hand-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_hand-1.png new file mode 100644 index 00000000000..381573480ff Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_hand-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_hand-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_hand-2.png new file mode 100644 index 00000000000..c502e77a18f Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_hand-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_leg-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_leg-1.png new file mode 100644 index 00000000000..a4bee8acb48 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_leg-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_leg-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_leg-2.png new file mode 100644 index 00000000000..0be292d26c2 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_leg-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/meta.json new file mode 100644 index 00000000000..9f4ca1ee51f --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/meta.json @@ -0,0 +1,83 @@ +{ + "version": 1, + "copyright": "Sprites originally from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version made by: DayOS (https://github.com/Day-OS)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_foot-1", + "directions": 4 + }, + { + "name": "l_foot-2", + "directions": 4 + }, + { + "name": "r_foot-1", + "directions": 4 + }, + { + "name": "r_foot-2", + "directions": 4 + }, + { + "name": "l_leg-1", + "directions": 4 + }, + { + "name": "l_leg-2", + "directions": 4 + }, + { + "name": "r_leg-1", + "directions": 4 + }, + { + "name": "r_leg-2", + "directions": 4 + }, + { + "name": "torso-1", + "directions": 4 + }, + { + "name": "torso-2", + "directions": 4 + }, + { + "name": "l_arm-1", + "directions": 4 + }, + { + "name": "l_arm-2", + "directions": 4 + }, + { + "name": "r_arm-1", + "directions": 4 + }, + { + "name": "r_arm-2", + "directions": 4 + }, + { + "name": "l_hand-1", + "directions": 4 + }, + { + "name": "l_hand-2", + "directions": 4 + }, + { + "name": "r_hand-1", + "directions": 4 + }, + { + "name": "r_hand-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_arm-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_arm-1.png new file mode 100644 index 00000000000..b2a1996652f Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_arm-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_arm-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_arm-2.png new file mode 100644 index 00000000000..a79a0eb6483 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_arm-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_foot-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_foot-1.png new file mode 100644 index 00000000000..da79cffbc9b Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_foot-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_foot-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_foot-2.png new file mode 100644 index 00000000000..90b5deb87c4 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_foot-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_hand-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_hand-1.png new file mode 100644 index 00000000000..9d4084b0ca1 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_hand-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_hand-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_hand-2.png new file mode 100644 index 00000000000..a2cc6b71a67 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_hand-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_leg-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_leg-1.png new file mode 100644 index 00000000000..5d1bc5a60da Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_leg-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_leg-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_leg-2.png new file mode 100644 index 00000000000..b2b85c3213d Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_leg-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/torso-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/torso-1.png new file mode 100644 index 00000000000..c757f06420a Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/torso-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/torso-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/torso-2.png new file mode 100644 index 00000000000..cd822361bf4 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/torso-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/head-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/head-1.png new file mode 100644 index 00000000000..99add5cc504 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/head-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/head-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/head-2.png new file mode 100644 index 00000000000..0d5ffd6c10e Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/head-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/meta.json new file mode 100644 index 00000000000..9d2654d15cb --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "copyright": "Sprites originally from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version made by: DayOS (https://github.com/Day-OS)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head-1", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_alt1.rsi/head.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_alt1.rsi/head.png new file mode 100644 index 00000000000..9fbd2083d1d Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_alt1.rsi/head.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_alt1.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_alt1.rsi/meta.json new file mode 100644 index 00000000000..ef992f309c8 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_alt1.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise). Edited by Timemaster99", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/head.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/head.png new file mode 100644 index 00000000000..c50698e68ce Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/head.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_arm.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_arm.png new file mode 100644 index 00000000000..1c5f646e36e Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_arm.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_foot.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_foot.png new file mode 100644 index 00000000000..45d9e8e2460 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_foot.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_hand.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_hand.png new file mode 100644 index 00000000000..062d14745c0 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_hand.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_leg.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_leg.png new file mode 100644 index 00000000000..f120754830b Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_leg.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/meta.json new file mode 100644 index 00000000000..f30906990a5 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/meta.json @@ -0,0 +1,51 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise). Edited by Timemaster99", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_foot", + "directions": 4 + }, + { + "name": "r_foot", + "directions": 4 + }, + { + "name": "l_leg", + "directions": 4 + }, + { + "name": "r_leg", + "directions": 4 + }, + { + "name": "torso", + "directions": 4 + }, + { + "name": "l_arm", + "directions": 4 + }, + { + "name": "r_arm", + "directions": 4 + }, + { + "name": "l_hand", + "directions": 4 + }, + { + "name": "r_hand", + "directions": 4 + }, + { + "name": "head", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_arm.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_arm.png new file mode 100644 index 00000000000..24e15d419ad Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_arm.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_foot.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_foot.png new file mode 100644 index 00000000000..f04c2fd7a64 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_foot.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_hand.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_hand.png new file mode 100644 index 00000000000..287556a83a0 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_hand.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_leg.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_leg.png new file mode 100644 index 00000000000..653101e63af Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_leg.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/torso.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/torso.png new file mode 100644 index 00000000000..ad1bd42ca6c Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/torso.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_monitor.rsi/head.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_monitor.rsi/head.png new file mode 100644 index 00000000000..31ef25deb56 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_monitor.rsi/head.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_monitor.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_monitor.rsi/meta.json new file mode 100644 index 00000000000..9f87381cd87 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_monitor.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/head-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/head-1.png new file mode 100644 index 00000000000..fe3943fac0d Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/head-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/head-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/head-2.png new file mode 100644 index 00000000000..baf6e438f81 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/head-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/meta.json new file mode 100644 index 00000000000..576edfc9c56 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise). Edited by Timemaster99.", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head-1", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_arm-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_arm-1.png new file mode 100644 index 00000000000..48cf08df079 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_arm-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_arm-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_arm-2.png new file mode 100644 index 00000000000..1ef9cc0473f Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_arm-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_foot-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_foot-1.png new file mode 100644 index 00000000000..38b28406ac5 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_foot-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_foot-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_foot-2.png new file mode 100644 index 00000000000..0d745f2d566 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_foot-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_hand-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_hand-1.png new file mode 100644 index 00000000000..72a1d92d83f Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_hand-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_hand-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_hand-2.png new file mode 100644 index 00000000000..d61d58b478a Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_hand-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_leg-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_leg-1.png new file mode 100644 index 00000000000..6e813b8b631 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_leg-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_leg-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_leg-2.png new file mode 100644 index 00000000000..89106d6420b Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_leg-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/meta.json new file mode 100644 index 00000000000..35c1cad74bd --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/meta.json @@ -0,0 +1,82 @@ +{ + "version": 1, + "copyright": "Sprites originally from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version made by: DayOS (https://github.com/Day-OS)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_foot-1", + "directions": 4 + },{ + "name": "l_foot-2", + "directions": 4 + }, + { + "name": "r_foot-1", + "directions": 4 + }, + { + "name": "r_foot-2", + "directions": 4 + }, + { + "name": "l_leg-1", + "directions": 4 + }, + { + "name": "l_leg-2", + "directions": 4 + }, + { + "name": "r_leg-1", + "directions": 4 + }, + { + "name": "r_leg-2", + "directions": 4 + }, + { + "name": "torso-1", + "directions": 4 + }, + { + "name": "torso-2", + "directions": 4 + }, + { + "name": "l_arm-1", + "directions": 4 + }, + { + "name": "l_arm-2", + "directions": 4 + }, + { + "name": "r_arm-1", + "directions": 4 + }, + { + "name": "r_arm-2", + "directions": 4 + }, + { + "name": "l_hand-1", + "directions": 4 + }, + { + "name": "l_hand-2", + "directions": 4 + }, + { + "name": "r_hand-1", + "directions": 4 + }, + { + "name": "r_hand-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_arm-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_arm-1.png new file mode 100644 index 00000000000..0409bb02fe1 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_arm-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_arm-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_arm-2.png new file mode 100644 index 00000000000..061988dbcd4 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_arm-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_foot-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_foot-1.png new file mode 100644 index 00000000000..ef8b2b141aa Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_foot-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_foot-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_foot-2.png new file mode 100644 index 00000000000..74d17c3c734 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_foot-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_hand-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_hand-1.png new file mode 100644 index 00000000000..9d9dfb2848a Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_hand-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_hand-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_hand-2.png new file mode 100644 index 00000000000..9d4e6c3e167 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_hand-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_leg-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_leg-1.png new file mode 100644 index 00000000000..7ef9033cc0f Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_leg-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_leg-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_leg-2.png new file mode 100644 index 00000000000..cb88587d550 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_leg-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/torso-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/torso-1.png new file mode 100644 index 00000000000..db42c9a82bf Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/torso-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/torso-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/torso-2.png new file mode 100644 index 00000000000..70271b0c3a2 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_main.rsi/torso-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/head-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/head-1.png new file mode 100644 index 00000000000..e48ad79298c Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/head-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/head-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/head-2.png new file mode 100644 index 00000000000..bf1903f4bcc Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/head-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/meta.json new file mode 100644 index 00000000000..9d2654d15cb --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "copyright": "Sprites originally from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version made by: DayOS (https://github.com/Day-OS)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head-1", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/groin.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/groin.png new file mode 100644 index 00000000000..29ae064b0d6 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/groin.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/head-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/head-1.png new file mode 100644 index 00000000000..792a57e81d9 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/head-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/head-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/head-2.png new file mode 100644 index 00000000000..14e7e83c2fd Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/head-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_arm-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_arm-1.png new file mode 100644 index 00000000000..93064d56057 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_arm-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_arm-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_arm-2.png new file mode 100644 index 00000000000..7df87a8915a Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_arm-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_foot-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_foot-1.png new file mode 100644 index 00000000000..8fb9ec75e2c Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_foot-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_foot-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_foot-2.png new file mode 100644 index 00000000000..767bd0d4d6d Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_foot-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_hand-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_hand-1.png new file mode 100644 index 00000000000..d0660f1bc15 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_hand-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_hand-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_hand-2.png new file mode 100644 index 00000000000..5bb2251d140 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_hand-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_leg-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_leg-1.png new file mode 100644 index 00000000000..4ce036704ff Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_leg-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_leg-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_leg-2.png new file mode 100644 index 00000000000..237eb32d6e4 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_leg-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/meta.json new file mode 100644 index 00000000000..bf863d580f6 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/meta.json @@ -0,0 +1,95 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version by Timemaster99", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_foot-1", + "directions": 4 + }, + { + "name": "l_foot-2", + "directions": 4 + }, + { + "name": "r_foot-1", + "directions": 4 + }, + { + "name": "r_foot-2", + "directions": 4 + }, + { + "name": "l_leg-1", + "directions": 4 + }, + { + "name": "l_leg-2", + "directions": 4 + }, + { + "name": "r_leg-1", + "directions": 4 + }, + { + "name": "r_leg-2", + "directions": 4 + }, + { + "name": "groin", + "directions": 4 + }, + { + "name": "torso-1", + "directions": 4 + }, + { + "name": "torso-2", + "directions": 4 + }, + { + "name": "l_arm-1", + "directions": 4 + }, + { + "name": "l_arm-2", + "directions": 4 + }, + { + "name": "r_arm-1", + "directions": 4 + }, + { + "name": "r_arm-2", + "directions": 4 + }, + { + "name": "l_hand-1", + "directions": 4 + }, + { + "name": "l_hand-2", + "directions": 4 + }, + { + "name": "r_hand-1", + "directions": 4 + }, + { + "name": "r_hand-2", + "directions": 4 + }, + { + "name": "head-1", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_arm-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_arm-1.png new file mode 100644 index 00000000000..6bd612a5d33 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_arm-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_arm-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_arm-2.png new file mode 100644 index 00000000000..69be000d908 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_arm-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_foot-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_foot-1.png new file mode 100644 index 00000000000..f3f1b5121d0 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_foot-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_foot-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_foot-2.png new file mode 100644 index 00000000000..d5a6fb2a71c Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_foot-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_hand-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_hand-1.png new file mode 100644 index 00000000000..a77c7f00e67 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_hand-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_hand-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_hand-2.png new file mode 100644 index 00000000000..e8d557eae81 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_hand-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_leg-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_leg-1.png new file mode 100644 index 00000000000..effbab2037d Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_leg-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_leg-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_leg-2.png new file mode 100644 index 00000000000..5e22421eb82 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_leg-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/torso-1.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/torso-1.png new file mode 100644 index 00000000000..0e1480d6986 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/torso-1.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/torso-2.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/torso-2.png new file mode 100644 index 00000000000..d6bffee42c2 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/torso-2.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/ears.png b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/ears.png new file mode 100644 index 00000000000..9966cc2ac2d Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/ears.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/eyeball-l.png b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/eyeball-l.png new file mode 100644 index 00000000000..09b98e316f8 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/eyeball-l.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/eyeball-r.png b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/eyeball-r.png new file mode 100644 index 00000000000..f1ff37a002f Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/eyeball-r.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/eyes.png b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/eyes.png new file mode 100644 index 00000000000..0fb6412e1c3 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/eyes.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/heart-off.png b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/heart-off.png new file mode 100644 index 00000000000..7dda0d3a8e6 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/heart-off.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/heart-on.png b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/heart-on.png new file mode 100644 index 00000000000..676a641989a Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/heart-on.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/meta.json new file mode 100644 index 00000000000..2905c5cbd07 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/meta.json @@ -0,0 +1,50 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Yogstation", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "heart-off" + }, + { + "name": "heart-on", + "delays": [ + [ + 0.6, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "eyes" + }, + { + "name": "eyeball-r" + }, + { + "name": "tongue" + }, + { + "name": "eyeball-l" + }, + { + "name": "microcell", + "delays": [ + [ + 0.5, + 0.5 + ] + ] + }, + { + "name": "ears" + } + ] +} diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/microcell.png b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/microcell.png new file mode 100644 index 00000000000..18b692a5a99 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/microcell.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/tongue.png b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/tongue.png new file mode 100644 index 00000000000..dee2ed3b99f Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/organs.rsi/tongue.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/full.png b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/full.png new file mode 100644 index 00000000000..7faae4a077e Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/full.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/head_f.png b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/head_f.png new file mode 100644 index 00000000000..31d77176c96 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/head_f.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/head_m.png b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/head_m.png new file mode 100644 index 00000000000..53d6069a283 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/head_m.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/l_arm.png b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/l_arm.png new file mode 100644 index 00000000000..4f042bf40e0 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/l_arm.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/l_foot.png b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/l_foot.png new file mode 100644 index 00000000000..bb9bede2180 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/l_foot.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/l_hand.png b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/l_hand.png new file mode 100644 index 00000000000..5b6c2df090c Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/l_hand.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/l_leg.png b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/l_leg.png new file mode 100644 index 00000000000..788f2769d43 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/l_leg.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/meta.json new file mode 100644 index 00000000000..1463c57a060 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/meta.json @@ -0,0 +1,62 @@ +{ + "version": 2, + "license": "CC-BY-SA-3.0", + "copyright": "Original drawn by @robustyanka on Discord, modified by @pspritechologist", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "full" + }, + { + "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": "l_leg", + "directions": 4 + }, + { + "name": "r_foot", + "directions": 4 + }, + { + "name": "l_foot", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/r_arm.png b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/r_arm.png new file mode 100644 index 00000000000..6c1ff1ec9cf Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/r_arm.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/r_foot.png b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/r_foot.png new file mode 100644 index 00000000000..2389c30aea5 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/r_foot.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/r_hand.png b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/r_hand.png new file mode 100644 index 00000000000..3ec4fab0378 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/r_hand.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/r_leg.png b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/r_leg.png new file mode 100644 index 00000000000..f424b2efbca Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/r_leg.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/torso_f.png b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/torso_f.png new file mode 100644 index 00000000000..b36a2eed8c7 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/torso_f.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/torso_m.png b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/torso_m.png new file mode 100644 index 00000000000..df2588b562d Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/IPC/parts.rsi/torso_m.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Misc/Pizza/parts.rsi/l_arm.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Misc/Pizza/parts.rsi/l_arm.png new file mode 100644 index 00000000000..d2838e8b7d4 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Misc/Pizza/parts.rsi/l_arm.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Misc/Pizza/parts.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/Misc/Pizza/parts.rsi/meta.json new file mode 100644 index 00000000000..27215dfbca6 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/Misc/Pizza/parts.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by Agoichi (823598558690934824)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_arm", + "directions": 4 + }, + { + "name": "r_arm", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Misc/Pizza/parts.rsi/r_arm.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Misc/Pizza/parts.rsi/r_arm.png new file mode 100644 index 00000000000..a85b505f90e Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Misc/Pizza/parts.rsi/r_arm.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Resomi/organs.rsi/lung-l.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Resomi/organs.rsi/lung-l.png new file mode 100644 index 00000000000..32aca484b9f Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Resomi/organs.rsi/lung-l.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Resomi/organs.rsi/lung-r.png b/Resources/Textures/_CorvaxNext/Mobs/Species/Resomi/organs.rsi/lung-r.png new file mode 100644 index 00000000000..7e29649ccd8 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Mobs/Species/Resomi/organs.rsi/lung-r.png differ diff --git a/Resources/Textures/_CorvaxNext/Mobs/Species/Resomi/organs.rsi/meta.json b/Resources/Textures/_CorvaxNext/Mobs/Species/Resomi/organs.rsi/meta.json new file mode 100644 index 00000000000..e639085d8d0 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Mobs/Species/Resomi/organs.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation and cev-eris at https://github.com/tgstation/tgstation/commit/c4b7f3c41b6742aca260fe60cc358a778ba9b8c8 and https://github.com/discordia-space/CEV-Eris/commit/476e374cea95ff5e8b1603c48342bf700e2cd7af", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "lung-l" + }, + { + "name": "lung-r" + } + ] +} diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor-on.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor-on.png new file mode 100644 index 00000000000..32e3da4497f Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor-on.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor.png new file mode 100644 index 00000000000..7df819a183e Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left-on.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left-on.png new file mode 100644 index 00000000000..3c2e8972821 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left-on.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left.png new file mode 100644 index 00000000000..9a93d2bb5fc Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right-on.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right-on.png new file mode 100644 index 00000000000..f91961a9df3 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right-on.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right.png new file mode 100644 index 00000000000..6444d084235 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi/meta.json b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi/meta.json new file mode 100644 index 00000000000..592796b3e08 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/adv-retractor.rsi/meta.json @@ -0,0 +1,33 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "adv-retractor" + }, + { + "name": "adv-retractor-on" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-left-on", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "inhand-right-on", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/bone-gel.rsi/bone-gel.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/bone-gel.rsi/bone-gel.png new file mode 100644 index 00000000000..ac425d8014c Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/bone-gel.rsi/bone-gel.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/bone-gel.rsi/inhand-left.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/bone-gel.rsi/inhand-left.png new file mode 100644 index 00000000000..2cd6321ee66 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/bone-gel.rsi/inhand-left.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/bone-gel.rsi/inhand-right.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/bone-gel.rsi/inhand-right.png new file mode 100644 index 00000000000..549de0c4134 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/bone-gel.rsi/inhand-right.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/bone-gel.rsi/meta.json b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/bone-gel.rsi/meta.json new file mode 100644 index 00000000000..cb021eef6bf --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/bone-gel.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "bone-gel" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/cautery.rsi/cautery.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/cautery.rsi/cautery.png new file mode 100644 index 00000000000..f82e7f12a0b Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/cautery.rsi/cautery.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-left.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-left.png new file mode 100644 index 00000000000..dcc6bd69467 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-left.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-right.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-right.png new file mode 100644 index 00000000000..1c1cc9c4d80 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-right.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/cautery.rsi/meta.json b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/cautery.rsi/meta.json new file mode 100644 index 00000000000..4b08c30b53e --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/cautery.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "cautery" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/circular-saw.rsi/circular-saw.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/circular-saw.rsi/circular-saw.png new file mode 100644 index 00000000000..816095a7fc0 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/circular-saw.rsi/circular-saw.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-left.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-left.png new file mode 100644 index 00000000000..fb5a065550e Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-left.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-right.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-right.png new file mode 100644 index 00000000000..c0e064d10b1 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-right.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/circular-saw.rsi/meta.json b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/circular-saw.rsi/meta.json new file mode 100644 index 00000000000..42163ea24d7 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/circular-saw.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "circular-saw" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drapes.rsi/drapes.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drapes.rsi/drapes.png new file mode 100644 index 00000000000..1119569bdd7 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drapes.rsi/drapes.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-left.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-left.png new file mode 100644 index 00000000000..7531299f2a4 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-left.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-right.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-right.png new file mode 100644 index 00000000000..57fea9b7e25 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-right.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drapes.rsi/meta.json b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drapes.rsi/meta.json new file mode 100644 index 00000000000..9c30d1b15d5 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drapes.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "drapes" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drill.rsi/drill.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drill.rsi/drill.png new file mode 100644 index 00000000000..1f141fb217b Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drill.rsi/drill.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drill.rsi/inhand-left.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drill.rsi/inhand-left.png new file mode 100644 index 00000000000..e2108b95a74 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drill.rsi/inhand-left.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drill.rsi/inhand-right.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drill.rsi/inhand-right.png new file mode 100644 index 00000000000..991fbea280d Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drill.rsi/inhand-right.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drill.rsi/meta.json b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drill.rsi/meta.json new file mode 100644 index 00000000000..a9c84b52f01 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/drill.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "drill" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery-on.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery-on.png new file mode 100644 index 00000000000..d0a512e94e7 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery-on.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery.png new file mode 100644 index 00000000000..2cd5b0e97c0 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-left-on.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-left-on.png new file mode 100644 index 00000000000..46e8c431e91 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-left-on.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-left.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-left.png new file mode 100644 index 00000000000..1ffa9e522ae Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-left.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right-on.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right-on.png new file mode 100644 index 00000000000..1bbb5332060 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right-on.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right.png new file mode 100644 index 00000000000..fa95ce487dd Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi/meta.json b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi/meta.json new file mode 100644 index 00000000000..4a4c2c11d67 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-cautery.rsi/meta.json @@ -0,0 +1,33 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "e-cautery" + }, + { + "name": "e-cautery-on" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-left-on", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "inhand-right-on", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel-on.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel-on.png new file mode 100644 index 00000000000..04a27c34bbb Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel-on.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel.png new file mode 100644 index 00000000000..1fbf799b60d Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-left-on.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-left-on.png new file mode 100644 index 00000000000..72cbd3608f6 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-left-on.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-left.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-left.png new file mode 100644 index 00000000000..151705c9588 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-left.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right-on.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right-on.png new file mode 100644 index 00000000000..358f397c5e5 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right-on.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right.png new file mode 100644 index 00000000000..70a64d2b0e6 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi/meta.json b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi/meta.json new file mode 100644 index 00000000000..701445e8ab8 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/e-scalpel.rsi/meta.json @@ -0,0 +1,39 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "e-scalpel" + }, + { + "name": "e-scalpel-on", + "delays": [ + [ + 0.1, + 0.1 + ] + ] + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-left-on", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "inhand-right-on", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/hemostat.rsi/hemostat.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/hemostat.rsi/hemostat.png new file mode 100644 index 00000000000..951d323a52f Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/hemostat.rsi/hemostat.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-left.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-left.png new file mode 100644 index 00000000000..eb331bac35e Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-left.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-right.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-right.png new file mode 100644 index 00000000000..b83b2b02c0b Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-right.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/hemostat.rsi/meta.json b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/hemostat.rsi/meta.json new file mode 100644 index 00000000000..afbaa9cd516 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/hemostat.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "hemostat" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-left.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-left.png new file mode 100644 index 00000000000..4f9d45bdb9f Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-left.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-right.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-right.png new file mode 100644 index 00000000000..70464f12119 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-right.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/omnimed.rsi/meta.json b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/omnimed.rsi/meta.json new file mode 100644 index 00000000000..ff849d1338c --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/omnimed.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/commit/b7c3ac536391a3dfe3046f3b5197721af4564d90", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "omnimed" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/omnimed.rsi/omnimed.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/omnimed.rsi/omnimed.png new file mode 100644 index 00000000000..9e0031744da Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/omnimed.rsi/omnimed.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-left.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-left.png new file mode 100644 index 00000000000..a23bdae4c5b Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-left.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-right.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-right.png new file mode 100644 index 00000000000..cced67007f5 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-right.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/retractor.rsi/meta.json b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/retractor.rsi/meta.json new file mode 100644 index 00000000000..a38e04dcfd2 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/retractor.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "retractor" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/retractor.rsi/retractor.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/retractor.rsi/retractor.png new file mode 100644 index 00000000000..24e04fe613a Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/retractor.rsi/retractor.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-left.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-left.png new file mode 100644 index 00000000000..726e388eca1 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-left.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-right.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-right.png new file mode 100644 index 00000000000..ed4b405d90c Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-right.png differ diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/scalpel.rsi/meta.json b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/scalpel.rsi/meta.json new file mode 100644 index 00000000000..7cbc1208942 --- /dev/null +++ b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/scalpel.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "scalpel" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/scalpel.rsi/scalpel.png b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/scalpel.rsi/scalpel.png new file mode 100644 index 00000000000..44ec06e4631 Binary files /dev/null and b/Resources/Textures/_CorvaxNext/Objects/Specific/Medical/Surgery/scalpel.rsi/scalpel.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Aliens/Carps/carp_parts.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Aliens/Carps/carp_parts.rsi/meta.json new file mode 100644 index 00000000000..cdecf550def --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Aliens/Carps/carp_parts.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from and modified by deltanedas (github) for GoobStation", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "tail" + }, + { + "name": "torso" + } + ] +} diff --git a/Resources/Textures/_Shitmed/Mobs/Aliens/Carps/carp_parts.rsi/tail.png b/Resources/Textures/_Shitmed/Mobs/Aliens/Carps/carp_parts.rsi/tail.png new file mode 100644 index 00000000000..bb0b9458102 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Aliens/Carps/carp_parts.rsi/tail.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Aliens/Carps/carp_parts.rsi/torso.png b/Resources/Textures/_Shitmed/Mobs/Aliens/Carps/carp_parts.rsi/torso.png new file mode 100644 index 00000000000..ab0f5ff82f0 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Aliens/Carps/carp_parts.rsi/torso.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_alt1.rsi/head.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_alt1.rsi/head.png new file mode 100644 index 00000000000..81c98564b9a Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_alt1.rsi/head.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_alt1.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_alt1.rsi/meta.json new file mode 100644 index 00000000000..9f87381cd87 --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_alt1.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/head.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/head.png new file mode 100644 index 00000000000..a89de820f47 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/head.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-combined.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-combined.png new file mode 100644 index 00000000000..a6ddbf35891 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-combined.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-primary.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-primary.png new file mode 100644 index 00000000000..5d6b133523b Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-primary.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-secondary.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-secondary.png new file mode 100644 index 00000000000..de40773897f Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-secondary.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-tertiary.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-tertiary.png new file mode 100644 index 00000000000..7b83ecf161b Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-tertiary.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_foot.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_foot.png new file mode 100644 index 00000000000..534085a97c3 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_foot.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_hand.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_hand.png new file mode 100644 index 00000000000..771cd025a86 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_hand.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-combined.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-combined.png new file mode 100644 index 00000000000..915b2af4d37 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-combined.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-primary.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-primary.png new file mode 100644 index 00000000000..05f568654e6 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-primary.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-secondary.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-secondary.png new file mode 100644 index 00000000000..a96f9eb3854 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-secondary.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/meta.json new file mode 100644 index 00000000000..94020ddda5b --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/meta.json @@ -0,0 +1,95 @@ +{ + "version": 1, + "copyright": "Sprites originally from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version made by: DayOS (https://github.com/Day-OS)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_foot", + "directions": 4 + }, + { + "name": "r_foot", + "directions": 4 + }, + { + "name": "l_leg-primary", + "directions": 4 + }, + { + "name": "l_leg-secondary", + "directions": 4 + }, + { + "name": "l_leg-combined", + "directions": 4 + }, + { + "name": "r_leg-primary", + "directions": 4 + }, + { + "name": "r_leg-secondary", + "directions": 4 + }, + { + "name": "r_leg-combined", + "directions": 4 + }, + { + "name": "torso-primary", + "directions": 4 + }, + { + "name": "torso-secondary", + "directions": 4 + }, + { + "name": "l_arm-primary", + "directions": 4 + }, + { + "name": "l_arm-secondary", + "directions": 4 + }, + { + "name": "l_arm-tertiary", + "directions": 4 + }, + { + "name": "l_arm-combined", + "directions": 4 + }, + { + "name": "r_arm-primary", + "directions": 4 + }, + { + "name": "r_arm-secondary", + "directions": 4 + }, + { + "name": "r_arm-tertiary", + "directions": 4 + }, + { + "name": "r_arm-combined", + "directions": 4 + }, + { + "name": "l_hand", + "directions": 4 + }, + { + "name": "r_hand", + "directions": 4 + }, + { + "name": "head", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-combined.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-combined.png new file mode 100644 index 00000000000..eabc7e4bd88 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-combined.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-primary.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-primary.png new file mode 100644 index 00000000000..c8087d3fc19 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-primary.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-secondary.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-secondary.png new file mode 100644 index 00000000000..2cf2346bd84 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-secondary.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-tertiary.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-tertiary.png new file mode 100644 index 00000000000..0b5cecfd6c3 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-tertiary.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_foot.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_foot.png new file mode 100644 index 00000000000..a8fbe8635ea Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_foot.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_hand.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_hand.png new file mode 100644 index 00000000000..db11be34056 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_hand.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-combined.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-combined.png new file mode 100644 index 00000000000..a035dd86265 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-combined.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-primary.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-primary.png new file mode 100644 index 00000000000..d6288eedc3c Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-primary.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-secondary.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-secondary.png new file mode 100644 index 00000000000..7a406c93187 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-secondary.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/torso-primary.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/torso-primary.png new file mode 100644 index 00000000000..08cabfc99dc Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/torso-primary.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/torso-secondary.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/torso-secondary.png new file mode 100644 index 00000000000..4e61c144a95 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/torso-secondary.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/head-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/head-2.png new file mode 100644 index 00000000000..ca3cb6e9e36 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/head-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/head.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/head.png new file mode 100644 index 00000000000..a175f4dfcec Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/head.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/meta.json new file mode 100644 index 00000000000..ea5456fea10 --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "copyright": "Sprites originally from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version made by: DayOS (https://github.com/Day-OS)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-1.png new file mode 100644 index 00000000000..51a3c40058f Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-2.png new file mode 100644 index 00000000000..17fbf43df08 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-3.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-3.png new file mode 100644 index 00000000000..e59e1c1d382 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-3.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/meta.json new file mode 100644 index 00000000000..5e35e7226fd --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise). Edited by Timemaster99", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head-1", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + }, + { + "name": "head-3", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_arm-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_arm-1.png new file mode 100644 index 00000000000..54ecbe28321 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_arm-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_arm-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_arm-2.png new file mode 100644 index 00000000000..c9a529d9ebb Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_arm-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_foot-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_foot-1.png new file mode 100644 index 00000000000..a4e96f5d745 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_foot-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_foot-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_foot-2.png new file mode 100644 index 00000000000..6be2024018b Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_foot-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_hand-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_hand-1.png new file mode 100644 index 00000000000..87466284b3b Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_hand-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_hand-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_hand-2.png new file mode 100644 index 00000000000..b871a179333 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_hand-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_leg-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_leg-1.png new file mode 100644 index 00000000000..880384f5ee9 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_leg-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_leg-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_leg-2.png new file mode 100644 index 00000000000..90b10eb4be5 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_leg-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/meta.json new file mode 100644 index 00000000000..9f4ca1ee51f --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/meta.json @@ -0,0 +1,83 @@ +{ + "version": 1, + "copyright": "Sprites originally from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version made by: DayOS (https://github.com/Day-OS)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_foot-1", + "directions": 4 + }, + { + "name": "l_foot-2", + "directions": 4 + }, + { + "name": "r_foot-1", + "directions": 4 + }, + { + "name": "r_foot-2", + "directions": 4 + }, + { + "name": "l_leg-1", + "directions": 4 + }, + { + "name": "l_leg-2", + "directions": 4 + }, + { + "name": "r_leg-1", + "directions": 4 + }, + { + "name": "r_leg-2", + "directions": 4 + }, + { + "name": "torso-1", + "directions": 4 + }, + { + "name": "torso-2", + "directions": 4 + }, + { + "name": "l_arm-1", + "directions": 4 + }, + { + "name": "l_arm-2", + "directions": 4 + }, + { + "name": "r_arm-1", + "directions": 4 + }, + { + "name": "r_arm-2", + "directions": 4 + }, + { + "name": "l_hand-1", + "directions": 4 + }, + { + "name": "l_hand-2", + "directions": 4 + }, + { + "name": "r_hand-1", + "directions": 4 + }, + { + "name": "r_hand-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_arm-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_arm-1.png new file mode 100644 index 00000000000..5e770056ed9 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_arm-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_arm-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_arm-2.png new file mode 100644 index 00000000000..56b363d862a Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_arm-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_foot-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_foot-1.png new file mode 100644 index 00000000000..8994994011c Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_foot-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_foot-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_foot-2.png new file mode 100644 index 00000000000..9ca884025fd Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_foot-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_hand-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_hand-1.png new file mode 100644 index 00000000000..13a46c2e092 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_hand-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_hand-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_hand-2.png new file mode 100644 index 00000000000..d203e571fca Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_hand-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_leg-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_leg-1.png new file mode 100644 index 00000000000..bb762db0c49 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_leg-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_leg-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_leg-2.png new file mode 100644 index 00000000000..16f0ee16471 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_leg-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/torso-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/torso-1.png new file mode 100644 index 00000000000..45fb93052e4 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/torso-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/torso-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/torso-2.png new file mode 100644 index 00000000000..a8782ac3b04 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/torso-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_monitor.rsi/head-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_monitor.rsi/head-1.png new file mode 100644 index 00000000000..21e0ccbbcb8 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_monitor.rsi/head-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_monitor.rsi/head-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_monitor.rsi/head-2.png new file mode 100644 index 00000000000..0d351d8822a Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_monitor.rsi/head-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_monitor.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_monitor.rsi/meta.json new file mode 100644 index 00000000000..9d2654d15cb --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_monitor.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "copyright": "Sprites originally from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version made by: DayOS (https://github.com/Day-OS)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head-1", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_alt1.rsi/head.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_alt1.rsi/head.png new file mode 100644 index 00000000000..bed52ce6714 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_alt1.rsi/head.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_alt1.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_alt1.rsi/meta.json new file mode 100644 index 00000000000..9f87381cd87 --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_alt1.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/head.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/head.png new file mode 100644 index 00000000000..63a66c5f866 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/head.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_arm.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_arm.png new file mode 100644 index 00000000000..9813e583feb Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_arm.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_foot.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_foot.png new file mode 100644 index 00000000000..468d4f38989 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_foot.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_hand.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_hand.png new file mode 100644 index 00000000000..05df57f392f Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_hand.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_leg.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_leg.png new file mode 100644 index 00000000000..236edc982e1 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_leg.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/meta.json new file mode 100644 index 00000000000..118c3f613c0 --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/meta.json @@ -0,0 +1,51 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_foot", + "directions": 4 + }, + { + "name": "r_foot", + "directions": 4 + }, + { + "name": "l_leg", + "directions": 4 + }, + { + "name": "r_leg", + "directions": 4 + }, + { + "name": "torso", + "directions": 4 + }, + { + "name": "l_arm", + "directions": 4 + }, + { + "name": "r_arm", + "directions": 4 + }, + { + "name": "l_hand", + "directions": 4 + }, + { + "name": "r_hand", + "directions": 4 + }, + { + "name": "head", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_arm.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_arm.png new file mode 100644 index 00000000000..27ba8e0d263 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_arm.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_foot.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_foot.png new file mode 100644 index 00000000000..e0b3dd55b59 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_foot.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_hand.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_hand.png new file mode 100644 index 00000000000..716f604b4f3 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_hand.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_leg.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_leg.png new file mode 100644 index 00000000000..92a0aa7b475 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_leg.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/torso.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/torso.png new file mode 100644 index 00000000000..49afe13d65a Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/torso.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/head-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/head-1.png new file mode 100644 index 00000000000..d89df4071be Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/head-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/head-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/head-2.png new file mode 100644 index 00000000000..1540a6cac40 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/head-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/meta.json new file mode 100644 index 00000000000..576edfc9c56 --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise). Edited by Timemaster99.", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head-1", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_arm-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_arm-1.png new file mode 100644 index 00000000000..f5694178c58 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_arm-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_arm-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_arm-2.png new file mode 100644 index 00000000000..f87f611652a Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_arm-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_foot-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_foot-1.png new file mode 100644 index 00000000000..4ee57febec2 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_foot-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_foot-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_foot-2.png new file mode 100644 index 00000000000..fcdf5bf6504 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_foot-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_hand-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_hand-1.png new file mode 100644 index 00000000000..381573480ff Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_hand-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_hand-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_hand-2.png new file mode 100644 index 00000000000..c502e77a18f Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_hand-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_leg-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_leg-1.png new file mode 100644 index 00000000000..a4bee8acb48 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_leg-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_leg-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_leg-2.png new file mode 100644 index 00000000000..0be292d26c2 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_leg-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/meta.json new file mode 100644 index 00000000000..9f4ca1ee51f --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/meta.json @@ -0,0 +1,83 @@ +{ + "version": 1, + "copyright": "Sprites originally from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version made by: DayOS (https://github.com/Day-OS)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_foot-1", + "directions": 4 + }, + { + "name": "l_foot-2", + "directions": 4 + }, + { + "name": "r_foot-1", + "directions": 4 + }, + { + "name": "r_foot-2", + "directions": 4 + }, + { + "name": "l_leg-1", + "directions": 4 + }, + { + "name": "l_leg-2", + "directions": 4 + }, + { + "name": "r_leg-1", + "directions": 4 + }, + { + "name": "r_leg-2", + "directions": 4 + }, + { + "name": "torso-1", + "directions": 4 + }, + { + "name": "torso-2", + "directions": 4 + }, + { + "name": "l_arm-1", + "directions": 4 + }, + { + "name": "l_arm-2", + "directions": 4 + }, + { + "name": "r_arm-1", + "directions": 4 + }, + { + "name": "r_arm-2", + "directions": 4 + }, + { + "name": "l_hand-1", + "directions": 4 + }, + { + "name": "l_hand-2", + "directions": 4 + }, + { + "name": "r_hand-1", + "directions": 4 + }, + { + "name": "r_hand-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_arm-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_arm-1.png new file mode 100644 index 00000000000..b2a1996652f Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_arm-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_arm-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_arm-2.png new file mode 100644 index 00000000000..a79a0eb6483 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_arm-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_foot-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_foot-1.png new file mode 100644 index 00000000000..da79cffbc9b Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_foot-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_foot-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_foot-2.png new file mode 100644 index 00000000000..90b5deb87c4 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_foot-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_hand-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_hand-1.png new file mode 100644 index 00000000000..9d4084b0ca1 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_hand-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_hand-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_hand-2.png new file mode 100644 index 00000000000..a2cc6b71a67 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_hand-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_leg-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_leg-1.png new file mode 100644 index 00000000000..5d1bc5a60da Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_leg-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_leg-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_leg-2.png new file mode 100644 index 00000000000..b2b85c3213d Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_leg-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/torso-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/torso-1.png new file mode 100644 index 00000000000..c757f06420a Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/torso-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/torso-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/torso-2.png new file mode 100644 index 00000000000..cd822361bf4 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/torso-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/head-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/head-1.png new file mode 100644 index 00000000000..99add5cc504 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/head-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/head-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/head-2.png new file mode 100644 index 00000000000..0d5ffd6c10e Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/head-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/meta.json new file mode 100644 index 00000000000..9d2654d15cb --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "copyright": "Sprites originally from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version made by: DayOS (https://github.com/Day-OS)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head-1", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_alt1.rsi/head.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_alt1.rsi/head.png new file mode 100644 index 00000000000..9fbd2083d1d Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_alt1.rsi/head.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_alt1.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_alt1.rsi/meta.json new file mode 100644 index 00000000000..ef992f309c8 --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_alt1.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise). Edited by Timemaster99", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/head.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/head.png new file mode 100644 index 00000000000..c50698e68ce Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/head.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_arm.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_arm.png new file mode 100644 index 00000000000..1c5f646e36e Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_arm.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_foot.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_foot.png new file mode 100644 index 00000000000..45d9e8e2460 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_foot.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_hand.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_hand.png new file mode 100644 index 00000000000..062d14745c0 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_hand.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_leg.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_leg.png new file mode 100644 index 00000000000..f120754830b Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_leg.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/meta.json new file mode 100644 index 00000000000..f30906990a5 --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/meta.json @@ -0,0 +1,51 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise). Edited by Timemaster99", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_foot", + "directions": 4 + }, + { + "name": "r_foot", + "directions": 4 + }, + { + "name": "l_leg", + "directions": 4 + }, + { + "name": "r_leg", + "directions": 4 + }, + { + "name": "torso", + "directions": 4 + }, + { + "name": "l_arm", + "directions": 4 + }, + { + "name": "r_arm", + "directions": 4 + }, + { + "name": "l_hand", + "directions": 4 + }, + { + "name": "r_hand", + "directions": 4 + }, + { + "name": "head", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_arm.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_arm.png new file mode 100644 index 00000000000..24e15d419ad Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_arm.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_foot.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_foot.png new file mode 100644 index 00000000000..f04c2fd7a64 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_foot.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_hand.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_hand.png new file mode 100644 index 00000000000..287556a83a0 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_hand.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_leg.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_leg.png new file mode 100644 index 00000000000..653101e63af Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_leg.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/torso.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/torso.png new file mode 100644 index 00000000000..ad1bd42ca6c Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/torso.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_monitor.rsi/head.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_monitor.rsi/head.png new file mode 100644 index 00000000000..31ef25deb56 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_monitor.rsi/head.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_monitor.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_monitor.rsi/meta.json new file mode 100644 index 00000000000..9f87381cd87 --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_monitor.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/head-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/head-1.png new file mode 100644 index 00000000000..fe3943fac0d Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/head-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/head-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/head-2.png new file mode 100644 index 00000000000..baf6e438f81 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/head-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/meta.json new file mode 100644 index 00000000000..576edfc9c56 --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise). Edited by Timemaster99.", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head-1", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_arm-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_arm-1.png new file mode 100644 index 00000000000..48cf08df079 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_arm-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_arm-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_arm-2.png new file mode 100644 index 00000000000..1ef9cc0473f Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_arm-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_foot-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_foot-1.png new file mode 100644 index 00000000000..38b28406ac5 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_foot-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_foot-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_foot-2.png new file mode 100644 index 00000000000..0d745f2d566 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_foot-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_hand-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_hand-1.png new file mode 100644 index 00000000000..72a1d92d83f Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_hand-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_hand-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_hand-2.png new file mode 100644 index 00000000000..d61d58b478a Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_hand-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_leg-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_leg-1.png new file mode 100644 index 00000000000..6e813b8b631 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_leg-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_leg-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_leg-2.png new file mode 100644 index 00000000000..89106d6420b Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_leg-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/meta.json new file mode 100644 index 00000000000..35c1cad74bd --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/meta.json @@ -0,0 +1,82 @@ +{ + "version": 1, + "copyright": "Sprites originally from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version made by: DayOS (https://github.com/Day-OS)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_foot-1", + "directions": 4 + },{ + "name": "l_foot-2", + "directions": 4 + }, + { + "name": "r_foot-1", + "directions": 4 + }, + { + "name": "r_foot-2", + "directions": 4 + }, + { + "name": "l_leg-1", + "directions": 4 + }, + { + "name": "l_leg-2", + "directions": 4 + }, + { + "name": "r_leg-1", + "directions": 4 + }, + { + "name": "r_leg-2", + "directions": 4 + }, + { + "name": "torso-1", + "directions": 4 + }, + { + "name": "torso-2", + "directions": 4 + }, + { + "name": "l_arm-1", + "directions": 4 + }, + { + "name": "l_arm-2", + "directions": 4 + }, + { + "name": "r_arm-1", + "directions": 4 + }, + { + "name": "r_arm-2", + "directions": 4 + }, + { + "name": "l_hand-1", + "directions": 4 + }, + { + "name": "l_hand-2", + "directions": 4 + }, + { + "name": "r_hand-1", + "directions": 4 + }, + { + "name": "r_hand-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_arm-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_arm-1.png new file mode 100644 index 00000000000..0409bb02fe1 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_arm-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_arm-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_arm-2.png new file mode 100644 index 00000000000..061988dbcd4 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_arm-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_foot-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_foot-1.png new file mode 100644 index 00000000000..ef8b2b141aa Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_foot-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_foot-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_foot-2.png new file mode 100644 index 00000000000..74d17c3c734 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_foot-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_hand-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_hand-1.png new file mode 100644 index 00000000000..9d9dfb2848a Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_hand-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_hand-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_hand-2.png new file mode 100644 index 00000000000..9d4e6c3e167 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_hand-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_leg-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_leg-1.png new file mode 100644 index 00000000000..7ef9033cc0f Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_leg-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_leg-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_leg-2.png new file mode 100644 index 00000000000..cb88587d550 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_leg-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/torso-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/torso-1.png new file mode 100644 index 00000000000..db42c9a82bf Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/torso-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/torso-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/torso-2.png new file mode 100644 index 00000000000..70271b0c3a2 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/torso-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/head-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/head-1.png new file mode 100644 index 00000000000..e48ad79298c Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/head-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/head-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/head-2.png new file mode 100644 index 00000000000..bf1903f4bcc Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/head-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/meta.json new file mode 100644 index 00000000000..9d2654d15cb --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "copyright": "Sprites originally from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version made by: DayOS (https://github.com/Day-OS)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head-1", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/groin.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/groin.png new file mode 100644 index 00000000000..29ae064b0d6 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/groin.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/head-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/head-1.png new file mode 100644 index 00000000000..792a57e81d9 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/head-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/head-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/head-2.png new file mode 100644 index 00000000000..14e7e83c2fd Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/head-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_arm-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_arm-1.png new file mode 100644 index 00000000000..93064d56057 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_arm-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_arm-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_arm-2.png new file mode 100644 index 00000000000..7df87a8915a Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_arm-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_foot-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_foot-1.png new file mode 100644 index 00000000000..8fb9ec75e2c Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_foot-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_foot-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_foot-2.png new file mode 100644 index 00000000000..767bd0d4d6d Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_foot-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_hand-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_hand-1.png new file mode 100644 index 00000000000..d0660f1bc15 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_hand-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_hand-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_hand-2.png new file mode 100644 index 00000000000..5bb2251d140 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_hand-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_leg-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_leg-1.png new file mode 100644 index 00000000000..4ce036704ff Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_leg-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_leg-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_leg-2.png new file mode 100644 index 00000000000..237eb32d6e4 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_leg-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/meta.json new file mode 100644 index 00000000000..bf863d580f6 --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/meta.json @@ -0,0 +1,95 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version by Timemaster99", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_foot-1", + "directions": 4 + }, + { + "name": "l_foot-2", + "directions": 4 + }, + { + "name": "r_foot-1", + "directions": 4 + }, + { + "name": "r_foot-2", + "directions": 4 + }, + { + "name": "l_leg-1", + "directions": 4 + }, + { + "name": "l_leg-2", + "directions": 4 + }, + { + "name": "r_leg-1", + "directions": 4 + }, + { + "name": "r_leg-2", + "directions": 4 + }, + { + "name": "groin", + "directions": 4 + }, + { + "name": "torso-1", + "directions": 4 + }, + { + "name": "torso-2", + "directions": 4 + }, + { + "name": "l_arm-1", + "directions": 4 + }, + { + "name": "l_arm-2", + "directions": 4 + }, + { + "name": "r_arm-1", + "directions": 4 + }, + { + "name": "r_arm-2", + "directions": 4 + }, + { + "name": "l_hand-1", + "directions": 4 + }, + { + "name": "l_hand-2", + "directions": 4 + }, + { + "name": "r_hand-1", + "directions": 4 + }, + { + "name": "r_hand-2", + "directions": 4 + }, + { + "name": "head-1", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_arm-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_arm-1.png new file mode 100644 index 00000000000..6bd612a5d33 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_arm-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_arm-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_arm-2.png new file mode 100644 index 00000000000..69be000d908 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_arm-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_foot-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_foot-1.png new file mode 100644 index 00000000000..f3f1b5121d0 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_foot-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_foot-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_foot-2.png new file mode 100644 index 00000000000..d5a6fb2a71c Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_foot-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_hand-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_hand-1.png new file mode 100644 index 00000000000..a77c7f00e67 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_hand-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_hand-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_hand-2.png new file mode 100644 index 00000000000..e8d557eae81 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_hand-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_leg-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_leg-1.png new file mode 100644 index 00000000000..effbab2037d Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_leg-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_leg-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_leg-2.png new file mode 100644 index 00000000000..5e22421eb82 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_leg-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/torso-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/torso-1.png new file mode 100644 index 00000000000..0e1480d6986 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/torso-1.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/torso-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/torso-2.png new file mode 100644 index 00000000000..d6bffee42c2 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/torso-2.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/ears.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/ears.png new file mode 100644 index 00000000000..9966cc2ac2d Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/ears.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/eyeball-l.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/eyeball-l.png new file mode 100644 index 00000000000..09b98e316f8 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/eyeball-l.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/eyeball-r.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/eyeball-r.png new file mode 100644 index 00000000000..f1ff37a002f Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/eyeball-r.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/eyes.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/eyes.png new file mode 100644 index 00000000000..0fb6412e1c3 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/eyes.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/heart-off.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/heart-off.png new file mode 100644 index 00000000000..7dda0d3a8e6 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/heart-off.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/heart-on.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/heart-on.png new file mode 100644 index 00000000000..676a641989a Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/heart-on.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/meta.json new file mode 100644 index 00000000000..2905c5cbd07 --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/meta.json @@ -0,0 +1,50 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Yogstation", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "heart-off" + }, + { + "name": "heart-on", + "delays": [ + [ + 0.6, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "eyes" + }, + { + "name": "eyeball-r" + }, + { + "name": "tongue" + }, + { + "name": "eyeball-l" + }, + { + "name": "microcell", + "delays": [ + [ + 0.5, + 0.5 + ] + ] + }, + { + "name": "ears" + } + ] +} diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/microcell.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/microcell.png new file mode 100644 index 00000000000..18b692a5a99 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/microcell.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/tongue.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/tongue.png new file mode 100644 index 00000000000..dee2ed3b99f Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/tongue.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/full.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/full.png new file mode 100644 index 00000000000..7faae4a077e Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/full.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/head_f.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/head_f.png new file mode 100644 index 00000000000..31d77176c96 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/head_f.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/head_m.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/head_m.png new file mode 100644 index 00000000000..53d6069a283 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/head_m.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_arm.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_arm.png new file mode 100644 index 00000000000..4f042bf40e0 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_arm.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_foot.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_foot.png new file mode 100644 index 00000000000..bb9bede2180 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_foot.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_hand.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_hand.png new file mode 100644 index 00000000000..5b6c2df090c Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_hand.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_leg.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_leg.png new file mode 100644 index 00000000000..788f2769d43 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_leg.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/meta.json new file mode 100644 index 00000000000..1463c57a060 --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/meta.json @@ -0,0 +1,62 @@ +{ + "version": 2, + "license": "CC-BY-SA-3.0", + "copyright": "Original drawn by @robustyanka on Discord, modified by @pspritechologist", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "full" + }, + { + "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": "l_leg", + "directions": 4 + }, + { + "name": "r_foot", + "directions": 4 + }, + { + "name": "l_foot", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_arm.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_arm.png new file mode 100644 index 00000000000..6c1ff1ec9cf Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_arm.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_foot.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_foot.png new file mode 100644 index 00000000000..2389c30aea5 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_foot.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_hand.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_hand.png new file mode 100644 index 00000000000..3ec4fab0378 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_hand.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_leg.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_leg.png new file mode 100644 index 00000000000..f424b2efbca Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_leg.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/torso_f.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/torso_f.png new file mode 100644 index 00000000000..b36a2eed8c7 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/torso_f.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/torso_m.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/torso_m.png new file mode 100644 index 00000000000..df2588b562d Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/torso_m.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Misc/Pizza/parts.rsi/l_arm.png b/Resources/Textures/_Shitmed/Mobs/Species/Misc/Pizza/parts.rsi/l_arm.png new file mode 100644 index 00000000000..d2838e8b7d4 Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Misc/Pizza/parts.rsi/l_arm.png differ diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Misc/Pizza/parts.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Misc/Pizza/parts.rsi/meta.json new file mode 100644 index 00000000000..27215dfbca6 --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Misc/Pizza/parts.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by Agoichi (823598558690934824)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_arm", + "directions": 4 + }, + { + "name": "r_arm", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Misc/Pizza/parts.rsi/r_arm.png b/Resources/Textures/_Shitmed/Mobs/Species/Misc/Pizza/parts.rsi/r_arm.png new file mode 100644 index 00000000000..a85b505f90e Binary files /dev/null and b/Resources/Textures/_Shitmed/Mobs/Species/Misc/Pizza/parts.rsi/r_arm.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor-on.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor-on.png new file mode 100644 index 00000000000..32e3da4497f Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor-on.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor.png new file mode 100644 index 00000000000..7df819a183e Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left-on.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left-on.png new file mode 100644 index 00000000000..3c2e8972821 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left-on.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left.png new file mode 100644 index 00000000000..9a93d2bb5fc Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right-on.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right-on.png new file mode 100644 index 00000000000..f91961a9df3 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right-on.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right.png new file mode 100644 index 00000000000..6444d084235 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/meta.json b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/meta.json new file mode 100644 index 00000000000..592796b3e08 --- /dev/null +++ b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/meta.json @@ -0,0 +1,33 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "adv-retractor" + }, + { + "name": "adv-retractor-on" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-left-on", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "inhand-right-on", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi/bone-gel.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi/bone-gel.png new file mode 100644 index 00000000000..ac425d8014c Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi/bone-gel.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi/inhand-left.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi/inhand-left.png new file mode 100644 index 00000000000..2cd6321ee66 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi/inhand-left.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi/inhand-right.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi/inhand-right.png new file mode 100644 index 00000000000..549de0c4134 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi/inhand-right.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi/meta.json b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi/meta.json new file mode 100644 index 00000000000..48775ff522a --- /dev/null +++ b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "bone-gel" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi/cautery.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi/cautery.png new file mode 100644 index 00000000000..f82e7f12a0b Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi/cautery.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-left.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-left.png new file mode 100644 index 00000000000..dcc6bd69467 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-left.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-right.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-right.png new file mode 100644 index 00000000000..1c1cc9c4d80 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-right.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi/meta.json b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi/meta.json new file mode 100644 index 00000000000..4b08c30b53e --- /dev/null +++ b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "cautery" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi/circular-saw.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi/circular-saw.png new file mode 100644 index 00000000000..816095a7fc0 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi/circular-saw.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-left.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-left.png new file mode 100644 index 00000000000..fb5a065550e Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-left.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-right.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-right.png new file mode 100644 index 00000000000..c0e064d10b1 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-right.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi/meta.json b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi/meta.json new file mode 100644 index 00000000000..42163ea24d7 --- /dev/null +++ b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "circular-saw" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drapes.rsi/drapes.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drapes.rsi/drapes.png new file mode 100644 index 00000000000..1119569bdd7 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drapes.rsi/drapes.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-left.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-left.png new file mode 100644 index 00000000000..7531299f2a4 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-left.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-right.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-right.png new file mode 100644 index 00000000000..57fea9b7e25 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-right.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drapes.rsi/meta.json b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drapes.rsi/meta.json new file mode 100644 index 00000000000..9c30d1b15d5 --- /dev/null +++ b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drapes.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "drapes" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drill.rsi/drill.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drill.rsi/drill.png new file mode 100644 index 00000000000..1f141fb217b Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drill.rsi/drill.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drill.rsi/inhand-left.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drill.rsi/inhand-left.png new file mode 100644 index 00000000000..e2108b95a74 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drill.rsi/inhand-left.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drill.rsi/inhand-right.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drill.rsi/inhand-right.png new file mode 100644 index 00000000000..991fbea280d Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drill.rsi/inhand-right.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drill.rsi/meta.json b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drill.rsi/meta.json new file mode 100644 index 00000000000..a9c84b52f01 --- /dev/null +++ b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drill.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "drill" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery-on.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery-on.png new file mode 100644 index 00000000000..d0a512e94e7 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery-on.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery.png new file mode 100644 index 00000000000..2cd5b0e97c0 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-left-on.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-left-on.png new file mode 100644 index 00000000000..46e8c431e91 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-left-on.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-left.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-left.png new file mode 100644 index 00000000000..1ffa9e522ae Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-left.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right-on.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right-on.png new file mode 100644 index 00000000000..1bbb5332060 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right-on.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right.png new file mode 100644 index 00000000000..fa95ce487dd Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/meta.json b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/meta.json new file mode 100644 index 00000000000..4a4c2c11d67 --- /dev/null +++ b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/meta.json @@ -0,0 +1,33 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "e-cautery" + }, + { + "name": "e-cautery-on" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-left-on", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "inhand-right-on", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel-on.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel-on.png new file mode 100644 index 00000000000..04a27c34bbb Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel-on.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel.png new file mode 100644 index 00000000000..1fbf799b60d Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-left-on.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-left-on.png new file mode 100644 index 00000000000..72cbd3608f6 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-left-on.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-left.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-left.png new file mode 100644 index 00000000000..151705c9588 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-left.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right-on.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right-on.png new file mode 100644 index 00000000000..358f397c5e5 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right-on.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right.png new file mode 100644 index 00000000000..70a64d2b0e6 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/meta.json b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/meta.json new file mode 100644 index 00000000000..701445e8ab8 --- /dev/null +++ b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/meta.json @@ -0,0 +1,39 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "e-scalpel" + }, + { + "name": "e-scalpel-on", + "delays": [ + [ + 0.1, + 0.1 + ] + ] + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-left-on", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "inhand-right-on", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/hemostat.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/hemostat.png new file mode 100644 index 00000000000..951d323a52f Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/hemostat.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-left.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-left.png new file mode 100644 index 00000000000..eb331bac35e Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-left.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-right.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-right.png new file mode 100644 index 00000000000..b83b2b02c0b Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-right.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/meta.json b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/meta.json new file mode 100644 index 00000000000..afbaa9cd516 --- /dev/null +++ b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "hemostat" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-left.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-left.png new file mode 100644 index 00000000000..4f9d45bdb9f Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-left.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-right.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-right.png new file mode 100644 index 00000000000..70464f12119 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-right.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi/meta.json b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi/meta.json new file mode 100644 index 00000000000..ff849d1338c --- /dev/null +++ b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/commit/b7c3ac536391a3dfe3046f3b5197721af4564d90", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "omnimed" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi/omnimed.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi/omnimed.png new file mode 100644 index 00000000000..9e0031744da Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi/omnimed.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-left.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-left.png new file mode 100644 index 00000000000..a23bdae4c5b Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-left.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-right.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-right.png new file mode 100644 index 00000000000..cced67007f5 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-right.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/meta.json b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/meta.json new file mode 100644 index 00000000000..a38e04dcfd2 --- /dev/null +++ b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "retractor" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/retractor.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/retractor.png new file mode 100644 index 00000000000..24e04fe613a Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/retractor.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-left.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-left.png new file mode 100644 index 00000000000..726e388eca1 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-left.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-right.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-right.png new file mode 100644 index 00000000000..ed4b405d90c Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-right.png differ diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/meta.json b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/meta.json new file mode 100644 index 00000000000..7cbc1208942 --- /dev/null +++ b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "scalpel" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/scalpel.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/scalpel.png new file mode 100644 index 00000000000..44ec06e4631 Binary files /dev/null and b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/scalpel.png differ diff --git a/Resources/keybinds.yml b/Resources/keybinds.yml index c3daeffe2f2..4c803855265 100644 --- a/Resources/keybinds.yml +++ b/Resources/keybinds.yml @@ -1,4 +1,4 @@ -version: 1 # Not used right now, whatever. +version: 1 # Not used right now, whatever. binds: - function: UIClick type: State