Фиксы (#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);
_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);
_audio.PlayPvs(component.SpawnSound, uid);

View File

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

View File

@@ -5,6 +5,7 @@ using Content.Shared.Interaction;
using Content.Shared.Interaction.Events;
using Content.Shared.Popups;
using Content.Shared.Storage;
using Robust.Shared.Utility;
namespace Content.Server.Holosign;
@@ -42,7 +43,7 @@ public sealed class HolosignSystem : EntitySystem
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);
QueueDel(sign);
@@ -97,4 +98,4 @@ public sealed class HolosignSystem : EntitySystem
{
return component.Signs.Count; // wd edit
}
}
}

View File

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

View File

@@ -29,6 +29,8 @@ using Content.Shared.Actions;
using Content.Shared.Borer;
using Content.Shared.Cluwne;
using Content.Shared.Coordinates.Helpers;
using Content.Shared.Damage;
using Content.Shared.Damage.Prototypes;
using Content.Shared.Hands.Components;
using Content.Shared.Hands.EntitySystems;
using Content.Shared.Humanoid;
@@ -49,6 +51,7 @@ using Robust.Shared.Audio.Systems;
using Robust.Shared.Map;
using Robust.Shared.Physics.Components;
using Robust.Shared.Player;
using Robust.Shared.Prototypes;
using Robust.Shared.Random;
namespace Content.Server._White.Wizard.Magic;
@@ -59,6 +62,7 @@ public sealed class WizardSpellsSystem : EntitySystem
[Dependency] private readonly IMapManager _mapManager = default!;
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
[Dependency] private readonly EntityLookupSystem _lookup = default!;
[Dependency] private readonly GunSystem _gunSystem = default!;
[Dependency] private readonly SharedTransformSystem _transformSystem = default!;
@@ -310,7 +314,8 @@ public sealed class WizardSpellsSystem : EntitySystem
}
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);

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

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

View File

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

View File

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

View File

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