42 lines
1.2 KiB
C#
42 lines
1.2 KiB
C#
using UnityEngine;
|
|
|
|
namespace DDD
|
|
{
|
|
public class GameLevelStateSo : ScriptableObject
|
|
{
|
|
public int Level = 1;
|
|
|
|
private int _lastLevel;
|
|
|
|
private void OnValidate()
|
|
{
|
|
if (Level != _lastLevel)
|
|
{
|
|
_lastLevel = Level;
|
|
var dirtyEvt = GameEvents.SmartVariablesDirtyEvent;
|
|
dirtyEvt.DomainFlags = SmartVariablesDomain.PlayerLevel;
|
|
EventBus.Broadcast(dirtyEvt);
|
|
}
|
|
}
|
|
|
|
public void SetLevel(int newLevel)
|
|
{
|
|
if (Level == newLevel) return;
|
|
Level = newLevel;
|
|
_lastLevel = Level;
|
|
var dirtyEvt = GameEvents.SmartVariablesDirtyEvent;
|
|
dirtyEvt.DomainFlags = SmartVariablesDomain.PlayerLevel;
|
|
EventBus.Broadcast(dirtyEvt);
|
|
}
|
|
|
|
public void IncreaseLevel(int delta = 1)
|
|
{
|
|
if (delta == 0) return;
|
|
Level += delta;
|
|
_lastLevel = Level;
|
|
var dirtyEvt = GameEvents.SmartVariablesDirtyEvent;
|
|
dirtyEvt.DomainFlags = SmartVariablesDomain.PlayerLevel;
|
|
EventBus.Broadcast(dirtyEvt);
|
|
}
|
|
}
|
|
} |