Main/System/PhantasmPavilion/PhantasmPavilionModelWin.cs
@@ -31,8 +31,10 @@
    [Header("按钮")]
    [SerializeField] PhantasmPavilionUnlockButton btnUnlock;
    [SerializeField] PhantasmPavilionUnlockButton btnUnlock1;
    [SerializeField] PhantasmPavilionPutOnButton btnPutOn1;
    [SerializeField] PhantasmPavilionPutOnButton btnPutOn2;
    [SerializeField] PhantasmPavilionPutOnButton btnPutOn3;
    [SerializeField] PhantasmPavilionAddStarButton btnAddStar;
    [SerializeField] TextEx txtRemainingTime1;
    [SerializeField] TextEx txtRemainingTime2;
@@ -210,16 +212,24 @@
    {
        PhantasmPavilionState state = manager.GetUnLockState(type, id);
        bool isCanStarAdd = manager.HasStarAddAttr(type, id);
        bool isUsing = manager.IsUsing(type, id);
        btnUnlock.SetActive(state != PhantasmPavilionState.Activated);
        bool hasLimitTimeShow = manager.TryGetLimitTimeShow(type, id, out int remainingSeconds);
        int unlockWay = manager.GetUnlockWay(type, id);
        btnUnlock.SetActive(state != PhantasmPavilionState.Activated && unlockWay == 2);
        btnUnlock1.SetActive(state != PhantasmPavilionState.Activated && unlockWay != 2);
        btnAddStar.SetActive(state == PhantasmPavilionState.Activated && isCanStarAdd);
        btnPutOn1.SetActive(state == PhantasmPavilionState.Activated && !isCanStarAdd && !isUsing);
        btnPutOn2.SetActive(state == PhantasmPavilionState.Activated && isCanStarAdd && !isUsing);
        btnPutOn2.SetActive(state == PhantasmPavilionState.Activated && isCanStarAdd);
        btnPutOn1.SetActive(state == PhantasmPavilionState.Activated && !isCanStarAdd && hasLimitTimeShow);
        btnPutOn3.SetActive(state == PhantasmPavilionState.Activated && !isCanStarAdd && !hasLimitTimeShow);
        btnUnlock1.Display(id);
        btnUnlock.Display(id);
        btnAddStar.Display(id);
        btnPutOn1.Display(id);
        btnPutOn2.Display(id);
        btnPutOn3.Display(id);
        UpdateTimer(type, id);
    }
@@ -279,31 +289,21 @@
    public void UpdateTimer(PhantasmPavilionType type, int id)
    {
        bool isUnlock = manager.IsUnlock(type, id);
        bool isLimitTime = manager.IsLimitTime(type, id);
        if (!isUnlock || !isLimitTime || !manager.TryGetInfo(type, id, out var info) || info.EndTime <= 0)
        bool hasLimitTimeShow = manager.TryGetLimitTimeShow(type, id, out int remainingSeconds);
        if (!hasLimitTimeShow)
        {
            txtRemainingTime1.SetActive(false);
            txtRemainingTime2.SetActive(false);
            return;
        }
        PhantasmPavilionState state = manager.GetUnLockState(type, id);
        bool isCanStarAdd = manager.HasStarAddAttr(type, id);
        DateTime endDateTime = TimeUtility.OriginalTime.AddSeconds(info.EndTime);
        TimeSpan remainingTime = endDateTime - TimeUtility.ServerNow;
        int remainingSeconds = (int)remainingTime.TotalSeconds;
        txtRemainingTime1.SetActive(state == PhantasmPavilionState.Activated && !isCanStarAdd && remainingSeconds > 0);
        txtRemainingTime2.SetActive(state == PhantasmPavilionState.Activated && isCanStarAdd && remainingSeconds > 0);
        txtRemainingTime1.SetActive(hasLimitTimeShow && !isCanStarAdd);
        txtRemainingTime2.SetActive(hasLimitTimeShow && isCanStarAdd);
        if (remainingSeconds > 0)
        {
            string countdownText = TimeUtility.SecondsToShortDHMS(remainingSeconds);
            txtRemainingTime1.text = Language.Get("PhantasmPavilion10", UIHelper.AppendColor(TextColType.DarkGreen, countdownText));
            txtRemainingTime2.text = Language.Get("PhantasmPavilion10", UIHelper.AppendColor(TextColType.DarkGreen, countdownText));
        }
    }
}