using Chickensoft.Collections; using Godot; namespace GameJamDungeon { [GlobalClass] public partial class PlayerStatInfo : Resource, ICharacterStats { [Export] public double CurrentHP { get => _currentHP.Value; set => _currentHP.OnNext(value); } [Export] public double MaximumHP { get => _maximumHP.Value; set => _maximumHP.OnNext(value); } [Export] public int CurrentVT { get => _currentVT.Value; set => _currentVT.OnNext(value); } [Export] public int MaximumVT { get => _maximumVT.Value; set => _maximumVT.OnNext(value); } [Export] public int CurrentLevel { get => _currentLevel.Value; set => _currentLevel.OnNext(value); } [Export] public int CurrentEXP { get => _currentExp.Value; set => _currentExp.OnNext(value); } [Export] public int EXPToNextLevel { get => _expToNextLevel.Value; set => _expToNextLevel.OnNext(value); } [Export] public int CurrentAttack { get => _currentAttack.Value; set => _currentAttack.OnNext(value); } [Export] public int MaxAttack { get => _maxAttack.Value; set => _maxAttack.OnNext(value); } [Export] public int CurrentDefense { get => _currentDefense.Value; set => _currentDefense.OnNext(value); } [Export] public int MaxDefense { get => _maxDefense.Value; set => _maxDefense.OnNext(value); } [Export] public int BonusAttack { get => _bonusAttack.Value; set => _bonusAttack.OnNext(value); } [Export] public int BonusDefense { get => _bonusDefense.Value; set => _bonusDefense.OnNext(value); } [Export] public double Luck { get => _luck.Value; set => _luck.OnNext(value); } // AutoProp backing data private readonly AutoProp _currentHP = new AutoProp(0); private readonly AutoProp _maximumHP = new AutoProp(0); private readonly AutoProp _currentVT = new AutoProp(0); private readonly AutoProp _maximumVT = new AutoProp(0); private readonly AutoProp _currentExp = new AutoProp(0); private readonly AutoProp _expToNextLevel = new AutoProp(0); private readonly AutoProp _currentLevel = new AutoProp(0); private readonly AutoProp _currentAttack = new AutoProp(0); private readonly AutoProp _currentDefense = new AutoProp(0); private readonly AutoProp _maxAttack = new AutoProp(0); private readonly AutoProp _maxDefense = new AutoProp(0); private readonly AutoProp _bonusAttack = new AutoProp(0); private readonly AutoProp _bonusDefense = new AutoProp(0); private readonly AutoProp _luck = new AutoProp(0.0); } }