From 1b5980c83365460dd60de12301443fa901e18cc4 Mon Sep 17 00:00:00 2001 From: 21Melkuu <79728504+21Melkuu@users.noreply.github.com> Date: Fri, 30 Aug 2024 18:03:05 +0300 Subject: [PATCH 01/20] NeSMOTRET' --- .../ReactiveTeleportArmorComponent.cs | 33 ++++ .../ReactiveTeleportArmorSystem.cs | 157 ++++++++++++++++++ .../ReactiveTeleportArmorComponent.cs | 12 ++ .../Catalog/ReagentMedsleeperInventory.yml | 26 +++ 4 files changed, 228 insertions(+) create mode 100644 Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs create mode 100644 Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs create mode 100644 Content.Shared/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs create mode 100644 Resources/Prototypes/SS220/Catalog/ReagentMedsleeperInventory.yml diff --git a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs new file mode 100644 index 00000000000000..db17778edb2f19 --- /dev/null +++ b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs @@ -0,0 +1,33 @@ +using Robust.Shared.Audio; +using Content.Shared.FixedPoint; +using Robust.Shared.GameStates; +using Robust.Shared.GameObjects; + +namespace Content.Server.SS220.ReactiveTeleportArmor; + +/// +/// Randomly teleports entity when triggered. +/// +[RegisterComponent] +public sealed partial class ReactiveTeleportArmorComponent : Component +{ + /// + /// Up to how far to teleport the user + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float TeleportRadius = 100f; + + [DataField, ViewVariables(VVAccess.ReadWrite)] + public SoundSpecifier TeleportSound = new SoundPathSpecifier("/Audio/Effects/teleport_arrival.ogg"); + + [ViewVariables, AutoNetworkedField] + public EntityUid? ArmorEntity; +} + + +public sealed partial class OnReactiveTeleportArmorEvent : Component +{ + +} + + diff --git a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs new file mode 100644 index 00000000000000..75362c5e7d999d --- /dev/null +++ b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs @@ -0,0 +1,157 @@ +using System.Linq; +using Robust.Shared.Random; +using Content.Shared.Damage; +using Content.Shared.Movement.Pulling.Systems; +using Content.Shared.Movement.Pulling.Components; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Map; +using Robust.Shared.Maths; +using Robust.Shared.Physics; +using Robust.Shared.Physics.Components; +using Robust.Shared.Map.Components; +using System.Numerics; +using Content.Shared.Physics; +using Robust.Shared.Collections; +using Robust.Shared.GameObjects; + + + + +namespace Content.Server.SS220.ReactiveTeleportArmor +{ + internal class ReactiveTeleportArmorSystem : EntitySystem + { + [Dependency] private readonly IMapManager _mapManager = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedTransformSystem _xform = default!; + [Dependency] protected readonly DamageableSystem Damageable = default!; + [Dependency] private readonly PullingSystem _pullingSystem = default!; + [Dependency] private readonly EntityLookupSystem _lookupSystem = default!; + [Dependency] private readonly SharedMapSystem _mapSystem = default!; + + + private EntityQuery _physicsQuery; + private HashSet> _targetGrids = []; + + public override void Initialize() + { + _physicsQuery = GetEntityQuery(); + + base.Initialize(); + SubscribeLocalEvent(OnReactiveTeleportArmor); + } + + private void OnReactiveTeleportArmor(EntityUid uid, ReactiveTeleportArmorComponent component, ref DamageChangedEvent args) + { + if (component.ArmorEntity is not { } entity) + return; + if (!TryComp(uid, out var armor)) + return; + + // We need stop the user from being pulled so they don't just get "attached" with whoever is pulling them. + // This can for example happen when the user is cuffed and being pulled. + if (TryComp(entity.Owner, out var pull) && _pullingSystem.IsPulled(entity, pull)) + _pullingSystem.TryStopPull(entity, pull); + + if (!args.DamageIncreased || args.DamageDelta == null) + return; + + + var xform = Transform(entity); + var targetCoords = SelectRandomTileInRange(xform, armor.TeleportRadius); + + if (args.DamageIncreased) + { + SelectRandomTileInRange(xform, armor.TeleportRadius); + } + + if (targetCoords != null) + { + _xform.SetCoordinates(entity, targetCoords.Value); + _audio.PlayPvs(armor.TeleportSound, entity); + } + } + + private EntityCoordinates? SelectRandomTileInRange(TransformComponent userXform, float radius) + { + var userCoords = userXform.Coordinates.ToMap(EntityManager, _xform); + _targetGrids.Clear(); + _lookupSystem.GetEntitiesInRange(userCoords, radius, _targetGrids); + Entity? targetGrid = null; + + if (_targetGrids.Count == 0) + return null; + + // Give preference to the grid the entity is currently on. + // This does not guarantee that if the probability fails that the owner's grid won't be picked. + // In reality the probability is higher and depends on the number of grids. + if (userXform.GridUid != null && TryComp(userXform.GridUid, out var gridComp)) + { + var userGrid = new Entity(userXform.GridUid.Value, gridComp); + if (_random.Prob(0.5f)) + { + _targetGrids.Remove(userGrid); + targetGrid = userGrid; + } + } + + if (targetGrid == null) + targetGrid = _random.GetRandom().PickAndTake(_targetGrids); + + EntityCoordinates? targetCoords = null; + + do + { + var valid = false; + + var range = (float)Math.Sqrt(radius); + var box = Box2.CenteredAround(userCoords.Position, new Vector2(range, range)); + var tilesInRange = _mapSystem.GetTilesEnumerator(targetGrid.Value.Owner, targetGrid.Value.Comp, box, false); + var tileList = new ValueList(); + + while (tilesInRange.MoveNext(out var tile)) + { + tileList.Add(tile.GridIndices); + } + + while (tileList.Count != 0) + { + var tile = tileList.RemoveSwap(_random.Next(tileList.Count)); + valid = true; + foreach (var entity in _mapSystem.GetAnchoredEntities(targetGrid.Value.Owner, targetGrid.Value.Comp, + tile)) + { + if (!_physicsQuery.TryGetComponent(entity, out var body)) + continue; + + if (body.BodyType != BodyType.Static || + !body.Hard || + (body.CollisionLayer & (int)CollisionGroup.MobMask) == 0) + continue; + + valid = false; + break; + } + + if (valid) + { + targetCoords = new EntityCoordinates(targetGrid.Value.Owner, + _mapSystem.TileCenterToVector(targetGrid.Value, tile)); + break; + } + } + + if (valid || _targetGrids.Count == 0) // if we don't do the check here then PickAndTake will blow up on an empty set. + break; + + targetGrid = _random.GetRandom().PickAndTake(_targetGrids); + } while (true); + + return targetCoords; + } + + } + + +} diff --git a/Content.Shared/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs b/Content.Shared/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs new file mode 100644 index 00000000000000..dee574931e3b84 --- /dev/null +++ b/Content.Shared/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Content.Server.SS220.ReactiveTeleportArmor +{ + internal class ReactiveTeleportArmorComponent + { + } +} diff --git a/Resources/Prototypes/SS220/Catalog/ReagentMedsleeperInventory.yml b/Resources/Prototypes/SS220/Catalog/ReagentMedsleeperInventory.yml new file mode 100644 index 00000000000000..e3b253c09e1a00 --- /dev/null +++ b/Resources/Prototypes/SS220/Catalog/ReagentMedsleeperInventory.yml @@ -0,0 +1,26 @@ +- type: reagentMedsleeperInventory + id: ChemDispenserStandardInventory + inventory: + - JugAluminium + - JugCarbon + - JugChlorine + - JugCopper + - JugEthanol + - JugFluorine + - JugSugar + - JugHydrogen + - JugIodine + - JugIron + - JugLithium + - JugMercury + - JugNitrogen + - JugOxygen + - JugPhosphorus + - JugPotassium + - JugRadium + - JugSilicon + - JugSodium + - JugSulfur + +- type: reagentMedsleeperInventory + id: EmptyInventory \ No newline at end of file From a8b57d928e39c49a471666237f38416d2ac716bc Mon Sep 17 00:00:00 2001 From: 21Melkuu <79728504+21Melkuu@users.noreply.github.com> Date: Fri, 30 Aug 2024 18:05:35 +0300 Subject: [PATCH 02/20] x2 --- .../SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs index 75362c5e7d999d..9f53c9d6229f15 100644 --- a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs +++ b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs @@ -51,7 +51,7 @@ private void OnReactiveTeleportArmor(EntityUid uid, ReactiveTeleportArmorCompone // We need stop the user from being pulled so they don't just get "attached" with whoever is pulling them. // This can for example happen when the user is cuffed and being pulled. - if (TryComp(entity.Owner, out var pull) && _pullingSystem.IsPulled(entity, pull)) + if (TryComp(entity, out var pull) && _pullingSystem.IsPulled(entity, pull)) _pullingSystem.TryStopPull(entity, pull); if (!args.DamageIncreased || args.DamageDelta == null) From 59d902b7aa60ecfeda0bbe3b212fc12fbdf94fd3 Mon Sep 17 00:00:00 2001 From: 21Melkuu <79728504+21Melkuu@users.noreply.github.com> Date: Thu, 5 Sep 2024 16:15:51 +0300 Subject: [PATCH 03/20] ewe chyt' chyt' u ya ymry --- .../ReactiveTeleportArmorComponent.cs | 12 +++- .../ReactiveTeleportArmorSystem.cs | 61 ++++++++++++++----- .../OuterClothing/reactive_armor_rd.yml | 31 ++++++++++ 3 files changed, 87 insertions(+), 17 deletions(-) create mode 100644 Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml diff --git a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs index db17778edb2f19..85079e3d4ea90d 100644 --- a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs +++ b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs @@ -2,6 +2,7 @@ using Content.Shared.FixedPoint; using Robust.Shared.GameStates; using Robust.Shared.GameObjects; +using Content.Server.Explosion.Components; namespace Content.Server.SS220.ReactiveTeleportArmor; @@ -20,8 +21,17 @@ public sealed partial class ReactiveTeleportArmorComponent : Component [DataField, ViewVariables(VVAccess.ReadWrite)] public SoundSpecifier TeleportSound = new SoundPathSpecifier("/Audio/Effects/teleport_arrival.ogg"); + /// + /// How much damage of any type it takes to wake this entity. + /// + [DataField] + public FixedPoint2 WakeThreshold = FixedPoint2.New(4); + + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float TeleportChance = .5f; + [ViewVariables, AutoNetworkedField] - public EntityUid? ArmorEntity; + public EntityUid ArmorUid; } diff --git a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs index 9f53c9d6229f15..a2bb6613fb12d3 100644 --- a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs +++ b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs @@ -12,6 +12,11 @@ using System.Numerics; using Content.Shared.Physics; using Robust.Shared.Collections; +using Content.Shared.Clothing; +using Content.Shared.Inventory; +using Content.Server.Explosion.EntitySystems; +using Content.Server.Explosion.Components; +using Content.Shared.Inventory.Events; using Robust.Shared.GameObjects; @@ -29,6 +34,8 @@ internal class ReactiveTeleportArmorSystem : EntitySystem [Dependency] private readonly PullingSystem _pullingSystem = default!; [Dependency] private readonly EntityLookupSystem _lookupSystem = default!; [Dependency] private readonly SharedMapSystem _mapSystem = default!; + [Dependency] private readonly InventorySystem _inventory = default!; + [Dependency] private readonly ExplosionSystem _explosion = default!; private EntityQuery _physicsQuery; @@ -40,36 +47,58 @@ public override void Initialize() base.Initialize(); SubscribeLocalEvent(OnReactiveTeleportArmor); + SubscribeLocalEvent(OnEquip); + SubscribeLocalEvent(OnUnequip); } - private void OnReactiveTeleportArmor(EntityUid uid, ReactiveTeleportArmorComponent component, ref DamageChangedEvent args) + private void OnEquip(Entity ent, ref ClothingGotEquippedEvent args) { - if (component.ArmorEntity is not { } entity) - return; - if (!TryComp(uid, out var armor)) + EnsureComp(args.Wearer); + ent.Comp.ArmorUid = ent; + } + private void OnUnequip(Entity ent, ref ClothingGotUnequippedEvent args) + { + RemComp(args.Wearer); + } + + + private void OnReactiveTeleportArmor(Entity ent, ref DamageChangedEvent args) + { + + + if (!TryComp(ent, out var armor)) return; // We need stop the user from being pulled so they don't just get "attached" with whoever is pulling them. // This can for example happen when the user is cuffed and being pulled. - if (TryComp(entity, out var pull) && _pullingSystem.IsPulled(entity, pull)) - _pullingSystem.TryStopPull(entity, pull); + if (TryComp(ent.Owner, out var pull) && _pullingSystem.IsPulled(ent.Owner, pull)) + _pullingSystem.TryStopPull(ent.Owner, pull); + + + var xform = Transform(ent.Owner); + var targetCoords = SelectRandomTileInRange(xform, armor.TeleportRadius); + if (!args.DamageIncreased || args.DamageDelta == null) return; + if (args.DamageDelta.GetTotal() >= ent.Comp.WakeThreshold && targetCoords != null) + { - var xform = Transform(entity); - var targetCoords = SelectRandomTileInRange(xform, armor.TeleportRadius); + switch (_random.Prob(ent.Comp.TeleportChance)) + { + case true: - if (args.DamageIncreased) - { - SelectRandomTileInRange(xform, armor.TeleportRadius); - } + _xform.SetCoordinates(ent.Owner, targetCoords.Value); + _audio.PlayPvs(armor.TeleportSound, ent.Owner); + SelectRandomTileInRange(xform, armor.TeleportRadius); - if (targetCoords != null) - { - _xform.SetCoordinates(entity, targetCoords.Value); - _audio.PlayPvs(armor.TeleportSound, entity); + break; + case false: + _explosion.TriggerExplosive(ent.Comp.ArmorUid); ///пользуясб случаем я хочу сказать: ГНОМА Я ЛЮБЛЮ ТЕБЯ ПОФИКСИ ПОЖАЛУЙСТА ЭТО ХУЙНЯ + break; + + } } } diff --git a/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml b/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml new file mode 100644 index 00000000000000..262b8e33b5a644 --- /dev/null +++ b/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml @@ -0,0 +1,31 @@ +- type: entity + parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing] + id: ClothingOuterReactiveArmor + name: "name1" + description: "Desc2." + components: + - type: Sprite + sprite: Clothing/OuterClothing/Armor/captain_carapace.rsi + - type: Clothing + sprite: Clothing/OuterClothing/Armor/captain_carapace.rsi + - type: Armor + modifiers: + coefficients: + Blunt: 0.5 + Slash: 0.5 + Piercing: 0.6 + Heat: 0.5 + Caustic: 0.9 + - type: ClothingSpeedModifier + walkModifier: 1.0 + sprintModifier: 1.0 + - type: HeldSpeedModifier + damageCoefficient: 0.65 + - type: GroupExamine + - type: ReactiveTeleportArmor + - type: Explosive # Powerful explosion in a very small radius. Doesn't break underplating. + explosionType: DemolitionCharge + totalIntensity: 60 + intensitySlope: 5 + maxIntensity: 30 + canCreateVacuum: false \ No newline at end of file From 8e2c352179bc2352fc575b6d9a2602fa9a1fedd0 Mon Sep 17 00:00:00 2001 From: 21Melkuu <79728504+21Melkuu@users.noreply.github.com> Date: Fri, 6 Sep 2024 18:07:16 +0300 Subject: [PATCH 04/20] pochti!!! --- .../ReactiveTeleportArmorComponent.cs | 47 ++++----------- .../ReactiveTeleportArmorOnUristComponent.cs | 46 +++++++++++++++ .../ReactiveTeleportArmorSystem.cs | 58 ++++++++++--------- .../ReactiveTeleportArmorComponent.cs | 12 ---- .../Catalog/ReagentMedsleeperInventory.yml | 26 --------- .../OuterClothing/reactive_armor_rd.yml | 32 ++++++---- 6 files changed, 109 insertions(+), 112 deletions(-) create mode 100644 Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorOnUristComponent.cs delete mode 100644 Content.Shared/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs delete mode 100644 Resources/Prototypes/SS220/Catalog/ReagentMedsleeperInventory.yml diff --git a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs index 85079e3d4ea90d..d77d573bb52fc8 100644 --- a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs +++ b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs @@ -1,43 +1,18 @@ -using Robust.Shared.Audio; -using Content.Shared.FixedPoint; -using Robust.Shared.GameStates; -using Robust.Shared.GameObjects; -using Content.Server.Explosion.Components; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; -namespace Content.Server.SS220.ReactiveTeleportArmor; - -/// -/// Randomly teleports entity when triggered. -/// -[RegisterComponent] -public sealed partial class ReactiveTeleportArmorComponent : Component +namespace Content.Server.SS220.ReactiveTeleportArmor { /// - /// Up to how far to teleport the user - /// - [DataField, ViewVariables(VVAccess.ReadWrite)] - public float TeleportRadius = 100f; - - [DataField, ViewVariables(VVAccess.ReadWrite)] - public SoundSpecifier TeleportSound = new SoundPathSpecifier("/Audio/Effects/teleport_arrival.ogg"); - - /// - /// How much damage of any type it takes to wake this entity. + /// Intermediate component to work with ReactiveTeleportArmorOnUristComponent /// - [DataField] - public FixedPoint2 WakeThreshold = FixedPoint2.New(4); - - [DataField, ViewVariables(VVAccess.ReadWrite)] - public float TeleportChance = .5f; - [ViewVariables, AutoNetworkedField] - public EntityUid ArmorUid; -} - - -public sealed partial class OnReactiveTeleportArmorEvent : Component -{ + [RegisterComponent] + public sealed partial class ReactiveTeleportArmorComponent : Component + { + } } - - diff --git a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorOnUristComponent.cs b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorOnUristComponent.cs new file mode 100644 index 00000000000000..c958ff942693ed --- /dev/null +++ b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorOnUristComponent.cs @@ -0,0 +1,46 @@ +using Robust.Shared.Audio; +using Content.Shared.FixedPoint; +using Robust.Shared.GameStates; +using Robust.Shared.GameObjects; +using Content.Server.Explosion.Components; + +namespace Content.Server.SS220.ReactiveTeleportArmor; + +/// +/// Randomly teleports entity when triggered. +/// +[RegisterComponent] +public sealed partial class ReactiveTeleportArmorOnUristComponent : Component +{ + /// + /// Up to how far to teleport the user + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float TeleportRadius = 30f; + + [DataField, ViewVariables(VVAccess.ReadWrite)] + public SoundSpecifier TeleportSound = new SoundPathSpecifier("/Audio/Effects/teleport_arrival.ogg"); + + /// + /// How much damage of any type it takes to wake this entity. + /// + [DataField] + public FixedPoint2 WakeThreshold = FixedPoint2.New(4); + + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float TeleportChance = .1f; + + [ViewVariables, AutoNetworkedField] + public EntityUid ArmorUid; + + [DataField] + public int IntervalSeconds = 60; +} + + +public sealed partial class OnReactiveTeleportArmorEvent : Component +{ + +} + + diff --git a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs index a2bb6613fb12d3..ecd590ee983eaa 100644 --- a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs +++ b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs @@ -1,11 +1,10 @@ -using System.Linq; + using Robust.Shared.Random; using Content.Shared.Damage; using Content.Shared.Movement.Pulling.Systems; using Content.Shared.Movement.Pulling.Components; using Robust.Shared.Audio.Systems; using Robust.Shared.Map; -using Robust.Shared.Maths; using Robust.Shared.Physics; using Robust.Shared.Physics.Components; using Robust.Shared.Map.Components; @@ -13,30 +12,27 @@ using Content.Shared.Physics; using Robust.Shared.Collections; using Content.Shared.Clothing; -using Content.Shared.Inventory; +using Content.Shared.Clothing.EntitySystems; using Content.Server.Explosion.EntitySystems; -using Content.Server.Explosion.Components; -using Content.Shared.Inventory.Events; -using Robust.Shared.GameObjects; - - +using Content.Shared.Item; +using Content.Shared.Item.ItemToggle; +using Content.Shared.Item.ItemToggle.Components; namespace Content.Server.SS220.ReactiveTeleportArmor { internal class ReactiveTeleportArmorSystem : EntitySystem { - [Dependency] private readonly IMapManager _mapManager = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly SharedTransformSystem _xform = default!; - [Dependency] protected readonly DamageableSystem Damageable = default!; [Dependency] private readonly PullingSystem _pullingSystem = default!; [Dependency] private readonly EntityLookupSystem _lookupSystem = default!; [Dependency] private readonly SharedMapSystem _mapSystem = default!; - [Dependency] private readonly InventorySystem _inventory = default!; [Dependency] private readonly ExplosionSystem _explosion = default!; - + [Dependency] private readonly SharedItemSystem _item = default!; + [Dependency] private readonly ClothingSystem _clothing = default!; + [Dependency] private readonly ItemToggleSystem _toggle = default!; private EntityQuery _physicsQuery; private HashSet> _targetGrids = []; @@ -46,45 +42,52 @@ public override void Initialize() _physicsQuery = GetEntityQuery(); base.Initialize(); - SubscribeLocalEvent(OnReactiveTeleportArmor); + SubscribeLocalEvent(OnReactiveTeleportArmor); SubscribeLocalEvent(OnEquip); SubscribeLocalEvent(OnUnequip); + SubscribeLocalEvent(ToggleDone); } private void OnEquip(Entity ent, ref ClothingGotEquippedEvent args) { - EnsureComp(args.Wearer); - ent.Comp.ArmorUid = ent; + EnsureComp(args.Wearer, out var comp); + + comp.ArmorUid = ent; } private void OnUnequip(Entity ent, ref ClothingGotUnequippedEvent args) { - RemComp(args.Wearer); + RemComp(args.Wearer); + } + private void ToggleDone(Entity ent, ref ItemToggledEvent args) + { + var prefix = args.Activated ? "on" : null; + _item.SetHeldPrefix(ent, prefix); + _clothing.SetEquippedPrefix(ent, prefix); } - private void OnReactiveTeleportArmor(Entity ent, ref DamageChangedEvent args) + private void OnReactiveTeleportArmor(Entity ent, ref DamageChangedEvent args) { - if (!TryComp(ent, out var armor)) + if (!TryComp(ent, out var armor)) return; - // We need stop the user from being pulled so they don't just get "attached" with whoever is pulling them. - // This can for example happen when the user is cuffed and being pulled. - if (TryComp(ent.Owner, out var pull) && _pullingSystem.IsPulled(ent.Owner, pull)) - _pullingSystem.TryStopPull(ent.Owner, pull); - - var xform = Transform(ent.Owner); var targetCoords = SelectRandomTileInRange(xform, armor.TeleportRadius); if (!args.DamageIncreased || args.DamageDelta == null) return; - - if (args.DamageDelta.GetTotal() >= ent.Comp.WakeThreshold && targetCoords != null) + ///teleport entity if taken damage && !null && armor is on && cooldown + if (args.DamageDelta.GetTotal() >= ent.Comp.WakeThreshold && targetCoords != null && _toggle.IsActivated(ent.Comp.ArmorUid)) { + // We need stop the user from being pulled so they don't just get "attached" with whoever is pulling them. + // This can for example happen when the user is cuffed and being pulled. + if (TryComp(ent.Owner, out var pull) && _pullingSystem.IsPulled(ent.Owner, pull)) + _pullingSystem.TryStopPull(ent.Owner, pull); + switch (_random.Prob(ent.Comp.TeleportChance)) { case true: @@ -95,7 +98,7 @@ private void OnReactiveTeleportArmor(Entity ent, break; case false: - _explosion.TriggerExplosive(ent.Comp.ArmorUid); ///пользуясб случаем я хочу сказать: ГНОМА Я ЛЮБЛЮ ТЕБЯ ПОФИКСИ ПОЖАЛУЙСТА ЭТО ХУЙНЯ + _explosion.TriggerExplosive(ent.Comp.ArmorUid); break; } @@ -178,6 +181,7 @@ private void OnReactiveTeleportArmor(Entity ent, } while (true); return targetCoords; + } } diff --git a/Content.Shared/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs b/Content.Shared/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs deleted file mode 100644 index dee574931e3b84..00000000000000 --- a/Content.Shared/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Content.Server.SS220.ReactiveTeleportArmor -{ - internal class ReactiveTeleportArmorComponent - { - } -} diff --git a/Resources/Prototypes/SS220/Catalog/ReagentMedsleeperInventory.yml b/Resources/Prototypes/SS220/Catalog/ReagentMedsleeperInventory.yml deleted file mode 100644 index e3b253c09e1a00..00000000000000 --- a/Resources/Prototypes/SS220/Catalog/ReagentMedsleeperInventory.yml +++ /dev/null @@ -1,26 +0,0 @@ -- type: reagentMedsleeperInventory - id: ChemDispenserStandardInventory - inventory: - - JugAluminium - - JugCarbon - - JugChlorine - - JugCopper - - JugEthanol - - JugFluorine - - JugSugar - - JugHydrogen - - JugIodine - - JugIron - - JugLithium - - JugMercury - - JugNitrogen - - JugOxygen - - JugPhosphorus - - JugPotassium - - JugRadium - - JugSilicon - - JugSodium - - JugSulfur - -- type: reagentMedsleeperInventory - id: EmptyInventory \ No newline at end of file diff --git a/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml b/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml index 262b8e33b5a644..c47a4ed658e0ce 100644 --- a/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml +++ b/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml @@ -1,13 +1,13 @@ - type: entity - parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing] + parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing, BaseToggleClothing] id: ClothingOuterReactiveArmor name: "name1" description: "Desc2." components: - type: Sprite - sprite: Clothing/OuterClothing/Armor/captain_carapace.rsi + sprite: SS220/Clothing/OuterClothing/Armor/ReactiveArmor #спрайтеры будут ныть - type: Clothing - sprite: Clothing/OuterClothing/Armor/captain_carapace.rsi + sprite: SS220/Clothing/OuterClothing/Armor/ReactiveArmor #спрайтеры будут ныть - type: Armor modifiers: coefficients: @@ -16,16 +16,26 @@ Piercing: 0.6 Heat: 0.5 Caustic: 0.9 - - type: ClothingSpeedModifier - walkModifier: 1.0 - sprintModifier: 1.0 - type: HeldSpeedModifier damageCoefficient: 0.65 + - type: ToggleClothing + action: ActionToggleReactiveArmor - type: GroupExamine - type: ReactiveTeleportArmor - type: Explosive # Powerful explosion in a very small radius. Doesn't break underplating. - explosionType: DemolitionCharge - totalIntensity: 60 - intensitySlope: 5 - maxIntensity: 30 - canCreateVacuum: false \ No newline at end of file + explosionType: Default + maxIntensity: 5 + totalIntensity: 2 + intensitySlope: 2 + canCreateVacuum: false + deleteAfterExplosion: false + + +- type: entity + id: ActionToggleReactiveArmor + name: Переключение реактивной брони + description: Включает или выключает реактивную броню. + components: + - type: InstantAction + itemIconStyle: BigItem + event: !type:ToggleActionEvent \ No newline at end of file From 2aee65715a89e8790130ee8165f579f922e47d9a Mon Sep 17 00:00:00 2001 From: 21Melkuu <79728504+21Melkuu@users.noreply.github.com> Date: Sun, 8 Sep 2024 09:16:42 +0300 Subject: [PATCH 05/20] Spriteri RABOTAT' --- .../ReactiveTeleportArmorOnUristComponent.cs | 12 +++------ .../ReactiveTeleportArmorSystem.cs | 26 +++++++------------ .../Catalog/Fills/Lockers/heads.yml | 2 ++ .../Objectives/stealTargetGroups.yml | 8 ++++++ .../OuterClothing/reactive_armor_rd.yml | 17 ++++++------ 5 files changed, 31 insertions(+), 34 deletions(-) diff --git a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorOnUristComponent.cs b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorOnUristComponent.cs index c958ff942693ed..ca06bc3d61c6e3 100644 --- a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorOnUristComponent.cs +++ b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorOnUristComponent.cs @@ -1,8 +1,5 @@ using Robust.Shared.Audio; using Content.Shared.FixedPoint; -using Robust.Shared.GameStates; -using Robust.Shared.GameObjects; -using Content.Server.Explosion.Components; namespace Content.Server.SS220.ReactiveTeleportArmor; @@ -34,13 +31,10 @@ public sealed partial class ReactiveTeleportArmorOnUristComponent : Component public EntityUid ArmorUid; [DataField] - public int IntervalSeconds = 60; -} - - -public sealed partial class OnReactiveTeleportArmorEvent : Component -{ + public bool OnCoolDown = false; + [DataField] + public TimeSpan CoolDownTime = TimeSpan.FromSeconds(5); } diff --git a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs index ecd590ee983eaa..f79a2011139f69 100644 --- a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs +++ b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs @@ -1,4 +1,3 @@ - using Robust.Shared.Random; using Content.Shared.Damage; using Content.Shared.Movement.Pulling.Systems; @@ -17,7 +16,7 @@ using Content.Shared.Item; using Content.Shared.Item.ItemToggle; using Content.Shared.Item.ItemToggle.Components; - +using Timer = Robust.Shared.Timing.Timer; namespace Content.Server.SS220.ReactiveTeleportArmor { @@ -36,7 +35,6 @@ internal class ReactiveTeleportArmorSystem : EntitySystem private EntityQuery _physicsQuery; private HashSet> _targetGrids = []; - public override void Initialize() { _physicsQuery = GetEntityQuery(); @@ -50,9 +48,9 @@ public override void Initialize() private void OnEquip(Entity ent, ref ClothingGotEquippedEvent args) { - EnsureComp(args.Wearer, out var comp); + EnsureComp(args.Wearer, out var comp); - comp.ArmorUid = ent; + comp.ArmorUid = ent; } private void OnUnequip(Entity ent, ref ClothingGotUnequippedEvent args) { @@ -65,23 +63,20 @@ private void ToggleDone(Entity ent, ref ItemTogg _clothing.SetEquippedPrefix(ent, prefix); } - private void OnReactiveTeleportArmor(Entity ent, ref DamageChangedEvent args) { - - if (!TryComp(ent, out var armor)) return; var xform = Transform(ent.Owner); var targetCoords = SelectRandomTileInRange(xform, armor.TeleportRadius); - if (!args.DamageIncreased || args.DamageDelta == null) return; - ///teleport entity if taken damage && !null && armor is on && cooldown - if (args.DamageDelta.GetTotal() >= ent.Comp.WakeThreshold && targetCoords != null && _toggle.IsActivated(ent.Comp.ArmorUid)) + ///teleport entity if taken damage && coord = !null && armor is on && !cooldown + if (args.DamageDelta.GetTotal() >= ent.Comp.WakeThreshold && targetCoords != null && _toggle.IsActivated(ent.Comp.ArmorUid) && !ent.Comp.OnCoolDown) { + ent.Comp.OnCoolDown = true; // We need stop the user from being pulled so they don't just get "attached" with whoever is pulling them. // This can for example happen when the user is cuffed and being pulled. @@ -95,13 +90,13 @@ private void OnReactiveTeleportArmor(Entity ent.Comp.OnCoolDown = false); } } @@ -183,8 +178,5 @@ private void OnReactiveTeleportArmor(Entity Date: Sun, 8 Sep 2024 09:32:28 +0300 Subject: [PATCH 06/20] ChanceFix --- .../ReactiveTeleportArmorOnUristComponent.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorOnUristComponent.cs b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorOnUristComponent.cs index ca06bc3d61c6e3..bebf67a2dacc2a 100644 --- a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorOnUristComponent.cs +++ b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorOnUristComponent.cs @@ -25,7 +25,7 @@ public sealed partial class ReactiveTeleportArmorOnUristComponent : Component public FixedPoint2 WakeThreshold = FixedPoint2.New(4); [DataField, ViewVariables(VVAccess.ReadWrite)] - public float TeleportChance = .1f; + public float TeleportChance = .9f; [ViewVariables, AutoNetworkedField] public EntityUid ArmorUid; From 0817313962ec438e0450e64df469d66defbf80c5 Mon Sep 17 00:00:00 2001 From: 21Melkuu <79728504+21Melkuu@users.noreply.github.com> Date: Mon, 9 Sep 2024 21:22:51 +0300 Subject: [PATCH 07/20] DexRev --- .../ReactiveTeleportArmorSystem.cs | 18 ++++++++++-------- ...mponent.cs => TeleportOnDamageComponent.cs} | 7 +++---- 2 files changed, 13 insertions(+), 12 deletions(-) rename Content.Server/SS220/ReactiveTeleportArmor/{ReactiveTeleportArmorOnUristComponent.cs => TeleportOnDamageComponent.cs} (84%) diff --git a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs index f79a2011139f69..8a8b52b7fa1f17 100644 --- a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs +++ b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs @@ -1,3 +1,5 @@ +// © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt + using Robust.Shared.Random; using Content.Shared.Damage; using Content.Shared.Movement.Pulling.Systems; @@ -40,7 +42,7 @@ public override void Initialize() _physicsQuery = GetEntityQuery(); base.Initialize(); - SubscribeLocalEvent(OnReactiveTeleportArmor); + SubscribeLocalEvent(TeleporWhenDamaged); SubscribeLocalEvent(OnEquip); SubscribeLocalEvent(OnUnequip); SubscribeLocalEvent(ToggleDone); @@ -48,13 +50,13 @@ public override void Initialize() private void OnEquip(Entity ent, ref ClothingGotEquippedEvent args) { - EnsureComp(args.Wearer, out var comp); + EnsureComp(args.Wearer, out var comp); - comp.ArmorUid = ent; + comp.SavedUid = ent; } private void OnUnequip(Entity ent, ref ClothingGotUnequippedEvent args) { - RemComp(args.Wearer); + RemComp(args.Wearer); } private void ToggleDone(Entity ent, ref ItemToggledEvent args) { @@ -63,9 +65,9 @@ private void ToggleDone(Entity ent, ref ItemTogg _clothing.SetEquippedPrefix(ent, prefix); } - private void OnReactiveTeleportArmor(Entity ent, ref DamageChangedEvent args) + private void TeleporWhenDamaged(Entity ent, ref DamageChangedEvent args) { - if (!TryComp(ent, out var armor)) + if (!TryComp(ent, out var armor)) return; var xform = Transform(ent.Owner); @@ -74,7 +76,7 @@ private void OnReactiveTeleportArmor(Entity= ent.Comp.WakeThreshold && targetCoords != null && _toggle.IsActivated(ent.Comp.ArmorUid) && !ent.Comp.OnCoolDown) + if (args.DamageDelta.GetTotal() >= ent.Comp.WakeThreshold && targetCoords != null && _toggle.IsActivated(ent.Comp.SavedUid) && !ent.Comp.OnCoolDown) { ent.Comp.OnCoolDown = true; @@ -93,7 +95,7 @@ private void OnReactiveTeleportArmor(Entity ent.Comp.OnCoolDown = false); diff --git a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorOnUristComponent.cs b/Content.Server/SS220/ReactiveTeleportArmor/TeleportOnDamageComponent.cs similarity index 84% rename from Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorOnUristComponent.cs rename to Content.Server/SS220/ReactiveTeleportArmor/TeleportOnDamageComponent.cs index bebf67a2dacc2a..c757207d8f0f2e 100644 --- a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorOnUristComponent.cs +++ b/Content.Server/SS220/ReactiveTeleportArmor/TeleportOnDamageComponent.cs @@ -4,10 +4,10 @@ namespace Content.Server.SS220.ReactiveTeleportArmor; /// -/// Randomly teleports entity when triggered. +/// Randomly teleports entity when damaged. /// [RegisterComponent] -public sealed partial class ReactiveTeleportArmorOnUristComponent : Component +public sealed partial class TeleportOnDamageComponent : Component { /// /// Up to how far to teleport the user @@ -28,9 +28,8 @@ public sealed partial class ReactiveTeleportArmorOnUristComponent : Component public float TeleportChance = .9f; [ViewVariables, AutoNetworkedField] - public EntityUid ArmorUid; + public EntityUid SavedUid; - [DataField] public bool OnCoolDown = false; [DataField] From d5d6b42677815dc9b02003ef9513bf8018da5cd2 Mon Sep 17 00:00:00 2001 From: 21Melkuu <79728504+21Melkuu@users.noreply.github.com> Date: Tue, 10 Sep 2024 02:10:44 +0300 Subject: [PATCH 08/20] kto prochital tot sdox --- .../ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs index d77d573bb52fc8..8ed0e607b6256b 100644 --- a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs +++ b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs @@ -7,7 +7,7 @@ namespace Content.Server.SS220.ReactiveTeleportArmor { /// - /// Intermediate component to work with ReactiveTeleportArmorOnUristComponent + /// Intermediate component to work with TeleportOnDamageComponent /// [RegisterComponent] From 1e8459c0a2dd08de264b4f6f198a30ce82aedd6b Mon Sep 17 00:00:00 2001 From: 21Melkuu <79728504+21Melkuu@users.noreply.github.com> Date: Tue, 10 Sep 2024 12:32:38 +0300 Subject: [PATCH 09/20] microfix --- .../ReactiveTeleportArmorComponent.cs | 1 + .../ReactiveTeleportArmor/TeleportOnDamageComponent.cs | 2 ++ .../Entities/Clothing/OuterClothing/reactive_armor_rd.yml | 8 ++++---- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs index 8ed0e607b6256b..deb7ee684a3413 100644 --- a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs +++ b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs @@ -1,3 +1,4 @@ +// © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.tx using System; using System.Collections.Generic; using System.Linq; diff --git a/Content.Server/SS220/ReactiveTeleportArmor/TeleportOnDamageComponent.cs b/Content.Server/SS220/ReactiveTeleportArmor/TeleportOnDamageComponent.cs index c757207d8f0f2e..4a8cff7d473e8c 100644 --- a/Content.Server/SS220/ReactiveTeleportArmor/TeleportOnDamageComponent.cs +++ b/Content.Server/SS220/ReactiveTeleportArmor/TeleportOnDamageComponent.cs @@ -1,3 +1,5 @@ +// © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt + using Robust.Shared.Audio; using Content.Shared.FixedPoint; diff --git a/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml b/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml index a4abc0a17ed138..85b56277ff4a00 100644 --- a/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml +++ b/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml @@ -1,8 +1,8 @@ - type: entity parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing, BaseToggleClothing] id: ClothingOuterReactiveArmor - name: "name1" # да-да, сделаю - description: "Desc2." # да............ точно сделаю, кстати всем ревьюевирам дарова + name: "name1" # да-да, сделаю #.ftl + description: "Desc2." # да............ точно сделаю, кстати всем ревьюевирам дарова #.ftl components: - type: Sprite sprite: Clothing/OuterClothing/Armor/captain_carapace.rsi #спрайтеры будут ныть как бляди если это будут спрайты с 13 @@ -34,8 +34,8 @@ - type: entity id: ActionToggleReactiveArmor - name: Переключение реактивной брони - description: Включает или выключает реактивную броню. + name: Переключение реактивной брони #.ftl + description: Включает или выключает реактивную броню. #.ftl components: - type: InstantAction itemIconStyle: BigItem From 97505078fa689956baaabcd4f61c44d2b9ad85e5 Mon Sep 17 00:00:00 2001 From: 21Melkuu <79728504+21Melkuu@users.noreply.github.com> Date: Wed, 11 Sep 2024 14:54:36 +0300 Subject: [PATCH 10/20] ache) --- .../ReactiveTeleportArmorComponent.cs | 7 ---- .../ReactiveTeleportArmorSystem.cs | 33 ++++++++----------- .../TeleportOnDamageComponent.cs | 2 +- .../Objectives/stealTargetGroups.yml | 8 ----- .../SS220/Objectives/stealTargetGroups.yml | 7 ++++ 5 files changed, 21 insertions(+), 36 deletions(-) diff --git a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs index deb7ee684a3413..c891e460a5bbc1 100644 --- a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs +++ b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorComponent.cs @@ -1,16 +1,9 @@ // © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.tx -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - namespace Content.Server.SS220.ReactiveTeleportArmor { /// /// Intermediate component to work with TeleportOnDamageComponent /// - [RegisterComponent] public sealed partial class ReactiveTeleportArmorComponent : Component { diff --git a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs index 8a8b52b7fa1f17..c6454e6c067d0f 100644 --- a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs +++ b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs @@ -1,5 +1,4 @@ // © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt - using Robust.Shared.Random; using Content.Shared.Damage; using Content.Shared.Movement.Pulling.Systems; @@ -37,6 +36,7 @@ internal class ReactiveTeleportArmorSystem : EntitySystem private EntityQuery _physicsQuery; private HashSet> _targetGrids = []; + public override void Initialize() { _physicsQuery = GetEntityQuery(); @@ -51,13 +51,14 @@ public override void Initialize() private void OnEquip(Entity ent, ref ClothingGotEquippedEvent args) { EnsureComp(args.Wearer, out var comp); - comp.SavedUid = ent; } + private void OnUnequip(Entity ent, ref ClothingGotUnequippedEvent args) { RemComp(args.Wearer); } + private void ToggleDone(Entity ent, ref ItemToggledEvent args) { var prefix = args.Activated ? "on" : null; @@ -85,18 +86,15 @@ private void TeleporWhenDamaged(Entity ent, ref Damag if (TryComp(ent.Owner, out var pull) && _pullingSystem.IsPulled(ent.Owner, pull)) _pullingSystem.TryStopPull(ent.Owner, pull); - switch (_random.Prob(ent.Comp.TeleportChance)) + if (_random.Prob(ent.Comp.TeleportChance)) { - case true: - - _xform.SetCoordinates(ent.Owner, targetCoords.Value); - _audio.PlayPvs(armor.TeleportSound, ent.Owner); - SelectRandomTileInRange(xform, armor.TeleportRadius); - break; - case false: - - _explosion.TriggerExplosive(ent.Comp.SavedUid); - break; + _xform.SetCoordinates(ent.Owner, targetCoords.Value); + _audio.PlayPvs(armor.TeleportSound, ent.Owner); + SelectRandomTileInRange(xform, armor.TeleportRadius); + } + else + { + _explosion.TriggerExplosive(ent.Comp.SavedUid); } Timer.Spawn(ent.Comp.CoolDownTime, () => ent.Comp.OnCoolDown = false); } @@ -130,8 +128,6 @@ private void TeleporWhenDamaged(Entity ent, ref Damag EntityCoordinates? targetCoords = null; - do - { var valid = false; var range = (float)Math.Sqrt(radius); @@ -171,11 +167,8 @@ private void TeleporWhenDamaged(Entity ent, ref Damag } } - if (valid || _targetGrids.Count == 0) // if we don't do the check here then PickAndTake will blow up on an empty set. - break; - - targetGrid = _random.GetRandom().PickAndTake(_targetGrids); - } while (true); + if (!valid || _targetGrids.Count != 0) // if we don't do the check here then PickAndTake will blow up on an empty set. + targetGrid = _random.GetRandom().PickAndTake(_targetGrids); return targetCoords; diff --git a/Content.Server/SS220/ReactiveTeleportArmor/TeleportOnDamageComponent.cs b/Content.Server/SS220/ReactiveTeleportArmor/TeleportOnDamageComponent.cs index 4a8cff7d473e8c..91959708df33ea 100644 --- a/Content.Server/SS220/ReactiveTeleportArmor/TeleportOnDamageComponent.cs +++ b/Content.Server/SS220/ReactiveTeleportArmor/TeleportOnDamageComponent.cs @@ -29,7 +29,7 @@ public sealed partial class TeleportOnDamageComponent : Component [DataField, ViewVariables(VVAccess.ReadWrite)] public float TeleportChance = .9f; - [ViewVariables, AutoNetworkedField] + [ViewVariables] public EntityUid SavedUid; public bool OnCoolDown = false; diff --git a/Resources/Prototypes/Objectives/stealTargetGroups.yml b/Resources/Prototypes/Objectives/stealTargetGroups.yml index d05d0bc06eff71..445c40ace6fe78 100644 --- a/Resources/Prototypes/Objectives/stealTargetGroups.yml +++ b/Resources/Prototypes/Objectives/stealTargetGroups.yml @@ -27,14 +27,6 @@ sprite: sprite: Objects/Devices/hand_teleporter.rsi state: icon -# SS220 - ReactiveArmor-start -- type: stealTargetGroup - id: ClothingOuterHardsuitRd - name: экспериментальная реактивная броня - sprite: - sprite: Clothing/OuterClothing/Hardsuits/rd.rsi #да-да - state: icon -# SS220 - ReactiveArmor-end - type: stealTargetGroup id: BookSecretDocuments diff --git a/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml b/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml index 6ad456102bb32c..c39ce2790807c7 100644 --- a/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml +++ b/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml @@ -18,3 +18,10 @@ sprite: sprite: SS220/Objects/Weapons/Guns/multiphase_energy_gun.rsi state: icon + +- type: stealTargetGroup + id: ClothingOuterReactiveArmor + name: experimental reactive armor + sprite: + sprite: Clothing/OuterClothing/Hardsuits/rd.rsi #да-да + state: icon \ No newline at end of file From 84ea958b63ed3d532fedb1d5b1ba468b8c3c1863 Mon Sep 17 00:00:00 2001 From: 21Melkuu <79728504+21Melkuu@users.noreply.github.com> Date: Tue, 17 Sep 2024 22:03:59 +0300 Subject: [PATCH 11/20] hz --- .../ReactiveTeleportArmorSystem.cs | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs index c6454e6c067d0f..bbfe5a3ece13b3 100644 --- a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs +++ b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs @@ -128,47 +128,47 @@ private void TeleporWhenDamaged(Entity ent, ref Damag EntityCoordinates? targetCoords = null; - var valid = false; + var valid = false; - var range = (float)Math.Sqrt(radius); - var box = Box2.CenteredAround(userCoords.Position, new Vector2(range, range)); - var tilesInRange = _mapSystem.GetTilesEnumerator(targetGrid.Value.Owner, targetGrid.Value.Comp, box, false); - var tileList = new ValueList(); + var range = (float)Math.Sqrt(radius); + var box = Box2.CenteredAround(userCoords.Position, new Vector2(range, range)); + var tilesInRange = _mapSystem.GetTilesEnumerator(targetGrid.Value.Owner, targetGrid.Value.Comp, box, false); + var tileList = new ValueList(); - while (tilesInRange.MoveNext(out var tile)) + while (tilesInRange.MoveNext(out var tile)) + { + tileList.Add(tile.GridIndices); + } + + while (tileList.Count != 0) + { + var tile = tileList.RemoveSwap(_random.Next(tileList.Count)); + valid = true; + foreach (var entity in _mapSystem.GetAnchoredEntities(targetGrid.Value.Owner, targetGrid.Value.Comp, + tile)) { - tileList.Add(tile.GridIndices); + if (!_physicsQuery.TryGetComponent(entity, out var body)) + continue; + + if (body.BodyType != BodyType.Static || + !body.Hard || + (body.CollisionLayer & (int)CollisionGroup.MobMask) == 0) + continue; + + valid = false; + break; } - while (tileList.Count != 0) + if (valid) { - var tile = tileList.RemoveSwap(_random.Next(tileList.Count)); - valid = true; - foreach (var entity in _mapSystem.GetAnchoredEntities(targetGrid.Value.Owner, targetGrid.Value.Comp, - tile)) - { - if (!_physicsQuery.TryGetComponent(entity, out var body)) - continue; - - if (body.BodyType != BodyType.Static || - !body.Hard || - (body.CollisionLayer & (int)CollisionGroup.MobMask) == 0) - continue; - - valid = false; - break; - } - - if (valid) - { - targetCoords = new EntityCoordinates(targetGrid.Value.Owner, - _mapSystem.TileCenterToVector(targetGrid.Value, tile)); - break; - } + targetCoords = new EntityCoordinates(targetGrid.Value.Owner, + _mapSystem.TileCenterToVector(targetGrid.Value, tile)); + break; } + } - if (!valid || _targetGrids.Count != 0) // if we don't do the check here then PickAndTake will blow up on an empty set. - targetGrid = _random.GetRandom().PickAndTake(_targetGrids); + if (!valid || _targetGrids.Count != 0) // if we don't do the check here then PickAndTake will blow up on an empty set. + targetGrid = _random.GetRandom().PickAndTake(_targetGrids); return targetCoords; From 042e1f8aa28c13802bae142b6c514810d4edb6a3 Mon Sep 17 00:00:00 2001 From: 21Melkuu <79728504+21Melkuu@users.noreply.github.com> Date: Wed, 2 Oct 2024 19:10:05 +0300 Subject: [PATCH 12/20] gnomaLoxGonaLust) --- .../ReactiveTeleportArmorSystem.cs | 2 ++ .../TeleportOnDamageComponent.cs | 5 ++- .../ss220/clothing/OuterClothing/armor.ftl | 3 ++ .../Prototypes/Objectives/objectiveGroups.yml | 1 + .../OuterClothing/reactive_armor_rd.yml | 28 +++++++++++---- .../SS220/Objectives/stealTargetGroups.yml | 2 +- .../Prototypes/SS220/Objectives/traitor.yml | 10 ++++++ ...NotUsed]equipped-OUTERCLOTHING-UNSHADE.png | Bin 0 -> 1105 bytes .../[NotUsed]icon-UNSHADE.png | Bin 0 -> 2287 bytes .../equipped-OUTERCLOTHING.png | Bin 0 -> 932 bytes .../Armor/reactive_armor.rsi/icon-on.png | Bin 0 -> 539 bytes .../Armor/reactive_armor.rsi/icon.png | Bin 0 -> 418 bytes .../Armor/reactive_armor.rsi/inhand-left.png | Bin 0 -> 583 bytes .../Armor/reactive_armor.rsi/inhand-right.png | Bin 0 -> 552 bytes .../Armor/reactive_armor.rsi/meta.json | 33 ++++++++++++++++++ .../on-equipped-OUTERCLOTHING.png | Bin 0 -> 4298 bytes 16 files changed, 75 insertions(+), 9 deletions(-) create mode 100644 Resources/Textures/SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi/[NotUsed]equipped-OUTERCLOTHING-UNSHADE.png create mode 100644 Resources/Textures/SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi/[NotUsed]icon-UNSHADE.png create mode 100644 Resources/Textures/SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi/equipped-OUTERCLOTHING.png create mode 100644 Resources/Textures/SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi/icon-on.png create mode 100644 Resources/Textures/SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi/icon.png create mode 100644 Resources/Textures/SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi/inhand-left.png create mode 100644 Resources/Textures/SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi/inhand-right.png create mode 100644 Resources/Textures/SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi/meta.json create mode 100644 Resources/Textures/SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi/on-equipped-OUTERCLOTHING.png diff --git a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs index bbfe5a3ece13b3..d776a420701ba4 100644 --- a/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs +++ b/Content.Server/SS220/ReactiveTeleportArmor/ReactiveTeleportArmorSystem.cs @@ -17,6 +17,7 @@ using Content.Shared.Item; using Content.Shared.Item.ItemToggle; using Content.Shared.Item.ItemToggle.Components; +using Content.Shared.Timing; using Timer = Robust.Shared.Timing.Timer; namespace Content.Server.SS220.ReactiveTeleportArmor @@ -66,6 +67,7 @@ private void ToggleDone(Entity ent, ref ItemTogg _clothing.SetEquippedPrefix(ent, prefix); } + private void TeleporWhenDamaged(Entity ent, ref DamageChangedEvent args) { if (!TryComp(ent, out var armor)) diff --git a/Content.Server/SS220/ReactiveTeleportArmor/TeleportOnDamageComponent.cs b/Content.Server/SS220/ReactiveTeleportArmor/TeleportOnDamageComponent.cs index 91959708df33ea..18965a7f573112 100644 --- a/Content.Server/SS220/ReactiveTeleportArmor/TeleportOnDamageComponent.cs +++ b/Content.Server/SS220/ReactiveTeleportArmor/TeleportOnDamageComponent.cs @@ -15,7 +15,7 @@ public sealed partial class TeleportOnDamageComponent : Component /// Up to how far to teleport the user /// [DataField, ViewVariables(VVAccess.ReadWrite)] - public float TeleportRadius = 30f; + public float TeleportRadius = 50f; [DataField, ViewVariables(VVAccess.ReadWrite)] public SoundSpecifier TeleportSound = new SoundPathSpecifier("/Audio/Effects/teleport_arrival.ogg"); @@ -29,6 +29,9 @@ public sealed partial class TeleportOnDamageComponent : Component [DataField, ViewVariables(VVAccess.ReadWrite)] public float TeleportChance = .9f; + /// + /// Need if you want to interact with the entity that provided the TeleportOnDamageComponent. + /// [ViewVariables] public EntityUid SavedUid; diff --git a/Resources/Locale/ru-RU/ss220/clothing/OuterClothing/armor.ftl b/Resources/Locale/ru-RU/ss220/clothing/OuterClothing/armor.ftl index df7d791a829962..1f8048a9d57e50 100644 --- a/Resources/Locale/ru-RU/ss220/clothing/OuterClothing/armor.ftl +++ b/Resources/Locale/ru-RU/ss220/clothing/OuterClothing/armor.ftl @@ -1,2 +1,5 @@ ent-ClothingOuterArmorCentcomNavalCarapace = флотский панцирь .desc = Панцирь, который носят офицеры Командования флота. + +ent-ClothingOuterReactiveArmor = экспериментальная реактивная броня + .desc = Новейший прототип брони, основанный на ядре аномалии. Ходят слухи, что учёные NT разрабатывают более стабильную и многозадачную версию. \ No newline at end of file diff --git a/Resources/Prototypes/Objectives/objectiveGroups.yml b/Resources/Prototypes/Objectives/objectiveGroups.yml index 06face78f0ece4..e3372296bb45d2 100644 --- a/Resources/Prototypes/Objectives/objectiveGroups.yml +++ b/Resources/Prototypes/Objectives/objectiveGroups.yml @@ -21,6 +21,7 @@ EngravedKnuckledusterStealObjective: 1 #SS220 New Qm highrisk CaptainGunStealObjective: 0.5 CaptainJetpackStealObjective: 0.5 + ClothingOuterReactiveArmorObjective: 0.5 #SS220 New RD highrisk HandTeleporterStealObjective: 0.5 SecretDocumentsStealObjective: 0.5 MultiPhaseEnergyGunStealObjective: 0.5 #SS220 MultiPhaze Energy Gun diff --git a/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml b/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml index 85b56277ff4a00..f87c96a132e2d7 100644 --- a/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml +++ b/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml @@ -1,13 +1,23 @@ - type: entity parent: [ClothingOuterBaseLarge, AllowSuitStorageClothing, BaseToggleClothing] id: ClothingOuterReactiveArmor - name: "name1" # да-да, сделаю #.ftl - description: "Desc2." # да............ точно сделаю, кстати всем ревьюевирам дарова #.ftl + name: experimental reactive armor + description: The latest armor prototype based on the anomaly core. There are rumors that NT scientists are developing a more stable and multitasking version. components: - type: Sprite - sprite: Clothing/OuterClothing/Armor/captain_carapace.rsi #спрайтеры будут ныть как бляди если это будут спрайты с 13 + sprite: SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi + layers: + - state: icon + map: [ "enum.ToggleVisuals.Layer" ] - type: Clothing - sprite: Clothing/OuterClothing/Armor/captain_carapace.rsi #инфа по борщу не БУДЕТ + sprite: SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi + - type: Appearance + - type: GenericVisualizer + visuals: + enum.ToggleVisuals.Toggled: + enum.ToggleVisuals.Layer: + True: {state: icon-on} + False: {state: icon} - type: Armor modifiers: coefficients: @@ -20,8 +30,10 @@ damageCoefficient: 0.65 - type: ToggleClothing action: ActionToggleReactiveArmor + - type: ToggleVerb + text: toggle-magboots-verb-get-data-text - type: GroupExamine - - type: ReactiveTeleportArmor + - type: ReactiveTeleportArmor - type: Explosive explosionType: Default maxIntensity: 2 @@ -34,9 +46,11 @@ - type: entity id: ActionToggleReactiveArmor - name: Переключение реактивной брони #.ftl - description: Включает или выключает реактивную броню. #.ftl + name: Toggle Reactive armor + description: Toggles the armor on and off. components: - type: InstantAction + useDelay: 5 + priority: -9 itemIconStyle: BigItem event: !type:ToggleActionEvent \ No newline at end of file diff --git a/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml b/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml index c39ce2790807c7..cca08d2e9a4f14 100644 --- a/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml +++ b/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml @@ -23,5 +23,5 @@ id: ClothingOuterReactiveArmor name: experimental reactive armor sprite: - sprite: Clothing/OuterClothing/Hardsuits/rd.rsi #да-да + sprite: SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi state: icon \ No newline at end of file diff --git a/Resources/Prototypes/SS220/Objectives/traitor.yml b/Resources/Prototypes/SS220/Objectives/traitor.yml index 1157d31ccff947..f2b1567da8b351 100644 --- a/Resources/Prototypes/SS220/Objectives/traitor.yml +++ b/Resources/Prototypes/SS220/Objectives/traitor.yml @@ -21,3 +21,13 @@ - type: StealCondition stealGroup: WeaponMultiPhaseEnergyGun owner: job-name-hos + +- type: entity + parent: BaseTraitorStealObjective + id: ClothingOuterReactiveArmorObjective + components: + - type: NotJobRequirement + job: ResearchDirector + - type: StealCondition + stealGroup: ClothingOuterReactiveArmor + owner: job-name-rd diff --git a/Resources/Textures/SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi/[NotUsed]equipped-OUTERCLOTHING-UNSHADE.png b/Resources/Textures/SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi/[NotUsed]equipped-OUTERCLOTHING-UNSHADE.png new file mode 100644 index 0000000000000000000000000000000000000000..b0a5535e8811196400a4505b7a656d470b78e80f GIT binary patch literal 1105 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58aUX1(0r%WME+a=;`7Z zQZeW4-TmHI>SYdmH0Pb9rm4ZFrQ{^yZvLWCA;f!y^TEd1E%gpNSbUvi7U?xPMLRDx zk>Y4oIC8OHvtU=pBL$UNN7{~TczgHB^nJO@-PiBCUu`pO_PftDmOq-#|86Vy0=WPN z4*b7;y0P)k>*aOXU**4leHw57HG0MW>M#EM3*~SBuYLLFrRoy-+y0tMuNdB*`~CIl z%3ZUZ%@PuGb>^QDxHx}>-?Pb*O22M%FaDX*)=_u+PmiwLD8GGM$My0%pXlYMujjtJ{qFjNy22W@+8tk&bbY_JeKBVXzcl;N;Vq?w z+Dq(XBK`aO@|QH9-)e08{0jGi)mJ9l?X$D`%&J6+RGV?v>PG5FN?831JUb}V$az{HHp8B=q_uuauSWRN2Jj-vLKd!UjMR`DN zI>WERzxA%sUq$v@{jFQewT>Saf~3;*ozt0_Blnm7?*IMkOZ3+Jm+JS_{rGgT|LyWA zL9b@KJ@@WP;iVHxLhff?dn^SF;l#hE&N)_v?GU)8FF)<_D`w3{hjXnn_pQoU*H$BZP^#k_ywE=umoGf|8*~-GrrtqS|YDg#Zmj6@fEwpTiYjR zFF}%C;@?BJBHqn-%lFzpM7e~N;*RD~sUh%%(uW9EKEx!HGFG#XFyPIwAL)H%;zXk@gXIz>3+}v6G!q!`RFR+$u z{~P*(3FQA>4eRo*IEi0)`~5ypa_+a!3%Os&Uwpsd*ExnS(T3~f@Ab#o{i;8>9@*y( s9rG9RODsuCzMBse=1Yz6O!M_+&;qhKpvo=iDN2 zXxjSMYFaZ77$&V~ot%1T=Um@&XW8f+gXQ%8H5t#p0_QboH++zxea$q{w#(TcSZ#|~ z@MDEnblU#p-^MQWK2%?&UFJV(b@z?!-RdXWMQ@opwlB|Fem$?D?A!IbE*ms6 zWo>%9tf3SNj4nAC+TG*p>d?1bQyjkQlt;dk=^a(jGMSpP((jwrQ}v@|KF8mvTO1hR zs?YjC8JL|^Uwe15!H@d`$~<~=Y2YGPC$EWIqu%GwEfUR&SXk`J-!S33`8~#C?@{wl zU3)5dYR#C<)$Os(ktr^9koE|bbosVr8EqL@O4$>ZVS z9|GKQq#4WA%^Y?Ho-|02Ah4KJYPZ`Z_E-tS6-q(1sHLb}Dwm4^Ld-9*3AjUSW=LGX{}oIUn3>_MI3P@0 z@j^<<+6ocaBO|6|EDQ%6gXm%hqtNTI3>z=tHiF8~X%N6!LenIsh*!#DRc4u(GQ|<% zI7*=q$14=LSSce36)H2SOlHq{9Yd75Gdpsg{Ez3eIU2MUZu#GK+zsb02`ruFL9&(% zcf@R}WO!wv;lV1vaKc^P8ia7Cl_HVhZTf#JFl5$VL;<7!knSNE&zJ=}&QZyQK&^i* zCn*SC>h8lK9?}OX4!-+K&yK*sAaE}|BM3Zrh8Sf7lZyi*s(a4v8VK?tGjz#D$F^U# z?SIagGwE<^2lBCQ)R>TG}E0y_Mo0+}yy83=E2<`e_*X5L%T+;VX- zG*Ab1X_9s;*1Y;fc=)33CT5QKn}t^n-LkyWd7w6@H>UBaGikQ71@}@n4)m6U#k|{E z@=;^mUM6uvgF0{xI%QSjasAJkrwn3y73&{W-b$*_P!96 z=m=mt_ZHk*x=1v!Y3B#)reQSFY`oZg12)wef%xj(-nf8&6O3S+V($tS<=3x*@MCto`8 z)$uWtZs$fUIJkXr)E3vFqw*&!?mn*HXQD&1v0YS%L6bD2x2g|nzFf&~h`g~BS|51> hS^3C>y4hU{cwx)cH^=&$!rkA~jMOaMu9SkxKLMXVJA42D literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi/equipped-OUTERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..35ee0bbeff5b0d0750f50708f889ca81082d4c1b GIT binary patch literal 932 zcmV;V16%xwP)Px&L`g(JRCt{2nlWqJKorOSE*%^K79NbGkRg+d=wO^7&>_%x>37H{$S3m$=+?z8 zbSQMN@lZ@WWeCy}8H5C;ri(hnPdOz3-vb0e5ClOGgnAsd z?M$bA*SM}%sq<9(Hd?yEX`EoSjvifi*tWAy*8%{9;j;F9P4qim3u&C>=lIw}|7~4y z$2o%SI*397k(H?;0sx|ruv{$i!2#or7mNJ&w(D?5c47kSZ;S;|003~Dqx?5%oaF5Qu<36t{jCP1aZ(WHr8c^m zV*+4wGY55hg(bNn37YD^(Y;``j#_D)U~)1*6cQ#UgS`!2#daMK1&P>Mr~eL?JyQXzG&y9%`oD989~NRM$JR_my>3M06#m#xD3lVG$5 z{7XE`0A3CK7U_peOIX6YYMJSNcv}$A=v01 zPz4Kekwnv^ae{HT2W*~1&qX@~%CDQ8mfly91Q%$i+E4YZ4q7WfecY(*W9I89}4>~Rn$8^PXGV_4rN$LW=%~1DgXcg2mk;800000(o>TF0000%KsAqrCjlRA3!%}7=?5kM>f`8 z@nLU^r-N|(e63NZ)~K@|AV4OGOaj9w)L%7j-kuxLievgGJz8;0d+q_RqwvCeMi7xJ z7o5*mDOdEqUMvc4km%=o;fu(6v6#x23by>(*_N!@B4Tz7lTl<1qmZ&)#q)iFN)x~lP zhrIo~z{=MxHj~p-{#r26fX1W-I*ubsxzcf*lm@O-+gJk{S_?s?Nh^-=e4kbv6I7a) z8dMgHop2JRf-OtS&&S5|Px$LP z8H5Z0Z|=~_xCyBxZvlOa(VcYv?>iYoAP@*#8&b|{pLiDoU*S?4j#Y7X?*1;WhocC9 z{eJ6Q_tsThh%vDg6nlkIQQa0f%>%WoiB1Dj&gvwc1N@5Tl-iJ{ueBB2uGh`}SPEh( zoK18ZD7CR~)rb#A5sTf53|Q<|sL=zZHfQHtaB7pCuN8kXUu>dDlecS|FSX$_d*ku> zrL(^CWw9obbk6GI9U;a|PN}?!U%I51xN+TRi`sFVV&gvIUIw6huC8-$-I?8SkM$mhl@?Z=vb)PHKKw5zDHh7#K07$p zr6BY4!U8|BEuJq5o;aNSR;Ho()uvv>ZaK&O^Aab%`_9|r+4h{V0}i-0P042K&wP8| z;+w$XbJElPN337cwB?(xZARQ~kF~YIbLX9mZAp9{dCK(bg2){UwhL-I?4Pc{r<~$? zB2S4=`AfCu!Zm9+Zk`oCx$FFllo{9dMf%o1&UnZC$e`)2t;_Xq0&VI$uV1`nKJ^KY zXR6q`y6%c>Uy5-);93e`_86 zvwTOvwb&zZjsLG&>AtDpow!DJePh&e)k$Af#Jp4&Z_VHG?d+__Hm{nuKC}402`Kc@ z{=kWdQ>H=tbx!IiA%VhfZ*8|-y|z6^Y??CiF9fZNjEOQ_oRQ2wX_mWyu7hnx(yIjV zz%Sl=x~)C3~6@ Jvd$@?2>@K42V(#L literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi/inhand-right.png b/Resources/Textures/SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..8a3111714b5d00dc878382f3aa8d88d53ee13f4b GIT binary patch literal 552 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zPk6dGhE&XX zd&|)Ku!98KgY``U!3HTBAD1i$wki>jW!b2kD}FRyp|qq_K5K# zQ}??d`h#?e&vWV7(ae)4PdfJb>7^UeZmouMpPydZ==|Y!`}FsWUv`;Aws|IPy0Is9 z#+BE%5}(YUc|wQJF{du(*^w38JuhvN_fMF6Q>}Mxz_zPPc1=+_Tp?kpp4Ibm&!d_P zf6vJQ^?E(;v-0|N{fx4{ifXU^YOb}{ufKS8dEwpU?yA_?zxqUPGYibj*Eh9_n)G7j zCmXZP@3kLX^AOj#zK(6SNy^T$sZuWwy)j?4QY+o(InY>*(;NT%s1!~8XERhf)!9Wr~q^J}X|t!}4FDqBHZBNoGgAft1dL4#^eh>fQ#YCP z9z&^CX3BT<2xGGqlEBtlt*H1%$M3v}l+=akP#3#3U8?yG7x2W+R_5!5H#x`MJ^D_s zFkEW)Rbca0g(OvE#S2u>m6$hdfb9cIt(^02#nY}}Q(^^)chsc1T zY!fm})(xlu+^Zm8_#V9%a;VeeQJC??s4as5FrpK{Hd8`lxfS0=+Bdu?e@V zDG@@5osb6y_v}Qg=xx0(T&nOjQgV&nsP8tbIjMc?M}4MpoLNL}xb*($`XIBzhw_y- z0daYB0fK-Vbe_;W)WJW{-VQ0z*O=OVSJjyRe)llCxc-3U=cKMMO?PV0>-n}P~CwLVVqbFQ)525!VXy% zguZf#y<-&xc@V|e`Z`B%nb~w69-vj&-{gvZZo)PE9!R_rPz+(omviNclC+^O23w!I zqAvwSra(uLx@p&KmY!76nI*_AS?ecpWtsfEiEm>+vHq6?`0JoQVMI$l`Ll`z#ZEV~ zYPq^*p8`kdUiO;BCr{knt}l1SenecB?6`U9?$IGyr>{1;e4cUU@xF2jfF$r_YFX@I zR#r$#hVl{h2x-_7EJ3IhOh9tBQQ^KUFw_RV%9m0`k>vX7H&0&;p~KmO58Z~GJ>)(s zp7jgLYaKcw>ESuk;*psE5KcSzaux?`$w8}&5^`zcVY8w@SmdbYm-Q*pg8azd2ClJr z*hIqhnmb+sNfTb0_dw5|d{FTCAJd~}I}{Ggfz4}XXynO{n?-Ug3l&X^RAqHvCP>3K z>+MOu@oWRY842L7yb_4&>oKK6(>vOZRB#|Q`{H3|rE$5hzrFvDAJqe1^;`76XP?$g zcjs7So+^G?-Sf2M)5Y;LYl+Ge+d#fMbrgN`m0-urZ!+?IYJ<&pmH zlCz55`LwnpW#b+;Qc3q8?0NfXztP;YvG$L*@?Q=AA=tm-1r9FDK3Cr3*eZVcIC#(i zCWp-o%Jl6cNJtDx^B|H$)&Otn6fGnb#^)@nxu=q1)2sC=XCPLMU=1!sedGA(K`**>6lYIX^bgCm+i>itJZ=n2{ zk-vnFwp7=|X<%^bn*W#3f2D=&OmcUkQt*mue{4qWzd%v@D_(!RGoX5ty=WdA5P^ID zW9Wo|;l?8a2QF}<`jEg5k>NoiyHI@)RCmy{mm-mHpl~`0td*2sb+Omn`IxlCp0xLvi&WRD3(aLIi%Q-aR&#}bFBVs{ zR%cf_&hZv?_)u?R#^X5rVZlRr`jRtCNkszNw@Xj9OQh)uyhZ@30F<}Om>sSE-ffl3 zb(-RR&AEC6^j&0gW>eR?#_GM<*_tshvcn_Z(m?0TXJ2^!jTJPZq*3Diua1j>T_a>G+th)!A9`QT6m7dH-RXi8SuwtKR@u>R~a zqtL>@A8%KA2(g$^96DyPBUUVtJJZ%PiM3+h%m7Z|MSnlnE_;0&JC38&^&x8L9s2g` zD|h`ck(8sdD?{81%R_$SHHm>!bJ;olnt`tg61bI`a>nG`yKf;5&5G7srV|qqRKMXkwD$i}Z&@PjKvtW)JLE0w#`33K_4H~m_v8QjGFfIrLni`QOCe%U- z8tK{m=7Bmg+)-QLfEZilh)%*tC!`0_W9T| zB8-`($Em#6$tIaMO?vo0IiGzw@kqU{TF&8cJ=$!Wtv#7L!<`_0<0I zjdAy7?j)8LT0T*IqOD7^>FWW>gZ>{v0zFB0%3ie+RwuRDtdUqqK+XzYES|9P78qDs9$#45ja9^H6|kImgujsuN*qYG|2tj%zngFn z27HWHP28J3?&;X+l*MgX6w50jmRhJ5MLgL8G(C8r`rBn74AhU;MJG(U}lqUkS((Ra&J-$5D1zNkc3dk*RF2HpOPF*4? z?bb3ne$qr=x$5nOeVz11o=>sE`nE}{V1cAJj`5(&uyuHdf!XbgRI2Axht5`{8!*lh zV=zl5v82!d|5&bh75m$!Y)jSdnc09opie#ml%<87O-uXta`~)qn}wd%1`9i0Q7Nb_ z(biqf-5b(+7s#|aN~{=sGLd|AiIqVJkC+pE0|c<-kKcHew>MZ`QkGX0yk2*eHRGcpX#e&-?enBR@KZXU$4BIj z=AZT$>hpKw4t_wr&26n(&`xae=$M)$GE*H2j0W%_dbXioUnrZs$$hv08u9dOEGZ|x zyYkBY#$4#Vl%kbHnjs+|UI7L_QL`4(5z}haMSsg{_DJLI+CXP-US>b^{&g^yN?#(i zquUtkD1+Yn{h3_#beUS0^jk^-Q*%i2F^+hsz5u_muQca{IJ0@iPbw6 zmek7hqSXXw_SXHsUEUy?Id2v2I#)Y-VRhGrxa&B#;=_g^AfJ~ihEe$|Ldosc@U%Q{HzCSTwSFgBTDilJt2rzllf?@jl;|tY7pI>`?+>J}V zMv{t7eYgGbhds_M4gK0ENOmo9 z3~uGWUz?)8QUC{lWr7tY2`GSA!8* zpA*Fcjt8yT*sgcM;r2uN1=Tzz`QxLW04v+|uiZ|+`=^&#_s;;}8Q$%r8@-M5wue8r zIek72uZuf#p}mVgH Date: Wed, 2 Oct 2024 22:25:51 +0300 Subject: [PATCH 13/20] cheki --- .../components/reactivearnor-component.ftl | 1 + .../clothing/outerclothing/reactivearmor.ftl | 2 ++ .../Clothing/OuterClothing/reactive_armor_rd.yml | 5 ++--- .../[NotUsed]equipped-OUTERCLOTHING-UNSHADE.png | Bin 1105 -> 0 bytes .../reactive_armor.rsi/[NotUsed]icon-UNSHADE.png | Bin 2287 -> 0 bytes 5 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 Resources/Locale/ru-RU/ss220/clothing/components/reactivearnor-component.ftl create mode 100644 Resources/Locale/ru-RU/ss220/prototypes/entities/clothing/outerclothing/reactivearmor.ftl delete mode 100644 Resources/Textures/SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi/[NotUsed]equipped-OUTERCLOTHING-UNSHADE.png delete mode 100644 Resources/Textures/SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi/[NotUsed]icon-UNSHADE.png diff --git a/Resources/Locale/ru-RU/ss220/clothing/components/reactivearnor-component.ftl b/Resources/Locale/ru-RU/ss220/clothing/components/reactivearnor-component.ftl new file mode 100644 index 00000000000000..88b24f9de3ee98 --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/clothing/components/reactivearnor-component.ftl @@ -0,0 +1 @@ +toggle-reactivearmor-verb-get-data-text = Переключить реактивную броню \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ss220/prototypes/entities/clothing/outerclothing/reactivearmor.ftl b/Resources/Locale/ru-RU/ss220/prototypes/entities/clothing/outerclothing/reactivearmor.ftl new file mode 100644 index 00000000000000..67f0e6f8aad9c8 --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/prototypes/entities/clothing/outerclothing/reactivearmor.ftl @@ -0,0 +1,2 @@ +ent-ActionToggleReactiveArmor = Переключить реактивную броню + .desc = Включает или выключает реактивную брони. \ No newline at end of file diff --git a/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml b/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml index f87c96a132e2d7..804ba67f3844ea 100644 --- a/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml +++ b/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml @@ -31,7 +31,7 @@ - type: ToggleClothing action: ActionToggleReactiveArmor - type: ToggleVerb - text: toggle-magboots-verb-get-data-text + text: toggle-reactivearmor-verb-get-data-text - type: GroupExamine - type: ReactiveTeleportArmor - type: Explosive @@ -43,7 +43,6 @@ deleteAfterExplosion: false repeatable: true - - type: entity id: ActionToggleReactiveArmor name: Toggle Reactive armor @@ -53,4 +52,4 @@ useDelay: 5 priority: -9 itemIconStyle: BigItem - event: !type:ToggleActionEvent \ No newline at end of file + event: !type:ToggleActionEvent \ No newline at end of file diff --git a/Resources/Textures/SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi/[NotUsed]equipped-OUTERCLOTHING-UNSHADE.png b/Resources/Textures/SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi/[NotUsed]equipped-OUTERCLOTHING-UNSHADE.png deleted file mode 100644 index b0a5535e8811196400a4505b7a656d470b78e80f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1105 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58aUX1(0r%WME+a=;`7Z zQZeW4-TmHI>SYdmH0Pb9rm4ZFrQ{^yZvLWCA;f!y^TEd1E%gpNSbUvi7U?xPMLRDx zk>Y4oIC8OHvtU=pBL$UNN7{~TczgHB^nJO@-PiBCUu`pO_PftDmOq-#|86Vy0=WPN z4*b7;y0P)k>*aOXU**4leHw57HG0MW>M#EM3*~SBuYLLFrRoy-+y0tMuNdB*`~CIl z%3ZUZ%@PuGb>^QDxHx}>-?Pb*O22M%FaDX*)=_u+PmiwLD8GGM$My0%pXlYMujjtJ{qFjNy22W@+8tk&bbY_JeKBVXzcl;N;Vq?w z+Dq(XBK`aO@|QH9-)e08{0jGi)mJ9l?X$D`%&J6+RGV?v>PG5FN?831JUb}V$az{HHp8B=q_uuauSWRN2Jj-vLKd!UjMR`DN zI>WERzxA%sUq$v@{jFQewT>Saf~3;*ozt0_Blnm7?*IMkOZ3+Jm+JS_{rGgT|LyWA zL9b@KJ@@WP;iVHxLhff?dn^SF;l#hE&N)_v?GU)8FF)<_D`w3{hjXnn_pQoU*H$BZP^#k_ywE=umoGf|8*~-GrrtqS|YDg#Zmj6@fEwpTiYjR zFF}%C;@?BJBHqn-%lFzpM7e~N;*RD~sUh%%(uW9EKEx!HGFG#XFyPIwAL)H%;zXk@gXIz>3+}v6G!q!`RFR+$u z{~P*(3FQA>4eRo*IEi0)`~5ypa_+a!3%Os&Uwpsd*ExnS(T3~f@Ab#o{i;8>9@*y( s9rG9RODsuCzMBse=1Yz6O!M_+&;qhKpvo=iDN2 zXxjSMYFaZ77$&V~ot%1T=Um@&XW8f+gXQ%8H5t#p0_QboH++zxea$q{w#(TcSZ#|~ z@MDEnblU#p-^MQWK2%?&UFJV(b@z?!-RdXWMQ@opwlB|Fem$?D?A!IbE*ms6 zWo>%9tf3SNj4nAC+TG*p>d?1bQyjkQlt;dk=^a(jGMSpP((jwrQ}v@|KF8mvTO1hR zs?YjC8JL|^Uwe15!H@d`$~<~=Y2YGPC$EWIqu%GwEfUR&SXk`J-!S33`8~#C?@{wl zU3)5dYR#C<)$Os(ktr^9koE|bbosVr8EqL@O4$>ZVS z9|GKQq#4WA%^Y?Ho-|02Ah4KJYPZ`Z_E-tS6-q(1sHLb}Dwm4^Ld-9*3AjUSW=LGX{}oIUn3>_MI3P@0 z@j^<<+6ocaBO|6|EDQ%6gXm%hqtNTI3>z=tHiF8~X%N6!LenIsh*!#DRc4u(GQ|<% zI7*=q$14=LSSce36)H2SOlHq{9Yd75Gdpsg{Ez3eIU2MUZu#GK+zsb02`ruFL9&(% zcf@R}WO!wv;lV1vaKc^P8ia7Cl_HVhZTf#JFl5$VL;<7!knSNE&zJ=}&QZyQK&^i* zCn*SC>h8lK9?}OX4!-+K&yK*sAaE}|BM3Zrh8Sf7lZyi*s(a4v8VK?tGjz#D$F^U# z?SIagGwE<^2lBCQ)R>TG}E0y_Mo0+}yy83=E2<`e_*X5L%T+;VX- zG*Ab1X_9s;*1Y;fc=)33CT5QKn}t^n-LkyWd7w6@H>UBaGikQ71@}@n4)m6U#k|{E z@=;^mUM6uvgF0{xI%QSjasAJkrwn3y73&{W-b$*_P!96 z=m=mt_ZHk*x=1v!Y3B#)reQSFY`oZg12)wef%xj(-nf8&6O3S+V($tS<=3x*@MCto`8 z)$uWtZs$fUIJkXr)E3vFqw*&!?mn*HXQD&1v0YS%L6bD2x2g|nzFf&~h`g~BS|51> hS^3C>y4hU{cwx)cH^=&$!rkA~jMOaMu9SkxKLMXVJA42D From be607e7bb572037c8d93c7763c8e594446d90198 Mon Sep 17 00:00:00 2001 From: 21Melkuu <79728504+21Melkuu@users.noreply.github.com> Date: Wed, 2 Oct 2024 22:31:23 +0300 Subject: [PATCH 14/20] probel --- Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml b/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml index 6a1ebe67e9cfdd..70f3edb2f8a261 100644 --- a/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml +++ b/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml @@ -25,6 +25,7 @@ sprite: sprite: SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi state: icon + id: WristWatchGold name: steal-target-groups-wrist-watch-gold sprite: From 876ef9379ed28c4c94b1f951431685871acb0022 Mon Sep 17 00:00:00 2001 From: 21Melkuu <79728504+21Melkuu@users.noreply.github.com> Date: Wed, 2 Oct 2024 22:32:18 +0300 Subject: [PATCH 15/20] probel2 --- Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml b/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml index 70f3edb2f8a261..bd91d12f6969c1 100644 --- a/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml +++ b/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml @@ -25,7 +25,8 @@ sprite: sprite: SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi state: icon - + +- type: stealTargetGroup id: WristWatchGold name: steal-target-groups-wrist-watch-gold sprite: From f46ea53203555b2e79b1237612a8043a66fc67f8 Mon Sep 17 00:00:00 2001 From: 21Melkuu <79728504+21Melkuu@users.noreply.github.com> Date: Wed, 2 Oct 2024 22:45:55 +0300 Subject: [PATCH 16/20] cheki --- .../Locale/ru-RU/ss220/objectives/steal-target-groups.ftl | 3 ++- .../Entities/Clothing/OuterClothing/reactive_armor_rd.yml | 1 - Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Resources/Locale/ru-RU/ss220/objectives/steal-target-groups.ftl b/Resources/Locale/ru-RU/ss220/objectives/steal-target-groups.ftl index 7b31e2361e5a3c..775c49d9e4b95c 100644 --- a/Resources/Locale/ru-RU/ss220/objectives/steal-target-groups.ftl +++ b/Resources/Locale/ru-RU/ss220/objectives/steal-target-groups.ftl @@ -6,4 +6,5 @@ steal-target-groups-wrist-watch-gold = наручные часы командо steal-target-groups-expensive-lighter-syndicate = { ent-ExpensiveLighterSyndicate } steal-target-groups-expensive-lighter-nanotrasen = { ent-ExpensiveLighterNanotrasen } steal-target-groups-expensive-lighter-shield = { ent-ExpensiveLighterShield } -steal-target-groups-expensive-lighter-detective = { ent-ExpensiveLighterDetective } \ No newline at end of file +steal-target-groups-expensive-lighter-detective = { ent-ExpensiveLighterDetective } +steal-target-groups-reactive-armor = { ent-ClothingOuterReactiveArmor } \ No newline at end of file diff --git a/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml b/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml index 804ba67f3844ea..eac4c96b243dd2 100644 --- a/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml +++ b/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml @@ -27,7 +27,6 @@ Heat: 0.5 Caustic: 0.9 - type: HeldSpeedModifier - damageCoefficient: 0.65 - type: ToggleClothing action: ActionToggleReactiveArmor - type: ToggleVerb diff --git a/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml b/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml index bd91d12f6969c1..9b666fe77c65ce 100644 --- a/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml +++ b/Resources/Prototypes/SS220/Objectives/stealTargetGroups.yml @@ -21,7 +21,7 @@ - type: stealTargetGroup id: ClothingOuterReactiveArmor - name: experimental reactive armor + name: steal-target-groups-reactive-armor sprite: sprite: SS220/Clothing/OuterClothing/Armor/reactive_armor.rsi state: icon From 5a3c6ee3467252c3a483c68b1b45f22927c9a5be Mon Sep 17 00:00:00 2001 From: 21Melkuu <79728504+21Melkuu@users.noreply.github.com> Date: Thu, 3 Oct 2024 12:19:33 +0300 Subject: [PATCH 17/20] Update Resources/Locale/ru-RU/ss220/prototypes/entities/clothing/outerclothing/reactivearmor.ftl Co-authored-by: Ady4ik <141335742+Ady4ik@users.noreply.github.com> --- .../entities/clothing/outerclothing/reactivearmor.ftl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Locale/ru-RU/ss220/prototypes/entities/clothing/outerclothing/reactivearmor.ftl b/Resources/Locale/ru-RU/ss220/prototypes/entities/clothing/outerclothing/reactivearmor.ftl index 67f0e6f8aad9c8..c9045af7cb3521 100644 --- a/Resources/Locale/ru-RU/ss220/prototypes/entities/clothing/outerclothing/reactivearmor.ftl +++ b/Resources/Locale/ru-RU/ss220/prototypes/entities/clothing/outerclothing/reactivearmor.ftl @@ -1,2 +1,2 @@ ent-ActionToggleReactiveArmor = Переключить реактивную броню - .desc = Включает или выключает реактивную брони. \ No newline at end of file + .desc = Включает или выключает реактивную броню. \ No newline at end of file From 688ff3f51a91b47a95afb486eed5d5ec86a25a6a Mon Sep 17 00:00:00 2001 From: 21Melkuu <79728504+21Melkuu@users.noreply.github.com> Date: Thu, 3 Oct 2024 12:19:43 +0300 Subject: [PATCH 18/20] Update Resources/Prototypes/Catalog/Fills/Lockers/heads.yml Co-authored-by: Ady4ik <141335742+Ady4ik@users.noreply.github.com> --- Resources/Prototypes/Catalog/Fills/Lockers/heads.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml index ffec0aa749afa1..322fbc6aa46f3b 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml @@ -305,7 +305,6 @@ - id: Telescopichka # SS220 Telescopic Baton - id: CigPackRnD #SS220 Cigarettes - # Hardsuit table, used for suit storage as well - type: entityTable id: FillResearchDirectorHardsuit From f54fc6863de05db4d2971ff049203b176d655882 Mon Sep 17 00:00:00 2001 From: 21Melkuu <79728504+21Melkuu@users.noreply.github.com> Date: Thu, 3 Oct 2024 14:57:31 +0300 Subject: [PATCH 19/20] fix typosti --- .../Catalog/Fills/Lockers/heads.yml | 40 +------------------ 1 file changed, 2 insertions(+), 38 deletions(-) diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml index ffec0aa749afa1..81f279c484e10d 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml @@ -23,7 +23,6 @@ - id: Telescopichka # SS220 Telescopic Baton - id: ClothingWristWatchGold # SS220 Wrist Watch - id: GlassCaseEngravedKnuckledusterFilled # SS220 New Qm highrisk - - id: AstroNavCartridge - type: entity id: LockerQuarterMasterFilled @@ -174,7 +173,6 @@ - id: RubberStampCE - id: Telescopichka - id: ClothingWristWatchGold # SS220 Wrist Watch - - id: CigPackENG #SS220 Cigarettes # Hardsuit table, used for suit storage as well - type: entityTable @@ -234,7 +232,6 @@ - id: RubberStampCMO - id: Telescopichka # SS220 Telescopic Baton - id: ClothingWristWatchGold # SS220 Wrist Watch - - id: CigPackMED #SS220 Cigarettes # Hardsuit table, used for suit storage as well - type: entityTable @@ -262,22 +259,6 @@ suffix: Filled, Hardsuit parent: LockerChiefMedicalOfficer components: - - type: StorageFill - contents: - - id: Telescopichka - - id: ResearchComputerCircuitboard - - id: ProtolatheMachineCircuitboard - - id: CircuitImprinterMachineCircuitboard - - id: ClothingOuterHardsuitRd - - id: HandTeleporter - - id: DoorRemoteResearch - - id: ClothingBeltUtilityFilled - - id: RubberStampRd - - id: BoxEncryptionKeyScience - - id: ClothingHeadsetAltScience - - id: EncryptionKeyBinary - - id: ClothingWristWatchGold # SS220 Wrist Watch - - id: ClothingOuterReactiveArmor # SS220 - type: EntityTableContainerFill containers: entity_storage: !type:AllSelector @@ -303,8 +284,7 @@ - id: RubberStampRd - id: ClothingWristWatchGold # SS220 Wrist Watch - id: Telescopichka # SS220 Telescopic Baton - - id: CigPackRnD #SS220 Cigarettes - + - id: ClothingOuterReactiveArmor # SS220 # Hardsuit table, used for suit storage as well - type: entityTable @@ -321,21 +301,6 @@ suffix: Filled parent: LockerResearchDirector components: - - type: StorageFill - contents: - - id: Telescopichka - - id: ResearchComputerCircuitboard - - id: ProtolatheMachineCircuitboard - - id: CircuitImprinterMachineCircuitboard - - id: HandTeleporter - - id: DoorRemoteResearch - - id: ClothingBeltUtilityFilled - - id: RubberStampRd - - id: BoxEncryptionKeyScience - - id: ClothingHeadsetAltScience - - id: EncryptionKeyBinary - - id: ClothingWristWatchGold # SS220 Wrist Watch - - id: ClothingOuterReactiveArmor # SS220 - type: EntityTableContainerFill containers: entity_storage: !type:NestedSelector @@ -381,7 +346,6 @@ - id: ClothingWristWatchGold # SS220 Wrist Watch - id: WeaponMultiPhaseEnergyGun #SS220 MultiPhaze Energy Gun - id: BodySecurityCamera #SS220-Bodycam - - id: CigPackSEC #SS220 Cigarettes - id: WantedListCartridge # Hardsuit table, used for suit storage as well @@ -434,4 +398,4 @@ - id: JetpackBlue - id: SpaceCash1000 - id: BeachBall - - id: BikeHorn + - id: BikeHorn \ No newline at end of file From b9fe47abf42377c69e67323731a62f5324987aa4 Mon Sep 17 00:00:00 2001 From: 21Melkuu <79728504+21Melkuu@users.noreply.github.com> Date: Thu, 3 Oct 2024 21:40:30 +0300 Subject: [PATCH 20/20] NASRANO --- .../ReactiveTeleportArmor/TeleportOnDamageComponent.cs | 2 +- Resources/Prototypes/Catalog/Fills/Lockers/heads.yml | 7 +++++-- .../Entities/Clothing/OuterClothing/reactive_armor_rd.yml | 5 ++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Content.Server/SS220/ReactiveTeleportArmor/TeleportOnDamageComponent.cs b/Content.Server/SS220/ReactiveTeleportArmor/TeleportOnDamageComponent.cs index 18965a7f573112..3b57078c30f325 100644 --- a/Content.Server/SS220/ReactiveTeleportArmor/TeleportOnDamageComponent.cs +++ b/Content.Server/SS220/ReactiveTeleportArmor/TeleportOnDamageComponent.cs @@ -38,7 +38,7 @@ public sealed partial class TeleportOnDamageComponent : Component public bool OnCoolDown = false; [DataField] - public TimeSpan CoolDownTime = TimeSpan.FromSeconds(5); + public TimeSpan CoolDownTime = TimeSpan.FromSeconds(10); } diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml index 911139fca1fe29..d8b7c5f8cbe481 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml @@ -23,6 +23,7 @@ - id: Telescopichka # SS220 Telescopic Baton - id: ClothingWristWatchGold # SS220 Wrist Watch - id: GlassCaseEngravedKnuckledusterFilled # SS220 New Qm highrisk + - id: AstroNavCartridge - type: entity id: LockerQuarterMasterFilled @@ -173,6 +174,7 @@ - id: RubberStampCE - id: Telescopichka - id: ClothingWristWatchGold # SS220 Wrist Watch + - id: CigPackENG #SS220 Cigarettes # Hardsuit table, used for suit storage as well - type: entityTable @@ -232,6 +234,7 @@ - id: RubberStampCMO - id: Telescopichka # SS220 Telescopic Baton - id: ClothingWristWatchGold # SS220 Wrist Watch + - id: CigPackMED #SS220 Cigarettes # Hardsuit table, used for suit storage as well - type: entityTable @@ -285,8 +288,7 @@ - id: ClothingWristWatchGold # SS220 Wrist Watch - id: Telescopichka # SS220 Telescopic Baton - id: CigPackRnD #SS220 Cigarettes - - id: ClothingOuterReactiveArmor # SS220 - + - id: ClothingOuterReactiveArmor #SS220 New RD highrisk # Hardsuit table, used for suit storage as well - type: entityTable @@ -348,6 +350,7 @@ - id: ClothingWristWatchGold # SS220 Wrist Watch - id: WeaponMultiPhaseEnergyGun #SS220 MultiPhaze Energy Gun - id: BodySecurityCamera #SS220-Bodycam + - id: CigPackSEC #SS220 Cigarettes - id: WantedListCartridge # Hardsuit table, used for suit storage as well diff --git a/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml b/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml index eac4c96b243dd2..08dc53b6be394b 100644 --- a/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml +++ b/Resources/Prototypes/SS220/Entities/Clothing/OuterClothing/reactive_armor_rd.yml @@ -25,7 +25,7 @@ Slash: 0.5 Piercing: 0.6 Heat: 0.5 - Caustic: 0.9 + Caustic: 0.9 - type: HeldSpeedModifier - type: ToggleClothing action: ActionToggleReactiveArmor @@ -41,6 +41,9 @@ canCreateVacuum: false deleteAfterExplosion: false repeatable: true + - type: Tag + tags: + - HighRiskItem - type: entity id: ActionToggleReactiveArmor