using FairyGUI; using System.Collections; using System.Collections.Generic; using ET; using UI.FieldWork; using UI.CommonGame; namespace GFGGame { class FieldWorkLevelInfoView : BaseWindow { private UI_FieldWorkLevelInfoUI _ui; private int _levelID; private int _type; private List _bonusList = new List(); public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); _ui = UI_FieldWorkLevelInfoUI.Create(); this.viewCom = _ui.target; this.viewCom.Center(); this.modal = true; viewAnimationType = EnumViewAnimationType.ZOOM_CENTER; _ui.m_listBonus.itemRenderer = UpdateBonusItem; _ui.m_cardList.itemRenderer = RenderListCardItem; _ui.m_btnStart.onClick.Add(OnClickBtnStart); _ui.m_btnSkip.target.onClick.Add(OnClickBtnSkip); } protected override void OnShown() { base.OnShown(); _levelID = (int)(viewData as object[])[0]; CimbingTowerLevelCfg levelCfg = CimbingTowerLevelCfgArray.Instance.GetCfg(_levelID); _type = levelCfg.scoreType; FieldWorkDataManager.Instance.ThemeList[0] = _type; FieldWorkDataManager.Instance.ThemeList[1] = _type; FieldWorkDataManager.Instance.ThemeList[2] = _type; FieldWorkDataManager.Instance.targetWinScore = levelCfg.ClearanceScore; FieldWorkDataManager.Instance.SetDataScoreType(); InstanceZonesDataManager.FightScene = ConstInstanceZonesType.FieldWork; FieldWorkDataManager.Instance.CurFightIndex = 0; UpDressdate(); UpdateView(); Timers.inst.AddUpdate(CheckGuide); } protected override void OnHide() { base.OnHide(); } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.FieldWork_StateCHANGE, UpdateView); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.AddEventListener(ConstMessage.FieldWork_StateCHANGE, UpdateView); } private void UpdateView() { CimbingTowerLevelCfg levelCfg = CimbingTowerLevelCfgArray.Instance.GetCfg(_levelID); _ui.m_txtTargetName.text = RoleDataManager.roleName; _ui.m_loaderHead.url = ResPathUtil.GetNpcHeadPath("self"); _ui.m_txtHighestScore.text = FieldWorkDataManager.Instance.GetHeihtScore(_levelID); _ui.m_txtTitle.text = levelCfg.name; _ui.m_cardList.numItems = 3; //只有首通奖励 bool once = true; if(once) { _bonusList = ItemUtil.CreateItemDataList(levelCfg.WeekBonusOnceArr); _ui.m_listBonus.numItems = _bonusList.Count; } else { _ui.m_listBonus.numItems = 0; } } public void UpDressdate() { for (int i = 0; i < FieldWorkDataManager.Instance.ThemeList.Count; i++) { int scoreType = FieldWorkDataManager.Instance.ThemeList[i]; FightData roleData = FieldWorkDataManager.Instance.DressupList[i]; roleData.leagueSkillScore = FieldWorkDataManager.Instance.GetAllSkillScore(scoreType); FightDataManager.Instance.SetItemScoreList(roleData); ArenaDataManager.Instance.SetMineFightAttr(roleData, scoreType); ScoreSystemData.Instance.SetEquipScoresWithPartId(roleData); } } private void UpdateBonusItem(int index, GObject item) { ItemData itemData = _bonusList[index] as ItemData; UI_ListRewardItem listItem = UI_ListRewardItem.Proxy(item); ItemCfg cfg = ItemCfgArray.Instance.GetCfg(itemData.id); listItem.m_txtName.text = cfg.name; listItem.m_txtOwner.text = string.Format("已拥有:{0}", ItemDataManager.GetItemNum(itemData.id)); if (item.data == null) { item.data = new ItemView(listItem.m_comItem as GComponent); } (item.data as ItemView).SetData(itemData); //(item.data as ItemView).ShowTxtCount = false; //List bonusOnceData = StoryBonusDataCache.GetBonusData(_levelID).bonusOnce; //(item.data as ItemView).ImgShouTongVisable = false;//!InstanceZonesDataManager.CheckLevelPass(_levelID) && index < bonusOnceData.Count; UI_ListRewardItem.ProxyEnd(); } private void RenderListTagItem(int index, GObject obj) { UI_ComTag item = UI_ComTag.Proxy(obj); StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(_levelID); StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID); string tag = fightCfg.needTagsArr[index]; int tagType = TagCfgArray.Instance.GetCfg(tag).type; item.m_txtTag.text = tag; item.m_loaTag.url = ResPathUtil.GetCommonGameResPath("fzd_bqbq_" + tagType); UI_ComTag.ProxyEnd(); } private void RenderListCardItem(int index, GObject obj) { UI_ComCard item = UI_ComCard.Proxy(obj); int cardId = 0; if(FieldWorkDataManager.Instance.DressupList.Count > index) { cardId = FieldWorkDataManager.Instance.DressupList[index].cardId; } if (cardId == 0) { item.m_c1.selectedIndex = 0; } else { item.m_c1.selectedIndex = 1; ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cardId); item.m_txtCardName.text = itemCfg.name; item.m_comCard.m_loaCard.url = ResPathUtil.GetCardIconPath(itemCfg.res); item.m_loaScore.url = ResPathUtil.GetScorePath(itemCfg.mainScore); RarityIconController.UpdateRarityIcon(item.m_loaRarity, cardId, false); item.m_wearRateText.text = FieldWorkDataManager.Instance.GetCardAbrasion(cardId).ToString() + "%"; } if (item.target.data == null) { item.target.onClick.Add(OnClickCardList); } item.target.data = index; UI_ComCard.ProxyEnd(); } private void OnClickCardList(EventContext context) { if (GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0) { return; } GObject obj = context.sender as GObject; int index = (int)obj.data; FieldWorkDataManager.Instance.SelectThemeIndex = index; ViewManager.Show(new object[] { FightRoleType.FieldWork,index, FieldWorkDataManager.Instance.DressupList, "" }); this.Hide(); } private void OnClickBtnStart() { //判断是否搭配了三套衣服和词牌 FieldWorkDataManager.Instance.currentLevelID = _levelID; if (FieldWorkDataManager.Instance.SetCanStart()) { UpDressdate(); FieldWorkDataManager.Instance.GetFightResult(); FieldWorkDataManager.Instance.myScore.Clear(); EventAgent.DispatchEvent(ConstMessage.FieldWork_STARTCHANGE); this.Hide(); } else { PromptController.Instance.ShowFloatTextPrompt("请选择搭配!需要卡牌,服装!"); FieldWorkDataManager.Instance.SelectThemeIndex = 0; ViewManager.Show(new object[] { FightRoleType.FieldWork, 0, FieldWorkDataManager.Instance.DressupList, "" }); this.Hide(); } } private void OnClickBtnSkip() { FieldWorkDataManager.Instance.currentLevelID = _levelID; if (FieldWorkDataManager.Instance.SetCanStart()) { FieldWorkDataManager.Instance.myScore.Clear(); FieldWorkDataManager.Instance.GetFightResult(); ViewManager.Show(); } else { PromptController.Instance.ShowFloatTextPrompt("请选择搭配!需要卡牌,服装"); } } private void CheckGuide(object param) { if (GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0) { UpdateToCheckGuide(null); } else { Timers.inst.Remove(CheckGuide); } } protected override void UpdateToCheckGuide(object param) { if (!ViewManager.CheckIsTopView(this.viewCom)) return; GuideController.TryGuide(_ui.m_cardList, ConstGuideId.FIELD, 4, "点击选择搭配!挑战成功的衣服本周不可使用!",0); GuideController.TryCompleteGuide(ConstGuideId.FIELD, 4); } } }