From 718f2051b1981a753389d49cbdf4719d9f030097 Mon Sep 17 00:00:00 2001 From: RevengenRat <138193222+Ratyyy@users.noreply.github.com> Date: Fri, 21 Feb 2025 02:03:34 +0200 Subject: [PATCH 1/2] =?UTF-8?q?=20=D1=84=D0=B8=D0=BA=D1=81=D1=8B=20=D0=B1?= =?UTF-8?q?=D0=BE=D0=B5=D0=B2=D1=8B=D1=85=20=D0=B8=D1=81=D0=BA=D1=83=D1=81?= =?UTF-8?q?=D1=82=D0=B2=20(#1122)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Описание PR чутка добавила документацию для эффектов. Остальное читайте в чейнджлоге ## Требования - [x] Я прочитал(а) и следую [Руководство по созданию пулл реквестов](https://docs.spacestation14.com/en/general-development/codebase-info/pull-request-guidelines.html). Я понимаю, что в противном случае мой ПР может быть закрыт по усмотрению мейнтейнера. - [x] Я добавил скриншоты/видео к этому пулл реквесту, демонстрирующие его изменения в игре, **или** этот пулл реквест не требует демонстрации в игре **Чейнджлог** 🆑 Ratyyy - Tweak: В следствии гуманоиды больше улетают после любого падения, теперь только самовольные подкаты! - Tweak: Большая часть гуманоидов вспомнила, что нельзя прыгать без пола под ногами! - Tweak: Мастера спящего карпа вспомнили, что им нельзя стрелять! - Tweak: Великий совет мастеров спящего карпа решил, что 6 секунд стана - это слишком нечестно, потому теперь стан длиться 4 секунды! --- .../ADT/CantShoot/Systems/CantShootSystem.cs | 2 +- Content.Shared/ADT/Combat/ComboEffects.cs | 43 +++++++---- .../Crawling/Systems/SharedCrawlingSystem.cs | 77 +++++++------------ .../Objects/Specific/material_args.yml | 4 +- .../ADT/Recipes/Lathes/Packs/robotics.yml | 5 +- .../Prototypes/ADT/Research/industrial.yml | 4 +- .../Recipes/Lathes/Packs/science.yml | 2 +- .../Recipes/Lathes/Packs/service.yml | 3 + Resources/Prototypes/Research/industrial.yml | 1 - .../Prototypes/Roles/Jobs/Civilian/chef.yml | 3 - 10 files changed, 68 insertions(+), 76 deletions(-) diff --git a/Content.Shared/ADT/CantShoot/Systems/CantShootSystem.cs b/Content.Shared/ADT/CantShoot/Systems/CantShootSystem.cs index 250dc3fbed4..d95d38c5bdb 100644 --- a/Content.Shared/ADT/CantShoot/Systems/CantShootSystem.cs +++ b/Content.Shared/ADT/CantShoot/Systems/CantShootSystem.cs @@ -16,7 +16,7 @@ public override void Initialize() private void OnShootAttempt(EntityUid uid, CantShootComponent component, ref ShotAttemptedEvent args) { - if (_whitelist.IsWhitelistPassOrNull(component.Whitelist, args.Used)) + if (_whitelist.IsWhitelistPass(component.Whitelist, args.Used)) return; if (component.Popup != null) _popup.PopupCursor(Loc.GetString(component.Popup, ("used", args.Used)), args.User); diff --git a/Content.Shared/ADT/Combat/ComboEffects.cs b/Content.Shared/ADT/Combat/ComboEffects.cs index de9bbe6d189..bc88884d229 100644 --- a/Content.Shared/ADT/Combat/ComboEffects.cs +++ b/Content.Shared/ADT/Combat/ComboEffects.cs @@ -21,6 +21,9 @@ public partial interface IComboEffect void DoEffect(EntityUid user, EntityUid target, IEntityManager entMan); } +/// +/// наносит урон цели, damage - урон +/// [Serializable, NetSerializable] public sealed partial class ComboDamageEffect : IComboEffect { @@ -33,6 +36,9 @@ public void DoEffect(EntityUid user, EntityUid target, IEntityManager entMan) damageable.TryChangeDamage(target, Damage); } } +/// +/// наносит цели урон про стамине. StaminaDamage надо указывать целым числом +/// [Serializable, NetSerializable] public sealed partial class ComboStaminaDamageEffect : IComboEffect { @@ -45,6 +51,9 @@ public void DoEffect(EntityUid user, EntityUid target, IEntityManager entMan) stun.TakeStaminaDamage(target, StaminaDamage); } } +/// +/// спавнит на месте цели или пользователя прототип. SpawnOnUser и SpawnOnTarget отвечат за спавн прототипа на юзере и таргете соответственно +/// [Serializable, NetSerializable] public sealed partial class ComboSpawnEffect : IComboEffect { @@ -61,6 +70,9 @@ public void DoEffect(EntityUid user, EntityUid target, IEntityManager entMan) entMan.SpawnAtPosition(SpawnOnUser, target.ToCoordinates()); } } +/// +/// кидает человека на пол. DropItems отвечает за то, будут ли вещи из рук выпадать true - выпадает, false - не выпадает +/// [Serializable, NetSerializable] public sealed partial class ComboFallEffect : IComboEffect { @@ -75,6 +87,9 @@ public void DoEffect(EntityUid user, EntityUid target, IEntityManager entMan) down.Down(target, dropHeldItems: DropItems); } } +/// +/// добавочный урон по тем, кто лежит на земле. IgnoreResistances отвечает за то, будут ли резисты учитываться при нанесения урона +/// [Serializable, NetSerializable] public sealed partial class ComboMoreDamageToDownedEffect : IComboEffect @@ -93,6 +108,9 @@ public void DoEffect(EntityUid user, EntityUid target, IEntityManager entMan) } } } +/// +/// кидачет человека в стан после комбо. Fall отвечает за падение человека, StunTime - время стана, DropItems - выпадают ли вещи при падении +/// [Serializable, NetSerializable] public sealed partial class ComboStunEffect : IComboEffect { @@ -111,22 +129,9 @@ public void DoEffect(EntityUid user, EntityUid target, IEntityManager entMan) down.TryParalyze(target, TimeSpan.FromSeconds(StunTime), false, status, dropItems: DropItems, down: Fall); } } -[Serializable, NetSerializable] -public sealed partial class ComboDropFromActiveHandEffect : IComboEffect -{ - [DataField] - public bool Fall = true; - [DataField] - public TimeSpan StunTime; - [DataField] - public bool DropItems = true; - - public void DoEffect(EntityUid user, EntityUid target, IEntityManager entMan) - { - var down = entMan.System(); - down.TryKnockdown(target, StunTime, true, dropItems: DropItems, down: Fall); - } -} +/// +/// вызывает попаут на таргете. LocaleText - текст. Желательно использоваль локаль, а так же есть параметры для локали target и user +/// [Serializable, NetSerializable] public sealed partial class ComboPopupEffect : IComboEffect { @@ -139,6 +144,9 @@ public void DoEffect(EntityUid user, EntityUid target, IEntityManager entMan) popup.PopupEntity(Loc.GetString(LocaleText, ("user", Identity.Entity(user, entMan)), ("target", target)), target, PopupType.LargeCaution); } } +/// +/// выбрасывает что угодно из активной руки таргета +/// [Serializable, NetSerializable] public sealed partial class ComboDropFromHandsEffect : IComboEffect { @@ -150,6 +158,9 @@ public void DoEffect(EntityUid user, EntityUid target, IEntityManager entMan) hands.DoDrop(target, hand.ActiveHand); } } +/// +/// играет любой звук после комбо. Sound - звук, что очевидно +/// [Serializable, NetSerializable] public sealed partial class ComboAudioEffect : IComboEffect { diff --git a/Content.Shared/ADT/Crawling/Systems/SharedCrawlingSystem.cs b/Content.Shared/ADT/Crawling/Systems/SharedCrawlingSystem.cs index b15330ca376..f14b96e9b76 100644 --- a/Content.Shared/ADT/Crawling/Systems/SharedCrawlingSystem.cs +++ b/Content.Shared/ADT/Crawling/Systems/SharedCrawlingSystem.cs @@ -9,32 +9,13 @@ using Content.Shared.Movement.Systems; using Content.Shared.Alert; using Content.Shared.Climbing.Components; -using Content.Shared.Popups; -using Robust.Shared.Physics.Systems; using Content.Shared.ADT.Grab; using Content.Shared.Climbing.Systems; using Content.Shared.CombatMode; using System.Numerics; -using Content.Shared.ADT.Grab; -using Content.Shared.Database; -using Content.Shared.IdentityManagement; -using Content.Shared.Movement.Pulling.Components; -using Content.Shared.Movement.Pulling.Systems; -using Content.Shared.Popups; -using Content.Shared.Speech; -using Content.Shared.Tag; using Content.Shared.Throwing; -using Robust.Shared.Audio; -using Robust.Shared.Map; using Robust.Shared.Physics.Components; -using System.Collections.Generic; -using System.Numerics; -using Robust.Shared.GameObjects; -using Robust.Shared.Map; -using Robust.Shared.Map.Components; -using Robust.Shared.Maths; -using Robust.Shared.Timing; -using Robust.Shared.Utility; +using Content.Shared.Gravity; using Content.Shared.Coordinates; namespace Content.Shared.ADT.Crawling; @@ -48,7 +29,7 @@ public abstract class SharedCrawlingSystem : EntitySystem [Dependency] private readonly SharedAppearanceSystem _appearance = default!; [Dependency] private readonly EntityLookupSystem _lookup = default!; [Dependency] private readonly BonkSystem _bonk = default!; - [Dependency] private readonly SharedTransformSystem _transform = default!; + [Dependency] private readonly SharedGravitySystem _gravity = default!; [Dependency] private readonly ThrowingSystem _throwing = default!; public override void Initialize() { @@ -86,6 +67,33 @@ private void ToggleCrawling(EntityUid uid, CrawlerComponent component, CrawlingK { case false: _standing.Down(uid, dropHeldItems: false); + if (!TryComp(uid, out var combatMode) || + combatMode.IsInCombatMode) + { + var targetTile = Vector2.Zero; + + if (TryComp(uid, out var physics) && !_gravity.IsWeightless(uid)) + { + var velocity = physics.LinearVelocity; + + if (velocity.LengthSquared() > 0) + { + var direction = velocity.Normalized(); + + var currentPosition = uid.ToCoordinates(); + + var targetTileX = currentPosition.X + direction.X * 1; + var targetTileY = currentPosition.Y + direction.Y * 1; + + int tileX = (int)MathF.Round(targetTileX); + int tileY = (int)MathF.Round(targetTileY); + + targetTile = new Vector2(tileX, tileY); + } + } + EnsureComp(uid); + _throwing.TryThrow(uid, targetTile, 8, animated: false, playSound: false, doSpin: false); + } break; case true: _doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, uid, component.StandUpTime, new CrawlStandupDoAfterEvent(), @@ -125,33 +133,6 @@ private void OnFall(EntityUid uid, CrawlerComponent component, DownAttemptEvent return; _alerts.ShowAlert(uid, component.CrawlingAlert); - if (!TryComp(uid, out var combatMode) || - combatMode.IsInCombatMode) - { - var targetTile = Vector2.Zero; - - if (TryComp(uid, out var physics)) - { - var velocity = physics.LinearVelocity; - - if (velocity.LengthSquared() > 0) - { - var direction = velocity.Normalized(); - - var currentPosition = uid.ToCoordinates(); - - var targetTileX = currentPosition.X + direction.X * 1; - var targetTileY = currentPosition.Y + direction.Y * 1; - - int tileX = (int)MathF.Round(targetTileX); - int tileY = (int)MathF.Round(targetTileY); - - targetTile = new Vector2(tileX, tileY); - } - } - EnsureComp(uid); - _throwing.TryThrow(uid, targetTile, 8, animated: false, playSound: false, doSpin: false); - } EnsureComp(uid); } diff --git a/Resources/Prototypes/ADT/Entities/Objects/Specific/material_args.yml b/Resources/Prototypes/ADT/Entities/Objects/Specific/material_args.yml index 53546e8a773..3cab3866327 100644 --- a/Resources/Prototypes/ADT/Entities/Objects/Specific/material_args.yml +++ b/Resources/Prototypes/ADT/Entities/Objects/Specific/material_args.yml @@ -164,7 +164,7 @@ - !type:ComboPopupEffect localeText: combo-backhit-end - !type:ComboStunEffect - stunTime: 6 + stunTime: 4 dropItems: false - actionsNeeds: - Hit @@ -206,7 +206,7 @@ types: Blunt: 5 - !type:ComboStunEffect - stunTime: 6 + stunTime: 4 dropItems: false - actionsNeeds: - Disarm diff --git a/Resources/Prototypes/ADT/Recipes/Lathes/Packs/robotics.yml b/Resources/Prototypes/ADT/Recipes/Lathes/Packs/robotics.yml index 62f25a08485..8af46af0269 100644 --- a/Resources/Prototypes/ADT/Recipes/Lathes/Packs/robotics.yml +++ b/Resources/Prototypes/ADT/Recipes/Lathes/Packs/robotics.yml @@ -8,7 +8,7 @@ - type: latheRecipePack id: ADTModsuitPack recipes: - - ADTModsuitHelmet #ADT modsuits start + - ADTModsuitHelmet - ADTModsuitGauntlets - ADTModsuitChestplate - ADTModsuitBoots @@ -21,10 +21,9 @@ - ADTModsuitPlateCience - ADTModsuitPlateMining - ADTModsuitAssembly + - ADTModsuitModDrill - ADTModsuitModAntigrav - ADTModsuitModApparatus - - ADTModsuitModDrill - - ADTModsuitModJetpack - ADTModsuitModJetpack - ADTModsuitModMagboot - ADTModsuitModNightVision diff --git a/Resources/Prototypes/ADT/Research/industrial.yml b/Resources/Prototypes/ADT/Research/industrial.yml index ca0c1d1afa6..66c0d699289 100644 --- a/Resources/Prototypes/ADT/Research/industrial.yml +++ b/Resources/Prototypes/ADT/Research/industrial.yml @@ -37,6 +37,7 @@ recipeUnlocks: - ADTModsuitPlateMining - ADTModsuitPlateEngineering + - ADTModsuitPlateCosmohonk - ADTModsuitPlateAtmospheric technologyPrerequisites: - ADTModsuitBase @@ -59,6 +60,7 @@ - ADTModsuitModStorage - ADTModsuitModMagboot - ADTModsuitModJetpack + - ADTModsuitModNightVision - ADTModsuitModDrill technologyPrerequisites: - - ADTIndustrialMODsuit \ No newline at end of file + - ADTIndustrialMODsuit diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/science.yml b/Resources/Prototypes/Recipes/Lathes/Packs/science.yml index 1afa7d7d075..b00ab367ec7 100644 --- a/Resources/Prototypes/Recipes/Lathes/Packs/science.yml +++ b/Resources/Prototypes/Recipes/Lathes/Packs/science.yml @@ -43,7 +43,7 @@ - type: latheRecipePack id: PowerCells recipes: - - PowerCellMicroreactor + # - PowerCellMicroreactor ADT tweak - PowerCellHigh - type: latheRecipePack diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/service.yml b/Resources/Prototypes/Recipes/Lathes/Packs/service.yml index bbf5ec0eb1c..8d79cf7e2f5 100644 --- a/Resources/Prototypes/Recipes/Lathes/Packs/service.yml +++ b/Resources/Prototypes/Recipes/Lathes/Packs/service.yml @@ -60,3 +60,6 @@ - ReagentGrinderIndustrialMachineCircuitboard - JukeboxCircuitBoard - DawInstrumentMachineCircuitboard + - CloningPodMachineCircuitboard #ADT tweak + - CloningConsoleComputerCircuitboard #ADT tweak + - MedicalScannerMachineCircuitboard #ADT tweak diff --git a/Resources/Prototypes/Research/industrial.yml b/Resources/Prototypes/Research/industrial.yml index ab592bd24eb..80e5e77b12f 100644 --- a/Resources/Prototypes/Research/industrial.yml +++ b/Resources/Prototypes/Research/industrial.yml @@ -180,7 +180,6 @@ - OreBagOfHolding - MiningDrillDiamond - AdvancedMineralScannerEmpty - - SalvageExpeditionsComputerCircuitboard # Corvax-Cringe # Tier 3 diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml b/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml index 2965c3b5980..2b915040821 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/chef.yml @@ -25,6 +25,3 @@ id: ChefPDA ears: ClothingHeadsetService belt: ClothingBeltChefFilled - storage: #ADT tweak - back: - - ADTCqcManualWeak From 0a5e79cc6f3ddf2d3c4265c05f3b4c2fd5ff0351 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 21 Feb 2025 15:51:57 +0300 Subject: [PATCH 2/2] Auto CL update (#1126) No cl, no fun Co-authored-by: github-actions[bot] --- Resources/Changelog/1ChangelogADT.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Resources/Changelog/1ChangelogADT.yml b/Resources/Changelog/1ChangelogADT.yml index f5b58a1332a..fa7cd7d2d02 100644 --- a/Resources/Changelog/1ChangelogADT.yml +++ b/Resources/Changelog/1ChangelogADT.yml @@ -5745,3 +5745,14 @@ Entries: время!', type: Add} time: '2025-02-18T19:32:20Z' id: 726 + - author: Шрёдька + changes: + - {message: 'Подтянуты коммиты с Визардов, 10.02.2025.', type: Add} + time: '2025-02-19T05:54:11Z' + id: 727 + - author: RaMbUt878 + changes: + - {message: Теперь Синдикат убрал ошибку на производстве и вернул фирменному + трость-ружью его дополнительные 2 патрона., type: Fix} + time: '2025-02-20T14:27:09Z' + id: 728