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