Фиксы (#439)

* - fix: Ebow.

* - fix: Cult deconversion.

* - add: Bola update.

* - fix: Error.

* - fix: Holoprojectors.

* - fix: Clumsy.
This commit is contained in:
Aviu00
2024-07-14 12:27:20 +00:00
committed by GitHub
parent e56340dd39
commit 9950864b8b
14 changed files with 104 additions and 80 deletions

View File

@@ -72,7 +72,8 @@ public sealed class CluwneSystem : EntitySystem
EnsureComp<AutoEmoteComponent>(uid); EnsureComp<AutoEmoteComponent>(uid);
_autoEmote.AddEmote(uid, "CluwneGiggle"); _autoEmote.AddEmote(uid, "CluwneGiggle");
EnsureComp<ClumsyComponent>(uid); var clumsy = EnsureComp<ClumsyComponent>(uid);
clumsy.ClumsyDamage = new DamageSpecifier(_prototypeManager.Index<DamageGroupPrototype>("Brute"), 12);
_popupSystem.PopupEntity(Loc.GetString("cluwne-transform", ("target", uid)), uid, PopupType.LargeCaution); _popupSystem.PopupEntity(Loc.GetString("cluwne-transform", ("target", uid)), uid, PopupType.LargeCaution);
_audio.PlayPvs(component.SpawnSound, uid); _audio.PlayPvs(component.SpawnSound, uid);

View File

@@ -10,6 +10,7 @@ using Content.Shared.ActionBlocker;
using Content.Shared.Body.Part; using Content.Shared.Body.Part;
using Content.Shared.CombatMode; using Content.Shared.CombatMode;
using Content.Shared.Damage.Systems; using Content.Shared.Damage.Systems;
using Content.Shared.Ensnaring.Components;
using Content.Shared.Explosion; using Content.Shared.Explosion;
using Content.Shared.Hands.Components; using Content.Shared.Hands.Components;
using Content.Shared.Hands.EntitySystems; using Content.Shared.Hands.EntitySystems;
@@ -73,7 +74,7 @@ namespace Content.Server.Hands.Systems
{ {
args.State = new HandsComponentState(hands); args.State = new HandsComponentState(hands);
} }
private void OnExploded(Entity<HandsComponent> ent, ref BeforeExplodeEvent args) private void OnExploded(Entity<HandsComponent> ent, ref BeforeExplodeEvent args)
{ {
if (ent.Comp.DisableExplosionRecursion) if (ent.Comp.DisableExplosionRecursion)
@@ -193,7 +194,8 @@ namespace Content.Server.Hands.Systems
return false; return false;
// WD EDIT START // WD EDIT START
if (HasComp<DamageOtherOnHitComponent>(throwEnt) && !_cultItem.CanThrow(player, throwEnt)) if ((HasComp<DamageOtherOnHitComponent>(throwEnt) || HasComp<EnsnaringComponent>(throwEnt)) &&
!_cultItem.CanThrow(player, throwEnt))
return false; return false;
// WD EDIT END // WD EDIT END

View File

@@ -5,6 +5,7 @@ using Content.Shared.Interaction;
using Content.Shared.Interaction.Events; using Content.Shared.Interaction.Events;
using Content.Shared.Popups; using Content.Shared.Popups;
using Content.Shared.Storage; using Content.Shared.Storage;
using Robust.Shared.Utility;
namespace Content.Server.Holosign; namespace Content.Server.Holosign;
@@ -42,7 +43,7 @@ public sealed class HolosignSystem : EntitySystem
private void OnUse(EntityUid uid, HolosignProjectorComponent comp, UseInHandEvent args) private void OnUse(EntityUid uid, HolosignProjectorComponent comp, UseInHandEvent args)
{ {
foreach (var sign in comp.Signs) foreach (var sign in comp.Signs.ShallowClone())
{ {
comp.Signs.Remove(sign); comp.Signs.Remove(sign);
QueueDel(sign); QueueDel(sign);
@@ -97,4 +98,4 @@ public sealed class HolosignSystem : EntitySystem
{ {
return component.Signs.Count; // wd edit return component.Signs.Count; // wd edit
} }
} }

View File

@@ -2,6 +2,7 @@ using System.Threading;
using Content.Server._White.Cult.GameRule; using Content.Server._White.Cult.GameRule;
using Content.Server.Popups; using Content.Server.Popups;
using Content.Server.Stunnable; using Content.Server.Stunnable;
using Content.Shared._White.Antag;
using Content.Shared.Chemistry.Reagent; using Content.Shared.Chemistry.Reagent;
using Content.Shared.IdentityManagement; using Content.Shared.IdentityManagement;
using Content.Shared.Jittering; using Content.Shared.Jittering;
@@ -55,6 +56,7 @@ public sealed partial class DeconvertCultist : ReagentEffect
entityManager.RemoveComponent<CultistComponent>(uid); entityManager.RemoveComponent<CultistComponent>(uid);
entityManager.RemoveComponent<PentagramComponent>(uid); entityManager.RemoveComponent<PentagramComponent>(uid);
entityManager.RemoveComponent<GlobalAntagonistComponent>(uid);
var cultRuleSystem = entityManager.System<CultRuleSystem>(); var cultRuleSystem = entityManager.System<CultRuleSystem>();
cultRuleSystem.RemoveObjectiveAndRole(uid); cultRuleSystem.RemoveObjectiveAndRole(uid);

View File

@@ -29,6 +29,8 @@ using Content.Shared.Actions;
using Content.Shared.Borer; using Content.Shared.Borer;
using Content.Shared.Cluwne; using Content.Shared.Cluwne;
using Content.Shared.Coordinates.Helpers; using Content.Shared.Coordinates.Helpers;
using Content.Shared.Damage;
using Content.Shared.Damage.Prototypes;
using Content.Shared.Hands.Components; using Content.Shared.Hands.Components;
using Content.Shared.Hands.EntitySystems; using Content.Shared.Hands.EntitySystems;
using Content.Shared.Humanoid; using Content.Shared.Humanoid;
@@ -49,6 +51,7 @@ using Robust.Shared.Audio.Systems;
using Robust.Shared.Map; using Robust.Shared.Map;
using Robust.Shared.Physics.Components; using Robust.Shared.Physics.Components;
using Robust.Shared.Player; using Robust.Shared.Player;
using Robust.Shared.Prototypes;
using Robust.Shared.Random; using Robust.Shared.Random;
namespace Content.Server._White.Wizard.Magic; namespace Content.Server._White.Wizard.Magic;
@@ -59,6 +62,7 @@ public sealed class WizardSpellsSystem : EntitySystem
[Dependency] private readonly IMapManager _mapManager = default!; [Dependency] private readonly IMapManager _mapManager = default!;
[Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
[Dependency] private readonly EntityLookupSystem _lookup = default!; [Dependency] private readonly EntityLookupSystem _lookup = default!;
[Dependency] private readonly GunSystem _gunSystem = default!; [Dependency] private readonly GunSystem _gunSystem = default!;
[Dependency] private readonly SharedTransformSystem _transformSystem = default!; [Dependency] private readonly SharedTransformSystem _transformSystem = default!;
@@ -310,7 +314,8 @@ public sealed class WizardSpellsSystem : EntitySystem
} }
SetOutfitCommand.SetOutfit(msg.Target, "ClownGear", EntityManager); SetOutfitCommand.SetOutfit(msg.Target, "ClownGear", EntityManager);
EnsureComp<ClumsyComponent>(msg.Target); var clumsy = EnsureComp<ClumsyComponent>(msg.Target);
clumsy.ClumsyDamage = new DamageSpecifier(_prototypeManager.Index<DamageGroupPrototype>("Brute"), 12);
Spawn("AdminInstantEffectSmoke3", Transform(msg.Target).Coordinates); Spawn("AdminInstantEffectSmoke3", Transform(msg.Target).Coordinates);

View File

@@ -0,0 +1,8 @@
namespace Content.Shared._White.Collision;
[RegisterComponent]
public sealed partial class BlurOnCollideComponent : Component
{
[DataField]
public float BlurTime = 20f;
}

View File

@@ -0,0 +1,38 @@
using Content.Shared.Eye.Blinding.Components;
using Content.Shared.Projectiles;
using Content.Shared.Standing.Systems;
using Content.Shared.StatusEffect;
using Content.Shared.Throwing;
namespace Content.Shared._White.Collision;
public sealed class BlurOnCollideSystem : EntitySystem
{
[Dependency] private readonly StatusEffectsSystem _statusEffects = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<BlurOnCollideComponent, ProjectileHitEvent>(OnProjectileHit);
SubscribeLocalEvent<BlurOnCollideComponent, ThrowDoHitEvent>(OnEntityHit);
}
private void OnEntityHit(Entity<BlurOnCollideComponent> ent, ref ThrowDoHitEvent args)
{
ApplyEffects(args.Target, ent.Comp);
}
private void OnProjectileHit(Entity<BlurOnCollideComponent> ent, ref ProjectileHitEvent args)
{
ApplyEffects(args.Target, ent.Comp);
}
private void ApplyEffects(EntityUid target, BlurOnCollideComponent component)
{
_statusEffects.TryAddStatusEffect<BlurryVisionComponent>(target,
"BlurryVision",
TimeSpan.FromSeconds(component.BlurTime),
true);
}
}

View File

@@ -0,0 +1,11 @@
using Content.Shared.Standing.Systems;
namespace Content.Shared._White.Collision;
[RegisterComponent]
public sealed partial class KnockdownOnCollideComponent : Component
{
[DataField]
public SharedStandingStateSystem.DropHeldItemsBehavior Behavior =
SharedStandingStateSystem.DropHeldItemsBehavior.NoDrop;
}

View File

@@ -1,15 +1,12 @@
using Content.Shared.Eye.Blinding.Components;
using Content.Shared.Projectiles; using Content.Shared.Projectiles;
using Content.Shared.Standing.Systems; using Content.Shared.Standing.Systems;
using Content.Shared.StatusEffect;
using Content.Shared.Throwing; using Content.Shared.Throwing;
namespace Content.Shared._White.Knockdown; namespace Content.Shared._White.Collision;
public sealed class KnockdownOnCollideSystem : EntitySystem public sealed class KnockdownOnCollideSystem : EntitySystem
{ {
[Dependency] private readonly SharedStandingStateSystem _standing = default!; [Dependency] private readonly SharedStandingStateSystem _standing = default!;
[Dependency] private readonly StatusEffectsSystem _statusEffects = default!;
public override void Initialize() public override void Initialize()
{ {
@@ -31,9 +28,6 @@ public sealed class KnockdownOnCollideSystem : EntitySystem
private void ApplyEffects(EntityUid target, KnockdownOnCollideComponent component) private void ApplyEffects(EntityUid target, KnockdownOnCollideComponent component)
{ {
_standing.TryLieDown(target, null, SharedStandingStateSystem.DropHeldItemsBehavior.AlwaysDrop); _standing.TryLieDown(target, null, component.Behavior);
if (component.UseBlur)
_statusEffects.TryAddStatusEffect<BlurryVisionComponent>(target, "BlurryVision", TimeSpan.FromSeconds(component.BlurTime), true);
} }
} }

View File

@@ -1,11 +0,0 @@
namespace Content.Shared._White.Knockdown;
[RegisterComponent]
public sealed partial class KnockdownOnCollideComponent : Component
{
[DataField]
public float BlurTime = 20f;
[DataField]
public bool UseBlur;
}

View File

@@ -22,11 +22,6 @@
parent: Holoprojector parent: Holoprojector
id: HoloprojectorEmpty id: HoloprojectorEmpty
suffix: Empty suffix: Empty
components:
- type: ItemSlots
slots:
cell_slot:
name: power-cell-slot-component-slot-name-default
- type: entity - type: entity
parent: Holoprojector parent: Holoprojector
@@ -56,11 +51,6 @@
parent: HolofanProjector parent: HolofanProjector
id: HolofanProjectorEmpty id: HolofanProjectorEmpty
suffix: Empty suffix: Empty
components:
- type: ItemSlots
slots:
cell_slot:
name: power-cell-slot-component-slot-name-default
- type: entity - type: entity
parent: Holoprojector parent: Holoprojector
@@ -84,11 +74,6 @@
parent: HoloprojectorField parent: HoloprojectorField
id: HoloprojectorFieldEmpty id: HoloprojectorFieldEmpty
suffix: Empty suffix: Empty
components:
- type: ItemSlots
slots:
cell_slot:
name: power-cell-slot-component-slot-name-default
- type: entity - type: entity
parent: Holoprojector parent: Holoprojector
@@ -112,8 +97,3 @@
parent: HoloprojectorSecurity parent: HoloprojectorSecurity
id: HoloprojectorSecurityEmpty id: HoloprojectorSecurityEmpty
suffix: Empty suffix: Empty
components:
- type: ItemSlots
slots:
cell_slot:
name: power-cell-slot-component-slot-name-default

View File

@@ -26,3 +26,6 @@
hard: false hard: false
mask: mask:
- Opaque - Opaque
- type: KnockdownOnCollide
behavior: AlwaysDrop
- type: BlurOnCollide

View File

@@ -34,4 +34,3 @@
True: { state: icon } True: { state: icon }
False: { state: empty } False: { state: empty }
- type: Appearance - type: Appearance
useBlur: true

View File

@@ -1,18 +1,9 @@
- type: entity - type: entity
name: bola name: bola
parent: BaseItem parent: BaseBola
id: Bola id: Bola
description: Linked together with some spare cuffs and metal. description: Linked together with some spare cuffs and metal.
components: components:
- type: Item
size: Normal
- type: Sprite
sprite: Objects/Weapons/Throwable/bola.rsi
state: icon
- type: EmitSoundOnThrow
sound: /Audio/Weapons/bolathrow.ogg
- type: EmitSoundOnLand
sound: /Audio/Effects/snap.ogg
- type: Construction - type: Construction
graph: Bola graph: Bola
node: bola node: bola
@@ -39,6 +30,25 @@
damage: damage:
types: types:
Blunt: 5 Blunt: 5
# WD added
- type: entity
name: bola
parent: BaseItem
abstract: true
id: BaseBola
description: Linked together with some spare cuffs and metal.
components:
- type: Item
size: Normal
- type: Sprite
sprite: Objects/Weapons/Throwable/bola.rsi
state: icon
- type: EmitSoundOnThrow
sound: /Audio/Weapons/bolathrow.ogg
- type: EmitSoundOnLand
sound: /Audio/Effects/snap.ogg
- type: Ensnaring - type: Ensnaring
freeTime: 2.0 freeTime: 2.0
breakoutTime: 3.5 #all bola should generally be fast to remove breakoutTime: 3.5 #all bola should generally be fast to remove
@@ -49,10 +59,8 @@
canMoveBreakout: true canMoveBreakout: true
- type: KnockdownOnCollide - type: KnockdownOnCollide
# WD added
- type: entity - type: entity
parent: Bola parent: BaseBola
id: CultBola id: CultBola
name: Bola name: Bola
description: Linked together with some spare cuffs and metal. description: Linked together with some spare cuffs and metal.
@@ -60,14 +68,12 @@
- type: Sprite - type: Sprite
sprite: White/Cult/bola.rsi sprite: White/Cult/bola.rsi
- type: Ensnaring - type: Ensnaring
freeTime: 2.0
breakoutTime: 3.5 #all bola should generally be fast to remove
walkSpeed: 0.5 walkSpeed: 0.5
sprintSpeed: 0.5 sprintSpeed: 0.5
canThrowTrigger: true - type: CultItem
- type: entity - type: entity
parent: Bola parent: BaseBola
id: EnergyBola id: EnergyBola
name: Bola name: Bola
description: Linked together with some spare cuffs and metal. description: Linked together with some spare cuffs and metal.
@@ -77,22 +83,7 @@
- type: Sprite - type: Sprite
sprite: White/Objects/Weapons/Throwable/energybola.rsi sprite: White/Objects/Weapons/Throwable/energybola.rsi
- type: Ensnaring - type: Ensnaring
freeTime: 1 walkSpeed: 0.6
breakoutTime: 2 sprintSpeed: 0.6
walkSpeed: 0.8
sprintSpeed: 0.8
staminaDamage: 33
- type: EmitSoundOnLand - type: EmitSoundOnLand
collection: sparks collection: sparks
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 10
behaviors:
- !type:PlaySoundBehavior
sound:
collection: EnergyMiss
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: KnockdownOnCollide