Axel Nordh пре 1 месец
родитељ
комит
8018a269c7

+ 5 - 0
Assets/Scripts/AgentGroup.cs

@@ -37,6 +37,11 @@ public class AgentGroup
     public int CombinedIntelligence { get; private set; }
     public int CombinedConstitution { get; private set; }
 
+    /// <summary>
+    /// Combined group health: sum of all members' individual health values (10 + Constitution each)
+    /// </summary>
+    public int CombinedHealth => members.Count > 0 ? members.Sum(a => a.Stats.Health) : 0;
+
     public int AvgStrength => members.Count > 0 ? (int)members.Average(a => a.Stats.Strength) : 0;
     public int AvgSpeed => members.Count > 0 ? (int)members.Average(a => a.Stats.Speed) : 0;
     public int AvgMagic => members.Count > 0 ? (int)members.Average(a => a.Stats.Magic) : 0;

+ 4 - 2
Assets/Scripts/AgentInfoPanel.cs

@@ -125,6 +125,7 @@ public class AgentInfoPanel : MonoBehaviour
             UpdateStatDisplay("DexterityBar", "DexterityValue", group.CombinedDexterity);
             UpdateStatDisplay("IntelligenceBar", "IntelligenceValue", group.CombinedIntelligence);
             UpdateStatDisplay("ConstitutionBar", "ConstitutionValue", group.CombinedConstitution);
+            UpdateStatDisplay("HealthBar", "HealthValue", group.CombinedHealth, maxValue: group.Size * 110);
             var totalLabel = panelRoot.Q<Label>("TotalStatsValue");
             if (totalLabel != null)
                 totalLabel.text = (group.CombinedStrength + group.CombinedSpeed + group.CombinedMagic
@@ -139,6 +140,7 @@ public class AgentInfoPanel : MonoBehaviour
             UpdateStatDisplay("DexterityBar", "DexterityValue", stats.Dexterity);
             UpdateStatDisplay("IntelligenceBar", "IntelligenceValue", stats.Intelligence);
             UpdateStatDisplay("ConstitutionBar", "ConstitutionValue", stats.Constitution);
+            UpdateStatDisplay("HealthBar", "HealthValue", stats.Health, maxValue: 110);
             var totalLabel = panelRoot.Q<Label>("TotalStatsValue");
             if (totalLabel != null)
                 totalLabel.text = stats.GetTotalStats().ToString();
@@ -164,13 +166,13 @@ public class AgentInfoPanel : MonoBehaviour
     /// <summary>
     /// Updates a stat display (progress bar and label)
     /// </summary>
-    private void UpdateStatDisplay(string barName, string labelName, int value)
+    private void UpdateStatDisplay(string barName, string labelName, int value, int maxValue = 100)
     {
         var bar = panelRoot.Q<ProgressBar>(barName);
         if (bar != null)
         {
+            bar.highValue = maxValue;
             bar.value = value;
-            bar.highValue = 100;
         }
 
         var label = panelRoot.Q<Label>(labelName);

+ 5 - 0
Assets/Scripts/AgentStats.cs

@@ -13,6 +13,11 @@ public class AgentStats
     public int Intelligence { get; private set; }
     public int Constitution { get; private set; }
 
+    /// <summary>
+    /// Health is derived from Constitution: 10 + Constitution (range: 11–110)
+    /// </summary>
+    public int Health => 10 + Constitution;
+
     private const int STAT_TOTAL_POOL = 60; // (6 stats * 100) / 10
     private const int NUM_STATS = 6;
     private const int MAX_STAT_VALUE = 100;

+ 5 - 0
Assets/UI/AgentInfoPanel.uxml

@@ -42,6 +42,11 @@
                     <ui:ProgressBar name="ConstitutionBar" class="stat-bar"/>
                     <ui:Label name="ConstitutionValue" text="0" class="stat-number"/>
                 </ui:VisualElement>
+                <ui:VisualElement class="stat-item">
+                    <ui:Label text="Health:" class="stat-name"/>
+                    <ui:ProgressBar name="HealthBar" high-value="110" class="stat-bar"/>
+                    <ui:Label name="HealthValue" text="0" class="stat-number"/>
+                </ui:VisualElement>
                 <ui:VisualElement class="total-stat">
                     <ui:Label text="Total Stats:" class="stat-name"/>
                     <ui:Label name="TotalStatsValue" text="0" class="total-stat-number"/>