Player/Damage/DamageInfo.Static.cs
namespace Opium;
public partial class DamageInfo
{
/// <summary>
/// Creates a generic DamageInfo struct.
/// </summary>
public static DamageInfo Generic( float damage, GameObject attacker = null, GameObject inflictor = null, params string[] tags )
{
return new DamageInfo
{
Damage = damage,
Attacker = attacker,
Inflictor = inflictor,
Position = attacker.IsValid() ? attacker.WorldPosition : default,
Tags = tags
};
}
/// <summary>
/// Creates a DamageInfo struct assuming it's bullet damage.
/// </summary>
public static DamageInfo Bullet( float damage, GameObject attacker, GameObject inflictor = null, Hitbox hitbox = null )
{
if ( !inflictor.IsValid() ) inflictor = attacker;
return new DamageInfo
{
Damage = damage,
Attacker = attacker,
Inflictor = inflictor,
Position = attacker.IsValid() ? attacker.Transform.Position : Vector3.Zero,
Hitbox = hitbox,
Tags = new[] { "bullet" }
};
}
}