From 2ca2065af0a43b04d517f88d6161a8f8bb37b9ab Mon Sep 17 00:00:00 2001 From: NameLunar Date: Tue, 17 Dec 2024 23:07:30 +0700 Subject: [PATCH 01/11] =?UTF-8?q?[UPDATE]=20=D0=91=D0=B0=D1=84=D1=84=20?= =?UTF-8?q?=D0=BA=D1=81=D0=B5=D0=BD=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Prototypes/Entities/Mobs/NPCs/xeno.yml | 28 ++++++++++++------- .../Weapons/Guns/Projectiles/projectiles.yml | 2 +- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml index a71adfc57cf..a06774fb3f0 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml @@ -146,12 +146,16 @@ - type: MobThresholds thresholds: 0: Alive - 100: Dead + 250: Dead - type: Stamina critThreshold: 300 - type: SlowOnDamage speedModifierThresholds: 50: 0.7 + - type: MeleeWeapon + damage: + groups: + Brute: 8 - type: Fixtures fixtures: fix1: @@ -183,14 +187,14 @@ - type: MobThresholds thresholds: 0: Alive - 80: Dead + 100: Dead - type: SlowOnDamage speedModifierThresholds: 40: 0.7 - type: MeleeWeapon damage: groups: - Brute: 6 + Brute: 5 - type: MovementSpeedModifier baseSprintSpeed: 4 - type: Fixtures @@ -224,7 +228,7 @@ - type: MobThresholds thresholds: 0: Alive - 300: Dead + 1000: Dead - type: SlowOnDamage speedModifierThresholds: 150: 0.7 @@ -232,7 +236,7 @@ - type: MeleeWeapon damage: groups: - Brute: 12 + Brute: 20 - type: Fixtures fixtures: fix1: @@ -268,13 +272,13 @@ - type: MobThresholds thresholds: 0: Alive - 100: Dead + 500: Dead - type: MovementSpeedModifier - baseSprintSpeed: 4 + baseSprintSpeed: 2 - type: MeleeWeapon damage: groups: - Brute: 10 + Brute: 30 - type: SlowOnDamage speedModifierThresholds: 50: 0.7 @@ -306,8 +310,12 @@ layers: - map: ["enum.DamageStateVisualLayers.Base"] state: running + - type: MobThresholds + thresholds: + 0: Alive + 100: Dead - type: MovementSpeedModifier - baseSprintSpeed: 6.0 + baseSprintSpeed: 12.0 - type: MeleeWeapon damage: groups: @@ -362,7 +370,7 @@ - type: MobThresholds thresholds: 0: Alive - 50: Dead + 80: Dead - type: SlowOnDamage speedModifierThresholds: 25: 0.7 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index ccca1079be2..b59a12b53a3 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -805,7 +805,7 @@ - type: Projectile damage: types: - Caustic: 5 + Caustic: 12 - type: Sprite sprite: Objects/Weapons/Guns/Projectiles/xeno_toxic.rsi layers: From ee1e924a837a14cef6a19258aaec71922cf5e04f Mon Sep 17 00:00:00 2001 From: NameLunar Date: Wed, 18 Dec 2024 23:15:12 +0700 Subject: [PATCH 02/11] =?UTF-8?q?=D0=A2=D1=83=D1=80=D0=B5=D0=BB=D1=8C,=20?= =?UTF-8?q?=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8,=20=D0=B3=D1=80=D1=83?= =?UTF-8?q?=D1=81=D1=82=D1=8C(?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Abilities/XenoQeen/XenoQeenComponent.cs | 29 ++++++++ .../Abilities/XenoQeen/XenoQeenSystem.cs | 70 +++++++++++++++++++ .../ss14-ru/prototypes/actions/XenoQeen.ftl | 4 ++ Resources/Prototypes/Actions/XenoQeen.yml | 14 ++++ .../Prototypes/Entities/Mobs/NPCs/xeno.yml | 2 +- 5 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 Content.Server/Abilities/XenoQeen/XenoQeenComponent.cs create mode 100644 Content.Server/Abilities/XenoQeen/XenoQeenSystem.cs create mode 100644 Resources/Locale/ru-RU/ss14-ru/prototypes/actions/XenoQeen.ftl create mode 100644 Resources/Prototypes/Actions/XenoQeen.yml diff --git a/Content.Server/Abilities/XenoQeen/XenoQeenComponent.cs b/Content.Server/Abilities/XenoQeen/XenoQeenComponent.cs new file mode 100644 index 00000000000..1e4b46a9c18 --- /dev/null +++ b/Content.Server/Abilities/XenoQeen/XenoQeenComponent.cs @@ -0,0 +1,29 @@ +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; + +namespace Content.Server.Abilities.XenoQeen +{ + /// + /// Lets its owner entity use mime powers, like placing invisible walls. + /// + [RegisterComponent] + public sealed partial class XenoQeenComponent : Component + { + /// + /// Whether this component is active or not. + /// + [DataField("enabled")] + public bool Enabled = true; + + /// + /// The wall prototype to use. + /// + [DataField("wallPrototype", customTypeSerializer: typeof(PrototypeIdSerializer))] + public string XenoTurret = "WeaponTurretXeno"; + + [DataField("xenoTurretAction", customTypeSerializer: typeof(PrototypeIdSerializer))] + public string? XenoTurretAction = "ActionXenoQeenTurret"; + + [DataField("xenoTurretActionEntity")] public EntityUid? XenoTurretActionEntity; + } +} diff --git a/Content.Server/Abilities/XenoQeen/XenoQeenSystem.cs b/Content.Server/Abilities/XenoQeen/XenoQeenSystem.cs new file mode 100644 index 00000000000..c4a3d3d36f2 --- /dev/null +++ b/Content.Server/Abilities/XenoQeen/XenoQeenSystem.cs @@ -0,0 +1,70 @@ +using Content.Server.Popups; +using Content.Shared.Actions; +using Content.Shared.Actions.Events; +using Content.Shared.Alert; +using Content.Shared.Coordinates.Helpers; +using Content.Shared.Maps; +using Content.Shared.Physics; +using Robust.Shared.Containers; +using Robust.Shared.Map; +using Robust.Shared.Timing; + +namespace Content.Server.Abilities.XenoQeen +{ + public sealed class XenoQeenSystem : EntitySystem + { + [Dependency] private readonly PopupSystem _popupSystem = default!; + [Dependency] private readonly SharedActionsSystem _actionsSystem = default!; + [Dependency] private readonly AlertsSystem _alertsSystem = default!; + [Dependency] private readonly TurfSystem _turf = default!; + [Dependency] private readonly IMapManager _mapMan = default!; + [Dependency] private readonly SharedContainerSystem _container = default!; + [Dependency] private readonly IGameTiming _timing = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnComponentInit); + SubscribeLocalEvent(OnInvisibleWall); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + } + private void OnComponentInit(EntityUid uid, XenoQeenComponent component, ComponentInit args) + { + _actionsSystem.AddAction(uid, ref component.XenoTurretActionEntity, component.XenoTurretAction, uid); + } + private void OnInvisibleWall(EntityUid uid, XenoQeenComponent component, InvisibleWallActionEvent args) + { + if (!component.Enabled) + return; + + if (_container.IsEntityOrParentInContainer(uid)) + return; + + var xform = Transform(uid); + // Get the tile in front of the mime + var offsetValue = xform.LocalRotation.ToWorldVec(); + var coords = xform.Coordinates.Offset(offsetValue).SnapToGrid(EntityManager, _mapMan); + var tile = coords.GetTileRef(EntityManager, _mapMan); + if (tile == null) + return; + + // Check if the tile is blocked by a wall or mob, and don't create the wall if so + if (_turf.IsTileBlocked(tile.Value, CollisionGroup.Impassable | CollisionGroup.Opaque)) + { + _popupSystem.PopupEntity(Loc.GetString("create-turret-failed"), uid, uid); + return; + } + + _popupSystem.PopupEntity(Loc.GetString("create-turret"), uid); + // Make sure we set the invisible wall to despawn properly + Spawn(component.XenoTurret, _turf.GetTileCenter(tile.Value)); + // Handle args so cooldown works + args.Handled = true; + } + + } +} diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/actions/XenoQeen.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/actions/XenoQeen.ftl new file mode 100644 index 00000000000..d96dd79dfee --- /dev/null +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/actions/XenoQeen.ftl @@ -0,0 +1,4 @@ +ent-ActionXenoQeenTurret = Создать ксено турель. + .desc = Создаёт перед вами ксену турель, если хватает места. (3 мин.) +create-turret-failed = Найдите другое место. +create-turret = Арргхсс. Шшшшш! \ No newline at end of file diff --git a/Resources/Prototypes/Actions/XenoQeen.yml b/Resources/Prototypes/Actions/XenoQeen.yml new file mode 100644 index 00000000000..734c6f47add --- /dev/null +++ b/Resources/Prototypes/Actions/XenoQeen.yml @@ -0,0 +1,14 @@ +# Спавн турелей у королевы +- type: entity +id: ActionXenoQeenTurret +name: Create Xeno turret +description: Create an xeno turret in front of you, if placeable there. +components: +- type: InstantAction + priority: -1 + useDelay: 180 + icon: + sprite: Structures/Walls/solid.rsi # Не знаю, что подойдёт + state: full + event: !type:InvisibleWallActionEvent +# Я не смог сделать отдельный ивент для спавнта турели. Он не видел прототип ивента. \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml index a06774fb3f0..dcff49af1cb 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml @@ -218,6 +218,7 @@ parent: MobXeno id: MobXenoQueen components: + - type: XenoQeen # Способность спавнта турелей - type: Sprite drawdepth: Mobs sprite: Mobs/Aliens/Xenos/queen.rsi @@ -256,7 +257,6 @@ rankName: collective-mind-queen-rank # ADT-CollectiveMind-Tweak-End - - type: entity name: ravager parent: MobXeno From 79a8a2251aa630930fbc0e7defca83be2681cbc4 Mon Sep 17 00:00:00 2001 From: NameLunar Date: Wed, 18 Dec 2024 23:28:16 +0700 Subject: [PATCH 03/11] ? --- Resources/Prototypes/Actions/XenoQeen.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Resources/Prototypes/Actions/XenoQeen.yml b/Resources/Prototypes/Actions/XenoQeen.yml index 734c6f47add..b66240889f4 100644 --- a/Resources/Prototypes/Actions/XenoQeen.yml +++ b/Resources/Prototypes/Actions/XenoQeen.yml @@ -1,14 +1,14 @@ # Спавн турелей у королевы - type: entity -id: ActionXenoQeenTurret -name: Create Xeno turret -description: Create an xeno turret in front of you, if placeable there. -components: -- type: InstantAction - priority: -1 - useDelay: 180 - icon: - sprite: Structures/Walls/solid.rsi # Не знаю, что подойдёт - state: full - event: !type:InvisibleWallActionEvent + id: ActionXenoQeenTurret + name: Create Xeno turret + description: Create an xeno turret in front of you, if placeable there. + components: + - type: InstantAction + priority: -1 + useDelay: 180 + icon: + sprite: Structures/Walls/solid.rsi # Не знаю, что подойдёт + state: full + event: !type:InvisibleWallActionEvent # Я не смог сделать отдельный ивент для спавнта турели. Он не видел прототип ивента. \ No newline at end of file From cae0c81f76452483bcc91175d684d199fffa18f0 Mon Sep 17 00:00:00 2001 From: NameLunar Date: Wed, 18 Dec 2024 23:52:01 +0700 Subject: [PATCH 04/11] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B8,=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ss14-ru/prototypes/entities/mobs/npcs/xeno.ftl | 12 ++++++------ Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/xeno.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/xeno.ftl index d6fbec371b1..f1912d62683 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/xeno.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/mobs/npcs/xeno.ftl @@ -1,19 +1,19 @@ ent-MobXeno = Бурильщик .desc = Обычно они приходят ночью. Обычно. ent-MobXenoPraetorian = Преторианец - .desc = { ent-MobXeno.desc } + .desc = Преторианец. Личная гвардия королевы, задача которого - защитить королеву. Стойкий воин ксено с хорошим уроном. ent-MobXenoDrone = Дрон - .desc = { ent-MobXeno.desc } + .desc = Дрон. Рядовой представитель ксеносов, задача которых - защищать улей и иногда охотиться. Не обладают выдающимися характеристиками. Самый типичный ксено. ent-MobXenoQueen = Королева - .desc = { ent-MobXeno.desc } + .desc = Королева. Предводительница стаи, невероятно сильная и живучая, если она оказалась перед вами - считайте, что вы мертвы. ent-MobXenoRavager = Разрушитель - .desc = { ent-MobXeno.desc } + .desc = Разрушитель. Самый сильный и живучий ксенос, после королевы. ent-MobXenoRunner = Бегун - .desc = { ent-MobXeno.desc } + .desc = Бегун. Обладает малым уроном, но отличается большой скоростью, так что быстро бегает и бьёт. ent-MobXenoRouny = Руни .desc = { ent-MobXenoRunner.desc } ent-MobXenoSpitter = Плевальщик - .desc = { ent-MobXeno.desc } + .desc = Плевальщик. Рядовой представитель ксеносов, который плюётся едкой кислотой, прожигающую даже броню. Однако слаб в ближнем бою. ent-MobPurpleSnake = космическая гадюка .desc = Грозная пурпурная змея с Kepler-283c. ent-MobSmallPurpleSnake = космическая гадюка diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml index dcff49af1cb..bf804655fed 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml @@ -146,7 +146,7 @@ - type: MobThresholds thresholds: 0: Alive - 250: Dead + 350: Dead - type: Stamina critThreshold: 300 - type: SlowOnDamage @@ -272,7 +272,7 @@ - type: MobThresholds thresholds: 0: Alive - 500: Dead + 750: Dead - type: MovementSpeedModifier baseSprintSpeed: 2 - type: MeleeWeapon From f2e3a9b36aef33c67bd83e68fe5f3e4b0ce1bdd1 Mon Sep 17 00:00:00 2001 From: NameLunar Date: Fri, 20 Dec 2024 00:41:14 +0700 Subject: [PATCH 05/11] =?UTF-8?q?=D0=9E=20=D0=B4=D0=B0!=20=D0=A1=D0=BF?= =?UTF-8?q?=D0=B0=D0=B2=D0=BD=20=D0=B7=D0=B5=D1=80=D0=B3=D0=BE=D0=B2!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Abilities/XenoQeen/XenoQeenSystem.cs | 10 +- .../ss14-ru/prototypes/actions/XenoQeen.ftl | 21 +++- Resources/Prototypes/Actions/XenoQeen.yml | 101 +++++++++++++++++- .../Prototypes/Entities/Mobs/NPCs/xeno.yml | 35 ++++-- .../Weapons/Guns/Projectiles/projectiles.yml | 2 +- .../Guns/Turrets/xenoturret.rsi/icon.png | Bin 0 -> 666 bytes .../Guns/Turrets/xenoturret.rsi/meta.json | 3 + 7 files changed, 148 insertions(+), 24 deletions(-) create mode 100644 Resources/Textures/Objects/Weapons/Guns/Turrets/xenoturret.rsi/icon.png diff --git a/Content.Server/Abilities/XenoQeen/XenoQeenSystem.cs b/Content.Server/Abilities/XenoQeen/XenoQeenSystem.cs index c4a3d3d36f2..fb4f41abde3 100644 --- a/Content.Server/Abilities/XenoQeen/XenoQeenSystem.cs +++ b/Content.Server/Abilities/XenoQeen/XenoQeenSystem.cs @@ -1,13 +1,11 @@ using Content.Server.Popups; using Content.Shared.Actions; using Content.Shared.Actions.Events; -using Content.Shared.Alert; using Content.Shared.Coordinates.Helpers; using Content.Shared.Maps; using Content.Shared.Physics; using Robust.Shared.Containers; using Robust.Shared.Map; -using Robust.Shared.Timing; namespace Content.Server.Abilities.XenoQeen { @@ -15,17 +13,15 @@ public sealed class XenoQeenSystem : EntitySystem { [Dependency] private readonly PopupSystem _popupSystem = default!; [Dependency] private readonly SharedActionsSystem _actionsSystem = default!; - [Dependency] private readonly AlertsSystem _alertsSystem = default!; [Dependency] private readonly TurfSystem _turf = default!; [Dependency] private readonly IMapManager _mapMan = default!; [Dependency] private readonly SharedContainerSystem _container = default!; - [Dependency] private readonly IGameTiming _timing = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnComponentInit); - SubscribeLocalEvent(OnInvisibleWall); + SubscribeLocalEvent(OnCreateTurret); } public override void Update(float frameTime) @@ -36,7 +32,7 @@ private void OnComponentInit(EntityUid uid, XenoQeenComponent component, Compone { _actionsSystem.AddAction(uid, ref component.XenoTurretActionEntity, component.XenoTurretAction, uid); } - private void OnInvisibleWall(EntityUid uid, XenoQeenComponent component, InvisibleWallActionEvent args) + private void OnCreateTurret(EntityUid uid, XenoQeenComponent component, InvisibleWallActionEvent args) { if (!component.Enabled) return; @@ -45,7 +41,7 @@ private void OnInvisibleWall(EntityUid uid, XenoQeenComponent component, Invisib return; var xform = Transform(uid); - // Get the tile in front of the mime + // Get the tile in front of the Qeen var offsetValue = xform.LocalRotation.ToWorldVec(); var coords = xform.Coordinates.Offset(offsetValue).SnapToGrid(EntityManager, _mapMan); var tile = coords.GetTileRef(EntityManager, _mapMan); diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/actions/XenoQeen.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/actions/XenoQeen.ftl index d96dd79dfee..605f2b2e6e4 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/actions/XenoQeen.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/actions/XenoQeen.ftl @@ -1,4 +1,21 @@ ent-ActionXenoQeenTurret = Создать ксено турель. - .desc = Создаёт перед вами ксену турель, если хватает места. (3 мин.) + .desc = Создаёт перед вами ксену турель, если хватает места. + create-turret-failed = Найдите другое место. -create-turret = Арргхсс. Шшшшш! \ No newline at end of file + +create-turret = Арргхсс. Шшшшш! + +ent-ActionSpawnMobXenoSpitter = Призвать Плевальщик + .desc = Родите Плевальщика, который будет плеваться! + +ent-ActionSpawnMobXenoPraetorian = Призвать Преторианеца + .desc = Родите Преторианеца, который будет сражаться за вас! + +ent-ActionSpawnMobXenoDrone = Просто Дрон. Кому он нужен? + .desc = Родите рабочего, Дрон. + +ent-ActionSpawnMobXenoRavager = Призвать Разрушителя + .desc = Родите смерть во плоти! + +ent-ActionSpawnMobXenoRunner = Призвать Бегуна + .desc = Родите самую быструю личинку! \ No newline at end of file diff --git a/Resources/Prototypes/Actions/XenoQeen.yml b/Resources/Prototypes/Actions/XenoQeen.yml index b66240889f4..f66048570c1 100644 --- a/Resources/Prototypes/Actions/XenoQeen.yml +++ b/Resources/Prototypes/Actions/XenoQeen.yml @@ -8,7 +8,102 @@ priority: -1 useDelay: 180 icon: - sprite: Structures/Walls/solid.rsi # Не знаю, что подойдёт - state: full + sprite: Objects\Weapons\Guns\Turrets\xenoturret.rsi + state: icon event: !type:InvisibleWallActionEvent -# Я не смог сделать отдельный ивент для спавнта турели. Он не видел прототип ивента. \ No newline at end of file +# Я не смог сделать отдельный ивент для спавнта турели. Он не видел прототип ивента. + +- type: entity + id: ActionSpawnMobXenoSpitter + name: Spawn Spitter + description: Give birth to Spitter who will spit! + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 240 + range: 4 + itemIconStyle: BigAction + icon: + sprite: Mobs\Aliens\Xenos\spitter.rsi + state: crit + event: !type:WorldSpawnSpellEvent + prototypes: + - id: MobXenoSpitter + amount: 1 + offset: 0, 1 + +- type: entity + id: ActionSpawnMobXenoPraetorian + name: Spawn Praetorian + description: Give birth to a Praetorian who will fight for you! + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 300 + range: 4 + itemIconStyle: BigAction + icon: + sprite: Mobs\Aliens\Xenos\praetorian.rsi + state: crit + event: !type:WorldSpawnSpellEvent + prototypes: + - id: MobXenoPraetorian + amount: 1 + offset: 0, 1 + +- type: entity + id: ActionSpawnMobXenoDrone + name: Just a Drone. Who needs it? + description: Give birth to a worker, Drone. + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 80 + range: 4 + itemIconStyle: BigAction + icon: + sprite: Mobs\Aliens\Xenos\drone.rsi + state: crit + event: !type:WorldSpawnSpellEvent + prototypes: + - id: MobXenoDrone + amount: 1 + offset: 0, 1 + +- type: entity + id: ActionSpawnMobXenoRavager + name: Spawn Ravager + description: Give birth to death in the flesh! + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 480 + range: 4 + itemIconStyle: BigAction + icon: + sprite: Mobs\Aliens\Xenos\ravager.rsi + state: crit + event: !type:WorldSpawnSpellEvent + prototypes: + - id: MobXenoRavager + amount: 1 + offset: 0, 1 + +- type: entity + id: ActionSpawnMobXenoRunner + name: Spawn Runner + description: Give birth to the fastest larva! + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 120 + range: 4 + itemIconStyle: BigAction + icon: + sprite: Mobs\Aliens\Xenos\runner.rsi + state: crit + event: !type:WorldSpawnSpellEvent + prototypes: + - id: MobXenoRunner + amount: 1 + offset: 0, 1 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml index bf804655fed..2426049a460 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml @@ -146,16 +146,18 @@ - type: MobThresholds thresholds: 0: Alive - 350: Dead + 350: Dead # ADT Tweak - type: Stamina critThreshold: 300 - type: SlowOnDamage speedModifierThresholds: 50: 0.7 + #ADT Start: Xeno baff - type: MeleeWeapon damage: groups: Brute: 8 + # ADT End - type: Fixtures fixtures: fix1: @@ -187,14 +189,14 @@ - type: MobThresholds thresholds: 0: Alive - 100: Dead + 100: Dead # ADT Tweak - type: SlowOnDamage speedModifierThresholds: 40: 0.7 - type: MeleeWeapon damage: groups: - Brute: 5 + Brute: 5 # ADT Tweak - type: MovementSpeedModifier baseSprintSpeed: 4 - type: Fixtures @@ -218,7 +220,16 @@ parent: MobXeno id: MobXenoQueen components: - - type: XenoQeen # Способность спавнта турелей + # ADT Start: Xeno buff + - type: XenoQeen # ADT Tweak: Способность спавнта турелей + - type: ActionGrant + actions: + - ActionSpawnMobXenoSpitter # Призыв Плевальщиков + - ActionSpawnMobXenoPraetorian # Призыв Преторианеца + - ActionSpawnMobXenoDrone # Призыв Дрона + - ActionSpawnMobXenoRavager # Призыв Разрушителя + - ActionSpawnMobXenoRunner # Призыв бегуна + #ADT End - type: Sprite drawdepth: Mobs sprite: Mobs/Aliens/Xenos/queen.rsi @@ -229,7 +240,7 @@ - type: MobThresholds thresholds: 0: Alive - 1000: Dead + 1000: Dead # ADT Tweak - type: SlowOnDamage speedModifierThresholds: 150: 0.7 @@ -237,7 +248,7 @@ - type: MeleeWeapon damage: groups: - Brute: 20 + Brute: 20 # ADT Tweak - type: Fixtures fixtures: fix1: @@ -272,13 +283,13 @@ - type: MobThresholds thresholds: 0: Alive - 750: Dead + 750: Dead # ADT Tweak - type: MovementSpeedModifier - baseSprintSpeed: 2 + baseSprintSpeed: 2 # ADT Tweak - type: MeleeWeapon damage: groups: - Brute: 30 + Brute: 30 # ADT Tweak - type: SlowOnDamage speedModifierThresholds: 50: 0.7 @@ -311,11 +322,13 @@ - map: ["enum.DamageStateVisualLayers.Base"] state: running - type: MobThresholds + # ADT Start: Xeno buff thresholds: 0: Alive 100: Dead + # ADT End - type: MovementSpeedModifier - baseSprintSpeed: 12.0 + baseSprintSpeed: 12.0 # ADT Tweak - type: MeleeWeapon damage: groups: @@ -370,7 +383,7 @@ - type: MobThresholds thresholds: 0: Alive - 80: Dead + 80: Dead # ADT Tweak - type: SlowOnDamage speedModifierThresholds: 25: 0.7 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index b59a12b53a3..fe5d856ffb2 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -805,7 +805,7 @@ - type: Projectile damage: types: - Caustic: 12 + Caustic: 12 # ADT Tweak - type: Sprite sprite: Objects/Weapons/Guns/Projectiles/xeno_toxic.rsi layers: diff --git a/Resources/Textures/Objects/Weapons/Guns/Turrets/xenoturret.rsi/icon.png b/Resources/Textures/Objects/Weapons/Guns/Turrets/xenoturret.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a3fa397bc49159b9fef65bfe11e633735cb95e17 GIT binary patch literal 666 zcmeAS@N?(olHy`uVBq!ia0vp^3P3E+!VDx!DlY8@2_$<2`7$t6sWC7#v@kII0tz*} zU|=XUU|@Kaz`$TNgMmT3V9u^U8=!<%fKP}kkmeH5c^RYp}(Nbdjt{~IT_yacLdED7=pW^j0RBMrn!@^*LO{kA3XE0Duk;1O92 zH0}rpGfvg!lLiX1mw5WRvcKRF7F0D!wK=T?(v)B17s7acQTZ$&TgubLF+}5h?Zo|l zhYbXd^iMy=lC)!DNBbS~U3$-T{b>)o}-6Bd7Z#INvZbNti(kz8!c^U$@pO+_?B}Vi6(#pO7+vnp5?9<@ z_t%3dC2{q9M~~+xJ3Trg)S0p6Qo_fW% zfHCN1dWeufv-=KM}4{0yBpOxp|$GSw2-h?11Vl2ohYqEsNo zU}RuqqHAcRYiJo_Xl`X}W@T!kZD3$!U~pOH+Hn*Ox%nxXX_dG&EON}N25QiN+fb63 in_66wm|K9Z$K1-)2x3X4o8SVV9tKZWKbLh*2~7Y5ap=MT literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Turrets/xenoturret.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Turrets/xenoturret.rsi/meta.json index 3adb37ea5c3..071f869db31 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Turrets/xenoturret.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Turrets/xenoturret.rsi/meta.json @@ -7,6 +7,9 @@ "y": 32 }, "states": [ + { + "name": "icon" + }, { "name": "acid_turret", "directions": 4, From b31c6288dab8f02e2dbd203c578494834833bdf6 Mon Sep 17 00:00:00 2001 From: NameLunar Date: Fri, 20 Dec 2024 00:43:48 +0700 Subject: [PATCH 06/11] =?UTF-8?q?32=20=D0=BD=D0=B0=2032!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Guns/Turrets/xenoturret.rsi/icon.png | Bin 666 -> 668 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Resources/Textures/Objects/Weapons/Guns/Turrets/xenoturret.rsi/icon.png b/Resources/Textures/Objects/Weapons/Guns/Turrets/xenoturret.rsi/icon.png index a3fa397bc49159b9fef65bfe11e633735cb95e17..7eef088dfb6101a27a2f83603752599c8f5b7185 100644 GIT binary patch delta 410 zcmbQmI)`FJsC*WXE#v9p7@~2$ zcH(}&!v+G!auwV1EFUdRcAeI?Lb0_I%`F#K9?~`*h7@mpP$5-hweE1hWM>XjoLwt;z@X@PDMvt$}J@}wL zZIipy4ld25%zo>;e}9#D!hiH`n$C@PPs+B-HTRzBws&w@AM~ua_}ll$t>GFXFFeCB7TKg=}6_;-OseSUuNtVWbW8? zRi9~d-CqvIO&dbbD_p25QW8>|wmK}4rD5LJ+mCG{H)L`2GEU(A$I9WN^i@Kp7mMrN^1?e)xKlRd?@)iF$;P+vlYDwDI!mM|HMrKb;G=OLA|s-gn9`P$YS{?NB&b5DbtG`L9+9fUh zo~r-jP0smm{A(+V7Z}ZIm(pF^Yk5mt{=NUl^5Pe>zA#lcXgu9x7W;W>YemWZ4n~)| zv&0oQ*ZuWiN=aNj-_hgw$xe@sh;>oA$_yvx-0!hYJGja*leZz~gZ_jDjUcxb1;G^w z$+M?k@hxBsx|tp#B+%^s$2^qlV}M&_(fv#(VYfPlG&Vm&=MB>~PyWTI#BXe7Won{r yU|?lna9QTs@yXguC}N8o^QtGuFsVu#n_HP0LDW^c2`&HzID@CFpUXO@geCyVSFD`? From a33cd36de59755500d9e5a37fbeca2bcd9ffa40f Mon Sep 17 00:00:00 2001 From: NameLunar Date: Fri, 20 Dec 2024 01:13:54 +0700 Subject: [PATCH 07/11] \ > / --- Resources/Prototypes/Actions/XenoQeen.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Resources/Prototypes/Actions/XenoQeen.yml b/Resources/Prototypes/Actions/XenoQeen.yml index f66048570c1..2c853b949ad 100644 --- a/Resources/Prototypes/Actions/XenoQeen.yml +++ b/Resources/Prototypes/Actions/XenoQeen.yml @@ -8,7 +8,7 @@ priority: -1 useDelay: 180 icon: - sprite: Objects\Weapons\Guns\Turrets\xenoturret.rsi + sprite: Objects/Weapons/Guns/Turrets/xenoturret.rsi state: icon event: !type:InvisibleWallActionEvent # Я не смог сделать отдельный ивент для спавнта турели. Он не видел прототип ивента. @@ -17,14 +17,14 @@ id: ActionSpawnMobXenoSpitter name: Spawn Spitter description: Give birth to Spitter who will spit! - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: WorldTargetAction useDelay: 240 range: 4 itemIconStyle: BigAction icon: - sprite: Mobs\Aliens\Xenos\spitter.rsi + sprite: Mobs/Aliens/Xenos/spitter.rsi state: crit event: !type:WorldSpawnSpellEvent prototypes: @@ -36,14 +36,14 @@ id: ActionSpawnMobXenoPraetorian name: Spawn Praetorian description: Give birth to a Praetorian who will fight for you! - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: WorldTargetAction useDelay: 300 range: 4 itemIconStyle: BigAction icon: - sprite: Mobs\Aliens\Xenos\praetorian.rsi + sprite: Mobs/Aliens/Xenos/praetorian.rsi state: crit event: !type:WorldSpawnSpellEvent prototypes: @@ -55,14 +55,14 @@ id: ActionSpawnMobXenoDrone name: Just a Drone. Who needs it? description: Give birth to a worker, Drone. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: WorldTargetAction useDelay: 80 range: 4 itemIconStyle: BigAction icon: - sprite: Mobs\Aliens\Xenos\drone.rsi + sprite: Mobs/Aliens/Xenos/drone.rsi state: crit event: !type:WorldSpawnSpellEvent prototypes: @@ -74,14 +74,14 @@ id: ActionSpawnMobXenoRavager name: Spawn Ravager description: Give birth to death in the flesh! - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: WorldTargetAction useDelay: 480 range: 4 itemIconStyle: BigAction icon: - sprite: Mobs\Aliens\Xenos\ravager.rsi + sprite: Mobs/Aliens/Xenos/ravager.rsi state: crit event: !type:WorldSpawnSpellEvent prototypes: @@ -93,14 +93,14 @@ id: ActionSpawnMobXenoRunner name: Spawn Runner description: Give birth to the fastest larva! - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: WorldTargetAction useDelay: 120 range: 4 itemIconStyle: BigAction icon: - sprite: Mobs\Aliens\Xenos\runner.rsi + sprite: Mobs/Aliens/Xenos/runner.rsi state: crit event: !type:WorldSpawnSpellEvent prototypes: From b876be42dd931ce85baafbc695aec4880edd4b2c Mon Sep 17 00:00:00 2001 From: NameLunar Date: Sat, 21 Dec 2024 19:32:20 +0700 Subject: [PATCH 08/11] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Locale/ru-RU/ss14-ru/prototypes/actions/XenoQeen.ftl | 7 ------- Resources/Prototypes/{ => ADT}/Actions/XenoQeen.yml | 0 Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml | 2 +- 3 files changed, 1 insertion(+), 8 deletions(-) rename Resources/Prototypes/{ => ADT}/Actions/XenoQeen.yml (100%) diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/actions/XenoQeen.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/actions/XenoQeen.ftl index 605f2b2e6e4..9a3337faeba 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/actions/XenoQeen.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/actions/XenoQeen.ftl @@ -1,21 +1,14 @@ ent-ActionXenoQeenTurret = Создать ксено турель. .desc = Создаёт перед вами ксену турель, если хватает места. - create-turret-failed = Найдите другое место. - create-turret = Арргхсс. Шшшшш! - ent-ActionSpawnMobXenoSpitter = Призвать Плевальщик .desc = Родите Плевальщика, который будет плеваться! - ent-ActionSpawnMobXenoPraetorian = Призвать Преторианеца .desc = Родите Преторианеца, который будет сражаться за вас! - ent-ActionSpawnMobXenoDrone = Просто Дрон. Кому он нужен? .desc = Родите рабочего, Дрон. - ent-ActionSpawnMobXenoRavager = Призвать Разрушителя .desc = Родите смерть во плоти! - ent-ActionSpawnMobXenoRunner = Призвать Бегуна .desc = Родите самую быструю личинку! \ No newline at end of file diff --git a/Resources/Prototypes/Actions/XenoQeen.yml b/Resources/Prototypes/ADT/Actions/XenoQeen.yml similarity index 100% rename from Resources/Prototypes/Actions/XenoQeen.yml rename to Resources/Prototypes/ADT/Actions/XenoQeen.yml diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml index 2426049a460..eacda126d91 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml @@ -321,8 +321,8 @@ layers: - map: ["enum.DamageStateVisualLayers.Base"] state: running + # ADT Start: Xeno buff - type: MobThresholds - # ADT Start: Xeno buff thresholds: 0: Alive 100: Dead From 4293dd3a88f38aa38d4a3900dc29fd65dde51d2d Mon Sep 17 00:00:00 2001 From: NameLunar Date: Sat, 21 Dec 2024 20:02:42 +0700 Subject: [PATCH 09/11] =?UTF-8?q?=D0=91=D1=83=20=D0=B1=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../prototypes/actions => ADT/prototypes/Actions}/XenoQeen.ftl | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Resources/Locale/ru-RU/{ss14-ru/prototypes/actions => ADT/prototypes/Actions}/XenoQeen.ftl (100%) diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/actions/XenoQeen.ftl b/Resources/Locale/ru-RU/ADT/prototypes/Actions/XenoQeen.ftl similarity index 100% rename from Resources/Locale/ru-RU/ss14-ru/prototypes/actions/XenoQeen.ftl rename to Resources/Locale/ru-RU/ADT/prototypes/Actions/XenoQeen.ftl From 2be049053e5ce79e67050d05632bc4ec8c741394 Mon Sep 17 00:00:00 2001 From: NameLunar Date: Sat, 21 Dec 2024 20:32:28 +0700 Subject: [PATCH 10/11] =?UTF-8?q?=D0=B1=D1=83=20=D0=B1=D1=83=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Content.Server/{ => ADT}/Abilities/XenoQeen/XenoQeenComponent.cs | 0 Content.Server/{ => ADT}/Abilities/XenoQeen/XenoQeenSystem.cs | 0 Content.Server/ADT/Abilities/null.txt | 1 + 3 files changed, 1 insertion(+) rename Content.Server/{ => ADT}/Abilities/XenoQeen/XenoQeenComponent.cs (100%) rename Content.Server/{ => ADT}/Abilities/XenoQeen/XenoQeenSystem.cs (100%) create mode 100644 Content.Server/ADT/Abilities/null.txt diff --git a/Content.Server/Abilities/XenoQeen/XenoQeenComponent.cs b/Content.Server/ADT/Abilities/XenoQeen/XenoQeenComponent.cs similarity index 100% rename from Content.Server/Abilities/XenoQeen/XenoQeenComponent.cs rename to Content.Server/ADT/Abilities/XenoQeen/XenoQeenComponent.cs diff --git a/Content.Server/Abilities/XenoQeen/XenoQeenSystem.cs b/Content.Server/ADT/Abilities/XenoQeen/XenoQeenSystem.cs similarity index 100% rename from Content.Server/Abilities/XenoQeen/XenoQeenSystem.cs rename to Content.Server/ADT/Abilities/XenoQeen/XenoQeenSystem.cs diff --git a/Content.Server/ADT/Abilities/null.txt b/Content.Server/ADT/Abilities/null.txt new file mode 100644 index 00000000000..3cf20d57b0b --- /dev/null +++ b/Content.Server/ADT/Abilities/null.txt @@ -0,0 +1 @@ +- \ No newline at end of file From 4947a5ff53eb919ac89243e35ae02b476103b80a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Schr=C3=B6dinger?= <132720404+Schrodinger71@users.noreply.github.com> Date: Sat, 21 Dec 2024 16:39:29 +0300 Subject: [PATCH 11/11] Delete Content.Server/ADT/Abilities/null.txt --- Content.Server/ADT/Abilities/null.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Content.Server/ADT/Abilities/null.txt diff --git a/Content.Server/ADT/Abilities/null.txt b/Content.Server/ADT/Abilities/null.txt deleted file mode 100644 index 3cf20d57b0b..00000000000 --- a/Content.Server/ADT/Abilities/null.txt +++ /dev/null @@ -1 +0,0 @@ -- \ No newline at end of file