sega 116b9b3116 Рефакторинг Character.cs: приведение к SRP и вынос логики
Инкапсулированы методы появления и ухода персонажа
Инкапсулирована работа с аниматором
Работа с репликами вынесена в ScriptableObject
Логика MessageBox вынесена в отдельный класс
Переработан event bus персонажей
Сложность и призовой модуль вынесены в отдельные классы
Character.cs приведён к Single Responsibility Principle.
2026-08-13 16:19:56 +03:00

54 lines
1.1 KiB
C#

using PrizeSystem;
using UnityEngine;
namespace CharacterSystem
{
public class PrizeModule : MonoBehaviour
{
private Prize _prize;
public bool HasPrize { get; private set; }
public void SetPrize(Prize prize)
{
_prize = prize;
}
public void ResetModule()
{
HasPrize = true;
}
public Prize CheckPrize()
=> _prize;
public bool TryFetchPrize(out Prize prize)
{
if (HasPrize)
{
prize = _prize;
HasPrize = false;
return true;
}
prize = null;
return false;
}
public bool TryFetchIfTypeMatch<T>(out T castedPrize) where T : Prize
{
castedPrize = null;
if (HasPrize == false)
return false;
if (_prize is T casted)
{
castedPrize = casted;
HasPrize = false;
return true;
}
return false;
}
}
}