using System; using System.Collections.Generic; using System.Threading.Tasks; using ET; using FairyGUI; using UI.MatchingCompetition; using UnityEngine; namespace GFGGame { //搭配赛评选期间 class MatchingCompetitionUpLoadView : BaseWindow { private UI_MatchingCompetitionUpLoadUI _ui; private GameObject _sceneObject; private float countTimeSpeed = 0.001f; private bool isCountTime = false; public override void Dispose() { if (_sceneObject != null) { PrefabManager.Instance.Restore(_sceneObject); _sceneObject = null; } if (_ui != null) { _ui.Dispose(); } _ui = null; base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_MatchingCompetitionUpLoadUI.PACKAGE_NAME; _ui = UI_MatchingCompetitionUpLoadUI.Create(); this.viewCom = _ui.target; isReturnView = true; isfullScreen = true; _ui.m_BtnBack.onClick.Add(OnClickBtnBack); _ui.m_btnUploadWorks.onClick.Add(OnClickBtnUpload); _ui.m_btnShop.onClick.Add(OnClickBtnShop); _ui.m_btnMyWorks.onClick.Add(OnClickBtnMyWorks); _ui.m_btnRank.onClick.Add(OnClickBtnRank); _ui.m_btnLook.onClick.Add(OnClickBtnLook); _ui.m_btnExchage.onClick.Add(OnClickBtnExchange); _ui.m_ruleBtn.onClick.Add(MatchingCompetitionDataManager.Instance.OnClickBtnRule); } protected override void OnShown() { base.OnShown(); _ui.m_bg.url = ResPathUtil.GetBgImgPath("pxs_bj"); _ui.m_c1.selectedIndex = MatchingCompetitionDataManager.Instance.MatchingState; _ui.m_titleText.text = JudgingRoundOpenCfgArray.Instance.dataArray[MatchingCompetitionDataManager.Instance.MatchingCompetitionSeason - 1].Name; isCountTime = false; UpdateView(); UpdateHead(); UpdateDress(); Timers.inst.AddUpdate(UpdateTime); } protected override void OnHide() { if (_sceneObject != null) { PrefabManager.Instance.Restore(_sceneObject); _sceneObject = null; } Timers.inst.Remove(UpdateTime); Timers.inst.Remove(UpdateCountTime); base.OnHide(); } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.DOWNLOAD_FINISH,UpdateDress); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.DOWNLOAD_FINISH, UpdateDress); } private async void UpdateDress() { //if (MatchingOneDataManager.Instance.MathingDressDate.actionId != 0) { _ui.m_bg.visible = false; _ui.m_playerImage.visible = false; MatchingOneDataManager.Instance.itemGameObjs.Clear(); PhotographDataManager.Instance.itemGameObjs.Clear(); PhotographDataManager.Instance.dressUpObj?.Dispose(); PhotographDataManager.Instance.dressUpObj = new DressUpObj(); if (_sceneObject == null) { _sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("ScenePhotograph")); } PhotographSceneManager.Instance.sceneObject = _sceneObject; if(MatchingOneDataManager.Instance.DressUpBgID == 0) { PhotographSceneManager.Instance.AddBgItem(ItemCfgArray.Instance.GetCfg(180001)); } else { PhotographSceneManager.Instance.AddBgItem(ItemCfgArray.Instance.GetCfg(MatchingOneDataManager.Instance.DressUpBgID)); } PhotographSceneManager.Instance.AddBodyItem(); GameObject bodyParent = _sceneObject.transform.Find("Scene/Role").gameObject; PhotographDataManager.Instance.dressUpObj.setSceneObj(_sceneObject, false, true, bodyParent, false, null); PhotographDataManager.Instance.dressUpObj.PutOnDressUpData(MatchingOneDataManager.Instance.MathingDressDate); //对搭配赛特殊处理 for (int i = 0; i < MatchingOneDataManager.Instance.DressPropIdList.Count; i++) { if (MatchingOneDataManager.Instance.DressPropIdList[i] == MatchingOneDataManager.Instance.roleID) { continue; } else { ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(MatchingOneDataManager.Instance.DressPropIdList[i]); MatchingCompetitionDataManager.Instance.AddSceneItem(itemCfg, true); } } await Task.Delay(100); MatchingOneDataManager.Instance.InsertGameObjectList(); for (int i = 0; i < MatchingOneDataManager.Instance.TransformDataList.Count; i++) { TransformData itemdata = MatchingOneDataManager.Instance.TransformDataList[i]; GameObject itemGObj = MatchingOneDataManager.Instance.itemGameObjs[i]; MatchingOneDataManager.Instance.itemGameObjs[i].transform.position = itemdata.position; MatchingOneDataManager.Instance.itemGameObjs[i].transform.Rotate(itemGObj.transform.eulerAngles.x, itemGObj.transform.eulerAngles.y, itemdata.rotationZ); MatchingOneDataManager.Instance.itemGameObjs[i].transform.localScale = itemdata.scale; PhotographUtil.Instance.ChangeLayer(MatchingOneDataManager.Instance.itemGameObjs[i], i * PhotographDataManager.layerCount, "up"); } } //else //{ // _ui.m_bg.visible = true; // _ui.m_playerImage.visible = true; // _ui.m_playerImage.texture = MatchingOneDataManager.Instance.OneRoleInfo.Ntexture; //} } private void UpdateView() { _ui.m_countTime.fillAmount = 0; _ui.m_countTime.visible = false; long endTime = MatchingCompetitionDataManager.Instance.MatchingEndTimes; long curTime = TimeHelper.ServerNow(); if (endTime < curTime + 1) { if (MatchingCompetitionDataManager.Instance.MatchingState == 2) { PromptController.Instance.ShowFloatTextPrompt("评选时间已到!"); ViewManager.GoBackFrom(typeof(MatchingCompetitionUpLoadView).FullName); } return; } TimeUtil.FormattingTime(curTime, endTime, out int num, out string str); if (MatchingCompetitionDataManager.Instance.MatchingState == 2) { _ui.m_timeText.text = "评选剩余时间:" + TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime); } else { _ui.m_timeText.text = "结算剩余时间:" + TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime); } } private void UpdateHead() { RoleInfoManager.Instance.UpdateHead(_ui.m_playerHead.m_head, MatchingOneDataManager.Instance.OneRoleInfo.JudgingInfo.HeadItemId, MatchingOneDataManager.Instance.OneRoleInfo.JudgingInfo.HeadBorderItemId); _ui.m_playerHead.m_nameText.text = MatchingOneDataManager.Instance.OneRoleInfo.JudgingInfo.RoleName.ToString(); _ui.m_playerHead.m_countText.text = MatchingOneDataManager.Instance.OneRoleInfo.JudgingInfo.Score.ToString(); } private void UpdateTime(object param = null) { long endTime = MatchingCompetitionDataManager.Instance.MatchingEndTimes; long curTime = TimeHelper.ServerNow(); if (endTime < curTime + 1) { Timers.inst.Remove(UpdateTime); if (MatchingCompetitionDataManager.Instance.MatchingState == 2) { PromptController.Instance.ShowFloatTextPrompt("评选时间已到!"); ViewManager.GoBackFrom(typeof(MatchingCompetitionUpLoadView).FullName); } return; } TimeUtil.FormattingTime(curTime, endTime, out int num, out string str); if (MatchingCompetitionDataManager.Instance.MatchingState == 2) { _ui.m_timeText.text = "评选剩余时间:" + TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime); } else { _ui.m_timeText.text = "结算剩余时间:" + TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime); } } private void UpdateCountTime(object param = null) { if(_ui.m_countTime.fillAmount <=0) { _ui.m_countTime.fillAmount = 0; _ui.m_countTime.visible = false; isCountTime = false; Timers.inst.Remove(UpdateCountTime); } _ui.m_countTime.fillAmount -= countTimeSpeed; } private void OnClickBtnBack() { ViewManager.GoBackFrom(typeof(MatchingCompetitionUpLoadView).FullName); } private async void OnClickBtnUpload() { if(MatchingCompetitionDataManager.Instance.MatchingState == 3) { PromptController.Instance.ShowFloatTextPrompt("结算期间无法选择!"); return; } //先获取两个玩家信息 bool resulst = await MatchingCompetitionSproxy.ReqGetTwoPlayers(); if(resulst) { ViewManager.Show(); } } private void OnClickBtnShop() { ViewManager.Show(new object[] { ConstStoreTabId.STORE_GIFT_BAG, ConstStoreSubId.STORE_GIFT_BAG_ACTIVITY }); } private void OnClickBtnMyWorks() { ViewManager.Show(2); } private async void OnClickBtnRank() { bool result = await MatchingCompetitionSproxy.ReqCurrentRank(); if(result) { ViewManager.Show(); } else { PromptController.Instance.ShowFloatTextPrompt("暂无玩家上榜!"); } } private async void OnClickBtnExchange() { if (isCountTime) { PromptController.Instance.ShowFloatTextPrompt("刷新冷却中,请耐心等待!"); return; } isCountTime = true; _ui.m_countTime.visible = true; _ui.m_countTime.fillAmount = 1.0f; Timers.inst.AddUpdate(UpdateCountTime); //ViewManager.Show("刷新中..."); bool result = await MatchingCompetitionSproxy.ReqGetOnePlayers(); if (result) { if (_sceneObject != null) { PrefabManager.Instance.Restore(_sceneObject); _sceneObject = null; } //UpdateView(); UpdateHead(); UpdateDress(); //ViewManager.Hide(); } //ViewManager.Hide(); } private void OnClickBtnLook() { List AllIdList = new List(); foreach (var info in MatchingOneDataManager.Instance.OneRoleInfo.JudgingInfo.CollocationInfoList) { AllIdList.Add(info.ItemId); } MatchingCompetitionDataManager.Instance.DetailNtexture = MatchingOneDataManager.Instance.OneRoleInfo.Ntexture; ViewManager.Show(AllIdList); } } }