Files
GameJamDungeon/Zennysoft.Game.Ma/src/Components/LuckComponent.cs
2026-02-16 03:30:45 -08:00

31 lines
702 B
C#

using Chickensoft.Collections;
using System;
using Zennysoft.Ma.Adapter;
namespace Zennysoft.Game.Ma;
public class LuckComponent : ILuckComponent
{
public IAutoProp<int> Luck => _luck;
public int InitialLuck { get; }
private readonly AutoProp<int> _luck;
private readonly int _initialValue;
public LuckComponent(int initialLuck)
{
InitialLuck = initialLuck;
_luck = new AutoProp<int>(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));
}