82 lines
1.8 KiB
C#
82 lines
1.8 KiB
C#
using System.Text;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class TerritoryUI : MonoBehaviour
|
|
{
|
|
public Text playerPointsText;
|
|
public Text enemyPointsText;
|
|
public Text zoneStatusText;
|
|
public GameObject winPanel;
|
|
public Text winText;
|
|
|
|
private readonly StringBuilder zoneStatusBuilder = new StringBuilder();
|
|
|
|
public void UpdateZoneStatus(CaptureZone[] zones)
|
|
{
|
|
if (zoneStatusText == null || zones == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
zoneStatusBuilder.Length = 0;
|
|
for (int i = 0; i < zones.Length; i++)
|
|
{
|
|
CaptureZone zone = zones[i];
|
|
if (zone == null)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
int percent = Mathf.RoundToInt(zone.GetProgress() * 100f);
|
|
zoneStatusBuilder.Append(zone.zoneName)
|
|
.Append(": ")
|
|
.Append(zone.GetOwner())
|
|
.Append(", ")
|
|
.Append(percent)
|
|
.Append('%');
|
|
|
|
if (i < zones.Length - 1)
|
|
{
|
|
zoneStatusBuilder.AppendLine();
|
|
}
|
|
}
|
|
|
|
zoneStatusText.text = zoneStatusBuilder.ToString();
|
|
}
|
|
|
|
public void ShowGameOver(string message)
|
|
{
|
|
if (winPanel != null)
|
|
{
|
|
winPanel.SetActive(true);
|
|
}
|
|
|
|
if (winText != null)
|
|
{
|
|
winText.text = message;
|
|
}
|
|
}
|
|
|
|
public void HideGameOver()
|
|
{
|
|
if (winPanel != null)
|
|
{
|
|
winPanel.SetActive(false);
|
|
}
|
|
}
|
|
|
|
public void SetScore(int playerScore, int enemyScore)
|
|
{
|
|
if (playerPointsText != null)
|
|
{
|
|
playerPointsText.text = "Player Points: " + playerScore;
|
|
}
|
|
|
|
if (enemyPointsText != null)
|
|
{
|
|
enemyPointsText.text = "Enemy Points: " + enemyScore;
|
|
}
|
|
}
|
|
}
|