mmorpg2d/Assets/Script/ResistanceUI.cs
2025-08-19 14:19:44 +05:30

98 lines
2.6 KiB
C#

using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class ResistanceUI : MonoBehaviour
{
[Header("UI References")]
public TextMeshProUGUI resistanceText;
public Slider physicalResistanceSlider;
public Slider magicalResistanceSlider;
public TextMeshProUGUI shieldStatusText;
public Image shieldStatusIcon;
[Header("Target Enemy")]
public enemyScript targetEnemy;
void Start()
{
// Initialize sliders
if (physicalResistanceSlider != null)
{
physicalResistanceSlider.minValue = 0;
physicalResistanceSlider.maxValue = 100;
}
if (magicalResistanceSlider != null)
{
magicalResistanceSlider.minValue = 0;
magicalResistanceSlider.maxValue = 100;
}
}
void Update()
{
if (targetEnemy != null)
{
UpdateResistanceDisplay();
}
}
void UpdateResistanceDisplay()
{
// Update text
if (resistanceText != null)
{
resistanceText.text = $"Resistance: {targetEnemy.GetResistanceInfo()}";
}
// Update sliders
if (physicalResistanceSlider != null)
{
physicalResistanceSlider.value = targetEnemy.physicalResistance;
}
if (magicalResistanceSlider != null)
{
magicalResistanceSlider.value = targetEnemy.magicalResistance;
}
// Update shield status
if (shieldStatusText != null)
{
string shieldStatus = targetEnemy.IsShieldActive() ? "Shield Active" : "Shield Broken";
shieldStatusText.text = shieldStatus;
}
if (shieldStatusIcon != null)
{
Color shieldColor = targetEnemy.IsShieldActive() ? Color.cyan : Color.gray;
shieldStatusIcon.color = shieldColor;
}
}
public void SetTargetEnemy(enemyScript enemy)
{
targetEnemy = enemy;
}
public void ClearTarget()
{
targetEnemy = null;
if (resistanceText != null)
resistanceText.text = "No Target";
if (physicalResistanceSlider != null)
physicalResistanceSlider.value = 0;
if (magicalResistanceSlider != null)
magicalResistanceSlider.value = 0;
if (shieldStatusText != null)
shieldStatusText.text = "No Target";
if (shieldStatusIcon != null)
shieldStatusIcon.color = Color.gray;
}
}