From cdac0513ae314d1e43221c906cce2a4de770cda0 Mon Sep 17 00:00:00 2001 From: Aviu00 Date: Mon, 5 Aug 2024 15:39:34 +0300 Subject: [PATCH 1/7] - fix: Crushers and spellblade. --- Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs | 6 ++++++ .../_White/Wizard/SpellBlade/SharedSpellBladeSystem.cs | 1 + .../Prototypes/Entities/Objects/Weapons/Melee/mining.yml | 5 +++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs index 9e5ee2d8c3..878b6cbc3a 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs @@ -554,6 +554,12 @@ public abstract partial class SharedGunSystem : EntitySystem Dirty(gun); } // WD EDIT + public void SetFireMode(GunComponent gun, SelectiveFire available, SelectiveFire selected) + { + gun.AvailableModes = available; + gun.SelectedMode = selected; + } + public void SetUseKey(GunComponent gun, bool useKey) { gun.UseKey = useKey; diff --git a/Content.Shared/_White/Wizard/SpellBlade/SharedSpellBladeSystem.cs b/Content.Shared/_White/Wizard/SpellBlade/SharedSpellBladeSystem.cs index c940d36507..918c0df502 100644 --- a/Content.Shared/_White/Wizard/SpellBlade/SharedSpellBladeSystem.cs +++ b/Content.Shared/_White/Wizard/SpellBlade/SharedSpellBladeSystem.cs @@ -103,6 +103,7 @@ public abstract class SharedSpellBladeSystem : EntitySystem var gun = EnsureComp(uid); _gun.SetUseKey(gun, false); _gun.SetClumsyProof(gun, true); + _gun.SetFireMode(gun, SelectiveFire.FullAuto, SelectiveFire.FullAuto); _gun.SetSound(uid, new SoundPathSpecifier("/Audio/Weapons/Guns/Gunshots/Magic/staff_healing.ogg")); _gun.SetFireRate(uid, 1.2f); var ammoProvider = EnsureComp(uid); diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/mining.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/mining.yml index a92b38e27d..0d59037069 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/mining.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/mining.yml @@ -34,6 +34,9 @@ soundGunshot: /Audio/Weapons/plasma_cutter.ogg fireRate: 1 useKey: false + selectedMode: FullAuto + availableModes: + - FullAuto - type: RechargeBasicEntityAmmo rechargeCooldown: 0.5 rechargeSound: @@ -95,8 +98,6 @@ components: - type: Sprite sprite: Objects/Weapons/Melee/crusher_glaive.rsi - - type: UseDelay - delay: 1.9 - type: LeechOnMarker leech: groups: From 8c8188f96277f0454fee5c0d2e0364fa33740fa4 Mon Sep 17 00:00:00 2001 From: Aviu00 Date: Mon, 5 Aug 2024 15:56:25 +0300 Subject: [PATCH 2/7] - tweak: Magic tweaks. --- Content.Server/_White/Wizard/Magic/WizardSpellsSystem.cs | 7 +++++-- Resources/Prototypes/Magic/white.yml | 8 ++++---- Resources/Prototypes/_White/Wizard/magic_items.yml | 4 ++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Content.Server/_White/Wizard/Magic/WizardSpellsSystem.cs b/Content.Server/_White/Wizard/Magic/WizardSpellsSystem.cs index b69540d738..89c0ff1f2e 100644 --- a/Content.Server/_White/Wizard/Magic/WizardSpellsSystem.cs +++ b/Content.Server/_White/Wizard/Magic/WizardSpellsSystem.cs @@ -1,7 +1,7 @@ using System.Linq; using System.Numerics; -using Content.Server._White.Cult; using Content.Server._White.IncorporealSystem; +using Content.Server._White.Other.FastAndFuriousSystem; using Content.Server._White.Wizard.Charging; using Content.Server._White.Wizard.Magic.Amaterasu; using Content.Server._White.Wizard.Magic.Other; @@ -48,6 +48,7 @@ using Content.Shared.Physics; using Content.Shared.Popups; using Content.Shared.Revolutionary.Components; using Content.Shared.StatusEffect; +using Content.Shared.Stunnable; using Content.Shared.Throwing; using Robust.Shared.Audio.Systems; using Robust.Shared.Map; @@ -88,6 +89,7 @@ public sealed class WizardSpellsSystem : EntitySystem [Dependency] private readonly MindSystem _mindSystem = default!; [Dependency] private readonly ActionContainerSystem _actionContainer = default!; [Dependency] private readonly ChargingSystem _charging = default!; + [Dependency] private readonly SharedStunSystem _stun = default!; #endregion @@ -191,6 +193,7 @@ public sealed class WizardSpellsSystem : EntitySystem SwapComponent(uid, target); SwapComponent(uid, target); SwapComponent(uid, target); + SwapComponent(uid, target); _mindSystem.TransferTo(mindId, target, mind: mind); @@ -738,8 +741,8 @@ public sealed class WizardSpellsSystem : EntitySystem return false; } + _stun.TryKnockdown(msg.TargetUid, TimeSpan.FromSeconds(4), true); _throwingSystem.TryThrow(msg.TargetUid, Transform(msg.Performer).Coordinates, 5f); - _standing.TryLieDown(msg.TargetUid); return true; } diff --git a/Resources/Prototypes/Magic/white.yml b/Resources/Prototypes/Magic/white.yml index 0e84716b30..a2cae1c89c 100644 --- a/Resources/Prototypes/Magic/white.yml +++ b/Resources/Prototypes/Magic/white.yml @@ -29,7 +29,7 @@ prototype: ProjectileTeslaBall posData: !type:TargetCasterPos - type: VariableUseDelay - useDelay: 5 + useDelay: 10 altUseDelay: 5 chargeUseDelay: 30 @@ -63,7 +63,7 @@ speech: "EL DRITCH!" - type: VariableUseDelay useDelay: 6 - altUseDelay: 2 + altUseDelay: 3 chargeUseDelay: 30 - type: entity @@ -72,7 +72,7 @@ noSpawn: true components: - type: Magic - requiresClothes: true + requiresClothes: false - type: WorldTargetAction itemIconStyle: BigAction useDelay: 60 @@ -128,7 +128,7 @@ posData: !type:TargetCasterPos speech: "SHIZO NERO!" - type: VariableUseDelay - useDelay: 4 + useDelay: 5 altUseDelay: 1 chargeUseDelay: 30 diff --git a/Resources/Prototypes/_White/Wizard/magic_items.yml b/Resources/Prototypes/_White/Wizard/magic_items.yml index 5b6b029837..ae012dc30e 100644 --- a/Resources/Prototypes/_White/Wizard/magic_items.yml +++ b/Resources/Prototypes/_White/Wizard/magic_items.yml @@ -8,7 +8,7 @@ sprite: White/Objects/Weapons/Chaplain/hfrequency.rsi - type: MeleeWeapon autoAttack: true - attackRate: 4 + attackRate: 5 damage: types: Slash: 10 @@ -39,7 +39,7 @@ wideAnimationRotation: 135 damage: types: - Slash: 30 + Slash: 35 - type: Clothing quickEquip: false sprite: White/Objects/Weapons/Chaplain/spellblade.rsi From 945477d7e783603800da5e8e89842c71211faed3 Mon Sep 17 00:00:00 2001 From: Aviu00 Date: Mon, 5 Aug 2024 16:04:42 +0300 Subject: [PATCH 3/7] - add: Update desc. --- Resources/Locale/ru-RU/_white/wizard/spells.ftl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Locale/ru-RU/_white/wizard/spells.ftl b/Resources/Locale/ru-RU/_white/wizard/spells.ftl index bba48bccdc..1f75497f0f 100644 --- a/Resources/Locale/ru-RU/_white/wizard/spells.ftl +++ b/Resources/Locale/ru-RU/_white/wizard/spells.ftl @@ -5,7 +5,7 @@ ent-ActionForceSpell = Сила .desc = Притягивает все объекты и сущности в указанную точку. Альтернативный каст: Прицельно притягивает к вам предмет или сущность. При зарядке: Вместо притяжение в выбранную точку, отталкивает все объекты от заклинателя. С каждым уровнем повышается мощность отталкивания. ent-ActionFireballSpell = Огненный шар - .desc = Создает огненный шар, наносящий огромный урон при взрыве. Альтернативный каст: Поджигает одну цель на любом расстоянии, навешивая проклятие, при котором смерть от огня уничтожит тело. При зарядке: Поджигает все сущности вокруг, с каждым уровнем повышается сила поджога и радиус поражения. Не работает без волшебной мантии и шляпы. + .desc = Создает огненный шар, наносящий огромный урон при взрыве. Альтернативный каст: Поджигает одну цель на любом расстоянии, навешивая проклятие, при котором смерть от огня уничтожит тело. При зарядке: Поджигает все сущности вокруг, с каждым уровнем повышается сила поджога и радиус поражения. ent-ActionCardSpell = Карты .desc = Настоящий козырь в рукаве! Вернее, целая колода таких. Выпускает несколько смертельных карт в одном направлении. Карты способны оглушить цель. Альтернативный каст: Превращает в карту любой предмет. В карту можно превратить только предметы. При зарядке: Выпускает карты вокруг вас, с каждым уровнем зарядки количество выпускаемых карт повышается. From fb5fa92438357b6a22ffd478cfce9114172e9400 Mon Sep 17 00:00:00 2001 From: Aviu00 Date: Mon, 5 Aug 2024 16:21:45 +0300 Subject: [PATCH 4/7] - add: Blocking for melee weapons. --- .../Prototypes/Entities/Objects/Weapons/Melee/armblade.yml | 2 ++ .../Prototypes/Entities/Objects/Weapons/Melee/cult.yml | 4 ++++ .../Prototypes/Entities/Objects/Weapons/Melee/sword.yml | 6 ++++++ .../_White/Entities/Objects/Weapons/chaplain_weapons.yml | 1 + 4 files changed, 13 insertions(+) diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/armblade.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/armblade.yml index 13f89950a3..9b6e5a7686 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/armblade.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/armblade.yml @@ -28,3 +28,5 @@ deleteOnDrop: true - type: ToolForcePowered - type: DeleteOnChangelingRefund + - type: MeleeBlock + delay: 12.1 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/cult.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/cult.yml index 7961c3af43..0cbf04eb7b 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/cult.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/cult.yml @@ -82,6 +82,8 @@ - suitStorage - type: DisarmMalus - type: CultItem + - type: MeleeBlock + delay: 12.1 - type: entity name: unholy halberd @@ -123,3 +125,5 @@ - type: UseDelay delay: 1 - type: CultItem + - type: MeleeBlock + delay: 12.1 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml index 9ec4e93469..3f54cf7b19 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml @@ -64,6 +64,8 @@ - Belt - SuitStorage - type: DisarmMalus + - type: MeleeBlock + delay: 12.1 - type: entity name: energy katana @@ -164,6 +166,8 @@ deconstructionTarget: null graph: SwordGraph node: sword + - type: MeleeBlock + delay: 12.1 - type: entity name: cutlass @@ -189,6 +193,8 @@ size: Large sprite: Objects/Weapons/Melee/cutlass.rsi - type: DisarmMalus + - type: MeleeBlock + delay: 12.1 - type: entity name: The Throngler diff --git a/Resources/Prototypes/_White/Entities/Objects/Weapons/chaplain_weapons.yml b/Resources/Prototypes/_White/Entities/Objects/Weapons/chaplain_weapons.yml index 3e0ab8c74b..0e2b6f7a68 100644 --- a/Resources/Prototypes/_White/Entities/Objects/Weapons/chaplain_weapons.yml +++ b/Resources/Prototypes/_White/Entities/Objects/Weapons/chaplain_weapons.yml @@ -341,6 +341,7 @@ sprite: White/Objects/Weapons/Chaplain/pitchfork.rsi state: icon - type: MeleeWeapon + range: 2 wideAnimationRotation: -135 damage: types: From c719eb56e0bd03e536849c972d9998fb5e0fd1ad Mon Sep 17 00:00:00 2001 From: Aviu00 Date: Mon, 5 Aug 2024 19:17:30 +0300 Subject: [PATCH 5/7] - tweak: Lightning and fireball. --- .../_White/Wizard/Magic/WizardSpellsSystem.cs | 4 ++++ Content.Shared/_White/Wizard/Magic/MagicComponent.cs | 6 +++++- Resources/Locale/ru-RU/_white/wizard/spells.ftl | 2 +- .../entities/clothing/outerclothing/armor.ftl | 4 ++-- .../Entities/Clothing/OuterClothing/armor.yml | 10 ++++++++-- Resources/Prototypes/Magic/white.yml | 8 +++++++- Resources/Prototypes/_White/tags.yml | 6 ++++++ 7 files changed, 33 insertions(+), 7 deletions(-) diff --git a/Content.Server/_White/Wizard/Magic/WizardSpellsSystem.cs b/Content.Server/_White/Wizard/Magic/WizardSpellsSystem.cs index 89c0ff1f2e..c696b82902 100644 --- a/Content.Server/_White/Wizard/Magic/WizardSpellsSystem.cs +++ b/Content.Server/_White/Wizard/Magic/WizardSpellsSystem.cs @@ -939,6 +939,10 @@ public sealed class WizardSpellsSystem : EntitySystem if (hasReqs) return; + if (_inventory.TryGetSlotEntity(args.Performer, "outerClothing", out var entity) && + comp.ClothingWhitelist?.IsValid(entity.Value) is true) + return; + args.Cancelled = true; _popupSystem.PopupEntity(Loc.GetString("magic-component-missing-req"), args.Performer, args.Performer); } diff --git a/Content.Shared/_White/Wizard/Magic/MagicComponent.cs b/Content.Shared/_White/Wizard/Magic/MagicComponent.cs index a43001ca53..7517d10ead 100644 --- a/Content.Shared/_White/Wizard/Magic/MagicComponent.cs +++ b/Content.Shared/_White/Wizard/Magic/MagicComponent.cs @@ -1,4 +1,5 @@ -using Robust.Shared.GameStates; +using Content.Shared.Whitelist; +using Robust.Shared.GameStates; namespace Content.Shared._White.Wizard.Magic; @@ -10,4 +11,7 @@ public sealed partial class MagicComponent : Component /// [DataField, ViewVariables(VVAccess.ReadWrite)] public bool RequiresClothes; + + [DataField] + public EntityWhitelist? ClothingWhitelist; } diff --git a/Resources/Locale/ru-RU/_white/wizard/spells.ftl b/Resources/Locale/ru-RU/_white/wizard/spells.ftl index 1f75497f0f..bba48bccdc 100644 --- a/Resources/Locale/ru-RU/_white/wizard/spells.ftl +++ b/Resources/Locale/ru-RU/_white/wizard/spells.ftl @@ -5,7 +5,7 @@ ent-ActionForceSpell = Сила .desc = Притягивает все объекты и сущности в указанную точку. Альтернативный каст: Прицельно притягивает к вам предмет или сущность. При зарядке: Вместо притяжение в выбранную точку, отталкивает все объекты от заклинателя. С каждым уровнем повышается мощность отталкивания. ent-ActionFireballSpell = Огненный шар - .desc = Создает огненный шар, наносящий огромный урон при взрыве. Альтернативный каст: Поджигает одну цель на любом расстоянии, навешивая проклятие, при котором смерть от огня уничтожит тело. При зарядке: Поджигает все сущности вокруг, с каждым уровнем повышается сила поджога и радиус поражения. + .desc = Создает огненный шар, наносящий огромный урон при взрыве. Альтернативный каст: Поджигает одну цель на любом расстоянии, навешивая проклятие, при котором смерть от огня уничтожит тело. При зарядке: Поджигает все сущности вокруг, с каждым уровнем повышается сила поджога и радиус поражения. Не работает без волшебной мантии и шляпы. ent-ActionCardSpell = Карты .desc = Настоящий козырь в рукаве! Вернее, целая колода таких. Выпускает несколько смертельных карт в одном направлении. Карты способны оглушить цель. Альтернативный каст: Превращает в карту любой предмет. В карту можно превратить только предметы. При зарядке: Выпускает карты вокруг вас, с каждым уровнем зарядки количество выпускаемых карт повышается. diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/outerclothing/armor.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/outerclothing/armor.ftl index b44670be46..48a4e9917b 100644 --- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/outerclothing/armor.ftl +++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/clothing/outerclothing/armor.ftl @@ -17,10 +17,10 @@ ent-ClothingOuterArmorHeavyRed = красный тяжелый бронекос .desc = Тяжело бронированный костюм с красными вставками, способный защитить от высокого урона. .suffix = { "" } ent-ClothingOuterArmorMagusblue = синие доспехи магуса - .desc = Синий бронекостюм, обеспечивающий хорошую защиту. Не обладает свойствами волшебной мантии. + .desc = Синий бронекостюм, обеспечивающий хорошую защиту. Не обладает свойствами волшебной мантии, но позволяет кастовать заклинание электрической дуги. .suffix = { "" } ent-ClothingOuterArmorMagusred = красные доспехи магуса - .desc = Красный бронекостюм, обеспечивающий хорошую защиту. Не обладает свойствами волшебной мантии. + .desc = Красный бронекостюм, обеспечивающий хорошую защиту. Не обладает свойствами волшебной мантии, но позволяет кастовать заклинание огненного шара. .suffix = { "" } ent-ClothingOuterArmorRiot = противоударный костюм .desc = Бронежилет с тяжелыми накладками для защиты в ближнем бою, идеально подходит для борьбы с правонарушителями на станции. diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/armor.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/armor.yml index bdf7e9fbd2..5eca9c6b41 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/armor.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/armor.yml @@ -222,6 +222,10 @@ - type: ClothingSpeedModifier walkModifier: 1 sprintModifier: 1 + - type: Tag + tags: + - WhitelistChameleon + - BlueMagusArmor - type: entity parent: ClothingOuterArmorMagusblue @@ -233,8 +237,10 @@ sprite: Clothing/OuterClothing/Armor/magusred.rsi - type: Clothing sprite: Clothing/OuterClothing/Armor/magusred.rsi - - + - type: Tag + tags: + - WhitelistChameleon + - RedMagusArmor - type: entity parent: ClothingOuterBase diff --git a/Resources/Prototypes/Magic/white.yml b/Resources/Prototypes/Magic/white.yml index a2cae1c89c..59f4b17ebb 100644 --- a/Resources/Prototypes/Magic/white.yml +++ b/Resources/Prototypes/Magic/white.yml @@ -5,6 +5,9 @@ components: - type: Magic requiresClothes: true + clothingWhitelist: + tags: + - BlueMagusArmor - type: WorldTargetAction itemIconStyle: BigAction useDelay: 60 @@ -72,7 +75,10 @@ noSpawn: true components: - type: Magic - requiresClothes: false + requiresClothes: true + clothingWhitelist: + tags: + - RedMagusArmor - type: WorldTargetAction itemIconStyle: BigAction useDelay: 60 diff --git a/Resources/Prototypes/_White/tags.yml b/Resources/Prototypes/_White/tags.yml index cec579ce37..2cb343cffe 100644 --- a/Resources/Prototypes/_White/tags.yml +++ b/Resources/Prototypes/_White/tags.yml @@ -93,3 +93,9 @@ - type: Tag id: UnoCard + +- type: Tag + id: RedMagusArmor + +- type: Tag + id: BlueMagusArmor From 6a384246b886556032f825377d869ad963e723c7 Mon Sep 17 00:00:00 2001 From: Aviu00 Date: Tue, 6 Aug 2024 10:30:40 +0300 Subject: [PATCH 6/7] - tweak: Nerf cult shield. --- .../Prototypes/_White/Entities/Cult/Items/forge_craft.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/_White/Entities/Cult/Items/forge_craft.yml b/Resources/Prototypes/_White/Entities/Cult/Items/forge_craft.yml index da5ae47d31..c1a210e6da 100644 --- a/Resources/Prototypes/_White/Entities/Cult/Items/forge_craft.yml +++ b/Resources/Prototypes/_White/Entities/Cult/Items/forge_craft.yml @@ -23,12 +23,12 @@ thresholds: - trigger: !type:DamageTrigger - damage: 150 + damage: 100 behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] - type: Reflect - reflectProb: 0.5 + reflectProb: 0.25 reflects: - Energy - type: ReturnItemOnThrow From 27e7f25f7e0748c8d676678cb34322fb630f26c5 Mon Sep 17 00:00:00 2001 From: Aviu00 Date: Tue, 6 Aug 2024 10:32:32 +0300 Subject: [PATCH 7/7] - fix: No visible aghost. --- Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml b/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml index c7713a6628..5a30873846 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml @@ -101,6 +101,7 @@ - Biological - Inorganic - type: Invisibility + - type: ThermalBlocker - type: entity id: ActionAGhostShowSolar