mirror of
https://github.com/WWhiteDreamProject/wwdpublic.git
synced 2026-04-17 13:37:47 +03:00
Ports Blob from https://github.com/Goob-Station/Goob-Station/pull/975 that was ported from https://github.com/Rxup/space-station-14. Credit to VigersRay for original code, Roudenn and Rxup for maintaining and jorgun for the Goob port. --- - [X] Port https://github.com/Goob-Station/Goob-Station/pull/975; - [X] Port https://github.com/Goob-Station/Goob-Station/pull/1209; - [X] Port Blob related code from https://github.com/Goob-Station/Goob-Station/pull/1262; - [X] Port Blob related code from https://github.com/Goob-Station/Goob-Station/pull/1340; - [X] Port https://github.com/Goob-Station/Goob-Station/pull/1408; - [X] Port https://github.com/Goob-Station/Goob-Station/pull/1419; - [X] Port https://github.com/Goob-Station/Goob-Station/pull/1440; - [X] Port https://github.com/Goob-Station/Goob-Station/pull/1817; - [X] Port https://github.com/Goob-Station/Goob-Station/pull/2077; - [ ] ~Port https://github.com/Goob-Station/Goob-Station/pull/1916~; - [ ] ~Port https://github.com/Goob-Station/Goob-Station/pull/1917~; - [X] Port https://github.com/Goob-Station/Goob-Station/pull/2077; - [X] Port https://github.com/Goob-Station/Goob-Station/pull/2092; - [X] Port https://github.com/Goob-Station/Goob-Station/pull/2546; - [X] Port https://github.com/Rxup/space-station-14/pull/963; - [X] Port https://github.com/Rxup/space-station-14/pull/998; - [ ] ~Port https://github.com/Goob-Station/Goob-Station/pull/2563~. - [X] Enable Blob and Blob gamemode; - [X] Add `StationGlobConfig` to all stations; - [X] Use `AnnouncerSystem` in `BlobRuleSystem.cs`; - [X] Blob language and Hivemind (from https://github.com/Rxup/space-station-14/pull/176); - [x] Change CVars location; - [X] Add media. --- <details><summary><h1>Media</h1></summary> <p> https://youtu.be/-WtMQwRcmrU?si=su3An6RtiCTZg-DV </p> </details> --- 🆑 VigersRay, Roudenn, Rxup, vladospupuos, fishbait and Kyoth25f - add: Added a new antagonist: Blob --------- Co-authored-by: fishbait <gnesse@gmail.com> Co-authored-by: Fishbait <Fishbait@git.ml> Co-authored-by: Aiden <aiden@djkraz.com> Co-authored-by: beck-thompson <107373427+beck-thompson@users.noreply.github.com> Co-authored-by: lanse12 <cloudability.ez@gmail.com> Co-authored-by: BombasterDS <deniskaporoshok@gmail.com> Co-authored-by: Aviu00 <93730715+Aviu00@users.noreply.github.com> Co-authored-by: Piras314 <p1r4s@proton.me> Co-authored-by: shibe <95730644+shibechef@users.noreply.github.com> Co-authored-by: Ilya246 <57039557+Ilya246@users.noreply.github.com> Co-authored-by: JohnOakman <sremy2012@hotmail.fr> Co-authored-by: Fat Engineer Gaming <159075414+Fat-Engineer-Gaming@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Rouden <149893554+Roudenn@users.noreply.github.com>
105 lines
3.0 KiB
C#
105 lines
3.0 KiB
C#
using Content.Shared.Damage;
|
|
using Robust.Shared.Audio;
|
|
using Robust.Shared.GameStates;
|
|
using Robust.Shared.Physics.Dynamics;
|
|
using Robust.Shared.Prototypes;
|
|
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
|
|
|
|
namespace Content.Shared.Projectiles;
|
|
|
|
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
|
|
public sealed partial class ProjectileComponent : Component
|
|
{
|
|
/// <summary>
|
|
/// The angle of the fired projectile.
|
|
/// </summary>
|
|
[DataField, AutoNetworkedField]
|
|
public Angle Angle;
|
|
|
|
/// <summary>
|
|
/// The effect that appears when a projectile collides with an entity.
|
|
/// </summary>
|
|
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
|
public EntProtoId? ImpactEffect;
|
|
|
|
/// <summary>
|
|
/// User that shot this projectile.
|
|
/// </summary>
|
|
[DataField, AutoNetworkedField]
|
|
public EntityUid? Shooter;
|
|
|
|
/// <summary>
|
|
/// Weapon used to shoot.
|
|
/// </summary>
|
|
[DataField, AutoNetworkedField]
|
|
public EntityUid? Weapon;
|
|
|
|
/// <summary>
|
|
/// The projectile spawns inside the shooter most of the time, this prevents entities from shooting themselves.
|
|
/// </summary>
|
|
[DataField, AutoNetworkedField]
|
|
public bool IgnoreShooter = true;
|
|
|
|
/// <summary>
|
|
/// The amount of damage the projectile will do.
|
|
/// </summary>
|
|
[DataField(required: true)] [ViewVariables(VVAccess.ReadWrite)]
|
|
public DamageSpecifier Damage = new();
|
|
|
|
/// <summary>
|
|
/// If the projectile should be deleted on collision.
|
|
/// </summary>
|
|
[DataField]
|
|
public bool DeleteOnCollide = true;
|
|
|
|
/// <summary>
|
|
/// WWDP - If the projectile should change its Physics BodyStatus to OnGround on collision.
|
|
/// </summary>
|
|
[DataField]
|
|
public bool StopFlyingOnImpact;
|
|
|
|
/// <summary>
|
|
/// Ignore all damage resistances the target has.
|
|
/// </summary>
|
|
[DataField]
|
|
public bool IgnoreResistances = false;
|
|
|
|
/// <summary>
|
|
/// Get that juicy FPS hit sound.
|
|
/// </summary>
|
|
[DataField]
|
|
public SoundSpecifier? SoundHit;
|
|
|
|
/// <summary>
|
|
/// Force the projectiles sound to play rather than potentially playing the entity's sound.
|
|
/// </summary>
|
|
[DataField]
|
|
public bool ForceSound = false;
|
|
|
|
/// <summary>
|
|
/// Whether this projectile will only collide with entities if it was shot from a gun (if <see cref="Weapon"/> is not null).
|
|
/// </summary>
|
|
[DataField]
|
|
public bool OnlyCollideWhenShot = false;
|
|
|
|
/// <summary>
|
|
/// Whether this projectile has already damaged an entity.
|
|
/// </summary>
|
|
[DataField]
|
|
public bool DamagedEntity;
|
|
|
|
// Goobstation start
|
|
[DataField]
|
|
public bool Penetrate;
|
|
|
|
/// <summary>
|
|
/// Collision mask of what not to penetrate if <see cref="Penetrate"/> is true.
|
|
/// </summary>
|
|
[DataField(customTypeSerializer: typeof(FlagSerializer<CollisionMask>))]
|
|
public int NoPenetrateMask = 0;
|
|
|
|
[NonSerialized]
|
|
public List<EntityUid> IgnoredEntities = new();
|
|
// Goobstation end
|
|
}
|