From c4f5404211ef654944d5615e9055c714441f8234 Mon Sep 17 00:00:00 2001 From: Matheus Date: Sun, 9 Nov 2025 20:16:40 -0300 Subject: desgosto MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Este commit marca minha desistência oficial do projeto. Minha preocupação em seguir um tutorial, adicionando minhas próprias features sem se importar com o design da aplicação como um todo resultou em um código maior que o necessário e difícil de manter. Toda vez que eu me forço a trabalhar no jogo, me sinto extremamente desmotivado e enojado. Os próximos commits serão para terminar o jogo para a apresentação. Eu planejo fazer um novo roguelike durante minhas férias da faculade, sem prazos, sem a limitação de usar todos os pilares da programação orientada a objetos e com planejamento minimamente decente. O projeto como um todo não foi um desperdício de tempo. Não só me ensinou o que não fazer, como também será um ótimo alimento para o copilot e outros LLMs. - Matheus Ferreira Guedes. --- scripts/Utils/Stats.cs | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 scripts/Utils/Stats.cs (limited to 'scripts/Utils/Stats.cs') diff --git a/scripts/Utils/Stats.cs b/scripts/Utils/Stats.cs new file mode 100644 index 0000000..d3c4aa3 --- /dev/null +++ b/scripts/Utils/Stats.cs @@ -0,0 +1,52 @@ +using Godot; +using Godot.Collections; +using TheLegendOfGustav.Utils; + +namespace TheLegendOfGustav.Utils; + +public partial class Stats : Node +{ + public static Stats Instance { get; set; } + + public string PlayerName { get; set; } + public int MaxFloor { get; set; } = 0; + + public int EnemiesKilled { get; set; } = 0; + + public int DamageTaken { get; set; } = 0; + + public override void _Ready() + { + base._Ready(); + Instance = this; + + SignalBus.Instance.DungeonFloorChanged += OnFloorChange; + } + + public void Clear() + { + PlayerName = ""; + MaxFloor = 0; + EnemiesKilled = 0; + DamageTaken = 0; + } + + void OnFloorChange(int floor) + { + if (floor > MaxFloor) + { + MaxFloor = floor; + } + } + + public Dictionary Serialize() + { + return new() + { + {"jogador", PlayerName}, + {"andar_mais_fundo", MaxFloor}, + {"inimigos_mortos", EnemiesKilled}, + {"dano_tomado", DamageTaken} + }; + } +} \ No newline at end of file -- cgit v1.2.3