namespace MyCollections.Stats { public enum StatType { Attack, Defense, Health, Mana } public class Stats { private readonly StatsMediator mediator; private readonly PlayerController controller; public StatsMediator Mediator => mediator; public int Attack { get { Query query = new Query(StatType.Attack, controller.CurrentPlayerAttack); mediator.PerformQuery(this, query); return (int)query.value; } } public int Defense { get { Query query = new Query(StatType.Defense, controller.CurrentPlayerAttack); mediator.PerformQuery(this, query); return (int)query.value; } } public Stats(StatsMediator mediator, PlayerController controller) { this.mediator = mediator; this.controller = controller; } //Debugging purposes public override string ToString() => $"Attack: {Attack}, Defende: {Defense}"; } }