using System; using UnityEngine; public class TianziBillboradBossHead : MonoBehaviour { [SerializeField] RectTransform rectTransform; [SerializeField] ImageEx imgQuality; [SerializeField] ImageEx imgHeadIcon; [SerializeField] TextEx txtTime; private bool isTodayBoss = false; TianziBillboradManager model { get { return TianziBillboradManager.Instance; } } public void Display(int bossId) { if (!NPCConfig.HasKey(bossId)) return; NPCConfig npcConfig = NPCConfig.Get(bossId); int heroID = npcConfig.RelatedHeroID; if (!HeroConfig.HasKey(heroID)) return; var heroConfig = HeroConfig.Get(heroID); int skinID = heroConfig.SkinIDList[0]; if (!HeroSkinConfig.HasKey(skinID)) return; if (!model.TryGetBossConfig(model.DataMapID, model.todayLineID, out DungeonConfig dungeonConfig, out NPCLineupConfig npcLineupConfig, out NPCConfig npcConfigToday)) return; isTodayBoss = npcConfigToday.NPCID == bossId; // --- 设置尺寸 --- imgQuality.rectTransform.sizeDelta = isTodayBoss ? new Vector2(104, 104) : new Vector2(94, 94); rectTransform.sizeDelta = isTodayBoss ? new Vector2(104, 104) : new Vector2(94, 94); // --- 设置图像和状态 --- var heroSkinConfig = HeroSkinConfig.Get(skinID); imgQuality.SetSprite("heroheadBG" + heroConfig.Quality); imgQuality.gray = !isTodayBoss; var sprite = UILoader.LoadSprite("HeroHead", heroSkinConfig.SquareIcon); if (sprite == null) { // 内网未配置时 imgHeadIcon.SetSprite("herohead_default"); } else { imgHeadIcon.overrideSprite = sprite; } imgHeadIcon.gray = !isTodayBoss; txtTime.SetActive(isTodayBoss); if (isTodayBoss) { UpdateTimer(); } } public void UpdateTimer() { if (!isTodayBoss) return; DateTime endDay = TimeUtility.ServerNow.AddDays(1).Date; TimeSpan remainingTime = endDay - TimeUtility.ServerNow; int remainingSeconds = (int)remainingTime.TotalSeconds; if (remainingSeconds > 0) { string countdownText = TimeUtility.SecondsToHMS(remainingSeconds); txtTime.text = countdownText; } else { // 倒计时结束,隐藏文本 txtTime.SetActive(false); } } }