This commit is contained in:
ThereDrD0
2024-08-06 11:20:22 +03:00
committed by GitHub
16 changed files with 67 additions and 16 deletions

View File

@@ -1,7 +1,7 @@
using System.Linq; using System.Linq;
using System.Numerics; using System.Numerics;
using Content.Server._White.Cult;
using Content.Server._White.IncorporealSystem; using Content.Server._White.IncorporealSystem;
using Content.Server._White.Other.FastAndFuriousSystem;
using Content.Server._White.Wizard.Charging; using Content.Server._White.Wizard.Charging;
using Content.Server._White.Wizard.Magic.Amaterasu; using Content.Server._White.Wizard.Magic.Amaterasu;
using Content.Server._White.Wizard.Magic.Other; using Content.Server._White.Wizard.Magic.Other;
@@ -48,6 +48,7 @@ using Content.Shared.Physics;
using Content.Shared.Popups; using Content.Shared.Popups;
using Content.Shared.Revolutionary.Components; using Content.Shared.Revolutionary.Components;
using Content.Shared.StatusEffect; using Content.Shared.StatusEffect;
using Content.Shared.Stunnable;
using Content.Shared.Throwing; using Content.Shared.Throwing;
using Robust.Shared.Audio.Systems; using Robust.Shared.Audio.Systems;
using Robust.Shared.Map; using Robust.Shared.Map;
@@ -88,6 +89,7 @@ public sealed class WizardSpellsSystem : EntitySystem
[Dependency] private readonly MindSystem _mindSystem = default!; [Dependency] private readonly MindSystem _mindSystem = default!;
[Dependency] private readonly ActionContainerSystem _actionContainer = default!; [Dependency] private readonly ActionContainerSystem _actionContainer = default!;
[Dependency] private readonly ChargingSystem _charging = default!; [Dependency] private readonly ChargingSystem _charging = default!;
[Dependency] private readonly SharedStunSystem _stun = default!;
#endregion #endregion
@@ -191,6 +193,7 @@ public sealed class WizardSpellsSystem : EntitySystem
SwapComponent<RevolutionaryComponent>(uid, target); SwapComponent<RevolutionaryComponent>(uid, target);
SwapComponent<HeadRevolutionaryComponent>(uid, target); SwapComponent<HeadRevolutionaryComponent>(uid, target);
SwapComponent<GlobalAntagonistComponent>(uid, target); SwapComponent<GlobalAntagonistComponent>(uid, target);
SwapComponent<FastAndFuriousComponent>(uid, target);
_mindSystem.TransferTo(mindId, target, mind: mind); _mindSystem.TransferTo(mindId, target, mind: mind);
@@ -738,8 +741,8 @@ public sealed class WizardSpellsSystem : EntitySystem
return false; return false;
} }
_stun.TryKnockdown(msg.TargetUid, TimeSpan.FromSeconds(4), true);
_throwingSystem.TryThrow(msg.TargetUid, Transform(msg.Performer).Coordinates, 5f); _throwingSystem.TryThrow(msg.TargetUid, Transform(msg.Performer).Coordinates, 5f);
_standing.TryLieDown(msg.TargetUid);
return true; return true;
} }
@@ -936,6 +939,10 @@ public sealed class WizardSpellsSystem : EntitySystem
if (hasReqs) if (hasReqs)
return; return;
if (_inventory.TryGetSlotEntity(args.Performer, "outerClothing", out var entity) &&
comp.ClothingWhitelist?.IsValid(entity.Value) is true)
return;
args.Cancelled = true; args.Cancelled = true;
_popupSystem.PopupEntity(Loc.GetString("magic-component-missing-req"), args.Performer, args.Performer); _popupSystem.PopupEntity(Loc.GetString("magic-component-missing-req"), args.Performer, args.Performer);
} }

View File

@@ -554,6 +554,12 @@ public abstract partial class SharedGunSystem : EntitySystem
Dirty(gun); Dirty(gun);
} }
// WD EDIT // WD EDIT
public void SetFireMode(GunComponent gun, SelectiveFire available, SelectiveFire selected)
{
gun.AvailableModes = available;
gun.SelectedMode = selected;
}
public void SetUseKey(GunComponent gun, bool useKey) public void SetUseKey(GunComponent gun, bool useKey)
{ {
gun.UseKey = useKey; gun.UseKey = useKey;

View File

@@ -1,4 +1,5 @@
using Robust.Shared.GameStates; using Content.Shared.Whitelist;
using Robust.Shared.GameStates;
namespace Content.Shared._White.Wizard.Magic; namespace Content.Shared._White.Wizard.Magic;
@@ -10,4 +11,7 @@ public sealed partial class MagicComponent : Component
/// </summary> /// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite)] [DataField, ViewVariables(VVAccess.ReadWrite)]
public bool RequiresClothes; public bool RequiresClothes;
[DataField]
public EntityWhitelist? ClothingWhitelist;
} }

View File

@@ -103,6 +103,7 @@ public abstract class SharedSpellBladeSystem : EntitySystem
var gun = EnsureComp<GunComponent>(uid); var gun = EnsureComp<GunComponent>(uid);
_gun.SetUseKey(gun, false); _gun.SetUseKey(gun, false);
_gun.SetClumsyProof(gun, true); _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.SetSound(uid, new SoundPathSpecifier("/Audio/Weapons/Guns/Gunshots/Magic/staff_healing.ogg"));
_gun.SetFireRate(uid, 1.2f); _gun.SetFireRate(uid, 1.2f);
var ammoProvider = EnsureComp<BasicEntityAmmoProviderComponent>(uid); var ammoProvider = EnsureComp<BasicEntityAmmoProviderComponent>(uid);

View File

@@ -17,10 +17,10 @@ ent-ClothingOuterArmorHeavyRed = красный тяжелый бронекос
.desc = Тяжело бронированный костюм с красными вставками, способный защитить от высокого урона. .desc = Тяжело бронированный костюм с красными вставками, способный защитить от высокого урона.
.suffix = { "" } .suffix = { "" }
ent-ClothingOuterArmorMagusblue = синие доспехи магуса ent-ClothingOuterArmorMagusblue = синие доспехи магуса
.desc = Синий бронекостюм, обеспечивающий хорошую защиту. Не обладает свойствами волшебной мантии. .desc = Синий бронекостюм, обеспечивающий хорошую защиту. Не обладает свойствами волшебной мантии, но позволяет кастовать заклинание электрической дуги.
.suffix = { "" } .suffix = { "" }
ent-ClothingOuterArmorMagusred = красные доспехи магуса ent-ClothingOuterArmorMagusred = красные доспехи магуса
.desc = Красный бронекостюм, обеспечивающий хорошую защиту. Не обладает свойствами волшебной мантии. .desc = Красный бронекостюм, обеспечивающий хорошую защиту. Не обладает свойствами волшебной мантии, но позволяет кастовать заклинание огненного шара.
.suffix = { "" } .suffix = { "" }
ent-ClothingOuterArmorRiot = противоударный костюм ent-ClothingOuterArmorRiot = противоударный костюм
.desc = Бронежилет с тяжелыми накладками для защиты в ближнем бою, идеально подходит для борьбы с правонарушителями на станции. .desc = Бронежилет с тяжелыми накладками для защиты в ближнем бою, идеально подходит для борьбы с правонарушителями на станции.

View File

@@ -222,6 +222,10 @@
- type: ClothingSpeedModifier - type: ClothingSpeedModifier
walkModifier: 1 walkModifier: 1
sprintModifier: 1 sprintModifier: 1
- type: Tag
tags:
- WhitelistChameleon
- BlueMagusArmor
- type: entity - type: entity
parent: ClothingOuterArmorMagusblue parent: ClothingOuterArmorMagusblue
@@ -233,8 +237,10 @@
sprite: Clothing/OuterClothing/Armor/magusred.rsi sprite: Clothing/OuterClothing/Armor/magusred.rsi
- type: Clothing - type: Clothing
sprite: Clothing/OuterClothing/Armor/magusred.rsi sprite: Clothing/OuterClothing/Armor/magusred.rsi
- type: Tag
tags:
- WhitelistChameleon
- RedMagusArmor
- type: entity - type: entity
parent: ClothingOuterBase parent: ClothingOuterBase

View File

@@ -101,6 +101,7 @@
- Biological - Biological
- Inorganic - Inorganic
- type: Invisibility - type: Invisibility
- type: ThermalBlocker
- type: entity - type: entity
id: ActionAGhostShowSolar id: ActionAGhostShowSolar

View File

@@ -28,3 +28,5 @@
deleteOnDrop: true deleteOnDrop: true
- type: ToolForcePowered - type: ToolForcePowered
- type: DeleteOnChangelingRefund - type: DeleteOnChangelingRefund
- type: MeleeBlock
delay: 12.1

View File

@@ -82,6 +82,8 @@
- suitStorage - suitStorage
- type: DisarmMalus - type: DisarmMalus
- type: CultItem - type: CultItem
- type: MeleeBlock
delay: 12.1
- type: entity - type: entity
name: unholy halberd name: unholy halberd
@@ -123,3 +125,5 @@
- type: UseDelay - type: UseDelay
delay: 1 delay: 1
- type: CultItem - type: CultItem
- type: MeleeBlock
delay: 12.1

View File

@@ -34,6 +34,9 @@
soundGunshot: /Audio/Weapons/plasma_cutter.ogg soundGunshot: /Audio/Weapons/plasma_cutter.ogg
fireRate: 1 fireRate: 1
useKey: false useKey: false
selectedMode: FullAuto
availableModes:
- FullAuto
- type: RechargeBasicEntityAmmo - type: RechargeBasicEntityAmmo
rechargeCooldown: 0.5 rechargeCooldown: 0.5
rechargeSound: rechargeSound:
@@ -95,8 +98,6 @@
components: components:
- type: Sprite - type: Sprite
sprite: Objects/Weapons/Melee/crusher_glaive.rsi sprite: Objects/Weapons/Melee/crusher_glaive.rsi
- type: UseDelay
delay: 1.9
- type: LeechOnMarker - type: LeechOnMarker
leech: leech:
groups: groups:

View File

@@ -64,6 +64,8 @@
- Belt - Belt
- SuitStorage - SuitStorage
- type: DisarmMalus - type: DisarmMalus
- type: MeleeBlock
delay: 12.1
- type: entity - type: entity
name: energy katana name: energy katana
@@ -164,6 +166,8 @@
deconstructionTarget: null deconstructionTarget: null
graph: SwordGraph graph: SwordGraph
node: sword node: sword
- type: MeleeBlock
delay: 12.1
- type: entity - type: entity
name: cutlass name: cutlass
@@ -189,6 +193,8 @@
size: Large size: Large
sprite: Objects/Weapons/Melee/cutlass.rsi sprite: Objects/Weapons/Melee/cutlass.rsi
- type: DisarmMalus - type: DisarmMalus
- type: MeleeBlock
delay: 12.1
- type: entity - type: entity
name: The Throngler name: The Throngler

View File

@@ -5,6 +5,9 @@
components: components:
- type: Magic - type: Magic
requiresClothes: true requiresClothes: true
clothingWhitelist:
tags:
- BlueMagusArmor
- type: WorldTargetAction - type: WorldTargetAction
itemIconStyle: BigAction itemIconStyle: BigAction
useDelay: 60 useDelay: 60
@@ -29,7 +32,7 @@
prototype: ProjectileTeslaBall prototype: ProjectileTeslaBall
posData: !type:TargetCasterPos posData: !type:TargetCasterPos
- type: VariableUseDelay - type: VariableUseDelay
useDelay: 5 useDelay: 10
altUseDelay: 5 altUseDelay: 5
chargeUseDelay: 30 chargeUseDelay: 30
@@ -63,7 +66,7 @@
speech: "EL DRITCH!" speech: "EL DRITCH!"
- type: VariableUseDelay - type: VariableUseDelay
useDelay: 6 useDelay: 6
altUseDelay: 2 altUseDelay: 3
chargeUseDelay: 30 chargeUseDelay: 30
- type: entity - type: entity
@@ -73,6 +76,9 @@
components: components:
- type: Magic - type: Magic
requiresClothes: true requiresClothes: true
clothingWhitelist:
tags:
- RedMagusArmor
- type: WorldTargetAction - type: WorldTargetAction
itemIconStyle: BigAction itemIconStyle: BigAction
useDelay: 60 useDelay: 60
@@ -128,7 +134,7 @@
posData: !type:TargetCasterPos posData: !type:TargetCasterPos
speech: "SHIZO NERO!" speech: "SHIZO NERO!"
- type: VariableUseDelay - type: VariableUseDelay
useDelay: 4 useDelay: 5
altUseDelay: 1 altUseDelay: 1
chargeUseDelay: 30 chargeUseDelay: 30

View File

@@ -23,12 +23,12 @@
thresholds: thresholds:
- trigger: - trigger:
!type:DamageTrigger !type:DamageTrigger
damage: 150 damage: 100
behaviors: behaviors:
- !type:DoActsBehavior - !type:DoActsBehavior
acts: [ "Destruction" ] acts: [ "Destruction" ]
- type: Reflect - type: Reflect
reflectProb: 0.5 reflectProb: 0.25
reflects: reflects:
- Energy - Energy
- type: ReturnItemOnThrow - type: ReturnItemOnThrow

View File

@@ -341,6 +341,7 @@
sprite: White/Objects/Weapons/Chaplain/pitchfork.rsi sprite: White/Objects/Weapons/Chaplain/pitchfork.rsi
state: icon state: icon
- type: MeleeWeapon - type: MeleeWeapon
range: 2
wideAnimationRotation: -135 wideAnimationRotation: -135
damage: damage:
types: types:

View File

@@ -8,7 +8,7 @@
sprite: White/Objects/Weapons/Chaplain/hfrequency.rsi sprite: White/Objects/Weapons/Chaplain/hfrequency.rsi
- type: MeleeWeapon - type: MeleeWeapon
autoAttack: true autoAttack: true
attackRate: 4 attackRate: 5
damage: damage:
types: types:
Slash: 10 Slash: 10
@@ -39,7 +39,7 @@
wideAnimationRotation: 135 wideAnimationRotation: 135
damage: damage:
types: types:
Slash: 30 Slash: 35
- type: Clothing - type: Clothing
quickEquip: false quickEquip: false
sprite: White/Objects/Weapons/Chaplain/spellblade.rsi sprite: White/Objects/Weapons/Chaplain/spellblade.rsi

View File

@@ -93,3 +93,9 @@
- type: Tag - type: Tag
id: UnoCard id: UnoCard
- type: Tag
id: RedMagusArmor
- type: Tag
id: BlueMagusArmor