using Chickensoft.Collections; using System; using Zennysoft.Ma.Adapter; namespace Zennysoft.Game.Ma; public class LuckComponent : ILuckComponent { public IAutoProp Luck => _luck; public int InitialLuck { get; } private readonly AutoProp _luck; private readonly int _initialValue; public LuckComponent(int initialLuck) { InitialLuck = initialLuck; _luck = new AutoProp(initialLuck); _initialValue = initialLuck; } public void Reset() { _luck.OnNext(_initialValue); } public void IncreaseLuck(int value) => _luck.OnNext(_luck.Value + value); public void DecreaseLuck(int value) => _luck.OnNext(Godot.Mathf.Max(_luck.Value - value, 0)); }