| | |
| | | using System; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using Cysharp.Threading.Tasks; |
| | | using DG.Tweening; |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | |
| | |
| | | /// </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; //引导或者领取任务奖励 |
| | |
| | | [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> |
| | | /// 初始化组件 |
| | |
| | | |
| | | autoBtn.AddListener(() => |
| | | { |
| | | if (!FuncOpen.Instance.IsFuncOpen(108, true)) |
| | | if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.AutoFight, true)) |
| | | { |
| | | return; |
| | | } |
| | |
| | | }); |
| | | |
| | | |
| | | monthCardBtn.AddListener(() => |
| | | { |
| | | InvestModel.Instance.BuyInvest(InvestModel.monthCardType); |
| | | }); |
| | | |
| | | |
| | | FirstChargeBtn.AddListener(() => |
| | | { |
| | |
| | | |
| | | blessLVBtn.AddListener(() => |
| | | { |
| | | if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.BlessLV, true)) |
| | | { |
| | | return; |
| | | } |
| | | UIManager.Instance.OpenWindow<BlessLVWin>(); |
| | | }); |
| | | |
| | |
| | | }); |
| | | |
| | | 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>(); |
| | | }); |
| | | } |
| | | |
| | | |
| | |
| | | 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() |
| | |
| | | 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(); |
| | | } |
| | | |
| | | |
| | |
| | | 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>(); |
| | | } |
| | |
| | | { |
| | | 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; |
| | | } |
| | | |
| | |
| | | |
| | | void RefreshRecharge() |
| | | { |
| | | monthCardBtn.SetActive(!InvestModel.Instance.IsInvested(InvestModel.monthCardType)); |
| | | //monthCardBtn.SetActive(!InvestModel.Instance.IsInvested(InvestModel.monthCardType)); |
| | | } |
| | | |
| | | |
| | |
| | | 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); |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | { |
| | | 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); |
| | |
| | | { |
| | | 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(); |
| | | } |
| | | } |
| | |
| | | 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); |
| | | } |
| | | } |
| | | |
| | |
| | | //【普通】关卡名字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) |
| | | { |
| | |
| | | |
| | | 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(); |
| | | } |
| | | } |
| | | |
| | |
| | | private void OnSecondEvent() |
| | | { |
| | | DisplayFirstChargeBtn(); |
| | | UpdateSendButton(); |
| | | } |
| | | } |
| | | |
| | | void OnUnLockHeroCountEvent() |
| | | { |
| | | DisplayCard(TeamType.Story); |
| | | } |
| | | |
| | | |
| | | void DisplayHorse() |
| | | { |
| | | if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Horse)) |
| | | { |
| | | horseBGImg.SetActive(true); |
| | | //equipShowSwitch;//当前配置的坐骑外观ID存储在(最大支持 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(); |
| | | } |
| | | } |
| | | |
| | | |