/
HumanRV
/
rpg_proto
Обзор
Документация
Войти
/
HumanRV
/
rpg_proto
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Scripts/UI/HudController.cs
68 строк
2 KB
Leolan Magnus
attempt 1 skill system
03 май 2025, 21:57
03 май 2025, 21:57
9c0fcc2
Код
Авторство
О чём код?
using Godot; using System; public partial class UIController : Node { [Export] public Label LevelLabel { get; private set;} [Export] public Label CurrentXPLabel { get; private set;} [Export] public ProgressBar XpProgressBar { get; private set;} public override void _Ready() { LevelLabel = GetNode<Label>("LevelLabel"); CurrentXPLabel = GetNode<Label>("CurrentXPLabel"); XpProgressBar = GetNode<ProgressBar>("XpProgressBar"); PlayerGlobal.Stats.OnXPUpdated += OnXPUpdated; PlayerGlobal.Stats.OnLevelUpdated += OnLevelUpdated; PlayerGlobal.OnLoad += OnLoad; GD.Print("UI RDY!"); LevelLabel.Text = $"Level: {PlayerGlobal.Stats.Level}"; CurrentXPLabel.Text = $"CurrentXP: {PlayerGlobal.Stats.Level}"; XpProgressBar.ShowPercentage = false; } public override void _ExitTree() { PlayerGlobal.Stats.OnXPUpdated -= OnXPUpdated; PlayerGlobal.Stats.OnLevelUpdated -= OnLevelUpdated; PlayerGlobal.OnLoad -= OnLoad; } private void OnXPUpdated(int currentXP, int requiredXP) { XpProgressBar.Value = (float)currentXP/requiredXP * 100; CurrentXPLabel.Text = $"XP: {currentXP}"; } private void OnLevelUpdated(int level) { LevelLabel.Text = $"Level: {level}"; } private void OnLoad(StatsData data) { OnXPUpdated(data.CurrentXP, data.XPToNextLevel); OnLevelUpdated(data.Level); } //debug public override void _Input(InputEvent @event) { if (@event.IsActionPressed("debug_add_xp")) { GD.Print($"Added 306 XP!"); PlayerGlobal.Stats.AddXP(306); } if (@event.IsActionPressed("debug_save")) { GD.Print($"Saving!"); PlayerGlobal.Save(); } if (@event.IsActionPressed("debug_load")) { GD.Print($"Loading!"); PlayerGlobal.Load(); } if (@event.IsActionPressed("debug_method")) { GD.Print($"debug method called"); SkillTreeManager.Initialize(); } } }