| Main/System/PhantasmPavilion/PhantasmPavilionFaceWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/PhantasmPavilion/PhantasmPavilionManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/PhantasmPavilion/PhantasmPavilionModelWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/PhantasmPavilion/PhantasmPavilionTilteWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Main/System/PhantasmPavilion/PhantasmPavilionFaceWin.cs
@@ -53,8 +53,10 @@ [Header("按钮")] [SerializeField] PhantasmPavilionUnlockButton btnUnlock; [SerializeField] PhantasmPavilionUnlockButton btnUnlock1; [SerializeField] PhantasmPavilionPutOnButton btnPutOn1; [SerializeField] PhantasmPavilionPutOnButton btnPutOn2; [SerializeField] PhantasmPavilionPutOnButton btnPutOn3; [SerializeField] PhantasmPavilionAddStarButton btnAddStar; [SerializeField] TextEx txtRemainingTime1; @@ -324,17 +326,24 @@ { PhantasmPavilionState state = manager.GetUnLockState(type, id); bool isCanStarAdd = manager.HasStarAddAttr(type, id); bool hasLimitTimeShow = manager.TryGetLimitTimeShow(type, id, out int remainingSeconds); int unlockWay = manager.GetUnlockWay(type, id); btnUnlock.SetActive(state != PhantasmPavilionState.Activated); 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); 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); } @@ -419,30 +428,22 @@ 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)); } } } Main/System/PhantasmPavilion/PhantasmPavilionManager.cs
@@ -382,6 +382,23 @@ return a.CompareTo(b); } public bool TryGetLimitTimeShow(PhantasmPavilionType type, int id, out int remainingSeconds) { remainingSeconds = 0; if (!Has(type, id)) return false; if (!IsLimitTime(type, id)) return false; if (!IsUnlock(type, id)) return false; if (!TryGetInfo(type, id, out var info)) return false; DateTime endDateTime = TimeUtility.GetTime(info.EndTime); TimeSpan remainingTime = endDateTime - TimeUtility.ServerNow; remainingSeconds = (int)remainingTime.TotalSeconds; return remainingSeconds > 0; } // 除道具解锁外,其他方式暂默认永久 // 是否有时效 true 有时间限制 false 永久(无时间限制) public bool IsLimitTime(PhantasmPavilionType type, int id) 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)); } } } Main/System/PhantasmPavilion/PhantasmPavilionTilteWin.cs
@@ -30,11 +30,14 @@ [Header("按钮")] [SerializeField] PhantasmPavilionUnlockButton btnUnlock; [SerializeField] PhantasmPavilionUnlockButton btnUnlock1; [SerializeField] PhantasmPavilionPutOnButton btnPutOn1; [SerializeField] PhantasmPavilionPutOnButton btnPutOn2; [SerializeField] PhantasmPavilionPutOnButton btnPutOn3; [SerializeField] PhantasmPavilionAddStarButton btnAddStar; [SerializeField] ButtonEx btnTakeOff1; [SerializeField] ButtonEx btnTakeOff2; [SerializeField] ButtonEx btnTakeOff3; [SerializeField] TextEx txtRemainingTime1; [SerializeField] TextEx txtRemainingTime2; @@ -45,6 +48,7 @@ base.InitComponent(); btnTakeOff1.AddListener(() => { manager.SendOPPack(PhantasmPavilionType.Title, PhantasmPavilionOperation.Remove, (uint)manager.selectId); }); btnTakeOff2.AddListener(() => { manager.SendOPPack(PhantasmPavilionType.Title, PhantasmPavilionOperation.Remove, (uint)manager.selectId); }); btnTakeOff3.AddListener(() => { manager.SendOPPack(PhantasmPavilionType.Title, PhantasmPavilionOperation.Remove, (uint)manager.selectId); }); btnTabType1.AddListener(() => { SelectTeamFunc(PhantasmPavilionType.Title, 0); }); btnTabType2.AddListener(() => { SelectTeamFunc(PhantasmPavilionType.Title, 1); }); btnAllAdd.AddListener(() => { AttributeManager.Instance.OpenTotalAttributeWin(manager.GetTotalAttr()); }); @@ -195,17 +199,26 @@ PhantasmPavilionState state = manager.GetUnLockState(type, id); bool isCanStarAdd = manager.HasStarAddAttr(type, id); bool isUsing = manager.IsUsing(type, id); btnUnlock.SetActive(state != PhantasmPavilionState.Activated); btnAddStar.SetActive(state == PhantasmPavilionState.Activated && isCanStarAdd); btnPutOn1.SetActive(state == PhantasmPavilionState.Activated && !isCanStarAdd && !isUsing); btnPutOn2.SetActive(state == PhantasmPavilionState.Activated && isCanStarAdd && !isUsing); btnTakeOff1.SetActive(state == PhantasmPavilionState.Activated && !isCanStarAdd && isUsing); btnTakeOff2.SetActive(state == PhantasmPavilionState.Activated && isCanStarAdd && isUsing); 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); btnPutOn2.SetActive(state == PhantasmPavilionState.Activated && isCanStarAdd && !isUsing); btnPutOn1.SetActive(state == PhantasmPavilionState.Activated && !isCanStarAdd && !isUsing && hasLimitTimeShow); btnPutOn3.SetActive(state == PhantasmPavilionState.Activated && !isCanStarAdd && !isUsing && !hasLimitTimeShow); btnTakeOff2.SetActive(state == PhantasmPavilionState.Activated && isCanStarAdd && isUsing); btnTakeOff1.SetActive(state == PhantasmPavilionState.Activated && !isCanStarAdd && isUsing && hasLimitTimeShow); btnTakeOff3.SetActive(state == PhantasmPavilionState.Activated && isCanStarAdd && isUsing && !hasLimitTimeShow); btnUnlock.Display(id); btnUnlock1.Display(id); btnAddStar.Display(id); btnPutOn1.Display(id); btnPutOn2.Display(id); btnPutOn3.Display(id); UpdateTimer(type, id); } @@ -270,30 +283,22 @@ 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)); } } }