diff --git a/Content.Client/_Sunrise/Synth/SynthMonitorBoundUserInterface.cs b/Content.Client/_Sunrise/Synth/SynthMonitorBoundUserInterface.cs new file mode 100644 index 00000000000..75c3b353450 --- /dev/null +++ b/Content.Client/_Sunrise/Synth/SynthMonitorBoundUserInterface.cs @@ -0,0 +1,50 @@ +using Content.Shared.Synth.Components; +using JetBrains.Annotations; + +namespace Content.Client._Sunrise.Synth; + +[UsedImplicitly] +public sealed class SynthMonitorBoundUserInterface : BoundUserInterface +{ + [ViewVariables] + private SynthMonitorMenu? _menu; + + public SynthMonitorBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey) + { + } + + protected override void Open() + { + base.Open(); + + _menu = new SynthMonitorMenu(); + _menu.OnClose += Close; + _menu.OnIdSelected += OnIdSelected; + _menu.OpenCentered(); + } + + protected override void UpdateState(BoundUserInterfaceState state) + { + base.UpdateState(state); + if (state is not SynthScreenBoundUserInterfaceState st) + return; + + _menu?.UpdateState(st.ScreenList); + } + + private void OnIdSelected(string selectedId) + { + SendMessage(new SynthScreenPrototypeSelectedMessage(selectedId)); + } + + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + + if (disposing) + { + _menu?.Close(); + _menu = null; + } + } +} diff --git a/Content.Client/_Sunrise/Synth/SynthMonitorMenu.xaml b/Content.Client/_Sunrise/Synth/SynthMonitorMenu.xaml new file mode 100644 index 00000000000..facd1533b5f --- /dev/null +++ b/Content.Client/_Sunrise/Synth/SynthMonitorMenu.xaml @@ -0,0 +1,11 @@ + + + + + + + + diff --git a/Content.Client/_Sunrise/Synth/SynthMonitorMenu.xaml.cs b/Content.Client/_Sunrise/Synth/SynthMonitorMenu.xaml.cs new file mode 100644 index 00000000000..dabbe69ced4 --- /dev/null +++ b/Content.Client/_Sunrise/Synth/SynthMonitorMenu.xaml.cs @@ -0,0 +1,84 @@ +using System.Numerics; +using Content.Client.Stylesheets; +using Content.Shared.Humanoid.Markings; +using Robust.Client.AutoGenerated; +using Robust.Client.GameObjects; +using Robust.Client.UserInterface.Controls; +using Robust.Client.UserInterface.CustomControls; +using Robust.Client.UserInterface.XAML; +using Robust.Shared.Prototypes; + +namespace Content.Client._Sunrise.Synth; + +[GenerateTypedNameReferences] +public sealed partial class SynthMonitorMenu : DefaultWindow +{ + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly IEntityManager _entityManager = default!; + private readonly SpriteSystem _sprite; + public event Action? OnIdSelected; + + private List _possibleScreens = []; + + public SynthMonitorMenu() + { + RobustXamlLoader.Load(this); + IoCManager.InjectDependencies(this); + _sprite = _entityManager.System(); + } + + public void UpdateState(List chemList) + { + _possibleScreens = chemList; + UpdateGrid(); + } + + private void UpdateGrid() + { + ClearGrid(); + + if (!_prototypeManager.TryIndex("MobSynth", out EntityPrototype? synthProto)) + return; + + foreach (var screen in _possibleScreens) + { + if (!_prototypeManager.TryIndex(screen, out MarkingPrototype? screenProto)) + continue; + + var button = new Button + { + MinSize = new Vector2(128, 128), + HorizontalExpand = true, + ToggleMode = false, + StyleClasses = {StyleBase.ButtonSquare}, + }; + button.OnPressed += _ => OnIdSelected?.Invoke(screen); + Grid.AddChild(button); + + var icon = new AnimatedTextureRect + { + DisplayRect = + { + TextureScale = new Vector2(1, 1), + Stretch = TextureRect.StretchMode.KeepAspectCentered, + }, + }; + + icon.SetFromSpriteSpecifier(screenProto.Sprites[0]); + + var synth = new TextureRect() + { + Texture = _sprite.GetPrototypeIcon(synthProto).Default, + Stretch = TextureRect.StretchMode.KeepAspectCentered, + }; + + button.AddChild(synth); + button.AddChild(icon); + } + } + + private void ClearGrid() + { + Grid.RemoveAllChildren(); + } +} diff --git a/Content.Server/_Sunrise/Synth/SynthSystem.cs b/Content.Server/_Sunrise/Synth/SynthSystem.cs new file mode 100644 index 00000000000..d2a4c02c71a --- /dev/null +++ b/Content.Server/_Sunrise/Synth/SynthSystem.cs @@ -0,0 +1,356 @@ +using System.Diagnostics.CodeAnalysis; +using Content.Server.Body.Systems; +using Content.Server.Emp; +using Content.Server.Humanoid; +using Content.Server.Power.Components; +using Content.Server.Power.EntitySystems; +using Content.Shared.Actions; +using Content.Shared.Alert; +using Content.Shared.Body.Part; +using Content.Shared.Damage; +using Content.Shared.DoAfter; +using Content.Shared.FixedPoint; +using Content.Shared.Humanoid; +using Content.Shared.Humanoid.Markings; +using Content.Shared.Humanoid.Prototypes; +using Content.Shared.Interaction; +using Content.Shared.Mobs; +using Content.Shared.Mobs.Components; +using Content.Shared.Movement.Systems; +using Content.Shared.Popups; +using Content.Shared.PowerCell; +using Content.Shared.Rejuvenate; +using Content.Shared.Rounding; +using Content.Shared.Stunnable; +using Content.Shared.Synth.Components; +using Content.Shared.Synth.EntitySystems; +using Content.Shared.Verbs; +using Robust.Shared.Utility; +using Robust.Server.GameObjects; +using Robust.Shared.Containers; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Player; +using Robust.Shared.Prototypes; +using Robust.Shared.Timing; + +namespace Content.Server.Synth; + +public sealed class SynthSystem : SharedSynthSystem +{ + [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly SharedAudioSystem _audioSystem = default!; + [Dependency] private readonly BatterySystem _batterySystem = default!; + [Dependency] private readonly SharedContainerSystem _containerSystem = default!; + [Dependency] private readonly SharedInteractionSystem _interactionSystem = default!; + [Dependency] private readonly BodySystem _bodySystem = default!; + [Dependency] private readonly MovementSpeedModifierSystem _movementSpeedModifier = default!; + [Dependency] private readonly SharedStunSystem _stunSystem = default!; + [Dependency] private readonly DamageableSystem _damageableSystem = default!; + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly UserInterfaceSystem _uiSystem = default!; + [Dependency] private readonly SharedActionsSystem _action = default!; + [Dependency] private readonly HumanoidAppearanceSystem _sharedHuApp = default!; + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly UserInterfaceSystem _userInterfaceSystem = default!; + + private ISawmill _sawmill = default!; + + public override void Initialize() + { + base.Initialize(); + + _sawmill = Logger.GetSawmill("Synth"); + + SubscribeLocalEvent(OnSetupOrgans); + SubscribeLocalEvent(OnRejuvenate); + SubscribeLocalEvent(OnEmpPulse); + SubscribeLocalEvent(OnDrainDoAfter); + SubscribeLocalEvent>(AddDrainVerb); + SubscribeLocalEvent(OnMobStateChanged); + SubscribeLocalEvent(OnSynthChangeScreen); + SubscribeLocalEvent(OnSynthScreenSelected); + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnDrainWires); + } + + private void OnMapInit(EntityUid uid, SynthComponent component, MapInitEvent args) + { + _action.AddAction(uid, "SynthChangeScreen"); + _action.AddAction(uid, "SynthDrainWires"); + } + + private void TryOpenUi(EntityUid uid, EntityUid user, SynthComponent? component = null) + { + if (!Resolve(uid, ref component)) + return; + + if (!TryComp(user, out ActorComponent? actor)) + return; + + _uiSystem.TryToggleUi(uid, SynthScreenUiKey.Key, actor.PlayerSession); + UpdateUi(uid, component); + } + + private void OnSynthChangeScreen(EntityUid uid, SynthComponent observerComponent, SynthChangeScreenActionEvent args) + { + TryOpenUi(uid, args.Performer, observerComponent); + args.Handled = true; + } + + private void OnSynthScreenSelected(EntityUid uid, SynthComponent component, SynthScreenPrototypeSelectedMessage args) + { + _sharedHuApp.SetMarkingId(uid, MarkingCategories.Snout, 0, args.SelectedId); + } + + private void OnDrainWires(EntityUid uid, SynthComponent component, SynthDrainWiresActionEvent args) + { + component.WiresExtended = !component.WiresExtended; + + if (component.WiresExtended) + { + _popup.PopupEntity(Loc.GetString("synth-wires-extended"), args.Performer, args.Performer, PopupType.Medium); + _audioSystem.PlayPredicted(component.ExtendSound, uid, uid); + } + else + { + _popup.PopupEntity(Loc.GetString("synth-wires-cleared"), args.Performer, args.Performer, PopupType.Medium); + _audioSystem.PlayPredicted(component.UnextendSound, uid, uid); + } + } + + private void UpdateUi(EntityUid uid, SynthComponent? component = null) + { + if (!Resolve(uid, ref component)) + return; + + var prototypes = _prototypeManager.EnumeratePrototypes(); + + var screensList = new List(); + + foreach (var proto in prototypes) + { + if (proto.SpeciesRestrictions == null) + continue; + + if (proto.MarkingCategory != MarkingCategories.Snout) + continue; + + if (proto.SpeciesRestrictions.Contains("Synth")) + screensList.Add(proto.ID); + } + + var state = new SynthScreenBoundUserInterfaceState(screensList); + + _userInterfaceSystem.SetUiState(uid, SynthScreenUiKey.Key, state); + } + + private void OnMobStateChanged(EntityUid uid, SynthComponent component, MobStateChangedEvent args) + { + switch (args.NewMobState) + { + case MobState.Dead: + { + _audioSystem.PlayPvs(component.DeathSound, uid); + break; + } + } + } + + private void OnSetupOrgans(EntityUid uid, SynthComponent component, SetupOrgansEvent ev) + { + if (!TryGetBattery(uid, out var battery, out var batteryComponent)) + return; + + component.Energy = batteryComponent.CurrentCharge; + component.MaxEnergy = batteryComponent.MaxCharge; + Dirty(uid, component); + } + + private void OnEmpPulse(EntityUid uid, SynthComponent component, EmpPulseEvent ev) + { + _damageableSystem.TryChangeDamage(uid, component.EmpDamage, true); + _stunSystem.TryParalyze(uid, TimeSpan.FromSeconds(component.EmpParalyzeTime), true); + } + + private void AddDrainVerb(EntityUid uid, ApcComponent component, GetVerbsEvent args) + { + if (!TryComp(args.User, out var synthComponent)) + return; + + if (!synthComponent.WiresExtended) + return; + + if (synthComponent.Energy >= synthComponent.MaxEnergy) + return; + + AlternativeVerb verb = new() + { + Act = () => + { + OnDrain(uid, args.User, synthComponent); + }, + Text = Loc.GetString("synth-drain-verb"), + Icon = new SpriteSpecifier.Texture(new ResPath("/Textures/Interface/VerbIcons/smite.svg.192dpi.png")), + Priority = 1 + }; + + args.Verbs.Add(verb); + } + + private void OnDrain(EntityUid uid, EntityUid user, SynthComponent component) + { + if (!_interactionSystem.InRangeUnobstructed(user, uid, 1.25f)) + { + _popup.PopupEntity(Loc.GetString("robot-drain-too-far"), user); + return; + } + + if (!TryGetBattery(user, out var battery, out var batteryComponent)) + { + _popup.PopupEntity(Loc.GetString("robot-drain-battery-none"), user); + return; + } + + if (batteryComponent.CurrentCharge >= batteryComponent.MaxCharge * 0.9) + { + _popup.PopupEntity(Loc.GetString("robot-drain-charge-full"), user, user, PopupType.Medium); + return; + } + + var doAfterArgs = new DoAfterArgs(EntityManager, user, component.PowerDrainDelay, new SynthDrainPowerDoAfterEvent(), target: uid, used: user, eventTarget: user) + { + BreakOnMove = true, + BreakOnDamage = true, + MovementThreshold = 0.5f, + CancelDuplicate = true + }; + + _doAfter.TryStartDoAfter(doAfterArgs); + } + + private bool TryGetBattery(EntityUid uid, [NotNullWhen(true)] out EntityUid? powercell, [NotNullWhen(true)] out BatteryComponent? batteryComponent) + { + powercell = null; + batteryComponent = null; + + if (!TryComp(uid, out ContainerManagerComponent? containerComp)) + return false; + + if (_containerSystem.TryGetContainer(uid, "cell_slot", out var container, containerComp) && container.ContainedEntities.Count > 0) + { + foreach (var content in container.ContainedEntities) + { + if (HasComp(content) && TryComp(content, out var batteryComp)) + { + powercell = content; + batteryComponent = batteryComp; + + return true; + } + } + } + + return false; + } + + private void OnDrainDoAfter(EntityUid uid, SynthComponent comp, SynthDrainPowerDoAfterEvent args) + { + if (args.Cancelled || args.Handled || args.Target == null) + return; + + if (!TryGetBattery(args.User, out var battery, out var batteryComponent)) + return; + + if (!HasComp(args.Target.Value) || + !TryComp(args.Target.Value, out var apcBattery)) + return; + + if (MathHelper.CloseToPercent(apcBattery.CurrentCharge, 0)) + { + _popup.PopupEntity(Loc.GetString("robot-drain-charge-empty", ("battery", args.Target.Value)), args.User, args.User, PopupType.Medium); + return; + } + + var available = apcBattery.CurrentCharge; + var input = Math.Min(available, comp.DrainPerUse / comp.DrainEfficiency); + if (!_batterySystem.TryUseCharge(args.Target.Value, input, apcBattery)) + return; + var output = input * comp.DrainEfficiency; + TryChangeEnergy(args.User, output, comp); + _popup.PopupEntity(Loc.GetString("robot-drain-charge-success", ("battery", args.Target.Value)), args.User, args.User); + // TODO: spark effects + _audioSystem.PlayPvs(comp.SparkSound, args.Target.Value); + + args.Repeat = (batteryComponent.CurrentCharge <= batteryComponent.MaxCharge * 0.95); + } + + private void OnRejuvenate(EntityUid uid, SynthComponent component, RejuvenateEvent args) + { + if (!TryGetBattery(uid, out var battery, out var batteryComponent)) + return; + + _batterySystem.SetCharge(battery.Value, batteryComponent.MaxCharge, batteryComponent); + component.Energy = batteryComponent.MaxCharge; + Dirty(uid, component); + } + + private bool TryChangeEnergy(EntityUid uid, FixedPoint2 delta, SynthComponent? component = null) + { + if (!Resolve(uid, ref component)) + return false; + + if (!TryGetBattery(uid, out var battery, out var batteryComponent)) + return false; + + var newEnergy = FixedPoint2.Clamp(component.Energy + delta, 0, component.MaxEnergy); + + if (newEnergy != component.Energy) + { + _batterySystem.SetCharge(battery.Value, newEnergy.Float(), batteryComponent); + component.Energy = newEnergy.Float(); + component.MaxEnergy = batteryComponent.MaxCharge; + } + + switch (component.SlowState) + { + case SynthComponent.SlowStates.Off: + if (component.Energy < component.MaxEnergy * component.EnergyLowSlowdownPercent) + { + component.SlowState = SynthComponent.SlowStates.On; + _movementSpeedModifier.RefreshMovementSpeedModifiers(uid); + } + break; + case SynthComponent.SlowStates.On: + if (component.Energy > component.MaxEnergy * component.EnergyLowSlowdownPercent) + { + component.SlowState = SynthComponent.SlowStates.Off; + _movementSpeedModifier.RefreshMovementSpeedModifiers(uid); + } + break; + } + + Dirty(uid, component); + + return true; + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + + var synthQuery = EntityQueryEnumerator(); + while (synthQuery.MoveNext(out var ent, out var compSynth, out var mobStateComponent)) + { + if (mobStateComponent.CurrentState == MobState.Dead) + continue; + + if (_timing.CurTime < compSynth.NextUpdateTime) + continue; + + compSynth.NextUpdateTime = _timing.CurTime + compSynth.UpdateRate; + + TryChangeEnergy(ent, compSynth.EnergyСonsumption, compSynth); + } + } +} diff --git a/Content.Shared/_Sunrise/Synth/Components/SynthComponent.cs b/Content.Shared/_Sunrise/Synth/Components/SynthComponent.cs new file mode 100644 index 00000000000..03bf7f712fc --- /dev/null +++ b/Content.Shared/_Sunrise/Synth/Components/SynthComponent.cs @@ -0,0 +1,112 @@ +using Content.Shared.Actions; +using Content.Shared.Damage; +using Content.Shared.FixedPoint; +using Robust.Shared.Audio; +using Robust.Shared.GameStates; +using Robust.Shared.Serialization; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Shared.Synth.Components; + +[RegisterComponent, NetworkedComponent] +[AutoGenerateComponentState, AutoGenerateComponentPause] +public sealed partial class SynthComponent : Component +{ + [DataField("drainEfficiency")] + public float DrainEfficiency = 0.01f; + + [DataField("drainPerUse")] + public float DrainPerUse = 200f; + + [ViewVariables(VVAccess.ReadWrite)] + public FixedPoint2 Energy = 0; + + [ViewVariables(VVAccess.ReadWrite), DataField("hungerСonsumption")] + public FixedPoint2 EnergyСonsumption = -0.6; // 1080 per 30 minutes + + [DataField("maxEnergy")] + public FixedPoint2 MaxEnergy = 0; + + [DataField("deathSound")] + public SoundSpecifier DeathSound = new SoundPathSpecifier("/Audio/_Sunrise/Synth/deathsound.ogg", AudioParams.Default.WithVolume(4f)); + + [DataField("sparkSound")] + public SoundSpecifier SparkSound = new SoundCollectionSpecifier("sparks", AudioParams.Default.WithVolume(10f)); + + [DataField("extendSound")] + public SoundSpecifier ExtendSound = new SoundPathSpecifier("/Audio/Effects/toilet_seat_down.ogg"); + + [DataField("unextendSound")] + public SoundSpecifier UnextendSound = new SoundPathSpecifier("/Audio/Effects/toilet_seat_down.ogg"); + + [DataField("powerDrainDelay")] + public float PowerDrainDelay = 2; + + [DataField("wiresExtended")] + public bool WiresExtended = false; + + [ViewVariables(VVAccess.ReadWrite)] + public DamageSpecifier EmpDamage = new() + { + DamageDict = new Dictionary + { + { "Heat", 20 }, + } + }; + + [DataField("empParalyzeTime")] + public float EmpParalyzeTime = 15; + + [DataField("energyLowSlowdownModifier"), ViewVariables(VVAccess.ReadWrite)] + public float EnergyLowSlowdownModifier = 0.5f; + + [DataField("energyLowSlowdownPercent"), ViewVariables(VVAccess.ReadWrite)] + public float EnergyLowSlowdownPercent = 0.05f; + + [DataField("nextUpdateTime", customTypeSerializer: typeof(TimeOffsetSerializer)), ViewVariables(VVAccess.ReadWrite)] + [AutoNetworkedField] + [AutoPausedField] + public TimeSpan NextUpdateTime; + + [ViewVariables(VVAccess.ReadWrite)] + [AutoNetworkedField] + public TimeSpan UpdateRate = TimeSpan.FromSeconds(1); + + [ViewVariables(VVAccess.ReadWrite)] + public SlowStates SlowState = SlowStates.Off; + + public enum SlowStates + { + On, + Off + } +} + +[Serializable, NetSerializable] +public enum SynthScreenUiKey : byte +{ + Key +} + +[Serializable, NetSerializable] +public sealed class SynthScreenBoundUserInterfaceState(List screenList) + : BoundUserInterfaceState +{ + public readonly List ScreenList = screenList; +} + +[Serializable, NetSerializable] +public sealed class SynthScreenPrototypeSelectedMessage(string selectedId) : BoundUserInterfaceMessage +{ + public readonly string SelectedId = selectedId; +} + +public sealed partial class SynthChangeScreenActionEvent : InstantActionEvent +{ + +} + +public sealed partial class SynthDrainWiresActionEvent : InstantActionEvent +{ + +} diff --git a/Content.Shared/_Sunrise/Synth/EntitySystems/SharedSynthSystem.cs b/Content.Shared/_Sunrise/Synth/EntitySystems/SharedSynthSystem.cs new file mode 100644 index 00000000000..1bbc6c1bb76 --- /dev/null +++ b/Content.Shared/_Sunrise/Synth/EntitySystems/SharedSynthSystem.cs @@ -0,0 +1,33 @@ +using Content.Shared.DoAfter; +using Content.Shared.Movement.Systems; +using Content.Shared.Synth.Components; +using Robust.Shared.Serialization; + +namespace Content.Shared.Synth.EntitySystems; + +public abstract class SharedSynthSystem : EntitySystem +{ + [Dependency] private readonly SharedJetpackSystem _jetpack = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnRefreshMovementSpeedModifiers); + } + + private void OnRefreshMovementSpeedModifiers(EntityUid uid, SynthComponent component, RefreshMovementSpeedModifiersEvent args) + { + if (component.SlowState == SynthComponent.SlowStates.Off) + return; + + if (_jetpack.IsUserFlying(uid)) + return; + + args.ModifySpeed(component.EnergyLowSlowdownModifier, component.EnergyLowSlowdownModifier); + } +} + +[Serializable, NetSerializable] +public sealed partial class SynthDrainPowerDoAfterEvent : SimpleDoAfterEvent +{ + +} diff --git a/Resources/Audio/_Sunrise/Synth/deathsound.ogg b/Resources/Audio/_Sunrise/Synth/deathsound.ogg new file mode 100644 index 00000000000..bb11022abec Binary files /dev/null and b/Resources/Audio/_Sunrise/Synth/deathsound.ogg differ diff --git a/Resources/Audio/_Sunrise/Synth/robot_legs1.ogg b/Resources/Audio/_Sunrise/Synth/robot_legs1.ogg new file mode 100644 index 00000000000..7e7f750634a Binary files /dev/null and b/Resources/Audio/_Sunrise/Synth/robot_legs1.ogg differ diff --git a/Resources/Audio/_Sunrise/Synth/robot_legs2.ogg b/Resources/Audio/_Sunrise/Synth/robot_legs2.ogg new file mode 100644 index 00000000000..a3942c01d09 Binary files /dev/null and b/Resources/Audio/_Sunrise/Synth/robot_legs2.ogg differ diff --git a/Resources/Audio/_Sunrise/Synth/robot_legs3.ogg b/Resources/Audio/_Sunrise/Synth/robot_legs3.ogg new file mode 100644 index 00000000000..dad30ac4a15 Binary files /dev/null and b/Resources/Audio/_Sunrise/Synth/robot_legs3.ogg differ diff --git a/Resources/Audio/_Sunrise/Synth/robot_legs4.ogg b/Resources/Audio/_Sunrise/Synth/robot_legs4.ogg new file mode 100644 index 00000000000..73846fd87d7 Binary files /dev/null and b/Resources/Audio/_Sunrise/Synth/robot_legs4.ogg differ diff --git a/Resources/Audio/_Sunrise/Synth/robot_legs_2_1.ogg b/Resources/Audio/_Sunrise/Synth/robot_legs_2_1.ogg new file mode 100644 index 00000000000..dd5509df2f4 Binary files /dev/null and b/Resources/Audio/_Sunrise/Synth/robot_legs_2_1.ogg differ diff --git a/Resources/Audio/_Sunrise/Synth/robot_legs_2_2.ogg b/Resources/Audio/_Sunrise/Synth/robot_legs_2_2.ogg new file mode 100644 index 00000000000..489d40764a9 Binary files /dev/null and b/Resources/Audio/_Sunrise/Synth/robot_legs_2_2.ogg differ diff --git a/Resources/Audio/_Sunrise/Synth/robot_scream_1.ogg b/Resources/Audio/_Sunrise/Synth/robot_scream_1.ogg new file mode 100644 index 00000000000..e0510ca8602 Binary files /dev/null and b/Resources/Audio/_Sunrise/Synth/robot_scream_1.ogg differ diff --git a/Resources/Audio/_Sunrise/Synth/robot_scream_2.ogg b/Resources/Audio/_Sunrise/Synth/robot_scream_2.ogg new file mode 100644 index 00000000000..45bd70717b8 Binary files /dev/null and b/Resources/Audio/_Sunrise/Synth/robot_scream_2.ogg differ diff --git a/Resources/Audio/_Sunrise/Synth/robot_scream_3.ogg b/Resources/Audio/_Sunrise/Synth/robot_scream_3.ogg new file mode 100644 index 00000000000..06731d563a4 Binary files /dev/null and b/Resources/Audio/_Sunrise/Synth/robot_scream_3.ogg differ diff --git a/Resources/Audio/_Sunrise/Synth/robot_scream_4.ogg b/Resources/Audio/_Sunrise/Synth/robot_scream_4.ogg new file mode 100644 index 00000000000..9e02109a269 Binary files /dev/null and b/Resources/Audio/_Sunrise/Synth/robot_scream_4.ogg differ diff --git a/Resources/Audio/_Sunrise/Synth/robot_spider1.ogg b/Resources/Audio/_Sunrise/Synth/robot_spider1.ogg new file mode 100644 index 00000000000..26b04df2b36 Binary files /dev/null and b/Resources/Audio/_Sunrise/Synth/robot_spider1.ogg differ diff --git a/Resources/Audio/_Sunrise/Synth/robot_spider2.ogg b/Resources/Audio/_Sunrise/Synth/robot_spider2.ogg new file mode 100644 index 00000000000..3be10adc88b Binary files /dev/null and b/Resources/Audio/_Sunrise/Synth/robot_spider2.ogg differ diff --git a/Resources/Audio/_Sunrise/Synth/robot_spider3.ogg b/Resources/Audio/_Sunrise/Synth/robot_spider3.ogg new file mode 100644 index 00000000000..3ef9cce879b Binary files /dev/null and b/Resources/Audio/_Sunrise/Synth/robot_spider3.ogg differ diff --git a/Resources/Locale/ru-RU/_strings/Vampires/vampires.ftl b/Resources/Locale/ru-RU/_strings/Vampires/vampires.ftl index 9d8f194ea68..1827061fdea 100644 --- a/Resources/Locale/ru-RU/_strings/Vampires/vampires.ftl +++ b/Resources/Locale/ru-RU/_strings/Vampires/vampires.ftl @@ -53,7 +53,7 @@ vampire-mutation-none-info = Ничего не выбрано vampire-mutation-hemomancer-info = Гемомансер - Фокусируеться на кровавой магии и манипуляции крови вокруг себя. + Фокусируется на кровавой магии и манипуляции крови вокруг себя. Способности: diff --git a/Resources/Locale/ru-RU/_strings/_sunrise/synth/synth.ftl b/Resources/Locale/ru-RU/_strings/_sunrise/synth/synth.ftl index ef91c09ee71..e60a845973f 100644 --- a/Resources/Locale/ru-RU/_strings/_sunrise/synth/synth.ftl +++ b/Resources/Locale/ru-RU/_strings/_sunrise/synth/synth.ftl @@ -12,3 +12,9 @@ robot-drain-desc = Вы можете зарядить свою батарею о species-name-synth = КПБ reagent-name-motor-oil = Моторное масло reagent-desc-motor-oil = Ну масло как масло ёпт. + +synth-wires-extended = Провода выдвинуты +synth-wires-cleared = Провода убраны +synth-drain-verb = Зарядиться +robot-drain-battery-none = Батарея не обнаружена +robot-drain-too-far = Слишком далеко \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml b/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml index a7d42224ca4..c8c5a12ec5b 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/humanoid.yml @@ -36,6 +36,7 @@ speciesBlacklist: # Sunrise-edit - Diona - Vox + - Synth - Vulpkanin - Felinid parent: EventHumanoidMindShielded @@ -78,6 +79,7 @@ speciesBlacklist: # Sunrise-edit - Diona - Vox + - Synth - Vulpkanin - Felinid parent: EventHumanoidMindShielded @@ -115,6 +117,7 @@ speciesBlacklist: # Sunrise-edit - Diona - Vox + - Synth - Vulpkanin - Felinid parent: ERTLeader @@ -143,6 +146,7 @@ speciesBlacklist: # Sunrise-edit - Diona - Vox + - Synth - Vulpkanin - Felinid parent: ERTLeaderEVA @@ -181,6 +185,7 @@ speciesBlacklist: # Sunrise-edit - Diona - Vox + - Synth - Vulpkanin - Felinid parent: ERTLeader @@ -218,6 +223,7 @@ speciesBlacklist: # Sunrise-edit - Diona - Vox + - Synth - Vulpkanin - Felinid parent: ERTChaplain @@ -257,6 +263,7 @@ speciesBlacklist: # Sunrise-edit - Diona - Vox + - Synth - Vulpkanin - Felinid parent: ERTLeader diff --git a/Resources/Prototypes/Loadouts/loadout_groups.yml b/Resources/Prototypes/Loadouts/loadout_groups.yml index 0976a47f5d2..d4356472fe7 100644 --- a/Resources/Prototypes/Loadouts/loadout_groups.yml +++ b/Resources/Prototypes/Loadouts/loadout_groups.yml @@ -81,6 +81,7 @@ loadouts: - EmergencyNitrogen - EmergencyOxygen + - EmergencySynth # Sunrise-Edit - EmergencyWithoutGas # Sunrise-Edit - LoadoutSpeciesVoxNitrogen @@ -483,6 +484,7 @@ - EmergencyOxygenClown - LoadoutSpeciesVoxNitrogen - EmergencyWithoutGasClown # Sunrise-Edit + - EmergencySynthClown # Sunrise-Edit - type: loadoutGroup id: MimeHead @@ -806,6 +808,7 @@ - EmergencyOxygenExtended - LoadoutSpeciesVoxNitrogen - EmergencyWithoutGasExtended # Sunrise-Edit + - EmergencySynthExtended # Sunrise-Edit # Science - type: loadoutGroup @@ -1051,6 +1054,7 @@ - EmergencyOxygenSecurity - LoadoutSpeciesVoxNitrogen - EmergencyWithoutGasSecurity # Sunrise-Edit + - EmergencySynthSecurity # Sunrise-Edit - type: loadoutGroup id: SecurityStar @@ -1228,6 +1232,7 @@ loadouts: - EmergencyNitrogenMedical - EmergencyOxygenMedical + - EmergencySynthMedical # Sunrise-Edit - LoadoutSpeciesVoxNitrogen - EmergencyWithoutGasMedical # Sunrise-Edit @@ -1271,6 +1276,7 @@ loadouts: - EmergencyNitrogenSyndicate - EmergencyOxygenSyndicate + - EmergencySynthSyndicate # Sunrise-Edit - LoadoutSpeciesVoxNitrogen - EmergencyWithoutGasSyndicate # Sunrise-Edit diff --git a/Resources/Prototypes/Species/species_weights.yml b/Resources/Prototypes/Species/species_weights.yml index bf4e1ddab46..529ce34bd47 100644 --- a/Resources/Prototypes/Species/species_weights.yml +++ b/Resources/Prototypes/Species/species_weights.yml @@ -6,6 +6,7 @@ Reptilian: 4 SlimePerson: 4 Vulpkanin: 4 + Synth: 4 Swine: 4 Arachnid: 3 Moth: 2 diff --git a/Resources/Prototypes/_Sunrise/Actions/synth_actions.yml b/Resources/Prototypes/_Sunrise/Actions/synth_actions.yml new file mode 100644 index 00000000000..58400638939 --- /dev/null +++ b/Resources/Prototypes/_Sunrise/Actions/synth_actions.yml @@ -0,0 +1,25 @@ +- type: entity + id: SynthChangeScreen + name: Сменить дисплей + description: Позволяет вам изменить изображение на вашем мониторе. + noSpawn: true + components: + - type: InstantAction + icon: + sprite: _Sunrise/Actions/synth_actions.rsi + state: screen_change + itemIconStyle: NoItem + event: !type:SynthChangeScreenActionEvent + +- type: entity + id: SynthDrainWires + name: Выдвинуть провода + description: Позволяет вам выдвинуть провода для зарядки. + noSpawn: true + components: + - type: InstantAction + icon: + sprite: _Sunrise/Actions/synth_actions.rsi + state: screen_change + itemIconStyle: NoItem + event: !type:SynthDrainWiresActionEvent diff --git a/Resources/Prototypes/_Sunrise/Body/Parts/synth.yml b/Resources/Prototypes/_Sunrise/Body/Parts/synth.yml new file mode 100644 index 00000000000..68aaded2863 --- /dev/null +++ b/Resources/Prototypes/_Sunrise/Body/Parts/synth.yml @@ -0,0 +1,113 @@ +- type: entity + id: PartSynth + parent: [BaseItem, BasePart] + name: "Synth body part" + abstract: true + components: + - type: Sprite + sprite: _Sunrise/Mobs/Species/Synth/parts.rsi + +- type: entity + id: TorsoSynthMob + name: "synth torso" + parent: [PartSynth, BaseTorso] + components: + - type: Sprite + state: "torso" + +- type: entity + id: HeadSynthMob + name: "synth head" + parent: [PartSynth, BaseHead] + components: + - type: Sprite + state: "head" + - type: Tag + tags: + - Trash + - SynthHead + - BaseSynthHead + +- type: entity + id: LeftArmSynthMob + name: "left synth arm" + parent: [PartSynth, BaseLeftArm] + components: + - type: Sprite + state: "l_arm" + - type: Tag + tags: + - Trash + - SynthArm + - BaseSynthLArm + +- type: entity + id: RightArmSynthMob + name: "right synth arm" + parent: [PartSynth, BaseRightArm] + components: + - type: Sprite + state: "r_arm" + - type: Tag + tags: + - Trash + - SynthArm + - BaseSynthRArm + +- type: entity + id: LeftHandSynthMob + name: "left synth hand" + parent: [PartSynth, BaseLeftHand] + components: + - type: Sprite + state: "l_hand" + +- type: entity + id: RightHandSynthMob + name: "right synth hand" + parent: [PartSynth, BaseRightHand] + components: + - type: Sprite + state: "r_hand" + +- type: entity + id: LeftLegSynthMob + name: "left synth leg" + parent: [PartSynth, BaseLeftLeg] + components: + - type: Sprite + state: "l_leg" + - type: Tag + tags: + - Trash + - SynthLeg + - BaseSynthLLeg + +- type: entity + id: RightLegSynthMob + name: "right synth leg" + parent: [PartSynth, BaseRightLeg] + components: + - type: Sprite + state: "r_leg" + - type: Tag + tags: + - Trash + - SynthLeg + - BaseSynthRLeg + +- type: entity + id: LeftFootSynthMob + name: "left synth foot" + parent: [PartSynth, BaseLeftFoot] + components: + - type: Sprite + state: "l_foot" + +- type: entity + id: RightFootSynthMob + name: "right synth foot" + parent: [PartSynth, BaseRightFoot] + components: + - type: Sprite + state: "r_foot" diff --git a/Resources/Prototypes/_Sunrise/Body/synth.yml b/Resources/Prototypes/_Sunrise/Body/synth.yml new file mode 100644 index 00000000000..ee3229b7e44 --- /dev/null +++ b/Resources/Prototypes/_Sunrise/Body/synth.yml @@ -0,0 +1,37 @@ +- type: body + name: "Synth" + id: Synth + root: torso + slots: + head: + part: HeadSynthMob + connections: + - torso + organs: + eyes: Flash + torso: + part: TorsoSynthMob + connections: + - left arm + - right arm + - left leg + - right leg + organs: + brain: PositronicBrain + powercell: PowerCellSynth + right arm: + part: RightArmSynthMob + connections: + - right hand + left arm: + part: LeftArmSynthMob + connections: + - left hand + right hand: + part: RightHandSynthMob + left hand: + part: LeftHandSynthMob + right leg: + part: RightLegSynthMob + left leg: + part: LeftLegSynthMob diff --git a/Resources/Prototypes/_Sunrise/Damage/modifier_sets.yml b/Resources/Prototypes/_Sunrise/Damage/modifier_sets.yml index 3e2cf07e6c3..d1fc311fe48 100644 --- a/Resources/Prototypes/_Sunrise/Damage/modifier_sets.yml +++ b/Resources/Prototypes/_Sunrise/Damage/modifier_sets.yml @@ -1,3 +1,13 @@ +- type: damageModifierSet + id: Synth + coefficients: + Blunt: 0.85 + Slash: 0.85 + Piercing: 0.85 + Heat: 1 + Shock: 1.25 + Cold: 0.0 + - type: damageModifierSet id: Felinid coefficients: diff --git a/Resources/Prototypes/_Sunrise/Dataset/Name/synth.yml b/Resources/Prototypes/_Sunrise/Dataset/Name/synth.yml new file mode 100644 index 00000000000..3a4908695f2 --- /dev/null +++ b/Resources/Prototypes/_Sunrise/Dataset/Name/synth.yml @@ -0,0 +1,105 @@ +- type: dataset + id: names_synth + values: + - A.L.P.H.A + - OSI-524 + - Ez-27 + - H.E.L.P + - K.I.N.G + - M.I.M.I + - S.A.M. + - S.H.O.C.K. + - S.H.R.O.U.D. + - S.O.P.H.I.E. + - W1k1 + - V.I.P.E.R. + - N3XUS + - P.R.O.T.E.U.S. + - R.A.V.E.N. + - X3R0 + - I.C.E. + - T.E.M.P.E.S.T. + - B.L.A.Z.E. + - C.Y.B.E.R. + - D.R.E.A.D. + - E.X.O. + - F.L.U.X. + - G.A.L.A.X.Y. + - J.A.G.U.A.R. + - L.U.N.A. + - M.A.G.N.U.S. + - O.R.A.C.L.E. + - Q.U.A.S.A.R. + - U.N.I.T. + - O.M.E.G.A. + - S.I.R.E.N. + - A.U.R.A. + - N.I.G.H.T.H.A.W.K. + - Z.E.P.H.Y.R. + - E.L.I.T.E. + - P.H.A.N.T.O.M. + - O.R.B.I.T. + - N.E.B.U.L.A. + - I.R.I.S. + - E.C.H.O. + - M.A.R.V.E.L. + - R.E.X. + - S.P.E.C.T.R.E. + - O.R.I.O.N. + - A.U.G.U.S.T.U.S. + - T.H.U.N.D.E.R. + - L.E.V.I.A.T.H.A.N. + - V.O.R.T.E.X. + - H.Y.D.R.A. + - I.N.F.I.N.I.T.E. + - A.R.C.H.A.N.G.E.L. + - P.R.E.D.A.T.O.R. + - AB-12 + - XYZ-456 + - LMN-7890 + - PQRS-321 + - UVWX-9876 + - CD-5678 + - EF-9012 + - GH-3456 + - IJKL-7890 + - MN-1234 + - OP-5678 + - QR-9012 + - ST-3456 + - UV-7890 + - WX-1234 + - YZ-5678 + - ABC-9012 + - DEF-3456 + - GHIJ-7890 + - KLM-1234 + - NOP-5678 + - QRST-9012 + - UVW-3456 + - XYZA-7890 + - BCDE-1234 + - FGHI-5678 + - JKLMN-9012 + - OPQR-3456 + - STUV-7890 + - WXYZ-1234 + - ABCE-5678 + - DFHI-9012 + - JLMO-3456 + - PQRSU-7890 + - VWXYB-1234 + - CDEFU-5678 + - GHIJK-9012 + - LMNOS-3456 + - PQRSTU-7890 + - VWXYZA-1234 + - ABCDEF-5678 + - GHIJKL-9012 + - MNOPQR-3456 + - STUVWX-7890 + - XYZABC-1234 + - DEFGHIJ-5678 + - KLMNOPQ-9012 + - RSTUVWX-3456 + - YZABCD-7890 diff --git a/Resources/Prototypes/_Sunrise/Entities/Mobs/Customization/Markings/synth.yml b/Resources/Prototypes/_Sunrise/Entities/Mobs/Customization/Markings/synth.yml new file mode 100644 index 00000000000..0d448d6fb82 --- /dev/null +++ b/Resources/Prototypes/_Sunrise/Entities/Mobs/Customization/Markings/synth.yml @@ -0,0 +1,1194 @@ +# All the synth customization + +# +# Monitors +# +- type: marking + id: SynthMonitorBlue + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: blue_s + +- type: marking + id: SynthMonitorBreakout + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: breakout_s + +- type: marking + id: SynthMonitorConsole + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: console_s + +- type: marking + id: SynthMonitorCrt + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: ipc_crt + +- type: marking + id: SynthMonitorDatabase + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: ipc_database + +- type: marking + id: SynthMonitorEight + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: eight_s + +- type: marking + id: SynthMonitorFrowny + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: ipc_frowny + +- type: marking + id: SynthMonitorGoggles + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: goggles_s + +- type: marking + id: SynthMonitorGreen + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: green_s + +- type: marking + id: SynthMonitorHeart + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: heart_s + +- type: marking + id: SynthMonitorMonoeye + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: monoeye_s + +- type: marking + id: SynthMonitorNature + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: nature_s + +- type: marking + id: SynthMonitorNo + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: ipc_no + +- type: marking + id: SynthMonitorOrange + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: orange_s + +- type: marking + id: SynthMonitorPink + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: pink_s + +- type: marking + id: SynthMonitorPurple + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: purple_s + +- type: marking + id: SynthMonitorRed + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: red_s + +- type: marking + id: SynthMonitorRgb + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: rgb_s + +- type: marking + id: SynthMonitorScroll + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: scroll_s + +- type: marking + id: SynthMonitorShower + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: shower_s + +- type: marking + id: SynthMonitorSmiley + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: ipc_smiley + +- type: marking + id: SynthMonitorStars + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: ipc_stars + +- type: marking + id: SynthMonitorYellow + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: yellow_s + +- type: marking + id: SynthMonitorYes + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: ipc_yes + +- type: marking + id: SynthMonitorLumiEyes + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: lumi_eyes_s + +- type: marking + id: SynthMonitorLumiMusic + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: lumi_music_s + +- type: marking + id: SynthMonitorLumiWaiting + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: lumi_waiting_s + +- type: marking + id: SynthMonitorStatic + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: static_s + +- type: marking + id: SynthMonitorGolGlider + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: gol_glider_s + +- type: marking + id: SynthMonitorRainbow + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: rainbow_s + +- type: marking + id: SynthMonitorLumi_Waiting + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: off_hesp_alt_s + +- type: marking + id: SynthMonitorPinkHesp + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: pink_hesp_alt_s + +- type: marking + id: SynthMonitorOrangeHesp + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: orange_hesp_alt_s + +- type: marking + id: SynthMonitorGogglesHesp + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: goggles_hesp_alt_s + +- type: marking + id: SynthMonitorScrollHesp + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: scroll_hesp_alt_s + +- type: marking + id: SynthMonitorRgbHesp + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: rgb_hesp_alt_s + +- type: marking + id: SynthMonitorRainbowHesp + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: rainbow_hesp_alt_s + +- type: marking + id: SynthMonitorSmoking + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: smoking_s + +- type: marking + id: SynthMonitorTest + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: test_s + +- type: marking + id: SynthMonitorOff + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_monitors.rsi + state: ipc_off + +- type: marking + id: SynthAntennae + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_accessories.rsi + state: antennae_s + +- type: marking + id: SynthTvAntennae + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_accessories.rsi + state: tvantennae_s + +- type: marking + id: SynthTesla + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_accessories.rsi + state: tesla_s + +- type: marking + id: SynthLight + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_accessories.rsi + state: light_s + +- type: marking + id: SynthCyberHead + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_accessories.rsi + state: cyberhead_s + +- type: marking + id: SynthSideLights + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_accessories.rsi + state: sidelights_s + +- type: marking + id: SynthAntlers + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_accessories.rsi + state: antlers_s + +- type: marking + id: SynthDroneEyes + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_accessories.rsi + state: droneeyes_s + +- type: marking + id: SynthCrowned + bodyPart: HeadTop + markingCategory: HeadTop + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_accessories.rsi + state: crowned_s + +- type: marking + id: SynthLArmBishop + bodyPart: LArm + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_bishop.rsi + state: l_arm + +- type: marking + id: SynthLHandBishop + bodyPart: LHand + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_bishop.rsi + state: l_hand + +- type: marking + id: SynthRArmBishop + bodyPart: RArm + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_bishop.rsi + state: r_arm + +- type: marking + id: SynthRHandBishop + bodyPart: RHand + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_bishop.rsi + state: r_hand + +- type: marking + id: SynthRLegBishop + bodyPart: RLeg + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_bishop.rsi + state: r_leg + +- type: marking + id: SynthLLegBishop + bodyPart: LLeg + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_bishop.rsi + state: l_leg + +- type: marking + id: SynthLFootBishop + bodyPart: LFoot + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_bishop.rsi + state: l_foot + +- type: marking + id: SynthRFootBishop + bodyPart: RFoot + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_bishop.rsi + state: r_foot + +- type: marking + id: SynthChestBishop + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_bishop.rsi + state: torso + +- type: marking + id: SynthHeadBishop + bodyPart: Head + markingCategory: Head + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_bishop.rsi + state: head + +- type: marking + id: SynthHeadHesphiastos + bodyPart: Head + markingCategory: Head + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_hesphiastos.rsi + state: head + +- type: marking + id: SynthLArmHesphiastos + bodyPart: LArm + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_hesphiastos.rsi + state: l_arm + +- type: marking + id: SynthLHandHesphiastos + bodyPart: LHand + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_hesphiastos.rsi + state: l_hand + +- type: marking + id: SynthRArmHesphiastos + bodyPart: RArm + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_hesphiastos.rsi + state: r_arm + +- type: marking + id: SynthRHandHesphiastos + bodyPart: RHand + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_hesphiastos.rsi + state: r_hand + +- type: marking + id: SynthRLegHesphiastos + bodyPart: RLeg + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_hesphiastos.rsi + state: r_leg + +- type: marking + id: SynthLLegHesphiastos + bodyPart: LLeg + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_hesphiastos.rsi + state: l_leg + +- type: marking + id: SynthLFootHesphiastos + bodyPart: LFoot + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_hesphiastos.rsi + state: l_foot + +- type: marking + id: SynthRFootHesphiastos + bodyPart: RFoot + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_hesphiastos.rsi + state: r_foot + +- type: marking + id: SynthChestHesphiastos + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_hesphiastos.rsi + state: torso + +- type: marking + id: SynthHeadShellguard + bodyPart: Head + markingCategory: Head + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_shellguard.rsi + state: head + +- type: marking + id: SynthLArmShellguard + bodyPart: LArm + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_shellguard.rsi + state: l_arm + +- type: marking + id: SynthLHandShellguard + bodyPart: LHand + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_shellguard.rsi + state: l_hand + +- type: marking + id: SynthRArmShellguard + bodyPart: RArm + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_shellguard.rsi + state: r_arm + +- type: marking + id: SynthRHandShellguard + bodyPart: RHand + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_shellguard.rsi + state: r_hand + +- type: marking + id: SynthRLegShellguard + bodyPart: RLeg + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_shellguard.rsi + state: r_leg + +- type: marking + id: SynthLLegShellguard + bodyPart: LLeg + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_shellguard.rsi + state: l_leg + +- type: marking + id: SynthLFootShellguard + bodyPart: LFoot + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_shellguard.rsi + state: l_foot + +- type: marking + id: SynthRFootShellguard + bodyPart: RFoot + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_shellguard.rsi + state: r_foot + +- type: marking + id: SynthChestShellguard + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_shellguard.rsi + state: torso + +- type: marking + id: SynthHeadWardtakahashi + bodyPart: Head + markingCategory: Head + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_wardtakahashi.rsi + state: head + +- type: marking + id: SynthLArmWardtakahashi + bodyPart: LArm + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_wardtakahashi.rsi + state: l_arm + +- type: marking + id: SynthLHandWardtakahashi + bodyPart: LHand + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_wardtakahashi.rsi + state: l_hand + +- type: marking + id: SynthRArmWardtakahashi + bodyPart: RArm + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_wardtakahashi.rsi + state: r_arm + +- type: marking + id: SynthRHandWardtakahashi + bodyPart: RHand + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_wardtakahashi.rsi + state: r_hand + +- type: marking + id: SynthRLegWardtakahashi + bodyPart: RLeg + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_wardtakahashi.rsi + state: r_leg + +- type: marking + id: SynthLLegWardtakahashi + bodyPart: LLeg + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_wardtakahashi.rsi + state: l_leg + +- type: marking + id: SynthLFootWardtakahashi + bodyPart: LFoot + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_wardtakahashi.rsi + state: l_foot + +- type: marking + id: SynthRFootWardtakahashi + bodyPart: RFoot + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_wardtakahashi.rsi + state: r_foot + +- type: marking + id: SynthChestWardtakahashi + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_wardtakahashi.rsi + state: torso + +- type: marking + id: SynthHeadXion + bodyPart: Head + markingCategory: Head + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_xion.rsi + state: head + +- type: marking + id: SynthLArmXion + bodyPart: LArm + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_xion.rsi + state: l_arm + +- type: marking + id: SynthLHandXion + bodyPart: LHand + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_xion.rsi + state: l_hand + +- type: marking + id: SynthRArmXion + bodyPart: RArm + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_xion.rsi + state: r_arm + +- type: marking + id: SynthRHandXion + bodyPart: RHand + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_xion.rsi + state: r_hand + +- type: marking + id: SynthRLegXion + bodyPart: RLeg + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_xion.rsi + state: r_leg + +- type: marking + id: SynthLLegXion + bodyPart: LLeg + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_xion.rsi + state: l_leg + +- type: marking + id: SynthLFootXion + bodyPart: LFoot + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_xion.rsi + state: l_foot + +- type: marking + id: SynthRFootXion + bodyPart: RFoot + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_xion.rsi + state: r_foot + +- type: marking + id: SynthChestXion + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_xion.rsi + state: torso + +- type: marking + id: SynthHeadZenghu + bodyPart: Head + markingCategory: Head + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_zenghu.rsi + state: head + +- type: marking + id: SynthLArmZenghu + bodyPart: LArm + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_zenghu.rsi + state: l_arm + +- type: marking + id: SynthLHandZenghu + bodyPart: LHand + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_zenghu.rsi + state: l_hand + +- type: marking + id: SynthRArmZenghu + bodyPart: RArm + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_zenghu.rsi + state: r_arm + +- type: marking + id: SynthRHandZenghu + bodyPart: RHand + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_zenghu.rsi + state: r_hand + +- type: marking + id: SynthRLegZenghu + bodyPart: RLeg + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_zenghu.rsi + state: r_leg + +- type: marking + id: SynthLLegZenghu + bodyPart: LLeg + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_zenghu.rsi + state: l_leg + +- type: marking + id: SynthLFootZenghu + bodyPart: LFoot + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_zenghu.rsi + state: l_foot + +- type: marking + id: SynthRFootZenghu + bodyPart: RFoot + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_zenghu.rsi + state: r_foot + +- type: marking + id: SynthChestZenghu + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_zenghu.rsi + state: torso + +- type: marking + id: SynthHeadRobotic + bodyPart: Head + markingCategory: Head + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_robotic.rsi + state: head + +- type: marking + id: SynthLArmRobotic + bodyPart: LArm + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_robotic.rsi + state: l_arm + +- type: marking + id: SynthLHandRobotic + bodyPart: LHand + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_robotic.rsi + state: l_hand + +- type: marking + id: SynthRArmRobotic + bodyPart: RArm + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_robotic.rsi + state: r_arm + +- type: marking + id: SynthRHandRobotic + bodyPart: RHand + markingCategory: Arms + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_robotic.rsi + state: r_hand + +- type: marking + id: SynthRLegRobotic + bodyPart: RLeg + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_robotic.rsi + state: r_leg + +- type: marking + id: SynthLLegRobotic + bodyPart: LLeg + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_robotic.rsi + state: l_leg + +- type: marking + id: SynthLFootRobotic + bodyPart: LFoot + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_robotic.rsi + state: l_foot + +- type: marking + id: SynthRFootRobotic + bodyPart: RFoot + markingCategory: Legs + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_robotic.rsi + state: r_foot + +- type: marking + id: SynthChestRobotic + bodyPart: Chest + markingCategory: Chest + speciesRestriction: [ Synth ] + forcedColoring: true + sprites: + - sprite: _Sunrise/Mobs/Customization/synth_robotic.rsi + state: torso diff --git a/Resources/Prototypes/_Sunrise/Entities/Mobs/Player/synth.yml b/Resources/Prototypes/_Sunrise/Entities/Mobs/Player/synth.yml new file mode 100644 index 00000000000..2e49ec6c79f --- /dev/null +++ b/Resources/Prototypes/_Sunrise/Entities/Mobs/Player/synth.yml @@ -0,0 +1,35 @@ +- type: entity + save: false + name: Urist McSynth + parent: BaseMobSynth + id: MobSynth + components: + - type: ZombieImmune + - type: InteractionPopup + successChance: 1 + interactSuccessString: hugging-success-generic + interactSuccessSound: /Audio/Effects/thudswoosh.ogg + messagePerceivedByOthers: hugging-success-generic-others + - type: MindContainer + showExamineInfo: true + - type: Input + context: "human" + - type: MobMover + - type: InputMover + - type: Alerts + - type: Climbing + - type: Eye + - type: CameraRecoil + - type: Examiner + - type: NpcFactionMember + factions: + - NanoTrasen + - type: ContainerFill + containers: + synth_brain: + - PositronicBrain + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellMedium \ No newline at end of file diff --git a/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/synth.yml b/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/synth.yml new file mode 100644 index 00000000000..9b4b4e25119 --- /dev/null +++ b/Resources/Prototypes/_Sunrise/Entities/Mobs/Species/synth.yml @@ -0,0 +1,443 @@ +# Anything human specific (e.g. UI, input) goes under MobHuman +- type: entity + name: Urist McSynth + id: BaseMobSynth + parent: + - BaseMob + - MobDamageable + - MobCombat + - MobBloodstream + abstract: true + components: + - type: Respirator + damage: + types: + Asphyxiation: 0 + damageRecovery: + types: + Asphyxiation: -0 + - type: RespiratorImmunity + - type: SSDIndicator + - type: DamageForceSay + - type: CanHostGuardian + - type: LagCompensation + - type: Reflect + enabled: false + reflectProb: 0 + - type: RangedDamageSound + soundGroups: + Brute: + collection: + MeatBulletImpact + soundTypes: + Heat: + collection: + MeatLaserImpact + - type: Tag + tags: + - CanPilot + - FootstepSound + - DoorBumpOpener + - type: Reactive + groups: + Flammable: [ Touch ] + Extinguish: [ Touch ] + Acidic: [Touch] + reactions: + - reagents: [Water, SpaceCleaner] + methods: [Touch] + effects: + - !type:WashCreamPieReaction + - type: Barotrauma + damage: + types: + Blunt: 0.30 + - type: Identity + - type: ComplexInteraction + - type: Hands + - type: MovementSpeedModifier + - type: MovedByPressure + - type: DamageOnHighSpeedImpact + damage: + types: + Blunt: 5 + soundHit: + path: /Audio/Effects/hit_kick.ogg + - type: IdExaminable + - type: HealthExaminable + examinableTypes: + - Blunt + - Slash + - Piercing + - Heat + - Shock + - type: StatusIcon + - type: StatusEffects + allowed: + - Stun + - KnockedDown + - SlowedDown + - Stutter + - Electrocution + - SlurredSpeech + - RatvarianLanguage + - PressureImmunity + - TemporaryBlindness + - type: Blindable + # Other + - type: Inventory + templateId: synth + - type: InventorySlots + - type: Clickable + - type: InteractionOutline + - type: Icon + sprite: _Sunrise/Mobs/Species/Synth/parts.rsi + state: full + - type: Stamina + - type: Sprite + noRot: true + drawdepth: Mobs + layers: + - 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" ] + - shader: StencilClear + sprite: _Sunrise/Mobs/Species/Synth/parts.rsi + state: l_leg + - shader: StencilMask + map: ["enum.HumanoidVisualLayers.StencilMask"] + sprite: Mobs/Customization/masking_helpers.rsi + state: unisex_full + visible: false + - 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: [ "id" ] + - map: [ "gloves" ] + - map: [ "shoes" ] + - map: [ "ears" ] + - map: [ "outerClothing" ] + - map: [ "eyes" ] + - map: [ "belt" ] + - 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: [ "pocket1" ] + - map: [ "pocket2" ] + - map: [ "clownedon" ] # Dynamically generated + sprite: "Effects/creampie.rsi" + state: "creampie_human" + visible: false + - type: Physics + bodyType: KinematicController + - type: Fixtures + fixtures: # TODO: This needs a second fixture just for mob collisions. + fix1: + shape: + !type:PhysShapeCircle + radius: 0.35 + density: 185 + restitution: 0.0 + mask: + - MobMask + layer: + - MobLayer + - type: Flammable + fireSpread: true + canResistFire: true + damage: + types: + Heat: 1 #per second, scales with number of fire 'stacks' + - type: Temperature + heatDamageThreshold: 1000 + coldDamageThreshold: 0 + currentTemperature: 310.15 + specificHeat: 42 + coldDamage: + types: + Cold: 0 + heatDamage: + types: + Heat: 1 #per second, scales with temperature & other constants + - type: HumanoidAppearance + species: Synth + - type: Body + prototype: Synth + requiredLegs: 2 + - type: DamageVisuals + thresholds: [ 10, 20, 30, 50, 70, 100 ] + targetLayers: + - "enum.HumanoidVisualLayers.Chest" + - "enum.HumanoidVisualLayers.Head" + - "enum.HumanoidVisualLayers.LArm" + - "enum.HumanoidVisualLayers.LLeg" + - "enum.HumanoidVisualLayers.RArm" + - "enum.HumanoidVisualLayers.RLeg" + damageOverlayGroups: + Brute: + sprite: Mobs/Effects/brute_damage.rsi + color: "#E88017" + - type: Damageable + damageContainer: Synth + damageModifierSet: Synth + - type: RadiationReceiver + - type: Internals + - type: MobState + - type: MobThresholds + thresholds: + 0: Alive + 100: Critical + 200: Dead + allowRevives: true + - type: Destructible + thresholds: + - trigger: + !type:DamageTypeTrigger + damageType: Blunt + damage: 400 + behaviors: + - !type:GibBehavior { } + - type: SlowOnDamage + speedModifierThresholds: + 60: 0.7 + 80: 0.5 + - type: Appearance + - type: GenericVisualizer + visuals: + enum.CreamPiedVisuals.Creamed: + clownedon: # Not 'creampied' bc I can already see Skyrat complaining about conflicts. + True: {visible: true} + False: {visible: false} + - type: RotationVisuals + defaultRotation: 90 + horizontalRotation: 90 + - type: FloatingVisuals + - type: FireVisuals + sprite: Mobs/Effects/onfire.rsi + normalState: Generic_mob_burning + alternateState: Standing + fireStackAlternateState: 3 + - type: CombatMode + canDisarm: true + - type: Climbing + - type: Cuffable + - type: Ensnareable + sprite: Objects/Misc/ensnare.rsi + state: icon + - type: AnimationPlayer + - type: Buckle + - type: MeleeWeapon + soundHit: + collection: Punch + angle: 30 + animation: WeaponArcFist + attackRate: 1 + damage: + types: + Blunt: 8 + - type: Pullable + - type: DoAfter + - type: CreamPied + - type: Stripping + - type: Strippable + - type: Bloodstream + maxBleedAmount: 0 + chemicalMaxVolume: 0 + bloodReagent: MotorOil + bloodlossDamage: #no bloodloss damage. overriding base components + types: + Bloodloss: 0 + bloodlossHealDamage: + types: + Bloodloss: 0 + - type: UserInterface + interfaces: + enum.VoiceMaskUIKey.Key: + type: VoiceMaskBoundUserInterface + enum.HumanoidMarkingModifierKey.Key: + type: HumanoidMarkingModifierBoundUserInterface + enum.BorgUiKey.Key: + type: BorgBoundUserInterface + enum.StrippingUiKey.Key: + type: StrippableBoundUserInterface + enum.SynthScreenUiKey.Key: + type: SynthMonitorBoundUserInterface + - type: ActivatableUI + key: enum.BorgUiKey.Key + - type: BorgChassis + brainContainerId: "synth_brain" + - type: LockingWhitelist + blacklist: + components: + - BorgChassis + - RoboticsConsole + - type: WiresPanel + - type: ActivatableUIRequiresPanel + - type: ContainerContainer + containers: + synth_brain: !type:ContainerSlot { } + cell_slot: !type:ContainerSlot { } + borg_module: !type:Container { } + part-container: !type:Container + - type: PowerCellSlot + cellSlotId: cell_slot + fitsInCharger: true + - type: PowerCellDraw + drawRate: 0.6 + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + - type: Puller + - type: Speech + speechSounds: Bass + - type: Vocal + sounds: + Male: UnisexSynth + Female: UnisexSynth + Unsexed: UnisexSynth + - type: Emoting + - type: BodyEmotes + soundsId: GeneralBodyEmotes + - type: Grammar + attributes: + proper: true + - type: StandingState + - type: MobPrice + price: 2500 # Kidnapping a living person and selling them for cred is a good move. + deathPenalty: 0.01 # However they really ought to be living and intact, otherwise they're worth 100x less. + - type: TTS # Sunrise-TTS + - type: ContentEye + - type: Carriable # Sunrise-edit + - type: CanEscapeInventory # Sunrise-edit + - type: TypingIndicator + proto: robot + - type: Unrevivable + - type: Synth + - type: Repairable + doAfterDelay: 3 + selfRepairPenalty: 3 + damage: + types: + Blunt: -5 + Slash: -5 + Piercing: -5 + - type: EyeProtection + +- type: entity + name: Urist McSynth + id: MobSynthDummy + parent: MobHumanDummy + noSpawn: true + components: + - type: Hands + - type: Inventory + templateId: synth + - type: InventorySlots + - type: ContainerContainer + - type: Icon + sprite: _Sunrise/Mobs/Species/Synth/parts.rsi + state: full + - type: Sprite + drawdepth: Mobs + noRot: true + # TODO BODY Turn these into individual body parts? + layers: + - 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" ] + - shader: StencilClear + sprite: Mobs/Species/Human/parts.rsi + state: l_leg + - shader: StencilMask + map: ["enum.HumanoidVisualLayers.StencilMask"] + sprite: Mobs/Customization/masking_helpers.rsi + state: unisex_full + visible: false + - 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: [ "id" ] + - map: [ "gloves" ] + - map: [ "shoes" ] + - map: [ "ears" ] + - map: [ "outerClothing" ] + - map: [ "eyes" ] + - map: [ "belt" ] + - 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: [ "pocket1" ] + - map: [ "pocket2" ] + - type: Physics + bodyType: Dynamic + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.35,-0.35,0.35,0.35" + density: 185 + restitution: 0.0 + mask: + - MobMask + layer: + - MobLayer + - type: HumanoidAppearance + species: Synth + - type: Body + prototype: Synth + requiredLegs: 2 + - type: Appearance + - type: Damageable + damageContainer: Synth + damageModifierSet: Synth + - type: MobState + - type: MobThresholds + thresholds: + 0: Alive + 100: Critical + 200: Dead + allowRevives: true + - type: UserInterface + interfaces: + enum.HumanoidMarkingModifierKey.Key: + type: HumanoidMarkingModifierBoundUserInterface + - type: ContentEye + diff --git a/Resources/Prototypes/_Sunrise/Entities/Objects/Specific/Robotics/synth_battery.yml b/Resources/Prototypes/_Sunrise/Entities/Objects/Specific/Robotics/synth_battery.yml new file mode 100644 index 00000000000..afc76f020aa --- /dev/null +++ b/Resources/Prototypes/_Sunrise/Entities/Objects/Specific/Robotics/synth_battery.yml @@ -0,0 +1,19 @@ +- type: entity + name: synth power cell + description: A rechargeable standardized power cell. This premium brand stores up to 50% more energy than the competition. + id: PowerCellSynth + suffix: Full + parent: BasePowerCell + components: + - type: Sprite + layers: + - map: [ "enum.PowerCellVisualLayers.Base" ] + state: high + - map: [ "enum.PowerCellVisualLayers.Unshaded" ] + state: o2 + shader: unshaded + - type: Battery + maxCharge: 1080 + startingCharge: 1080 + - type: Organ + - type: EmpImmune diff --git a/Resources/Prototypes/_Sunrise/Entities/Objects/Specific/Robotics/synth_chassis.yml b/Resources/Prototypes/_Sunrise/Entities/Objects/Specific/Robotics/synth_chassis.yml new file mode 100644 index 00000000000..191988fd4cd --- /dev/null +++ b/Resources/Prototypes/_Sunrise/Entities/Objects/Specific/Robotics/synth_chassis.yml @@ -0,0 +1,75 @@ +- type: entity + id: SynthChassis + name: Integrated Robotic Chassis + description: A frame that machines are built on. Significantly less spooky than expected. + components: + - type: Clickable + - type: InteractionOutline + - type: Physics + bodyType: Dynamic + fixedRotation: false + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.25,-0.25,0.25,0.25" + density: 100 + mask: + - MobMask + layer: + - MobLayer + restitution: 0.3 + friction: 0.2 + - type: Sprite + noRot: true + drawdepth: Items + sprite: _Sunrise/Objects/Specific/Robotics/synth_parts.rsi + state: chest + - type: Appearance + - type: ItemMapper + sprite: _Sunrise/Objects/Specific/Robotics/synth_parts.rsi + mapLayers: + l_arm+o: + whitelist: + tags: + - BaseSynthLArm + r_arm+o: + whitelist: + tags: + - BaseSynthRArm + l_leg+o: + whitelist: + tags: + - BaseSynthLLeg + r_leg+o: + whitelist: + tags: + - BaseSynthRLeg + head+o: + whitelist: + tags: + - BaseSynthHead + - type: ContainerContainer + containers: + part-container: !type:Container + cell_slot: !type:Container + - type: PartAssembly + parts: + synth: + - BaseSynthLArm + - BaseSynthRArm + - BaseSynthLLeg + - BaseSynthRLeg + - BaseSynthHead + - type: Construction + graph: Synth + node: start + defaultTarget: synth + containers: + - part-container + - cell_slot + - type: Pullable + - type: GuideHelp + guides: + - Cyborgs \ No newline at end of file diff --git a/Resources/Prototypes/_Sunrise/InventoryTemplates/synth_inventory_template.yml b/Resources/Prototypes/_Sunrise/InventoryTemplates/synth_inventory_template.yml new file mode 100644 index 00000000000..1bc1529643e --- /dev/null +++ b/Resources/Prototypes/_Sunrise/InventoryTemplates/synth_inventory_template.yml @@ -0,0 +1,118 @@ +- type: inventoryTemplate + id: synth + slots: + - name: shoes + slotTexture: shoes + slotFlags: FEET + stripTime: 3 + uiWindowPos: 1,0 + strippingWindowPos: 1,3 + displayName: Shoes + - 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 + - name: gloves + slotTexture: gloves + slotFlags: GLOVES + uiWindowPos: 2,1 + strippingWindowPos: 2,2 + displayName: Gloves + - name: neck + slotTexture: neck + slotFlags: NECK + uiWindowPos: 0,2 + strippingWindowPos: 0,1 + displayName: Neck + - 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 + slotFlags: POCKET + slotGroup: MainHotbar + stripTime: 3 + uiWindowPos: 0,3 + strippingWindowPos: 0,4 + dependsOn: jumpsuit + displayName: Pocket 1 + stripHidden: true + - name: pocket2 + slotTexture: pocket + 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 + slotFlags: IDCARD + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 2,1 + strippingWindowPos: 2,4 + dependsOn: jumpsuit + displayName: ID + - name: belt + slotTexture: belt + slotFlags: BELT + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 3,1 + strippingWindowPos: 1,5 + displayName: Belt + - name: back + slotTexture: back + slotFlags: BACK + slotGroup: SecondHotbar + stripTime: 6 + uiWindowPos: 3,0 + strippingWindowPos: 0,5 + displayName: Back diff --git a/Resources/Prototypes/_Sunrise/Loadouts/Miscellaneous/survival.yml b/Resources/Prototypes/_Sunrise/Loadouts/Miscellaneous/survival.yml index c0b5919fe82..bcbfdcef73e 100644 --- a/Resources/Prototypes/_Sunrise/Loadouts/Miscellaneous/survival.yml +++ b/Resources/Prototypes/_Sunrise/Loadouts/Miscellaneous/survival.yml @@ -1,3 +1,96 @@ +# SYNTH + +- type: loadoutEffectGroup + id: Synth + effects: + - !type:SpeciesLoadoutEffect + species: + - Synth + +# Basic +- type: loadout + id: EmergencySynth + startingGear: EmergencySynth + effects: + - !type:GroupLoadoutEffect + proto: Synth + +- type: startingGear + id: EmergencySynth + storage: + back: + - BoxRepairSynth + +# Clown +- type: loadout + id: EmergencySynthClown + startingGear: EmergencySynthClown + effects: + - !type:GroupLoadoutEffect + proto: Synth + +- type: startingGear + id: EmergencySynthClown + storage: + back: + - BoxHugSynth + +# Engineering / Extended +- type: loadout + id: EmergencySynthExtended + startingGear: EmergencySynthExtended + effects: + - !type:GroupLoadoutEffect + proto: Synth + +- type: startingGear + id: EmergencySynthExtended + storage: + back: + - BoxRepairSynth + +# Medical +- type: loadout + id: EmergencySynthMedical + startingGear: EmergencySynthMedical + effects: + - !type:GroupLoadoutEffect + proto: Synth + +- type: startingGear + id: EmergencySynthMedical + storage: + back: + - BoxRepairSynth + +# Security +- type: loadout + id: EmergencySynthSecurity + startingGear: EmergencySynthSecurity + effects: + - !type:GroupLoadoutEffect + proto: Synth + +- type: startingGear + id: EmergencySynthSecurity + storage: + back: + - BoxRepairSecurity + +# Syndicate +- type: loadout + id: EmergencySynthSyndicate + startingGear: EmergencySynthSyndicate + effects: + - !type:GroupLoadoutEffect + proto: Synth + +- type: startingGear + id: EmergencySynthSyndicate + storage: + back: + - BoxRepairSyndicate + # Without Gas - type: loadoutEffectGroup diff --git a/Resources/Prototypes/_Sunrise/Recipes/Construction/Graphs/machines/synth.yml b/Resources/Prototypes/_Sunrise/Recipes/Construction/Graphs/machines/synth.yml new file mode 100644 index 00000000000..f48d3976776 --- /dev/null +++ b/Resources/Prototypes/_Sunrise/Recipes/Construction/Graphs/machines/synth.yml @@ -0,0 +1,48 @@ +- type: constructionGraph + id: Synth + start: start + graph: + - node: start + entity: SynthChassis + edges: + + # empty the parts via prying + - to: start + conditions: + - !type:ContainerNotEmpty + container: part-container + steps: + - tool: Prying + doAfter: 0.5 + completed: + - !type:EmptyAllContainers + + - to: synth + steps: + - assemblyId: synth + guideString: borg-construction-guide-string + + - material: Cable + amount: 1 + doAfter: 1 + store: part-container + + - component: Flash + name: flash + store: part-container + icon: + sprite: Objects/Weapons/Melee/flash.rsi + state: flash + + - component: Flash + name: second flash + store: part-container + icon: + sprite: Objects/Weapons/Melee/flash.rsi + state: flash + + - tool: Screwing + doAfter: 0.5 + + - node: synth + entity: MobSynthDummy \ No newline at end of file diff --git a/Resources/Prototypes/_Sunrise/SoundCollections/synth.yml b/Resources/Prototypes/_Sunrise/SoundCollections/synth.yml new file mode 100644 index 00000000000..f9f30fb981d --- /dev/null +++ b/Resources/Prototypes/_Sunrise/SoundCollections/synth.yml @@ -0,0 +1,28 @@ +- type: soundCollection + id: FootstepRobotLegs + files: + - /Audio/_Sunrise/Synth/robot_legs1.ogg + - /Audio/_Sunrise/Synth/robot_legs2.ogg + - /Audio/_Sunrise/Synth/robot_legs3.ogg + - /Audio/_Sunrise/Synth/robot_legs4.ogg + +- type: soundCollection + id: FootstepRobotSpider + files: + - /Audio/_Sunrise/Synth/robot_spider1.ogg + - /Audio/_Sunrise/Synth/robot_spider2.ogg + - /Audio/_Sunrise/Synth/robot_spider3.ogg + +- type: soundCollection + id: SynthScreams + files: + - /Audio/_Sunrise/Synth/robot_scream_1.ogg + - /Audio/_Sunrise/Synth/robot_scream_2.ogg + - /Audio/_Sunrise/Synth/robot_scream_3.ogg + - /Audio/_Sunrise/Synth/robot_scream_4.ogg + +- type: soundCollection + id: Footstep2RobotLegs + files: + - /Audio/_Sunrise/Synth/robot_legs_2_1.ogg + - /Audio/_Sunrise/Synth/robot_legs_2_2.ogg diff --git a/Resources/Prototypes/_Sunrise/Species/synth.yml b/Resources/Prototypes/_Sunrise/Species/synth.yml new file mode 100644 index 00000000000..272088cd726 --- /dev/null +++ b/Resources/Prototypes/_Sunrise/Species/synth.yml @@ -0,0 +1,154 @@ +- type: species + id: Synth + name: species-name-synth + roundStart: true + prototype: MobSynth + sprites: MobSynthSprites + markingLimits: MobSynthMarkingLimits + dollPrototype: MobSynthDummy + skinColoration: None + youngAge: 1500 + oldAge: 4000 + maxAge: 4500 + naming: OnlyFirst + sexes: + - Unsexed + maleFirstNames: names_synth + femaleFirstNames: names_synth + +# The lack of a layer means that +# this person cannot have round-start anything +# applied to that layer. It has to instead +# be defined as a 'custom base layer' +# in either the mob's starting marking prototype, +# or it has to be added in C#. +- type: speciesBaseSprites + id: MobSynthSprites + sprites: + HeadTop: MobHumanoidAnyMarking + Snout: MobHumanoidAnyMarking + Head: MobSynthHead + Chest: MobSynthTorso + LArm: MobSynthLArm + RArm: MobSynthRArm + LHand: MobSynthLHand + RHand: MobSynthRHand + LLeg: MobSynthLLeg + RLeg: MobSynthRLeg + LFoot: MobSynthLFoot + RFoot: MobSynthRFoot + +- type: markingPoints + id: MobSynthMarkingLimits + onlyWhitelisted: true + points: + Head: + points: 1 + required: false + HeadTop: + points: 1 + required: false + Snout: + points: 1 + required: true + defaultMarkings: [ SynthMonitorOff ] + Chest: + points: 1 + required: false + Legs: + points: 4 + required: false + Arms: + points: 4 + required: false + +- type: humanoidBaseSprite + id: MobSynthoidAnyMarking + +- type: humanoidBaseSprite + id: MobSynthoidMarkingMatchSkin + markingsMatchSkin: true + +- type: humanoidBaseSprite + id: MobSynthHead + baseSprite: + sprite: _Sunrise/Mobs/Species/Synth/parts.rsi + state: head + +- type: humanoidBaseSprite + id: MobSynthHeadMale + baseSprite: + sprite: _Sunrise/Mobs/Species/Synth/parts.rsi + state: head + +- type: humanoidBaseSprite + id: MobSynthHeadFemale + baseSprite: + sprite: _Sunrise/Mobs/Species/Synth/parts.rsi + state: head + +- type: humanoidBaseSprite + id: MobSynthTorso + baseSprite: + sprite: _Sunrise/Mobs/Species/Synth/parts.rsi + state: torso + +- type: humanoidBaseSprite + id: MobSynthTorsoMale + baseSprite: + sprite: _Sunrise/Mobs/Species/Synth/parts.rsi + state: torso + +- type: humanoidBaseSprite + id: MobSynthTorsoFemale + baseSprite: + sprite: _Sunrise/Mobs/Species/Synth/parts.rsi + state: torso + +- type: humanoidBaseSprite + id: MobSynthLLeg + baseSprite: + sprite: _Sunrise/Mobs/Species/Synth/parts.rsi + state: l_leg + +- type: humanoidBaseSprite + id: MobSynthLArm + baseSprite: + sprite: _Sunrise/Mobs/Species/Synth/parts.rsi + state: l_arm + +- type: humanoidBaseSprite + id: MobSynthLHand + baseSprite: + sprite: _Sunrise/Mobs/Species/Synth/parts.rsi + state: l_hand + +- type: humanoidBaseSprite + id: MobSynthRLeg + baseSprite: + sprite: _Sunrise/Mobs/Species/Synth/parts.rsi + state: r_leg + +- type: humanoidBaseSprite + id: MobSynthRArm + baseSprite: + sprite: _Sunrise/Mobs/Species/Synth/parts.rsi + state: r_arm + +- type: humanoidBaseSprite + id: MobSynthRHand + baseSprite: + sprite: _Sunrise/Mobs/Species/Synth/parts.rsi + state: r_hand + +- type: humanoidBaseSprite + id: MobSynthLFoot + baseSprite: + sprite: _Sunrise/Mobs/Species/Synth/parts.rsi + state: l_foot + +- type: humanoidBaseSprite + id: MobSynthRFoot + baseSprite: + sprite: _Sunrise/Mobs/Species/Synth/parts.rsi + state: r_foot diff --git a/Resources/Prototypes/_Sunrise/Voice/speech_emote_sounds.yml b/Resources/Prototypes/_Sunrise/Voice/speech_emote_sounds.yml index 6ec79fdf025..2fab4018417 100644 --- a/Resources/Prototypes/_Sunrise/Voice/speech_emote_sounds.yml +++ b/Resources/Prototypes/_Sunrise/Voice/speech_emote_sounds.yml @@ -54,6 +54,40 @@ Growl: collection: FelinidGrowls +- type: emoteSounds + id: UnisexSynth + params: + variation: 0.125 + sounds: + Scream: + collection: SynthScreams + Laugh: + collection: MaleLaugh + Sneeze: + collection: MaleSneezes + Cough: + collection: MaleCoughs + CatMeow: + collection: CatMeows + CatHisses: + collection: CatHisses + MonkeyScreeches: + collection: MonkeyScreeches + RobotBeep: + collection: RobotBeeps + Yawn: + collection: MaleYawn + Snore: + collection: Snores + Honk: + collection: BikeHorn + Sigh: + collection: MaleSigh + Crying: + collection: MaleCry + Whistle: + collection: Whistles + - type: emoteSounds id: MaleVulpkanin params: diff --git a/Resources/Prototypes/_Sunrise/tags.yml b/Resources/Prototypes/_Sunrise/tags.yml index bd04ca02e49..d53081f9fbd 100644 --- a/Resources/Prototypes/_Sunrise/tags.yml +++ b/Resources/Prototypes/_Sunrise/tags.yml @@ -184,3 +184,29 @@ - type: Tag id: Phazon + +# Synth: + +- type: Tag + id: SynthArm + +- type: Tag + id: BaseSynthLArm + +- type: Tag + id: BaseSynthRArm + +- type: Tag + id: SynthLeg + +- type: Tag + id: BaseSynthLLeg + +- type: Tag + id: BaseSynthRLeg + +- type: Tag + id: SynthHead + +- type: Tag + id: BaseSynthHead diff --git a/Resources/Textures/_Sunrise/Actions/synth_actions.rsi/meta.json b/Resources/Textures/_Sunrise/Actions/synth_actions.rsi/meta.json new file mode 100644 index 00000000000..cb00758fcb2 --- /dev/null +++ b/Resources/Textures/_Sunrise/Actions/synth_actions.rsi/meta.json @@ -0,0 +1,21 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sunrise", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "screen_change", + "delays": [ + [ + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/_Sunrise/Actions/synth_actions.rsi/screen_change.png b/Resources/Textures/_Sunrise/Actions/synth_actions.rsi/screen_change.png new file mode 100644 index 00000000000..49e86d9234c Binary files /dev/null and b/Resources/Textures/_Sunrise/Actions/synth_actions.rsi/screen_change.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/antennae_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/antennae_s.png new file mode 100644 index 00000000000..65f3f09b905 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/antennae_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/antlers_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/antlers_s.png new file mode 100644 index 00000000000..32e27664c3d Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/antlers_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/crowned_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/crowned_s.png new file mode 100644 index 00000000000..01485b72237 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/crowned_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/cyberhead_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/cyberhead_s.png new file mode 100644 index 00000000000..b0dcb26c59a Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/cyberhead_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/droneeyes_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/droneeyes_s.png new file mode 100644 index 00000000000..cb201254e08 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/droneeyes_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/light_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/light_s.png new file mode 100644 index 00000000000..3b387ff68b4 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/light_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/meta.json b/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/meta.json new file mode 100644 index 00000000000..cd1d992e334 --- /dev/null +++ b/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/meta.json @@ -0,0 +1,103 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Спизжено из SS13 Paradise", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "antennae_s", + "directions": 4 + }, + { + "name": "tvantennae_s", + "directions": 4 + }, + { + "name": "tesla_s", + "directions": 4, + "delays": [ + [ + 4, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 4, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 4, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 4, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "light_s", + "directions": 4, + "delays": [ + [ + 4, + 0.5, + 0.1, + 0.5 + ], + [ + 4, + 0.5, + 0.1, + 0.5 + ], + [ + 4, + 0.5, + 0.1, + 0.5 + ], + [ + 4, + 0.5, + 0.1, + 0.5 + ] + ] + }, + { + "name": "cyberhead_s", + "directions": 4 + }, + { + "name": "sidelights_s", + "directions": 4 + }, + { + "name": "antlers_s", + "directions": 4 + }, + { + "name": "droneeyes_s", + "directions": 4 + }, + { + "name": "crowned_s", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/sidelights_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/sidelights_s.png new file mode 100644 index 00000000000..c3c9e209375 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/sidelights_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/tesla_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/tesla_s.png new file mode 100644 index 00000000000..5d3d0518f2a Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/tesla_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/tvantennae_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/tvantennae_s.png new file mode 100644 index 00000000000..b49957a1913 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_accessories.rsi/tvantennae_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/groin.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/groin.png new file mode 100644 index 00000000000..75d9dc8ad2c Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/groin.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/head.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/head.png new file mode 100644 index 00000000000..0a9e82e9627 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/head.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/l_arm.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/l_arm.png new file mode 100644 index 00000000000..167d49d9632 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/l_arm.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/l_foot.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/l_foot.png new file mode 100644 index 00000000000..534085a97c3 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/l_foot.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/l_hand.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/l_hand.png new file mode 100644 index 00000000000..771cd025a86 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/l_hand.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/l_leg.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/l_leg.png new file mode 100644 index 00000000000..f2e20e9eb9f Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/l_leg.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/meta.json b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/meta.json new file mode 100644 index 00000000000..0bd8b8e109a --- /dev/null +++ b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/meta.json @@ -0,0 +1,55 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Спизжено из SS13 Paradise", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "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": "head", + "directions": 4 + }, + { + "name": "groin", + "directions": 4 + }, + { + "name": "torso", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/r_arm.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/r_arm.png new file mode 100644 index 00000000000..bbf9c06e5af Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/r_arm.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/r_foot.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/r_foot.png new file mode 100644 index 00000000000..a8fbe8635ea Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/r_foot.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/r_hand.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/r_hand.png new file mode 100644 index 00000000000..db11be34056 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/r_hand.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/r_leg.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/r_leg.png new file mode 100644 index 00000000000..6d10570d017 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/r_leg.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/torso.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/torso.png new file mode 100644 index 00000000000..639ed72238b Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_bishop.rsi/torso.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/groin.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/groin.png new file mode 100644 index 00000000000..c2baf19dd1d Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/groin.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/head.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/head.png new file mode 100644 index 00000000000..b8962894f28 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/head.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/l_arm.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/l_arm.png new file mode 100644 index 00000000000..95802e8b660 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/l_arm.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/l_foot.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/l_foot.png new file mode 100644 index 00000000000..4fae303dd55 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/l_foot.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/l_hand.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/l_hand.png new file mode 100644 index 00000000000..621c0f43be4 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/l_hand.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/l_leg.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/l_leg.png new file mode 100644 index 00000000000..6059a7e0dd4 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/l_leg.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/meta.json b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/meta.json new file mode 100644 index 00000000000..0bd8b8e109a --- /dev/null +++ b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/meta.json @@ -0,0 +1,55 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Спизжено из SS13 Paradise", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "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": "head", + "directions": 4 + }, + { + "name": "groin", + "directions": 4 + }, + { + "name": "torso", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/r_arm.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/r_arm.png new file mode 100644 index 00000000000..61eee95ac85 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/r_arm.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/r_foot.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/r_foot.png new file mode 100644 index 00000000000..42ede3a71e3 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/r_foot.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/r_hand.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/r_hand.png new file mode 100644 index 00000000000..9a98f4ed9b4 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/r_hand.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/r_leg.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/r_leg.png new file mode 100644 index 00000000000..c0977f06a2b Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/r_leg.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/torso.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/torso.png new file mode 100644 index 00000000000..5d4568c960e Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_hesphiastos.rsi/torso.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/blue_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/blue_s.png new file mode 100644 index 00000000000..2bb4a60427c Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/blue_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/breakout_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/breakout_s.png new file mode 100644 index 00000000000..d0de4901f41 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/breakout_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/console_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/console_s.png new file mode 100644 index 00000000000..d7fa0cd0e2a Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/console_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/eight_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/eight_s.png new file mode 100644 index 00000000000..6b5057f785c Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/eight_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/goggles_hesp_alt_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/goggles_hesp_alt_s.png new file mode 100644 index 00000000000..271c3ca0d18 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/goggles_hesp_alt_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/goggles_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/goggles_s.png new file mode 100644 index 00000000000..006c6a6c805 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/goggles_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/gol_glider_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/gol_glider_s.png new file mode 100644 index 00000000000..5ff0a87368d Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/gol_glider_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/green_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/green_s.png new file mode 100644 index 00000000000..072a904e54c Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/green_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/heart_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/heart_s.png new file mode 100644 index 00000000000..9ff05b7d7ab Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/heart_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_crt.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_crt.png new file mode 100644 index 00000000000..c587410a7a5 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_crt.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_database.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_database.png new file mode 100644 index 00000000000..c1da6681e31 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_database.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_frowny.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_frowny.png new file mode 100644 index 00000000000..8bd3c7f9428 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_frowny.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_no.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_no.png new file mode 100644 index 00000000000..3790d2adda4 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_no.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_off.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_off.png new file mode 100644 index 00000000000..a7db23369e0 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_off.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_smiley.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_smiley.png new file mode 100644 index 00000000000..08604b5a4d3 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_smiley.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_stars.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_stars.png new file mode 100644 index 00000000000..cfcd4b1a0a1 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_stars.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_yes.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_yes.png new file mode 100644 index 00000000000..91c8be49398 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/ipc_yes.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/lumi_eyes_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/lumi_eyes_s.png new file mode 100644 index 00000000000..46355e8c445 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/lumi_eyes_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/lumi_music_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/lumi_music_s.png new file mode 100644 index 00000000000..b7a08c903d6 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/lumi_music_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/lumi_waiting_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/lumi_waiting_s.png new file mode 100644 index 00000000000..194e0ef2d25 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/lumi_waiting_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/meta.json b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/meta.json new file mode 100644 index 00000000000..79c68efb6f8 --- /dev/null +++ b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/meta.json @@ -0,0 +1,1297 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Спизжено из SS13 Paradise", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "lumi_eyes_s", + "directions": 4, + "delays": [ + [ + 0.3, + 0.2, + 0.2, + 0.2, + 0.3, + 0.8, + 0.1, + 0.1, + 0.2, + 0.6, + 0.1, + 0.6, + 0.1, + 0.1 + ], + [ + 0.3, + 0.2, + 0.2, + 0.2, + 0.3, + 0.8, + 0.1, + 0.1, + 0.2, + 0.6, + 0.1, + 0.6, + 0.1, + 0.1 + ], + [ + 0.3, + 0.2, + 0.2, + 0.2, + 0.3, + 0.8, + 0.1, + 0.1, + 0.2, + 0.6, + 0.1, + 0.6, + 0.1, + 0.1 + ], + [ + 0.3, + 0.2, + 0.2, + 0.2, + 0.3, + 0.8, + 0.1, + 0.1, + 0.2, + 0.6, + 0.1, + 0.6, + 0.1, + 0.1 + ] + ] + }, + { + "name": "lumi_music_s", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "lumi_waiting_s", + "directions": 4, + "delays": [ + [ + 0.3, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.3, + 0.3, + 0.3 + ] + ] + }, + { + "name": "blue_s", + "directions": 4, + "delays": [ + [ + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4 + ], + [ + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4 + ], + [ + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4 + ], + [ + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4 + ] + ] + }, + { + "name": "breakout_s", + "directions": 4, + "delays": [ + [ + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8 + ], + [ + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8 + ], + [ + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8 + ], + [ + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8 + ] + ] + }, + { + "name": "eight_s", + "directions": 4, + "delays": [ + [ + 0.8, + 0.8 + ], + [ + 0.8, + 0.8 + ], + [ + 0.8, + 0.8 + ], + [ + 0.8, + 0.8 + ] + ] + }, + { + "name": "goggles_s", + "directions": 4, + "delays": [ + [ + 0.2, + 4 + ], + [ + 0.2, + 4 + ], + [ + 0.2, + 4 + ], + [ + 0.2, + 4 + ] + ] + }, + { + "name": "green_s", + "directions": 4, + "delays": [ + [ + 0.6, + 0.6 + ], + [ + 0.6, + 0.6 + ], + [ + 0.6, + 0.6 + ], + [ + 0.6, + 0.6 + ] + ] + }, + { + "name": "heart_s", + "directions": 4, + "delays": [ + [ + 0.8, + 0.8 + ], + [ + 0.8, + 0.8 + ], + [ + 0.8, + 0.8 + ], + [ + 0.8, + 0.8 + ] + ] + }, + { + "name": "monoeye_s", + "directions": 4, + "delays": [ + [ + 4, + 0.1, + 0.1, + 0.1 + ], + [ + 4, + 0.1, + 0.1, + 0.1 + ], + [ + 4, + 0.1, + 0.1, + 0.1 + ], + [ + 4, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "nature_s", + "directions": 4, + "delays": [ + [ + 10, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 10, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 10, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 10, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 10, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 10, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 10, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 10, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "orange_s", + "directions": 4, + "delays": [ + [ + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8 + ], + [ + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8 + ], + [ + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8 + ], + [ + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8 + ] + ] + }, + { + "name": "pink_s", + "directions": 4, + "delays": [ + [ + 0.8, + 0.8 + ], + [ + 0.8, + 0.8 + ], + [ + 0.8, + 0.8 + ], + [ + 0.8, + 0.8 + ] + ] + }, + { + "name": "purple_s", + "directions": 4, + "delays": [ + [ + 0.8, + 0.8 + ], + [ + 0.8, + 0.8 + ], + [ + 0.8, + 0.8 + ], + [ + 0.8, + 0.8 + ] + ] + }, + { + "name": "red_s", + "directions": 4, + "delays": [ + [ + 0.8, + 0.8 + ], + [ + 0.8, + 0.8 + ], + [ + 0.8, + 0.8 + ], + [ + 0.8, + 0.8 + ] + ] + }, + { + "name": "shower_s", + "directions": 4, + "delays": [ + [ + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8 + ], + [ + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8 + ], + [ + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8 + ], + [ + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8 + ] + ] + }, + { + "name": "static_s", + "directions": 4, + "delays": [ + [ + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8 + ], + [ + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8 + ], + [ + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8 + ], + [ + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8, + 0.8 + ] + ] + }, + { + "name": "yellow_s", + "directions": 4, + "delays": [ + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ] + ] + }, + { + "name": "scroll_s", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "console_s", + "directions": 4, + "delays": [ + [ + 1, + 1 + ], + [ + 1, + 1 + ], + [ + 1, + 1 + ], + [ + 1, + 1 + ] + ] + }, + { + "name": "rgb_s", + "directions": 4, + "delays": [ + [ + 2, + 2, + 2 + ], + [ + 2, + 2, + 2 + ], + [ + 2, + 2, + 2 + ], + [ + 2, + 2, + 2 + ] + ] + }, + { + "name": "gol_glider_s", + "directions": 4, + "delays": [ + [ + 0.3, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.3, + 0.3, + 0.3 + ], + [ + 0.3, + 0.3, + 0.3, + 0.3 + ] + ] + }, + { + "name": "rainbow_s", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "off_hesp_alt_s", + "directions": 4 + }, + { + "name": "pink_hesp_alt_s", + "directions": 4, + "delays": [ + [ + 4, + 0.1, + 0.1, + 0.1 + ], + [ + 4, + 0.1, + 0.1, + 0.1 + ], + [ + 4, + 0.1, + 0.1, + 0.1 + ], + [ + 4, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "orange_hesp_alt_s", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "goggles_hesp_alt_s", + "directions": 4, + "delays": [ + [ + 0.2, + 4 + ], + [ + 0.2, + 4 + ], + [ + 0.2, + 4 + ], + [ + 0.2, + 4 + ] + ] + }, + { + "name": "scroll_hesp_alt_s", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "rgb_hesp_alt_s", + "directions": 4, + "delays": [ + [ + 0.5, + 0.5, + 0.5 + ], + [ + 0.5, + 0.5, + 0.5 + ], + [ + 0.5, + 0.5, + 0.5 + ], + [ + 0.5, + 0.5, + 0.5 + ] + ] + }, + { + "name": "rainbow_hesp_alt_s", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "smoking_s", + "directions": 4, + "delays": [ + [ + 0.1, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.1, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.1, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.1, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "test_s", + "directions": 4 + }, + { + "name": "ipc_off", + "directions": 4 + }, + { + "name": "ipc_no", + "directions": 4, + "delays": [ + [ + 0.5, + 0.5 + ], + [ + 0.5, + 0.5 + ], + [ + 0.5, + 0.5 + ], + [ + 0.5, + 0.5 + ] + ] + }, + { + "name": "ipc_frowny", + "directions": 4, + "delays": [ + [ + 1.5, + 0.3 + ], + [ + 1.5, + 0.3 + ], + [ + 1.5, + 0.3 + ], + [ + 1.5, + 0.3 + ] + ] + }, + { + "name": "ipc_stars", + "directions": 4, + "delays": [ + [ + 1, + 1, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 1, + 1, + 1 + ] + ] + }, + { + "name": "ipc_crt", + "directions": 4, + "delays": [ + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ], + [ + 2, + 2 + ] + ] + }, + { + "name": "ipc_smiley", + "directions": 4, + "delays": [ + [ + 1.5, + 0.3 + ], + [ + 1.5, + 0.3 + ], + [ + 1.5, + 0.3 + ], + [ + 1.5, + 0.3 + ] + ] + }, + { + "name": "ipc_yes", + "directions": 4, + "delays": [ + [ + 0.5, + 0.5 + ], + [ + 0.5, + 0.5 + ], + [ + 0.5, + 0.5 + ], + [ + 0.5, + 0.5 + ] + ] + }, + { + "name": "ipc_database", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/monoeye_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/monoeye_s.png new file mode 100644 index 00000000000..b7c3564c6f3 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/monoeye_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/nature_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/nature_s.png new file mode 100644 index 00000000000..2aab6559cf5 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/nature_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/off_hesp_alt_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/off_hesp_alt_s.png new file mode 100644 index 00000000000..91a152bc6d9 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/off_hesp_alt_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/orange_hesp_alt_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/orange_hesp_alt_s.png new file mode 100644 index 00000000000..70d0cce1056 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/orange_hesp_alt_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/orange_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/orange_s.png new file mode 100644 index 00000000000..ec4ec4140dd Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/orange_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/pink_hesp_alt_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/pink_hesp_alt_s.png new file mode 100644 index 00000000000..596827a2f43 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/pink_hesp_alt_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/pink_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/pink_s.png new file mode 100644 index 00000000000..31145a55a41 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/pink_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/purple_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/purple_s.png new file mode 100644 index 00000000000..ec7c6767671 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/purple_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/rainbow_hesp_alt_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/rainbow_hesp_alt_s.png new file mode 100644 index 00000000000..0cdf57c6c6e Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/rainbow_hesp_alt_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/rainbow_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/rainbow_s.png new file mode 100644 index 00000000000..0d6f042d9fc Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/rainbow_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/red_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/red_s.png new file mode 100644 index 00000000000..955e721672b Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/red_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/rgb_hesp_alt_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/rgb_hesp_alt_s.png new file mode 100644 index 00000000000..2340ebb3bdf Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/rgb_hesp_alt_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/rgb_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/rgb_s.png new file mode 100644 index 00000000000..bee0f564a3c Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/rgb_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/scroll_hesp_alt_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/scroll_hesp_alt_s.png new file mode 100644 index 00000000000..fe2c361bc89 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/scroll_hesp_alt_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/scroll_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/scroll_s.png new file mode 100644 index 00000000000..a9fdb0a351e Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/scroll_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/shower_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/shower_s.png new file mode 100644 index 00000000000..074708133c2 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/shower_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/smoking_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/smoking_s.png new file mode 100644 index 00000000000..200415c91b3 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/smoking_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/static_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/static_s.png new file mode 100644 index 00000000000..5d28028d04c Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/static_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/test_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/test_s.png new file mode 100644 index 00000000000..99b13a58998 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/test_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/yellow_s.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/yellow_s.png new file mode 100644 index 00000000000..1019e038416 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_monitors.rsi/yellow_s.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/groin.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/groin.png new file mode 100644 index 00000000000..8383fc95a0e Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/groin.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/head.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/head.png new file mode 100644 index 00000000000..6c5f31862fd Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/head.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/l_arm.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/l_arm.png new file mode 100644 index 00000000000..28dcd4260ca Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/l_arm.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/l_foot.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/l_foot.png new file mode 100644 index 00000000000..5f711347776 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/l_foot.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/l_hand.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/l_hand.png new file mode 100644 index 00000000000..5395ee3f729 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/l_hand.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/l_leg.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/l_leg.png new file mode 100644 index 00000000000..31a740a1c47 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/l_leg.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/meta.json b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/meta.json new file mode 100644 index 00000000000..3242f09a0ab --- /dev/null +++ b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/meta.json @@ -0,0 +1,55 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Спизжено из SS13 Paradise", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "groin", + "directions": 4 + }, + { + "name": "head", + "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", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/r_arm.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/r_arm.png new file mode 100644 index 00000000000..f795b1fa2e9 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/r_arm.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/r_foot.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/r_foot.png new file mode 100644 index 00000000000..33570514269 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/r_foot.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/r_hand.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/r_hand.png new file mode 100644 index 00000000000..13a9cc24151 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/r_hand.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/r_leg.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/r_leg.png new file mode 100644 index 00000000000..cd67c9fc3df Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/r_leg.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/torso.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/torso.png new file mode 100644 index 00000000000..2579129f78a Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_robotic.rsi/torso.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/groin.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/groin.png new file mode 100644 index 00000000000..4e3ee8c28d1 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/groin.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/head.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/head.png new file mode 100644 index 00000000000..6a786b3c682 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/head.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/l_arm.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/l_arm.png new file mode 100644 index 00000000000..e4ad541d76e Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/l_arm.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/l_foot.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/l_foot.png new file mode 100644 index 00000000000..0611383daea Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/l_foot.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/l_hand.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/l_hand.png new file mode 100644 index 00000000000..2fcababc64f Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/l_hand.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/l_leg.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/l_leg.png new file mode 100644 index 00000000000..3fde4860390 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/l_leg.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/meta.json b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/meta.json new file mode 100644 index 00000000000..0bd8b8e109a --- /dev/null +++ b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/meta.json @@ -0,0 +1,55 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Спизжено из SS13 Paradise", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "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": "head", + "directions": 4 + }, + { + "name": "groin", + "directions": 4 + }, + { + "name": "torso", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/r_arm.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/r_arm.png new file mode 100644 index 00000000000..f6472ae965d Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/r_arm.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/r_foot.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/r_foot.png new file mode 100644 index 00000000000..d09da3ba435 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/r_foot.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/r_hand.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/r_hand.png new file mode 100644 index 00000000000..6df370275fa Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/r_hand.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/r_leg.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/r_leg.png new file mode 100644 index 00000000000..2a540a47e59 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/r_leg.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/torso.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/torso.png new file mode 100644 index 00000000000..41c42defc59 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_shellguard.rsi/torso.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/groin.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/groin.png new file mode 100644 index 00000000000..58591d57f3a Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/groin.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/head.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/head.png new file mode 100644 index 00000000000..2acc0d12540 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/head.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/l_arm.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/l_arm.png new file mode 100644 index 00000000000..1c5f646e36e Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/l_arm.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/l_foot.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/l_foot.png new file mode 100644 index 00000000000..45d9e8e2460 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/l_foot.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/l_hand.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/l_hand.png new file mode 100644 index 00000000000..062d14745c0 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/l_hand.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/l_leg.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/l_leg.png new file mode 100644 index 00000000000..f120754830b Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/l_leg.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/meta.json b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/meta.json new file mode 100644 index 00000000000..9eea445564a --- /dev/null +++ b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/meta.json @@ -0,0 +1,55 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Спизжено из SS13 Paradise", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "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 + }, + { + "name": "head", + "directions": 4 + }, + { + "name": "groin", + "directions": 4 + }, + { + "name": "torso", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/r_arm.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/r_arm.png new file mode 100644 index 00000000000..24e15d419ad Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/r_arm.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/r_foot.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/r_foot.png new file mode 100644 index 00000000000..f04c2fd7a64 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/r_foot.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/r_hand.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/r_hand.png new file mode 100644 index 00000000000..287556a83a0 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/r_hand.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/r_leg.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/r_leg.png new file mode 100644 index 00000000000..653101e63af Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/r_leg.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/torso.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/torso.png new file mode 100644 index 00000000000..d6b0f13814e Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_wardtakahashi.rsi/torso.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/groin.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/groin.png new file mode 100644 index 00000000000..fb3ff2a0118 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/groin.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/head.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/head.png new file mode 100644 index 00000000000..4117e99c5d9 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/head.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/l_arm.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/l_arm.png new file mode 100644 index 00000000000..1e2e1f6ab5f Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/l_arm.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/l_foot.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/l_foot.png new file mode 100644 index 00000000000..ae45a11cd7e Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/l_foot.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/l_hand.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/l_hand.png new file mode 100644 index 00000000000..11e98bbb2ae Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/l_hand.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/l_leg.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/l_leg.png new file mode 100644 index 00000000000..4c7d027be45 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/l_leg.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/meta.json b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/meta.json new file mode 100644 index 00000000000..0bd8b8e109a --- /dev/null +++ b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/meta.json @@ -0,0 +1,55 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Спизжено из SS13 Paradise", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "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": "head", + "directions": 4 + }, + { + "name": "groin", + "directions": 4 + }, + { + "name": "torso", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/r_arm.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/r_arm.png new file mode 100644 index 00000000000..534e7936556 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/r_arm.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/r_foot.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/r_foot.png new file mode 100644 index 00000000000..eeaa3923b16 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/r_foot.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/r_hand.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/r_hand.png new file mode 100644 index 00000000000..90f3911af94 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/r_hand.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/r_leg.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/r_leg.png new file mode 100644 index 00000000000..1f2bb3530c5 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/r_leg.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/torso.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/torso.png new file mode 100644 index 00000000000..84c478c8790 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_xion.rsi/torso.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/groin.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/groin.png new file mode 100644 index 00000000000..f3f554ee30a Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/groin.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/head.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/head.png new file mode 100644 index 00000000000..2af78ea2d9c Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/head.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/l_arm.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/l_arm.png new file mode 100644 index 00000000000..6600540aea7 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/l_arm.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/l_foot.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/l_foot.png new file mode 100644 index 00000000000..379d47a346d Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/l_foot.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/l_hand.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/l_hand.png new file mode 100644 index 00000000000..7872f09287c Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/l_hand.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/l_leg.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/l_leg.png new file mode 100644 index 00000000000..688eb5e34d6 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/l_leg.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/meta.json b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/meta.json new file mode 100644 index 00000000000..8725efb87c4 --- /dev/null +++ b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/meta.json @@ -0,0 +1,55 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Спизжено из SS13 Paradise", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "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": "groin", + "directions": 4 + }, + { + "name": "torso", + "directions": 4 + }, + { + "name": "head", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/r_arm.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/r_arm.png new file mode 100644 index 00000000000..d1af4939d74 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/r_arm.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/r_foot.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/r_foot.png new file mode 100644 index 00000000000..03be6887e69 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/r_foot.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/r_hand.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/r_hand.png new file mode 100644 index 00000000000..90d2c7792c1 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/r_hand.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/r_leg.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/r_leg.png new file mode 100644 index 00000000000..afaaab27fd2 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/r_leg.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/torso.png b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/torso.png new file mode 100644 index 00000000000..2c372c8fc47 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Customization/synth_zenghu.rsi/torso.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/full.png b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/full.png new file mode 100644 index 00000000000..3bf951beef1 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/full.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/groin.png b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/groin.png new file mode 100644 index 00000000000..1b2291693ea Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/groin.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/head.png b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/head.png new file mode 100644 index 00000000000..952158c6ff3 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/head.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/l_arm.png b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/l_arm.png new file mode 100644 index 00000000000..9813e583feb Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/l_arm.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/l_foot.png b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/l_foot.png new file mode 100644 index 00000000000..468d4f38989 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/l_foot.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/l_hand.png b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/l_hand.png new file mode 100644 index 00000000000..05df57f392f Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/l_hand.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/l_leg.png b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/l_leg.png new file mode 100644 index 00000000000..083b077b252 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/l_leg.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/meta.json b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/meta.json new file mode 100644 index 00000000000..04680da0ff4 --- /dev/null +++ b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/meta.json @@ -0,0 +1,58 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Спизжено из SS13 Paradise", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "groin", + "directions": 4 + }, + { + "name": "head", + "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", + "directions": 4 + }, + { + "name": "full" + } + ] +} diff --git a/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/r_arm.png b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/r_arm.png new file mode 100644 index 00000000000..27ba8e0d263 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/r_arm.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/r_foot.png b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/r_foot.png new file mode 100644 index 00000000000..e0b3dd55b59 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/r_foot.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/r_hand.png b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/r_hand.png new file mode 100644 index 00000000000..716f604b4f3 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/r_hand.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/r_leg.png b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/r_leg.png new file mode 100644 index 00000000000..59babbe716b Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/r_leg.png differ diff --git a/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/torso.png b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/torso.png new file mode 100644 index 00000000000..bcfa51232b7 Binary files /dev/null and b/Resources/Textures/_Sunrise/Mobs/Species/Synth/parts.rsi/torso.png differ diff --git a/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/chest.png b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/chest.png new file mode 100644 index 00000000000..321a1c3bc38 Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/chest.png differ diff --git a/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/groin+o.png b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/groin+o.png new file mode 100644 index 00000000000..d3ed78eba82 Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/groin+o.png differ diff --git a/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/groin.png b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/groin.png new file mode 100644 index 00000000000..d3ed78eba82 Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/groin.png differ diff --git a/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/head+o.png b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/head+o.png new file mode 100644 index 00000000000..ff5880942e5 Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/head+o.png differ diff --git a/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/head.png b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/head.png new file mode 100644 index 00000000000..ff5880942e5 Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/head.png differ diff --git a/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/l_arm+o.png b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/l_arm+o.png new file mode 100644 index 00000000000..10997e5f337 Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/l_arm+o.png differ diff --git a/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/l_arm.png b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/l_arm.png new file mode 100644 index 00000000000..10997e5f337 Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/l_arm.png differ diff --git a/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/l_leg+o.png b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/l_leg+o.png new file mode 100644 index 00000000000..903a749f5ae Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/l_leg+o.png differ diff --git a/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/l_leg.png b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/l_leg.png new file mode 100644 index 00000000000..903a749f5ae Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/l_leg.png differ diff --git a/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/meta.json b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/meta.json new file mode 100644 index 00000000000..9d3404be55a --- /dev/null +++ b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/meta.json @@ -0,0 +1,50 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Спизжено из SS13 Paradise", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "chest" + }, + { + "name": "groin" + }, + { + "name": "groin+o" + }, + { + "name": "head" + }, + { + "name": "head+o" + }, + { + "name": "l_arm" + }, + { + "name": "l_arm+o" + }, + { + "name": "r_arm" + }, + { + "name": "r_arm+o" + }, + { + "name": "l_leg" + }, + { + "name": "l_leg+o" + }, + { + "name": "r_leg" + }, + { + "name": "r_leg+o" + } + ] +} diff --git a/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/r_arm+o.png b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/r_arm+o.png new file mode 100644 index 00000000000..d9c602cc651 Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/r_arm+o.png differ diff --git a/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/r_arm.png b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/r_arm.png new file mode 100644 index 00000000000..d9c602cc651 Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/r_arm.png differ diff --git a/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/r_leg+o.png b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/r_leg+o.png new file mode 100644 index 00000000000..59e41c5e54b Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/r_leg+o.png differ diff --git a/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/r_leg.png b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/r_leg.png new file mode 100644 index 00000000000..59e41c5e54b Binary files /dev/null and b/Resources/Textures/_Sunrise/Objects/Specific/Robotics/synth_parts.rsi/r_leg.png differ