From 89343a7a0909e5244a3b69c4db1294de4536243b Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期一, 15 十二月 2025 18:15:22 +0800
Subject: [PATCH] 262 幻境阁系统-客户端 新增仅适用武将解锁的头像和形象的红点移除规则
---
Main/System/Main/HomeWin.cs | 332 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 300 insertions(+), 32 deletions(-)
diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
index e3d2826..e26736f 100644
--- a/Main/System/Main/HomeWin.cs
+++ b/Main/System/Main/HomeWin.cs
@@ -1,6 +1,8 @@
using System;
using System.Collections;
using System.Collections.Generic;
+using Cysharp.Threading.Tasks;
+using DG.Tweening;
using UnityEngine;
using UnityEngine.UI;
@@ -9,11 +11,13 @@
/// </summary>
public class HomeWin : UIBase
{
-
//缁忛獙鍖�
[SerializeField] Text playerLevelText;
[SerializeField] SmoothSlider expSlider;
+ [SerializeField] UIEffectPlayer fullEffect;
+ [SerializeField] UIEffectPlayer headEffect;
[SerializeField] Button officialUpBtn;
+ [SerializeField] Transform officialTip;
//浠诲姟鍖�
[SerializeField] Button taskButton; //寮曞鎴栬�呴鍙栦换鍔″鍔�
@@ -52,9 +56,37 @@
[SerializeField] Text blessLVText;
[SerializeField] Button mailBtn;
- //鍏朵粬鍔熻兘鍏ュ彛
- [SerializeField] Button monthCardBtn;
+ //鍙充晶鍔熻兘
+ [SerializeField] Button funcColBtn;
+ [SerializeField] RightFuncInHome rightFuncInHome;
+
[SerializeField] Button FirstChargeBtn;
+ [SerializeField] Button osMainLevelBtn;
+ [SerializeField] Button osHeroCallBtn;
+ [SerializeField] Button osGalaBtn;
+
+ //鍧愰獞
+ [SerializeField] Image horseBGImg;
+ [SerializeField] Button horseBtn;
+ [SerializeField] HorseController horseImg;
+ [SerializeField] Text horseLVText;
+
+ //鑱婂ぉ
+ [SerializeField] Button chatBtn;
+ [SerializeField] Transform transFastChat;
+ [SerializeField] InputField inputFastChat;
+ [SerializeField] ButtonEx btnFastChatSend;
+ [SerializeField] ImageEx imgFastChatSend;
+ [SerializeField] TextEx txtFastChatSend;
+ [SerializeField] ButtonEx btnFastChatClose;
+ [SerializeField] ButtonEx btnChatWin;
+ [SerializeField] TextEx txtChatChannel;
+
+
+ [SerializeField] Transform transChatBulletView;
+ GameObject chatBulletViewPrefab;
+
+
/// <summary>
/// 鍒濆鍖栫粍浠�
@@ -72,7 +104,7 @@
autoBtn.AddListener(() =>
{
- if (!FuncOpen.Instance.IsFuncOpen(108, true))
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.AutoFight, true))
{
return;
}
@@ -80,10 +112,7 @@
});
- monthCardBtn.AddListener(() =>
- {
- InvestModel.Instance.BuyInvest(InvestModel.monthCardType);
- });
+
FirstChargeBtn.AddListener(() =>
{
@@ -92,6 +121,10 @@
blessLVBtn.AddListener(() =>
{
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.BlessLV, true))
+ {
+ return;
+ }
UIManager.Instance.OpenWindow<BlessLVWin>();
});
@@ -108,6 +141,68 @@
});
restBtn.AddListener(GotoRest);
+ funcColBtn.AddListener(() =>
+ {
+ rightFuncInHome.ShowFuncCol(true);
+ });
+
+ horseBtn.AddListener(OpenHorse);
+
+ chatBtn.SetListener(() =>
+ {
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Chat, true))
+ return;
+
+ transFastChat.SetActive(true);
+ chatBtn.SetActive(false);
+ UpdateChat(ChatManager.Instance.nowChatTab);
+
+ });
+ btnFastChatClose.SetListener(() =>
+ {
+ transFastChat.SetActive(false);
+ chatBtn.SetActive(true);
+ });
+ btnChatWin.SetListener(() =>
+ {
+ transFastChat.SetActive(false);
+ chatBtn.SetActive(true);
+ UIManager.Instance.OpenWindow<ChatWin>();
+ });
+
+ btnFastChatSend.SetListener(() =>
+ {
+ // 濡傛灉鍦ㄨ亰澶╄緭鍏ョ晫闈㈡棤杈撳叆鏂囧瓧鐐瑰嚮鍙戦�侊紝鍒欏叧闂亰澶╄緭鍏ョ晫闈�
+ if (string.IsNullOrEmpty(inputFastChat.text))
+ {
+ transFastChat.SetActive(false);
+ chatBtn.SetActive(true);
+ return;
+ }
+
+ if (!ChatManager.Instance.CheckChatLimit(inputFastChat.text, out int errorCode))
+ {
+ ChatManager.Instance.ShowChatErrorTip(errorCode);
+ return;
+ }
+ ChatManager.Instance.SendChatInfo(ChatManager.Instance.nowChatChannel, inputFastChat.text);
+ ChatManager.Instance.AddChatChannelSendTime(ChatManager.Instance.nowChatChannel, TimeUtility.AllSeconds);
+ UpdateSendButton();
+ inputFastChat.text = string.Empty;
+ });
+
+ osMainLevelBtn.AddListener(() =>
+ {
+ UIManager.Instance.OpenWindow<OSMainLevelBaseWin>();
+ });
+ osHeroCallBtn.AddListener(() =>
+ {
+ UIManager.Instance.OpenWindow<OSHeroCallBaseWin>();
+ });
+ osGalaBtn.AddListener(() =>
+ {
+ UIManager.Instance.OpenWindow<OSGalaBaseWin>();
+ });
}
@@ -124,6 +219,16 @@
DisplayLevel();
DisplayRestState();
+ funcColBtn.SetActive(FuncOpen.Instance.IsFuncOpen(GeneralDefine.mainRightFuncOpenFuncID));
+ officialTip.SetActive(OfficialRankManager.Instance.CanOfficialLVUP());
+
+ DisplayHorse();
+
+ DisplayChatBulletView();
+ chatBtn.SetActive(true);
+ transFastChat.SetActive(false);
+ inputFastChat.characterLimit = ChatManager.Instance.characterLimit;
+ UpdateSendButton();
}
protected override void OnPreOpen()
@@ -138,11 +243,22 @@
FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChange;
FirstChargeManager.Instance.OnUpdateFirstChargeInfo += OnUpdateFirstChargeInfo;
GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
+ HeroUIManager.Instance.OnUnLockHeroCountEvent += OnUnLockHeroCountEvent;
+ OfficialRankManager.Instance.OnOfficialCanLVUpEvent += OnOfficialCanLVUpEvent;
+ FirstChargeManager.Instance.OnFirstChargeTaskUpdateEvent += OnFirstChargeTaskUpdateEvent;
+ OfficialRankManager.Instance.RealmMissionRefreshEvent += OnOfficialCanLVUpEvent;
+ HorseManager.Instance.OnHorseUpdateEvent += DisplayHorse;
+ ChatManager.Instance.OnChatTabChangeEvent += OnChatTabChangeEvent;
+ GuildManager.Instance.EnterOrQuitGuildEvent += EnterOrQuitGuildEvent;
+ TimeMgr.Instance.OnDayEvent += OnDayEvent;
Display();
DisplayFirstChargeBtn();
+ DisplayOSActivity();
// var battleWin = UIManager.Instance.OpenWindow<BattleWin>();
// battleWin.SetBattleField(BattleManager.Instance.storyBattleField);
+
+ DelayPlayMusic().Forget();
}
@@ -159,21 +275,86 @@
FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChange;
FirstChargeManager.Instance.OnUpdateFirstChargeInfo -= OnUpdateFirstChargeInfo;
GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
+ HeroUIManager.Instance.OnUnLockHeroCountEvent -= OnUnLockHeroCountEvent;
+ OfficialRankManager.Instance.OnOfficialCanLVUpEvent -= OnOfficialCanLVUpEvent;
+ FirstChargeManager.Instance.OnFirstChargeTaskUpdateEvent -= OnFirstChargeTaskUpdateEvent;
+ OfficialRankManager.Instance.RealmMissionRefreshEvent -= OnOfficialCanLVUpEvent;
+ HorseManager.Instance.OnHorseUpdateEvent -= DisplayHorse;
+ ChatManager.Instance.OnChatTabChangeEvent -= OnChatTabChangeEvent;
+ GuildManager.Instance.EnterOrQuitGuildEvent -= EnterOrQuitGuildEvent;
+ TimeMgr.Instance.OnDayEvent -= OnDayEvent;
// 鍏抽棴鐨勬椂鍊欐妸鎴樻枟鐣岄潰涔熺粰鍏充簡 铏界劧鏄湪澶栭潰寮�鐨�
UIManager.Instance.CloseWindow<BattleWin>();
}
+ private void UpdateSendButton()
+ {
+ bool isCanSend = ChatManager.Instance.IsCanSend(ChatManager.Instance.nowChatChannel, out int remainingSeconds);
+ btnFastChatSend.interactable = isCanSend;
+ imgFastChatSend.gray = !isCanSend;
+ txtFastChatSend.text = isCanSend ? Language.Get("Chat11") : Language.Get("Chat14", remainingSeconds);
+ txtFastChatSend.colorType = isCanSend ? TextColType.NavyBrown : TextColType.LightWhite;
+ }
+
+
+
+ private void EnterOrQuitGuildEvent(bool obj)
+ {
+ if (!obj)
+ {
+ UpdateChat(ChatManager.Instance.nowChatTab);
+ }
+ }
+
+ private void OnChatTabChangeEvent(ChatTab tab)
+ {
+ UpdateChat(tab);
+ }
+
+ void UpdateChat(ChatTab tab)
+ {
+ txtChatChannel.text = ChatManager.Instance.GetChatTabName(tab);
+ }
+
+ void DisplayChatBulletView()
+ {
+ if (chatBulletViewPrefab == null)
+ {
+ chatBulletViewPrefab = UIUtility.CreateWidget("ChatBulletView", "ChatBulletView");
+ }
+ chatBulletViewPrefab.transform.SetParentEx(transChatBulletView.transform, Vector3.zero, Quaternion.identity, Vector3.one);
+ // 鏂板锛氱‘淇� ChatBulletView 缁勪欢鍚敤
+ // var chatBulletView = chatBulletViewPrefab.GetComponent<ChatBulletView>();
+ // if (chatBulletView != null)
+ // {
+ // chatBulletView.enabled = true;
+ // }
+ }
+
+ void OnOfficialCanLVUpEvent()
+ {
+ officialTip.SetActive(OfficialRankManager.Instance.CanOfficialLVUP());
+ }
+
+ async UniTask DelayPlayMusic()
+ {
+ await UniTask.Delay(1200);
+ if (!SoundPlayer.Instance.IsPlayBackGroundMuisic())
+ SoundPlayer.Instance.PlayBackGroundMusic(38);
+ }
+
+
private void OnClickEnterBoss()
{
- BattleField battleField = BattleManager.Instance.GetBattleFieldByMapID(2); //BOSS鎴樻枟
+ // BattleField battleField = BattleManager.Instance.GetBattleFieldByMapID(2); //BOSS鎴樻枟
- if (null != battleField)
- {
- FullScreenBattleWin fsBattleWin = UIManager.Instance.OpenWindow<FullScreenBattleWin>();
- fsBattleWin.SetBattleField(battleField);
- return;
- }
+ // if (null != battleField)
+ // {
+ // StoryBossBattleWin fsBattleWin = UIManager.Instance.OpenWindow<StoryBossBattleWin>();
+ // fsBattleWin.SetBattleField(battleField);
+ // return;
+ // }
UIManager.Instance.OpenWindow<MainBossEnterWin>();
}
@@ -192,12 +373,21 @@
{
lastLV = PlayerDatas.Instance.baseData.LV;
lvUPEffect.Play();
+ fullEffect.Play(closePMA: true);
+ headEffect.Stop();
}
playerLevelText.text = PlayerDatas.Instance.baseData.LV.ToString();
break;
case PlayerDataType.ExAttr1:
case PlayerDataType.ExAttr2:
DisplayLevel();
+ break;
+
+ case PlayerDataType.RealmLevel:
+ OnOfficialCanLVUpEvent();
+ break;
+ case PlayerDataType.EquipShowSwitch:
+ DisplayHorse();
break;
}
@@ -206,7 +396,7 @@
void RefreshRecharge()
{
- monthCardBtn.SetActive(!InvestModel.Instance.IsInvested(InvestModel.monthCardType));
+ //monthCardBtn.SetActive(!InvestModel.Instance.IsInvested(InvestModel.monthCardType));
}
@@ -237,15 +427,21 @@
private void UpdatePlayerInfo()
{
playerLevelText.text = PlayerDatas.Instance.baseData.LV.ToString();
- ShowExp();
+ headEffect.transform.localPosition = new Vector3(400 * expSlider.value - 200 - 24, 0, 0);
+ ShowExp(false);
}
- void ShowExp()
+ void ShowExp(bool showEffect = true)
{
var lvConfig = PlayerLVConfig.Get(PlayerDatas.Instance.baseData.LV);
expSlider.value = (float)PlayerDatas.Instance.baseData.curExp / lvConfig.EXP;
expSlider.Text.text = PlayerDatas.Instance.baseData.curExp + "/" + PlayerLVConfig.Get(PlayerDatas.Instance.baseData.LV).EXP;
+ if (showEffect)
+ {
+ headEffect.transform.DOLocalMove(new Vector3(400 * expSlider.value - 200 - 24, 0, 0), 0.5f);
+ headEffect.Play(closePMA: true);
+ }
}
@@ -260,6 +456,11 @@
{
taskButton.SetActive(true);
var taskConfig = TaskConfig.Get(task.TaskID);
+ if (taskConfig == null)
+ {
+ Debug.LogError("鎵句笉鍒颁换鍔� " + task.TaskID);
+ return;
+ }
taskText.text = taskConfig.TaskDescribe;
taskNumText.text = string.Format("({0}/{1})", task.CurValue, taskConfig.NeedValue);
taskNumText.color = task.CurValue >= taskConfig.NeedValue ? UIHelper.GetUIColor(TextColType.NavyYellow) : UIHelper.GetUIColor(TextColType.Red);
@@ -271,7 +472,9 @@
{
taskEffect.Stop();
}
- awardIcon.SetOrgSprite(ItemConfig.Get(taskConfig.AwardItemList[0][0]).IconKey);
+ var config = ItemConfig.Get(taskConfig.AwardItemList[0][0]);
+ awardIcon.SetOrgSprite(ItemConfig.Get(taskConfig.AwardItemList[0][0]).IconKey, GeneralDefine.itemIconDict.ContainsKey(config.Type) ? GeneralDefine.itemIconDict[config.Type] : "icon");
+
awardCnt.text = taskConfig.AwardItemList[0][1].ToString();
}
}
@@ -285,21 +488,22 @@
getReward.RewardType = 66;
getReward.DataEx = (uint)TaskManager.Instance.mainTask.TaskID;
GameNetSystem.Instance.SendInfo(getReward);
+ return;
}
- else
- {
- //鏍规嵁浠诲姟绫诲瀷寮曞
- }
+
+ TaskManager.Instance.ClickTask();
}
void DisplayCard(TeamType teamType)
{
if (teamType != TeamType.Story)
return;
+ var team = TeamManager.Instance.GetTeam(teamType);
+ var heros = team.GetHerosOnTeam();
//鏄剧ず鍗$墝
for (int i = 0; i < heroFightingCardCells.Length; i++)
{
- heroFightingCardCells[i].Display(i);
+ heroFightingCardCells[i].Display(i, heros);
}
}
@@ -341,7 +545,7 @@
//銆愭櫘閫氥�戝叧鍗″悕瀛�1-6
levelName.text = Language.Get("mainui7", chapterConfig.Level, chapterConfig.ChapterName, chapterID, levelNum);
- bool canChallengeBoss = AutoFightModel.Instance.CanChallengeBoss();
+ bool canChallengeBoss = MainLevelManager.Instance.CanChallengeBoss();
//BOSS
if (canChallengeBoss)
{
@@ -400,24 +604,43 @@
private void DisplayFirstChargeBtn()
{
- bool isFirstChargeFuncOpen = FuncOpen.Instance.IsFuncOpen(FirstChargeManager.FuncID);
- if (FirstChargeManager.Instance.IsAllFirstChargeRewardsClaimed() &&
- FirstChargeManager.Instance.IsNextDayAfterAllClaimed())
+ bool isFuncOpen = FirstChargeManager.Instance.IsFuncOpen();
+ bool isAllHave = FirstChargeManager.Instance.IsAllFirstChargeRewardsClaimed();
+ bool isNextDay = FirstChargeManager.Instance.IsNextDayAfterAllClaimed();
+
+ if (isAllHave && isNextDay)
{
FirstChargeBtn.SetActive(false);
}
else
{
- FirstChargeBtn.SetActive(isFirstChargeFuncOpen);
+ FirstChargeBtn.SetActive(isFuncOpen);
}
+ }
+
+
+
+
+ private void OnFirstChargeTaskUpdateEvent()
+ {
+ DisplayFirstChargeBtn();
}
private void OnFuncStateChange(int funcId)
{
- if (funcId == FirstChargeManager.FuncID)
+ if (funcId == GeneralDefine.mainRightFuncOpenFuncID)
{
- DisplayFirstChargeBtn();
+ funcColBtn.SetActive(FuncOpen.Instance.IsFuncOpen(GeneralDefine.mainRightFuncOpenFuncID));
+ }
+ else if (funcId == (int)FuncOpenEnum.Horse)
+ {
+ DisplayHorse();
+ }
+ else if (funcId == (int)FuncOpenEnum.OSMainLevl || funcId == (int)FuncOpenEnum.OSHeroCall
+ || funcId == (int)FuncOpenEnum.OSGala)
+ {
+ DisplayOSActivity();
}
}
@@ -429,5 +652,50 @@
private void OnSecondEvent()
{
DisplayFirstChargeBtn();
+ UpdateSendButton();
}
-}
\ No newline at end of file
+
+ void OnUnLockHeroCountEvent()
+ {
+ DisplayCard(TeamType.Story);
+ }
+
+
+ void DisplayHorse()
+ {
+ if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Horse))
+ {
+ horseBGImg.SetActive(true);
+ //equipShowSwitch;//褰撳墠閰嶇疆鐨勫潗楠戝瑙侷D瀛樺偍鍦紙鏈�澶ф敮鎸� 1~999锛�
+ var skinConfig = HorseSkinConfig.Get(HorseManager.Instance.GetUsingHorseSkinID(true));
+ horseImg.Create(skinConfig.SkinID, 0, 0.6f);
+ horseLVText.text = Language.Get("Horse8", HorseManager.Instance.classLV, HorseManager.Instance.horseLV);
+ }
+ else
+ {
+ horseBGImg.SetActive(false);
+ }
+ }
+
+ void OpenHorse()
+ {
+ if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Horse, true))
+ {
+ UIManager.Instance.OpenWindow<HorseWin>();
+ }
+ }
+
+ void DisplayOSActivity()
+ {
+ osMainLevelBtn.SetActive(OSActivityManager.Instance.IsOpened(3));
+ osHeroCallBtn.SetActive(OSActivityManager.Instance.IsOpened(4));
+ osGalaBtn.SetActive(OSActivityManager.Instance.IsOpenedOSGala());
+ }
+
+ void OnDayEvent()
+ {
+ DisplayOSActivity();
+ }
+}
+
+
--
Gitblit v1.8.0