56 lines
1.6 KiB
C#
56 lines
1.6 KiB
C#
using System;
|
|
using JetBrains.Annotations;
|
|
using Robust.Shared.Analyzers;
|
|
using Robust.Shared.GameObjects;
|
|
|
|
namespace Content.Shared.Throwing
|
|
{
|
|
/// <summary>
|
|
/// Base class for all throw events.
|
|
/// </summary>
|
|
public abstract class ThrowEvent : HandledEntityEventArgs
|
|
{
|
|
/// <summary>
|
|
/// The entity that threw <see cref="Thrown"/>.
|
|
/// </summary>
|
|
public EntityUid? User { get; }
|
|
|
|
/// <summary>
|
|
/// The entity thrown by <see cref="User"/> that hit <see cref="Target"/>
|
|
/// </summary>
|
|
public EntityUid Thrown { get; }
|
|
|
|
/// <summary>
|
|
/// The entity hit with <see cref="Thrown"/> by <see cref="User"/>
|
|
/// </summary>
|
|
public EntityUid Target { get; }
|
|
|
|
public ThrowEvent(EntityUid? user, EntityUid thrown, EntityUid target)
|
|
{
|
|
User = user;
|
|
Thrown = thrown;
|
|
Target = target;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Raised directed on the target entity being hit by the thrown entity.
|
|
/// </summary>
|
|
public sealed class ThrowHitByEvent : ThrowEvent
|
|
{
|
|
public ThrowHitByEvent(EntityUid? user, EntityUid thrown, EntityUid target) : base(user, thrown, target)
|
|
{
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Raised directed on the thrown entity that hits another.
|
|
/// </summary>
|
|
public sealed class ThrowDoHitEvent : ThrowEvent
|
|
{
|
|
public ThrowDoHitEvent(EntityUid? user, EntityUid thrown, EntityUid target) : base(user, thrown, target)
|
|
{
|
|
}
|
|
}
|
|
}
|