| System/ClientVersion/VersionUtility.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Dogz/DogzEquip.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Dogz/DogzPackWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/KnapSack/New/CommonItemBaisc.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/MainInterfacePanel/UpgradeWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/MainInterfacePanel/UpgradeWin.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Skill/QuickSetting.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Strengthening/GodBeastAttributes.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Strengthening/GodBeastChildNodes.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Strengthening/GodBeastModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/TreasureComponent.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/TreasureModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/TreasureSelectWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/UI3DTreasureSelectStage.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/ClientVersion/VersionUtility.cs
@@ -26,7 +26,7 @@ } public VersionInfo versionInfo { get; private set; } public MaoErVersion maoerVersion; public JsonData maoerVersion; public bool completed { get { return step == Step.Completed; } } Step m_Step = Step.None; @@ -146,7 +146,14 @@ { if (IsMaoErGame()) { return maoerVersion.url; if (maoerVersion.Keys.Contains("url")) { return maoerVersion["url"].ToString(); } else { return string.Empty; } } else { @@ -159,13 +166,13 @@ { if (IsMaoErGame()) { if (string.IsNullOrEmpty(maoerVersion.content)) if (maoerVersion.Keys.Contains("content")) { return string.Empty; return StringUtility.Contact(Language.GetFromLocal(30), "\r\n", maoerVersion["content"].ToString()); } else { return StringUtility.Contact(Language.GetFromLocal(30), "\r\n", maoerVersion.content); return string.Empty; } } else @@ -236,24 +243,20 @@ var tables = new Dictionary<string, string>(); tables["uid"] = ModelCenter.Instance.GetModel<LoginModel>().sdkLoginResult.account; var url = "https://api.maoergame.com/update/download/url"; Debug.LogFormat("猫耳强更url:{0} uid:{1} ", url, ModelCenter.Instance.GetModel<LoginModel>().sdkLoginResult.account); HttpRequest.Instance.RequestHttpPost(url, tables, HttpRequest.defaultHttpContentType, 1, OnMaoErVersionCheckResult); } } private void OnMaoErVersionCheckResult(bool ok, string result) { UTF8Encoding utf8 = new UTF8Encoding(); Byte[] encodedBytes = utf8.GetBytes(result); String decodedString = utf8.GetString(encodedBytes); Debug.LogFormat("猫耳强更请求返回结果 result:{0}:{1}", ok, result); Debug.LogFormat("猫耳强更请求返回结果 result:{0}", decodedString); if (ok) { try { maoerVersion = JsonMapper.ToObject<MaoErVersion>(result); if (maoerVersion.code == 0) maoerVersion = JsonMapper.ToObject(result); if (maoerVersion.Keys.Contains("code") && maoerVersion["code"].ToString() == "0") { step = Step.DownLoadPrepared; WindowCenter.Instance.OpenFromLocal<VersionUpdateWin>(); @@ -266,6 +269,7 @@ } catch (System.Exception ex) { Debug.Log(ex); step = Step.None; Clock.Create(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond), RequestMaoErVersionCheck); } @@ -346,7 +350,7 @@ public struct MaoErVersion { public string msg; public int code; public string code; public string content; public string url; } System/Dogz/DogzEquip.cs
@@ -15,6 +15,7 @@ public void Display(ItemModel model) { itemBaisc.Init(model); itemBaisc.bindIcon.gameObject.SetActive(false); int strenLv = 0; if(model.GetUseDataModel((int)ItemUseDataKey.Def_IudetDogzEquipPlus) != null) { System/Dogz/DogzPackWin.cs
@@ -264,7 +264,26 @@ dogzModel.GetDogzItemListByIndex(dogzModel.presentSelectDogz,i); if (dogzModel.selectEquipPlacelist.Count > 0) { indexlist.Add(dogzModel.selectEquipPlacelist[0].itemInfo.ItemPlace); ItemModel selectModel = dogzModel.selectEquipPlacelist[0]; ItemModel itemModel = null; int equipPlace = dogzModel.GetDogzEquipPlaceByIndex(i); dogzModel.TryGetDogzEquip(dogzModel.presentSelectDogz,equipPlace,out itemModel); if(itemModel == null) { indexlist.Add(selectModel.itemInfo.ItemPlace); } else { if (itemModel.chinItemModel.ItemColor < selectModel.chinItemModel.ItemColor || (itemModel.chinItemModel.StarLevel < selectModel.chinItemModel.StarLevel && itemModel.chinItemModel.ItemColor == selectModel.chinItemModel.ItemColor) || (itemModel.equipScore < selectModel.equipScore && itemModel.chinItemModel.ItemColor == selectModel.chinItemModel.ItemColor && itemModel.chinItemModel.StarLevel == selectModel.chinItemModel.StarLevel)) { indexlist.Add(dogzModel.selectEquipPlacelist[0].itemInfo.ItemPlace); } } } } if(indexlist.Count > 0) System/KnapSack/New/CommonItemBaisc.cs
@@ -218,7 +218,8 @@ { ItemConfig config = Config.Instance.Get<ItemConfig>(itemId); int playerJob = PlayerDatas.Instance.baseData.Job; if (config == null || (!isCompare && compareSocre <= 0) || config.EquipPlace == 0 || score == compareSocre) return 0; if (config == null || (!isCompare && compareSocre <= 0) || config.EquipPlace == 0 || score == compareSocre || type == PackType.rptEquip || type == PackType.rptDogzEquip) return 0; ItemModel model = playerPack.GetItemModelByGUID(guid); if (model != null && modelInterface.IsOverdue(guid, itemId, model.useDataDict)) return 1; System/MainInterfacePanel/UpgradeWin.cs
New file @@ -0,0 +1,87 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, September 26, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class UpgradeWin : Window { [SerializeField] UIAlphaTween m_UIAlphaTween; [SerializeField] ScaleTween m_ScaleTween; [SerializeField] UIAlphaTween m_UIAlphaTween1; [SerializeField] GameObject m_Guang; [SerializeField] Text m_TextLV; #region Built-in protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { // m_Guang.SetActive(false); m_TextLV.text = PlayerDatas.Instance.baseData.LV.ToString(); m_UIAlphaTween1.SetEndState(); } protected override void OnActived() { m_UIAlphaTween.Play(ShowOverAlpha); m_ScaleTween.Play(); } protected override void OnAfterOpen() { WindowCenter.Instance.windowBeforeCloseEvent += windowBeforeClose; PlayerDatas.Instance.PlayerDataRefreshInfoEvent += Updatefighting;//数据的刷新(h0418) } protected override void OnPreClose() { WindowCenter.Instance.windowBeforeCloseEvent -= windowBeforeClose; PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= Updatefighting;//数据的刷新(h0418) } private void windowBeforeClose(Window _window) { if (_window is MainInterfaceWin) { Close(); } } private void Updatefighting(PlayerDataRefresh obj) { if (obj == PlayerDataRefresh.LV) { m_TextLV.text = PlayerDatas.Instance.baseData.LV.ToString(); } } protected override void OnAfterClose() { } #endregion private void ShowOverAlpha() { m_UIAlphaTween.Play(true); m_UIAlphaTween1.Play(true); } } } System/MainInterfacePanel/UpgradeWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 4bcd6e645b0e4dc4fb3359ce209aa612 timeCreated: 1537944869 licenseType: Free MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Skill/QuickSetting.cs
@@ -15,6 +15,7 @@ quickSettingDic.Add(QuickSettingType.FairyLeagueGuide, new QuickSettingRange(QuickSettingType.FairyLeagueGuide, 1)); quickSettingDic.Add(QuickSettingType.AutoUseXp, new QuickSettingRange(QuickSettingType.AutoUseXp, 1)); quickSettingDic.Add(QuickSettingType.SpAnim, new QuickSettingRange(QuickSettingType.SpAnim, 10)); quickSettingDic.Add(QuickSettingType.TreasureHighestAnim, new QuickSettingRange(QuickSettingType.TreasureHighestAnim, 10)); setting = new string(UCharacter, 100); DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += BeforePlayerDataInitializeEvent; } @@ -109,6 +110,7 @@ FairyLeagueGuide, AutoUseXp, SpAnim, TreasureHighestAnim } public struct QuickSettingRange { System/Strengthening/GodBeastAttributes.cs
@@ -76,7 +76,7 @@ { GodBeast_Number = 0; GodBeast_Part = 0; GodBeastReinforcementWin.ChooseToModify -= ChooseToModify; godBeastModel.AbsorbEvent -= AbsorbEvent; } @@ -96,7 +96,7 @@ { AttributeAssignment(); } } private void OnClickStrengthBtn() { @@ -108,15 +108,42 @@ ListIndex.Add(key); ListCount.Add(DicAb[key]); } if (m_DoubleToggle.isOn) if (m_DoubleToggle.isOn)//双倍强化 { if (ListIndex.Count <= 0) { return; } dogz_model.SendDogzEquipStrength(m_DogZItemModel.itemInfo.ItemPlace, ListIndex, ListCount, 1); if (NeedFairyJade <= 0) { dogz_model.SendDogzEquipStrength(m_DogZItemModel.itemInfo.ItemPlace, ListIndex, ListCount, 0); } else { int Gold = (int)UIHelper.GetMoneyCnt(1);//仙玉 string strNull = string.Format(Language.Get("DogzDoubleRemind"), NeedFairyJade); ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), strNull, (bool isOk) => { if (isOk) { if (Gold >= NeedFairyJade) { dogz_model.SendDogzEquipStrength(m_DogZItemModel.itemInfo.ItemPlace, ListIndex, ListCount, 1); } else { if (VersionConfig.Get().isBanShu) { SysNotifyMgr.Instance.ShowTip("GoldErr"); return; } WindowCenter.Instance.Open<RechargeTipWin>(); } } }); } } else else//单倍强化 { if (ListIndex.Count <= 0) { @@ -149,7 +176,7 @@ { if (itemModel[i].EquipPlace == GodBeastPart) { ItemCellModel ItemModel = new ItemCellModel(itemModel[i].itemId, true, 0, itemModel[i].itemInfo.IsBind); ItemCellModel ItemModel = new ItemCellModel(itemModel[i].itemId, true, 0, 0);//默认显示不上锁 m_ItemCell.Init(ItemModel); m_ItemCell.cellBtn.RemoveAllListeners(); int type = i; @@ -162,7 +189,7 @@ } m_UIAlphaTween.gameObject.SetActive(true); m_FrameNull.SetActive(true); m_FullLevel.SetActive(false); m_FullLevel.SetActive(false); GetDogZLevelAndExp(); AttributeAssignment(); } @@ -226,7 +253,7 @@ } else { m_StrengthenDoubleBtn.interactable = true; m_StrengthenBtn.interactable = true; m_Text_two.SetActive(true); @@ -285,7 +312,7 @@ else { DoubleProficiency += itemModel.chinItemModel.EffectValueA1 * 2 * DicAb[key]; NeedFairyJade += itemModel.chinItemModel.Effect2 * DicAb[key]; NeedFairyJade += itemModel.chinItemModel.EffectValueB1 * DicAb[key]; } } } @@ -382,7 +409,7 @@ var IudetDogzEquipPlus = m_DogZItemModel.GetUseDataModel((int)ItemUseDataKey.Def_IudetDogzEquipPlus); if (IudetDogzEquipPlus != null) { ToExpTotal+= IudetDogzEquipPlus[1]; ToExpTotal += IudetDogzEquipPlus[1]; } for (int i = lv; i >= 0; i--) { System/Strengthening/GodBeastChildNodes.cs
@@ -46,6 +46,7 @@ { ItemModel itemModel = playerPack.GetItemModelByIndex(PackType.rptDogzItem, Index); m_ItemCell.Init(itemModel); m_ItemCell.bindIcon.gameObject.SetActive(false); var IudetDogzEquipPlus = itemModel.GetUseDataModel((int)ItemUseDataKey.Def_IudetDogzEquipPlus);// 神兽装备强化信息列表 [强化等级, 强化熟练度] TextNumber.gameObject.SetActive(false); if (IudetDogzEquipPlus != null) System/Strengthening/GodBeastModel.cs
@@ -18,11 +18,13 @@ public int ItemInde = 0;//物品下标 public ItemModel Crystal_ItemModel;//当前所选中的水晶物品 public int ItemPlace = -1;//神兽装备位置信息 public Dictionary<int, int> QualityLimit = new Dictionary<int, int>();//对应品质所能选择的最大强化等级 public Dictionary<int, int> QualityLimit = new Dictionary<int, int>();//对应品质所能选择的最大强化等级 DogzModel Dogz_model; DogzModel dogz_model { get { return Dogz_model ?? (Dogz_model = ModelCenter.Instance.GetModel<DogzModel>()); } } PlayerPackModel _playerPack; PlayerPackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); } } private const int Redpoint_key1 = 11202;//神兽强化红点 public Redpoint redPointStre1 = new Redpoint(112, Redpoint_key1); public override void Init() { if (QualityLimit.Count <= 0) @@ -39,7 +41,44 @@ public void OnPlayerLoginOk() { playerPack.ItemCntAddAct -= ItemCntAddAct; playerPack.ItemCntReduceAct -= ItemCntReduceAct; dogz_model.UpdateAssistDogzEvent -= UpdateAssistDogzEvent; FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent; playerPack.ItemCntAddAct += ItemCntAddAct;//物品数量增加 playerPack.ItemCntReduceAct += ItemCntReduceAct;//物品数量减少 dogz_model.UpdateAssistDogzEvent += UpdateAssistDogzEvent; FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent; GodBeastRedPoint(); } private void OnFuncStateChangeEvent(int obj) { if (obj == 138) { GodBeastRedPoint(); } } private void UpdateAssistDogzEvent() { GodBeastRedPoint(); } private void ItemCntReduceAct(PackType packType, int arg2, int arg3) { if (packType == PackType.rptDogzItem || packType == PackType.rptDogzEquip) { GodBeastRedPoint(); } } private void ItemCntAddAct(PackType packType, int arg2, int arg3) { if (packType == PackType.rptDogzItem || packType == PackType.rptDogzEquip) { GodBeastRedPoint(); } } public override void UnInit() @@ -137,7 +176,7 @@ return false; } int lv = QualityLimit[itemModel.chinItemModel.ItemColor]; var DogzEquipMaxConfig = DogzEquipPlusConfig.GetEquipplaceAndLevel(itemModel.chinItemModel.EquipPlace, lv); var DogzEquipMaxConfig = DogzEquipPlusConfig.GetEquipplaceAndLevel(itemModel.chinItemModel.EquipPlace, lv); var IudetDogzEquipPlus = itemModel.GetUseDataModel((int)ItemUseDataKey.Def_IudetDogzEquipPlus); if (IudetDogzEquipPlus != null) @@ -175,7 +214,7 @@ else { return false; } } } else { @@ -189,6 +228,69 @@ } } } private void GodBeastRedPoint()//神兽强化红点 { bool Istrue = false; int ItemColor = 10; var DogzEquipDict = dogz_model.dogzAssistStateDict; redPointStre1.state = RedPointState.None; int Type = 0; foreach (var key in DogzEquipDict.Keys) { if (DogzEquipDict[key] == 1) { Type += 1; List<ItemModel> itemModel = dogz_model.GetDogzEquips(key); for (int i = 0; i < itemModel.Count; i++) { if (itemModel[i].chinItemModel.ItemColor < ItemColor)//获取最低品质的颜色 { ItemColor = itemModel[i].chinItemModel.ItemColor; } var IudetDogzEquipPlus = itemModel[i].GetUseDataModel((int)ItemUseDataKey.Def_IudetDogzEquipPlus);// 神兽装备强化信息列表 [强化等级, 强化熟练度] if (IudetDogzEquipPlus == null)//判断是否都满级 满级不可亮红点 { Istrue = true; } else { if (QualityLimit.ContainsKey(itemModel[i].chinItemModel.ItemColor) && IudetDogzEquipPlus[0] < (QualityLimit[itemModel[i].chinItemModel.ItemColor])) { Istrue = true; } } } if (Istrue) { if (playerPack.GetSinglePackModel(PackType.rptDogzItem) == null) { return; } Dictionary<int, ItemModel> BackpackDic = playerPack.GetSinglePackModel(PackType.rptDogzItem).GetPackModelIndexDict(); int _ItemColor = 10; foreach (var keyBack in BackpackDic.Keys) { var itemModelBack = BackpackDic[keyBack]; if (itemModelBack.chinItemModel.Type == 70)//有神兽水晶时的红点 { redPointStre1.state = RedPointState.Simple; return; } if (itemModelBack.chinItemModel.ItemColor < _ItemColor) { _ItemColor = itemModelBack.chinItemModel.ItemColor; } } if (Type >= dogz_model.DogzAssistDefaultCnt && ItemColor> _ItemColor)//出战神兽已满,且神兽背包有品质低于已助战神兽品质颜色时 { redPointStre1.state = RedPointState.Simple; return; } } } } } } System/Treasure/TreasureComponent.cs
@@ -45,6 +45,7 @@ SFXController lockEffect; SFXController challengeSfx; SFXController specialSfx; SFXController highestSfx; public Treasure3DConfig paramConfig { get; set; } @@ -74,6 +75,7 @@ RequestBottom(); RequestBackLight(); RequestRedpoint(); RequestHighestEffect(); UpdateTreasureState(); UpdateParam(); RedpointCenter.Instance.redpointValueChangeEvent -= RedpointValueChangeEvent; @@ -89,6 +91,7 @@ RecycleCollectingSfx(); RecycleRedpoint(); RecycleCondition(); RecycleHighestEffect(); RedpointCenter.Instance.redpointValueChangeEvent -= RedpointValueChangeEvent; } interactProcessor.SetActive(_active); @@ -339,6 +342,11 @@ CloserState(); } UpdateParam(); } public void UpdateTreasureStage() { RequestHighestEffect(); } private void RequestBackLight() @@ -704,6 +712,35 @@ } } public void RequestHighestEffect() { RecycleHighestEffect(); Treasure _treasure; if (category == TreasureCategory.Human && model.TryGetTreasure(treasureId, out _treasure) && _treasure.IsHighestStage && !model.GetTreasureFinishAnim(treasureId)) { highestSfx = SFXPlayUtility.Instance.Play(5198, root); if (highestSfx != null) { highestSfx.duration = 0; LayerUtility.SetLayer(highestSfx.gameObject, LayerUtility.UILayer, true); highestSfx.transform.localPosition = Vector3.zero; highestSfx.transform.LookAt(UI3DTreasureSelectStage.Instance.center); } } } public void RecycleHighestEffect() { if (highestSfx != null) { highestSfx.gameObject.SetActive(false); SFXPlayUtility.Instance.Release(highestSfx); highestSfx = null; } } public void CloserState() { RecycleBottom(); @@ -713,6 +750,7 @@ RecycleLockEffect(); RecycleRedpoint(); RecycleCondition(); RecycleHighestEffect(); RequestSpecialEffect(); Treasure _treasure; @@ -741,6 +779,7 @@ RequestBottom(); RequestName(); RequestRedpoint(); RequestHighestEffect(); UpdateTreasureState(); RecycleSpecialEffect(); UpdateParam(); @@ -793,6 +832,31 @@ UI3DTreasureSelectStage.Instance.CompleteUnlock(); model.treasureGotoId = 0; } public void PlayHighestShow() { RecycleHighestEffect(); var _effect = SFXPlayUtility.Instance.Play(5197, root); if (_effect != null) { LayerUtility.SetLayer(_effect.gameObject, LayerUtility.UILayer, true); _effect.transform.LookAt(UI3DTreasureSelectStage.Instance.center); _effect.transform.localPosition = Vector3.zero; _effect.duration = 3.0f; } SnxxzGame.Instance.StartCoroutine(Co_HighestShow()); } IEnumerator Co_HighestShow() { yield return WaitingForSecondConst.GetWaitForSeconds(2.2f); model.SetTreasureFinishAnim(treasureId, false); if (display) { UpdateTreasureStage(); } UI3DTreasureSelectStage.Instance.ReCheckTreasureHighest(); } } } System/Treasure/TreasureModel.cs
@@ -378,6 +378,38 @@ QuickSetting.Instance.SendPackage(); } public bool GetTreasureFinishAnim(int _treasureId) { if (_treasureId == 101) { return false; } var list = GetTreasureCategory(TreasureCategory.Human); var index = list.IndexOf(_treasureId); if (index == -1) { return false; } uint value = 0; uint.TryParse(QuickSetting.Instance.GetQuickSetting(QuickSetting.QuickSettingType.TreasureHighestAnim, 0), out value); return MathUtility.GetBitValue(value, (ushort)index); } public void SetTreasureFinishAnim(int _treasureId, bool anim = true) { var list = GetTreasureCategory(TreasureCategory.Human); var index = list.IndexOf(_treasureId); if (index == -1) { return; } uint value = 0; uint.TryParse(QuickSetting.Instance.GetQuickSetting(QuickSetting.QuickSettingType.TreasureHighestAnim, 0), out value); int bitValue = MathUtility.SetBitValue((int)value, (ushort)index, anim); QuickSetting.Instance.SetQuickSetting(QuickSetting.QuickSettingType.TreasureHighestAnim, bitValue); QuickSetting.Instance.SendPackage(); } public bool TryGetUnlockShowTreasure(out int _id) { _id = 0; @@ -1152,6 +1184,10 @@ _up = true; } treasure.UpdateTreasureLevelExp(package.InfoList[i].LV, (int)package.InfoList[i].Exp, package.InfoList[i].State == 1); if (serverInited && treasure.IsHighestStage) { SetTreasureFinishAnim(treasure.id); } if (treasureLevelProgressUpdateEvent != null) { treasureLevelProgressUpdateEvent(treasure.id); System/Treasure/TreasureSelectWin.cs
@@ -43,7 +43,8 @@ m_HumanBtn.onClick.AddListener(() => { if (UI3DTreasureSelectStage.Instance.currentCategory == TreasureCategory.Human || UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.IsCloser) || UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.IsCloser || UI3DTreasureSelectStage.Instance.treasureFinishShowing) { return; } @@ -53,7 +54,8 @@ m_DemonBtn.onClick.AddListener(() => { if (UI3DTreasureSelectStage.Instance.currentCategory == TreasureCategory.Demon || UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.IsCloser) || UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.IsCloser || UI3DTreasureSelectStage.Instance.treasureFinishShowing) { return; } @@ -63,7 +65,8 @@ m_FairyBtn.onClick.AddListener(() => { if (UI3DTreasureSelectStage.Instance.currentCategory == TreasureCategory.Fairy || UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.IsCloser) || UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.IsCloser || UI3DTreasureSelectStage.Instance.treasureFinishShowing) { return; } @@ -71,7 +74,7 @@ }); m_BackBtn.onClick.AddListener(() => { if (UI3DTreasureSelectStage.Instance.UnlockShowing) if (UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.treasureFinishShowing) { return; } @@ -83,6 +86,7 @@ protected override void OnPreOpen() { UI3DTreasureSelectStage.Instance.UnlockShowing = false; UI3DTreasureSelectStage.Instance.treasureFinishShowing = false; if (!UI3DTreasureSelectStage.Instance.IsOpen) { UI3DTreasureSelectStage.Instance.Open(false, model.currentCategory); @@ -90,6 +94,8 @@ UI3DTreasureSelectStage.Instance.OnCameraStartEvent += OnCameraStartEvent; UI3DTreasureSelectStage.Instance.OnCameraBackComplete += OnCameraBackComplete; UI3DTreasureSelectStage.Instance.OnUnlockComplete += OnUnlockComplete; UI3DTreasureSelectStage.Instance.OnHighestComplete += OnHighestComplete; UI3DTreasureSelectStage.Instance.startAnimation += StartAnimation; m_TreasureDrag.OnValueChange += OnValueChange; m_TreasureDrag.OnDragComplete += OnDragComplete; m_TreasureDrag.OnDragBegine += OnDragBegine; @@ -116,6 +122,8 @@ UI3DTreasureSelectStage.Instance.OnCameraStartEvent -= OnCameraStartEvent; UI3DTreasureSelectStage.Instance.OnCameraBackComplete -= OnCameraBackComplete; UI3DTreasureSelectStage.Instance.OnUnlockComplete -= OnUnlockComplete; UI3DTreasureSelectStage.Instance.OnHighestComplete -= OnHighestComplete; UI3DTreasureSelectStage.Instance.startAnimation -= StartAnimation; m_TreasureDrag.OnValueChange -= OnValueChange; m_TreasureDrag.OnDragComplete -= OnDragComplete; m_TreasureDrag.OnDragBegine -= OnDragBegine; @@ -184,8 +192,9 @@ private void UpdateButtonState() { var _closer = UI3DTreasureSelectStage.Instance.IsCloser || UI3DTreasureSelectStage.Instance.UnlockShowing; if (UI3DTreasureSelectStage.Instance.UnlockShowing) || UI3DTreasureSelectStage.Instance.UnlockShowing|| UI3DTreasureSelectStage.Instance.treasureFinishShowing; if (UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.treasureFinishShowing) { m_BackBtn.gameObject.SetActive(false); } @@ -199,6 +208,16 @@ m_FairyBtn.gameObject.SetActive(!_closer); } private void StartAnimation() { UpdateButtonState(); } private void OnHighestComplete() { UpdateButtonState(); } private void OnUnlockComplete() { UpdateButtonState(); System/Treasure/UI3DTreasureSelectStage.cs
@@ -156,6 +156,7 @@ public bool CloserComplete { get; private set; } public int jumpTreasure { get; private set; } public bool UnlockShowing { get; set; } public bool treasureFinishShowing { get; set; } public bool Preloading { get; private set; } public GameObject currentTreasureTitle @@ -212,6 +213,8 @@ public event Action OnCameraCloserComplete; public event Action OnCameraBackEvent; public event Action OnUnlockComplete; public event Action OnHighestComplete; public event Action startAnimation; private Dictionary<TreasureCategory, List<TreasureComponent>> m_Treasures = new Dictionary<TreasureCategory, List<TreasureComponent>>(); private Dictionary<TreasureCategory, bool> m_PreloadDict = new Dictionary<TreasureCategory, bool>(); @@ -298,6 +301,7 @@ } model.treasureStateChangeEvent += TreasureStateChangeEvent; model.treasureStageUpEvent += TreasureStageUpEvent; } IEnumerator Co_PreLoad(TreasureCategory _category, Action callback) @@ -320,6 +324,16 @@ { HideAllTreasure(); CloseRenderCamera(); IsCloser = false; CloserComplete = false; UnlockShowing = false; treasureFinishShowing = false; IsOpen = false; jumping = false; Preloading = false; jumpTreasure = 0; var movecomponent = m_CameraControl.GetComponent<SmoothMove>(); if (movecomponent != null) { @@ -327,19 +341,12 @@ } m_CameraControl.localPosition = m_StartPosition; IsCloser = false; CloserComplete = false; UnlockShowing = false; IsOpen = false; jumping = false; Preloading = false; jumpTreasure = 0; CameraController.Instance.CameraObject.gameObject.SetActive(true); m_Camera.enabled = false; WindowCenter.Instance.uiRoot.baseCanvas.gameObject.SetActive(true); model.treasureStateChangeEvent -= TreasureStateChangeEvent; model.treasureStageUpEvent -= TreasureStageUpEvent; model.SetTreasureUnlockShow(currentCategory, 0); if (currentTreasureTitle != null) @@ -370,10 +377,25 @@ } } private void TreasureStageUpEvent(int _id) { var _list = m_Treasures[currentCategory]; var _component = _list.Find((x) => { return x.treasureId == _id; }); if (_component != null && _component.display) { _component.UpdateTreasureStage(); _component.SetLayer(CloserComplete ? LayerUtility.DefaultLayer : LayerUtility.UILayer); } } public void SelectTreasureCategory(TreasureCategory _type, bool _closer = false) { presentSelectIndex = 0; UnlockShowing = false; treasureFinishShowing = false; currentCategory = _type; model.currentCategory = currentCategory; @@ -442,7 +464,11 @@ { var _treasure = 0; int _index = -1; if (model.GetTreasureUnlockShow(currentCategory) != 0) if (CheckTreasureFinish(out _treasure)) { treasureFinishShowing = true; } else if (model.GetTreasureUnlockShow(currentCategory) != 0) { _treasure = model.GetTreasureUnlockShow(currentCategory); model.treasureGotoId = _treasure; @@ -469,6 +495,31 @@ }); } return _index; } private bool CheckTreasureFinish(out int treasureId) { treasureId = 0; if (currentCategory != TreasureCategory.Human) { return false; } var list = model.GetTreasureCategory(TreasureCategory.Human); for (int i = 0; i < list.Count; i++) { if (list[i] == 101) { continue; } Treasure treasure; if (model.TryGetTreasure(list[i], out treasure) && treasure.IsHighestStage && model.GetTreasureFinishAnim(list[i])) { treasureId = list[i]; return true; } } return false; } int Compare(int x, int y) @@ -591,9 +642,20 @@ } } public bool AllowPointClick() { if (IsCloser || UnlockShowing || jumping || draging || BossShowModel.Instance.BossShowing || treasureFinishShowing) { return false; } return true; } public void OnPointDownTreasure(int _treasureId) { if (IsCloser || UnlockShowing || jumping || draging || BossShowModel.Instance.BossShowing) if (!AllowPointClick()) { return; } @@ -622,6 +684,11 @@ var _component = m_Treasures[currentCategory][presentSelectIndex]; _component.PlayUnlockShow(); } else if (treasureFinishShowing) { var _component = m_Treasures[currentCategory][presentSelectIndex]; _component.PlayHighestShow(); } jumpTreasure = 0; } #endregion @@ -641,7 +708,7 @@ public void BegineDrag() { if (IsCloser || UnlockShowing) if (IsCloser || UnlockShowing || treasureFinishShowing) { return; } @@ -906,20 +973,22 @@ private void CameraBackComplete() { if (!IsOpen) { return; } IsCloser = false; if (OnCameraBackComplete != null) { OnCameraBackComplete(); } IsCloser = false; if (!IsOpen) { return; } var _list = m_Treasures[currentCategory]; for (int i = 0; i < _list.Count; i++) { _list[i].SetLayer(LayerUtility.UILayer); } ReCheckTreasureHighest(); } #endregion @@ -984,5 +1053,59 @@ } } #endregion public void ReCheckTreasureHighest() { treasureFinishShowing = false; if (!IsOpen) { return; } var treasureId = 0; if (CheckTreasureFinish(out treasureId)) { treasureFinishShowing = true; } else if (model.GetTreasureUnlockShow(currentCategory) != 0) { UnlockShowing = true; treasureId = model.GetTreasureUnlockShow(currentCategory); model.treasureGotoId = treasureId; } if (treasureId != 0) { var _index = m_Treasures[currentCategory].FindIndex((x) => { return x.treasureId == treasureId; }); if (_index == presentSelectIndex) { var _component = m_Treasures[currentCategory][presentSelectIndex]; if (UnlockShowing) { _component.PlayUnlockShow(); } else if (treasureFinishShowing) { _component.PlayHighestShow(); } } else { Goto(_index); } if (startAnimation != null) { startAnimation(); } } else { if (OnHighestComplete != null) { OnHighestComplete(); } } } } }