using UnityEngine;
namespace RR.Common.Interfaces
{
public interface IRecallable
{
///
/// Метод для возвращения объекта к владельцу.
/// Для возвращения желательно иметь на объекте
/// owner или аналогичный атрибут
///
public void Recall();
}
public interface IPickable
{
///
/// Метод для подбора объекта игроком.
/// Привязывает снаряд к точке привязки на игроке.
///
/// Новый владелец объекта
/// Опциональная точка привязки. При передаче, объект будет привязан на нее
/// bool - получилось ли поднять объект
public bool TryPickup(GameObject newOwner, Transform optionalAttachPoint = null);
}
public interface IDamageable
{
void TakeDamage(float amount);
void Heal(float amount);
void Die();
}
}
namespace RR.Game2D.Core.Managers.Interfaces
{
public interface ILauchable
{
///
/// Метод для запуска объекта как снаряд
///
/// Направление запуска
/// Скорость запуска
/// Владелец
public void Launch(Vector2 direction, float speed, GameObject thrower);
}
public interface IBouncy
{
///
/// Метод для просчета отскоков.
///
/// Коллизия, с которой столкнулся объект
/// bool - произошел ли отскок
public bool TryBounce(Collision2D collision);
}
}