using System.Collections.Generic;
using Content.Server.GameObjects;
namespace Content.Server.Interfaces
{
///
/// Any component/entity that has behaviour linked to taking damage should implement this interface.
/// TODO: Don't know how to work around this currently, but due to how events work
/// you need to hook it up to the DamageableComponent via Initialize().
/// See DestructibleComponent.Initialize() for an example.
///
interface IOnDamageBehavior
{
///
/// Gets a list of all DamageThresholds this component/entity are interested in.
///
/// List of DamageThresholds to be added to DamageableComponent for watching.
List GetAllDamageThresholds();
///
/// Damage threshold passed event hookup.
///
/// Damageable component.
/// Damage threshold and whether it's passed in one way or another.
void OnDamageThresholdPassed(object obj, DamageThresholdPassedEventArgs e);
}
}