Core/GameEngine/Model/Config/TreasurePrivilegeConfig.cs
@@ -1,14 +1,14 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, June 25, 2018 //-------------------------------------------------------- using UnityEngine; using System; namespace TableConfig { //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, August 16, 2018 //-------------------------------------------------------- using UnityEngine; using System; namespace TableConfig { public partial class TreasurePrivilegeConfig : ConfigBase { public int PrivilegeID { get ; private set ; } @@ -18,16 +18,18 @@ public int maxValue { get ; private set ; } public string attr { get ; private set; } public string itemAward { get ; private set; } public int[] successList; public int treasureId { get ; private set ; } public string Icon { get ; private set; } public string Name { get ; private set; } public string targetDescription { get ; private set; } public override string getKey() { return PrivilegeID.ToString(); } public override void Parse() { } public override void Parse() { try { PrivilegeID=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0; @@ -44,22 +46,31 @@ itemAward = rawContents[6].Trim(); Icon = rawContents[7].Trim(); string[] successListStringArray = rawContents[7].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); successList = new int[successListStringArray.Length]; for (int i=0;i<successListStringArray.Length;i++) { int.TryParse(successListStringArray[i],out successList[i]); } Name = rawContents[8].Trim(); treasureId=IsNumeric(rawContents[8]) ? int.Parse(rawContents[8]):0; targetDescription = rawContents[9].Trim(); Icon = rawContents[9].Trim(); Name = rawContents[10].Trim(); targetDescription = rawContents[11].Trim(); } catch (Exception ex) { DebugEx.Log(ex); } } } } } } } } Core/GameEngine/Model/Config/TreasurePrivilegeConfig.cs.meta
@@ -1,6 +1,6 @@ fileFormatVersion: 2 guid: 761a8477b6259554ab927daec347dba7 timeCreated: 1529925515 timeCreated: 1534418397 licenseType: Pro MonoImporter: serializedVersion: 2 Core/GameEngine/Model/Config/TreasureUpConfig.cs
@@ -1,14 +1,14 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, June 07, 2018 //-------------------------------------------------------- using UnityEngine; using System; namespace TableConfig { //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, August 16, 2018 //-------------------------------------------------------- using UnityEngine; using System; namespace TableConfig { public partial class TreasureUpConfig : ConfigBase { public int ID { get ; private set ; } @@ -18,15 +18,15 @@ public string AddAttr { get ; private set; } public int[] UnLockSkill; public int UnLockFuncID { get ; private set ; } public int Privilege { get ; private set ; } public int LVLimit { get ; private set ; } public int ActiveMWID { get ; private set ; } public string ItemAward { get ; private set; } public override string getKey() { return ID.ToString(); } public override void Parse() { } public override void Parse() { try { ID=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0; @@ -48,20 +48,20 @@ UnLockFuncID=IsNumeric(rawContents[6]) ? int.Parse(rawContents[6]):0; Privilege=IsNumeric(rawContents[7]) ? int.Parse(rawContents[7]):0; ActiveMWID=IsNumeric(rawContents[7]) ? int.Parse(rawContents[7]):0; LVLimit=IsNumeric(rawContents[8]) ? int.Parse(rawContents[8]):0; ItemAward = rawContents[8].Trim(); } catch (Exception ex) { DebugEx.Log(ex); } } } } } } } } Core/GameEngine/Model/Config/TreasureUpConfig.cs.meta
@@ -1,6 +1,6 @@ fileFormatVersion: 2 guid: 882666fd713678849aebb360643bfe19 timeCreated: 1528358559 timeCreated: 1534419056 licenseType: Pro MonoImporter: serializedVersion: 2 Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA317_tagMCAllEquipAttrActiveInfo.cs
@@ -17,7 +17,7 @@ HA317_tagMCAllEquipAttrActiveInfo vNetData = vNetPack as HA317_tagMCAllEquipAttrActiveInfo; playerPack.SetPlayerEquipAttrActiveInfo(vNetData); ModelCenter.Instance.GetModel<TreasureModel>().UpdateTreasurePrivilege(vNetData); ModelCenter.Instance.GetModel<TreasureSoulModel>().UpdateTreasurePrivilege(vNetData); } } Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA353_tagMCMWPrivilegeDataInfo.cs
@@ -15,7 +15,7 @@ { base.Done(vNetPack); var package = vNetPack as HA353_tagMCMWPrivilegeDataInfo; ModelCenter.Instance.GetModel<TreasureModel>().UpdateTreasurePrivilege(package); ModelCenter.Instance.GetModel<TreasureSoulModel>().UpdateTreasurePrivilege(package); } } System/BlastFurnace/BlastFurnaceModel.cs
@@ -212,28 +212,6 @@ public Treasure treasureData { get; private set; } public void RefreshTreasureRefineModel(HA3BE_tagMCMagicWeaponMsg data) { DebugEx.Log("RefreshTreasureRefineModel" + data.Count); if (data.Count > 0) { int i = 0; for (i = 0; i < data.Count; i++) { if (!treasureRefineDict.ContainsKey(data.MWInfo[i].MWID)) { treasureRefineDict.Add(data.MWInfo[i].MWID, data.MWInfo[i].MWLV); } else { treasureRefineDict[data.MWInfo[i].MWID] = data.MWInfo[i].MWLV; } Treasure treasure = null; sTreasureModel.TryGetTreasure((int)data.MWInfo[i].MWID, out treasure); treasure.level = data.MWInfo[i].MWLV; treasureData = treasure; } if (RefreshTreasureRefineEvent != null) RefreshTreasureRefineEvent(); } } public int GetAllTreasureRefineLv() System/BlastFurnace/TreasureRefineSuccessWin.cs
@@ -1,141 +1,141 @@ using UnityEngine; using UnityEngine.UI; using TableConfig; using System.Collections.Generic; namespace Snxxz.UI { public class TreasureRefineSuccessWin : Window { private Text _addFightingText; private Text _refineLvText; private Text _openSkillText; private int _addFighting; private Treasure _treasure; private TreasureConfig _tagTreasureModel; private TreasureRefineConfig _refineModel; private PlayerPropertyConfig _propertyModel; private FuncConfigConfig _tagFuncModel; private SkillConfig tagChinSkill; BlastFurnaceModel _furnaceModel; BlastFurnaceModel FurnaceModel { get { return _furnaceModel ?? (_furnaceModel = ModelCenter.Instance.GetModel<BlastFurnaceModel>()); } } #region 实现抽象类 protected override void BindController() { _tagFuncModel = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("FightpowerFormula"); _addFightingText = transform.Find("AddFightingText").GetComponent<Text>(); _refineLvText = transform.Find("RefineLvText").GetComponent<Text>(); _openSkillText = transform.Find("OpenSkillText").GetComponent<Text>(); } protected override void AddListeners() { } protected override void OnPreOpen() { _treasure = FurnaceModel.treasureData; if(_treasure != null) { _refineModel = TreasureRefineConfig.GetTreasureRefineModel(_treasure.id, _treasure.level); _tagTreasureModel = ConfigManager.Instance.GetTemplate<TreasureConfig>(_treasure.id); InitUI(); } } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } #endregion public void InitUI() { _addFightingText.text = Language.Get("BlastFurnace108",GetAddFighting()); if(_tagTreasureModel != null) { _refineLvText.text = Language.Get("BlastFurnace109",_tagTreasureModel.Name,_treasure.level); } if(_refineModel != null) { if(_refineModel.OpenSkill != 0) { _openSkillText.gameObject.SetActive(true); tagChinSkill = ConfigManager.Instance.GetTemplate<SkillConfig>(_refineModel.OpenSkill); if(tagChinSkill != null) { _openSkillText.text = Language.Get("BlastFurnace110",tagChinSkill.SkillName); } } else { _openSkillText.gameObject.SetActive(false); } } else { _openSkillText.gameObject.SetActive(false); } Invoke("CloseWin", 2); } private int[] attrIds; private int[] attrValues; private Dictionary<string, string> _attrDict = new Dictionary<string, string>(); public string GetAddFighting() { if (_refineModel == null) return ""; FurnaceModel.SetTreasureRefineModel(_refineModel); attrIds = FurnaceModel.attrIDs; attrValues = FurnaceModel.attrValues; int i = 0; _attrDict.Clear(); Equation.Instance.Clear(); for (i = 0; i < attrIds.Length; i++) { _propertyModel = ConfigManager.Instance.GetTemplate<PlayerPropertyConfig>(attrIds[i]); if (_propertyModel != null) { Equation.Instance.AddKeyValue(_propertyModel.Parameter, attrValues[i]); } } if (_tagFuncModel != null) { return Equation.Instance.Eval<int>(_tagFuncModel.Numerical1).ToString(); } return ""; } private void CloseWin() { Close(); } } } using UnityEngine; using UnityEngine.UI; using TableConfig; using System.Collections.Generic; namespace Snxxz.UI { public class TreasureRefineSuccessWin : Window { private Text _addFightingText; private Text _refineLvText; private Text _openSkillText; private int _addFighting; private Treasure _treasure; private TreasureConfig _tagTreasureModel; private TreasureRefineConfig _refineModel; private PlayerPropertyConfig _propertyModel; private FuncConfigConfig _tagFuncModel; private SkillConfig tagChinSkill; BlastFurnaceModel _furnaceModel; BlastFurnaceModel FurnaceModel { get { return _furnaceModel ?? (_furnaceModel = ModelCenter.Instance.GetModel<BlastFurnaceModel>()); } } #region 实现抽象类 protected override void BindController() { _tagFuncModel = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("FightpowerFormula"); _addFightingText = transform.Find("AddFightingText").GetComponent<Text>(); _refineLvText = transform.Find("RefineLvText").GetComponent<Text>(); _openSkillText = transform.Find("OpenSkillText").GetComponent<Text>(); } protected override void AddListeners() { } protected override void OnPreOpen() { //_treasure = FurnaceModel.treasureData; //if(_treasure != null) //{ // _refineModel = TreasureRefineConfig.GetTreasureRefineModel(_treasure.id, _treasure.level); // _tagTreasureModel = ConfigManager.Instance.GetTemplate<TreasureConfig>(_treasure.id); // InitUI(); //} } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } #endregion public void InitUI() { //_addFightingText.text = Language.Get("BlastFurnace108",GetAddFighting()); //if(_tagTreasureModel != null) //{ // _refineLvText.text = Language.Get("BlastFurnace109",_tagTreasureModel.Name,_treasure.level); //} //if(_refineModel != null) //{ // if(_refineModel.OpenSkill != 0) // { // _openSkillText.gameObject.SetActive(true); // tagChinSkill = ConfigManager.Instance.GetTemplate<SkillConfig>(_refineModel.OpenSkill); // if(tagChinSkill != null) // { // _openSkillText.text = Language.Get("BlastFurnace110",tagChinSkill.SkillName); // } // } // else // { // _openSkillText.gameObject.SetActive(false); // } //} //else //{ // _openSkillText.gameObject.SetActive(false); //} //Invoke("CloseWin", 2); } private int[] attrIds; private int[] attrValues; private Dictionary<string, string> _attrDict = new Dictionary<string, string>(); public string GetAddFighting() { if (_refineModel == null) return ""; FurnaceModel.SetTreasureRefineModel(_refineModel); attrIds = FurnaceModel.attrIDs; attrValues = FurnaceModel.attrValues; int i = 0; _attrDict.Clear(); Equation.Instance.Clear(); for (i = 0; i < attrIds.Length; i++) { _propertyModel = ConfigManager.Instance.GetTemplate<PlayerPropertyConfig>(attrIds[i]); if (_propertyModel != null) { Equation.Instance.AddKeyValue(_propertyModel.Parameter, attrValues[i]); } } if (_tagFuncModel != null) { return Equation.Instance.Eval<int>(_tagFuncModel.Numerical1).ToString(); } return ""; } private void CloseWin() { Close(); } } } System/BlastFurnace/TreasureRefineTips.cs
@@ -213,73 +213,6 @@ private void OnClickDandrugCell(bool isOn,CellView cell,TreasureRefineConfig nextRefineModel,Treasure treasure) { if (!isOn) return; presentIndex = cell.index; TreasureConfig treasureModel = ConfigManager.Instance.GetTemplate<TreasureConfig>(treasure.id); _treasureNameText.text = treasureModel.Name; TreasureRefineConfig refineModel = TreasureRefineConfig.GetTreasureRefineModel(cell.index,treasure.level); _treasureModel = nextRefineModel; FurnaceModel.SetTreasureRefineModel(refineModel); FurnaceModel.SetTreasureSkillDict(treasure.id,treasure.level); FurnaceModel.SetNextTreasureRefineModel(nextRefineModel); _treasureSkillDict =FurnaceModel.treasureSkillDict; UI3DTreasureExhibition.Instance.BeginShowTreasure(treasure.id,_treasureIcon); CreateEffectCell(_treasureSkillDict); int i = 0; int length = _treasureAttrlist.Count; for (i = 0; i < length; i++) { _treasureAttrlist[i].SetActive(false); } if (refineModel == null) { SetTreasureAttrStr(FurnaceModel.nextAttrIDs,null,FurnaceModel.nextAttrValues); } else if(FurnaceModel.TreasureIsFullLv(treasure.id,treasure.level)) { SetTreasureAttrStr(FurnaceModel.attrIDs,FurnaceModel.attrValues,null); _refineMaterContent.SetActive(false); _makeDanBtn.gameObject.SetActive(false); _noEnoughLVText.gameObject.SetActive(true); _noEnoughLVText.text = Language.Get("BlastFurnace102"); } else { SetTreasureAttrStr(FurnaceModel.attrIDs,FurnaceModel.attrValues,FurnaceModel.nextAttrValues); } if (FurnaceModel.StoveLV < nextRefineModel.BlastFurnaceLV) { _refineMaterContent.SetActive(true); _makeDanBtn.gameObject.SetActive(false); _noEnoughLVText.gameObject.SetActive(true); _noEnoughLVText.text = Language.Get("BlastFurnace103"); } if(FurnaceModel.StoveLV >= nextRefineModel.BlastFurnaceLV && !FurnaceModel.TreasureIsFullLv(treasure.id, treasure.level)) { _refineMaterContent.SetActive(true); _makeDanBtn.gameObject.SetActive(true); _noEnoughLVText.gameObject.SetActive(false); } ChangeSuccessRate(0); RefreshMaterial(); _refineMaterialButton.RemoveAllListeners(); _refineMaterialButton.AddListener(() => { //ItemWinModel itemWinModel = ItemCommonCtrl.Instance.OnSingleClickItemCell(FurnaceModel.nextRefineMaterialID); //ItemPopModel.Instance.SetDefaultShowUIDict(itemWinModel, false); //itemWinModel.SetShowWin(itemWinModel); ItemAttrData attrData = new ItemAttrData(FurnaceModel.nextRefineMaterialID,true); itemTipsModel.SetItemTipsModel(attrData); }); RefreshAllTreasureLv(); _chooseFireBtn.gameObject.SetActive(true); } private void SetTreasureAttrStr(int[] attrIds, int[] attrValues,int[] nextAttrValues) System/FindPrecious/DemonJarModel.cs
@@ -73,6 +73,8 @@ DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } } TreasureSoulModel treasureSoulModel { get { return ModelCenter.Instance.GetModel<TreasureSoulModel>(); } } public override void Init() { doubleToKillLowerBossHint = true; @@ -108,7 +110,7 @@ public void OnPlayerLoginOk() { demonJarSoulBuf = treasureModel.GetPrivilegeValue(2); demonJarSoulBuf = treasureSoulModel.GetTreasureSoulValue(2); demonJarSoulIncreaseDelta = 0; var bossId = GetLatestUnLockBoss(); @@ -250,7 +252,7 @@ public void UpdateDemonJarSoul() { var demonJarSoul = treasureModel.GetPrivilegeValue(2); var demonJarSoul = treasureSoulModel.GetTreasureSoulValue(2); demonJarSoulIncreaseDelta = demonJarSoul - demonJarSoulBuf; demonJarSoulBuf = demonJarSoul; } System/KnapSack/Logic/TreasureEffectModel.cs
@@ -35,7 +35,7 @@ treasureSignlist = new List<int>(); for (int i = 0; i < treasureUplist.Count; i++) { if(treasureUplist[i].Privilege == (int)TreasurePrivilege.Sign) if(treasureUplist[i].MWID == 304) { treasureSignlist.Add(treasureUplist[i].ID); } @@ -126,7 +126,7 @@ if (treasureUpConfig.MWID == treasureId && treasureUpConfig.LV == 0) { type = 2; TreasurePrivilegeConfig privilegeConfig = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>(treasureUpConfig.Privilege); TreasurePrivilegeConfig privilegeConfig = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>((int)TreasurePrivilege.Sign); JsonData signData = JsonMapper.ToObject(privilegeConfig.attr); foreach (var key in signData.Keys) { System/Rune/RuneBreakWin.cs
@@ -40,7 +40,7 @@ } } TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } } TreasureSoulModel treasureSoulModel { get { return ModelCenter.Instance.GetModel<TreasureSoulModel>(); } } RuneComposeModel m_RuneComposeModel; RuneComposeModel runeComposeModel @@ -278,7 +278,7 @@ PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent; m_PlayerBreakEffect = false; UpdateRuneBreak(true); m_ContainerRuneSoul.gameObject.SetActive(treasureModel.IsGetTreasurePrivilege(TreasurePrivilege.RuneBreakExpAdd)); m_ContainerRuneSoul.gameObject.SetActive(treasureSoulModel.IsGetTreasureSoul((int)TreasurePrivilege.RuneBreakExpAdd)); } protected override void OnAfterOpen() System/Rune/RuneModel.cs
@@ -230,8 +230,8 @@ public float GetRuneSoulBreakExp(RuneData _rune) { ItemConfig _itemCfg = ConfigManager.Instance.GetTemplate<ItemConfig>(_rune.id); var _treasureModel = ModelCenter.Instance.GetModel<TreasureModel>(); var _upper = (float)_treasureModel.GetPrivilegeValue((int)TreasurePrivilege.RuneBreakExpAdd) / 10000; var _treasureSoul = ModelCenter.Instance.GetModel<TreasureSoulModel>(); var _upper = (float)_treasureSoul.GetTreasureSoulValue((int)TreasurePrivilege.RuneBreakExpAdd) / 10000; if (_itemCfg.Type == RUNE_CREAMTYPE) { return _itemCfg.EffectValueA1 * _upper; @@ -246,8 +246,8 @@ { float _exp = 0; ItemConfig _itemCfg = ConfigManager.Instance.GetTemplate<ItemConfig>(_rune.id); var _treasureModel = ModelCenter.Instance.GetModel<TreasureModel>(); var _upper = (float)_treasureModel.GetPrivilegeValue((int)TreasurePrivilege.RuneBreakExpAdd) / 10000; var _treasureSoul = ModelCenter.Instance.GetModel<TreasureSoulModel>(); var _upper = (float)_treasureSoul.GetTreasureSoulValue((int)TreasurePrivilege.RuneBreakExpAdd) / 10000; if (_itemCfg.Type == RUNE_CREAMTYPE) { return _itemCfg.EffectValueA1 + _itemCfg.EffectValueA1 * _upper; System/Treasure/FairyTreasureCollectPanelPattern1.cs
File was deleted System/Treasure/FairyTreasureCollectPanelPattern4.cs
@@ -80,30 +80,30 @@ private void OnSignRefresh() { if (treasure.treasureStages[0].unlockType == TreasureStageUnlock.Privilege) { var _specialData = treasure.treasureStages[0].specialData; if (_specialData.type == TreasurePrivilege.Sign) { var _property = _specialData.propertyDict.First(); var _propertyCfg = ConfigManager.Instance.GetTemplate<PlayerPropertyConfig>(_property.Key); m_SignPropertyEffect.text = Language.Get("FairyTreasure_5", _property.Value, _propertyCfg.Name); m_SignInTotalDays.text = Language.Get("FairyTreasure_6", signInModel.SumSignNum); if (treasure.state != TreasureState.Collected) { m_ProerptyValue.text = Language.Get("FairyTreasure_7", _propertyCfg.Name, signInModel.SumSignNum * _property.Value); m_SignInTip.text = Language.Get("SignInTreasureTip1"); } else { m_ProerptyValue.text = Language.Get("FairyTreasure_8", _propertyCfg.Name, signInModel.SumSignNum * _property.Value); m_SignInTip.text = Language.Get("SignInTreasureTip2"); } } } //if (treasure.treasureStages[0].unlockType == TreasureStageUnlock.Privilege) //{ // var _specialData = treasure.treasureStages[0].specialData; // if (_specialData.type == TreasurePrivilege.Sign) // { // var _property = _specialData.propertyDict.First(); // var _propertyCfg = ConfigManager.Instance.GetTemplate<PlayerPropertyConfig>(_property.Key); // m_SignPropertyEffect.text = Language.Get("FairyTreasure_5", // _property.Value, _propertyCfg.Name); // m_SignInTotalDays.text = Language.Get("FairyTreasure_6", signInModel.SumSignNum); // if (treasure.state != TreasureState.Collected) // { // m_ProerptyValue.text = Language.Get("FairyTreasure_7", // _propertyCfg.Name, signInModel.SumSignNum * _property.Value); // m_SignInTip.text = Language.Get("SignInTreasureTip1"); // } // else // { // m_ProerptyValue.text = Language.Get("FairyTreasure_8", // _propertyCfg.Name, signInModel.SumSignNum * _property.Value); // m_SignInTip.text = Language.Get("SignInTreasureTip2"); // } // } //} } } } System/Treasure/TreasureData.cs
@@ -17,13 +17,6 @@ { public int id { get; private set; } int m_Level; public int level { get { return m_Level; } set { m_Level = value; } } int m_Stage; public int stage { @@ -52,7 +45,6 @@ set { m_State = value; } } #region 旧数据 int m_Progress = 0; public int progress { @@ -115,8 +107,6 @@ public List<int> achievements = new List<int>(); public Dictionary<int, AchievementGroup> achievementGroups = new Dictionary<int, AchievementGroup>(); public Item[] needItems { get; private set; } public Redpoint skillLevelUpRedpoint { get; private set; } public Redpoint achievementRedpoint { get; private set; } @@ -188,29 +178,6 @@ tempPotentials.Add(new TreasurePotential(skillId, 0)); } } } if (!string.IsNullOrEmpty(config.NeedItem)) { try { var stringSet = config.NeedItem.Split('|'); needItems = new Item[stringSet.Length]; for (int i = 0; i < needItems.Length; i++) { var itemStrings = stringSet[i].Split('_'); needItems[i] = new Item(int.Parse(itemStrings[0]), int.Parse(itemStrings[1])); } } catch (Exception ex) { Debug.Log(ex.StackTrace); } } else { needItems = null; } } @@ -269,40 +236,11 @@ return configA.ReOrder < configB.ReOrder ? -1 : 1; } #endregion public TreasureSpecialData specialData { get; private set; } public List<TreasureStage> treasureStages = new List<TreasureStage>(); public void UpdateTreasureStage(TreasureUpConfig _cfg) { TreasureStage _stage; if (_cfg.UnLockFuncID != 0) { _stage = new TreasureStage(_cfg.UnLockFuncID); unLockFunc = _stage.func; } else if (_cfg.Privilege != 0) { _stage = new TreasureStage(_cfg.Privilege, TreasureStageUnlock.Privilege); specialData = _stage.specialData; unLockPrivilege = _stage.privilege; } else if (_cfg.UnLockSkill != null && _cfg.UnLockSkill.Length > 1) { _stage = new TreasureStage(_cfg.UnLockSkill); } else if (!_cfg.AddAttr.Equals(string.Empty)) { _stage = new TreasureStage(_cfg.AddAttr); } else { _stage = new TreasureStage(); } _stage.exp = _cfg.NeedExp; _stage.stage = _cfg.LV; _stage.limitLevel = _cfg.LVLimit; TreasureStage _stage = new TreasureStage(_cfg); treasureStages.Add(_stage); } @@ -374,12 +312,6 @@ } ModelCenter.Instance.GetModel<TreasureModel>().HumanTreasureStateChange(base.id); } } public HumanTreasure(int _id) : base(_id) { } public HumanTreasure(int _id, int[] _potentialIds, Redpoint _skillLevelUpRedpoint, Redpoint _achievementPoint @@ -600,63 +532,71 @@ public Dictionary<int, int> propertyDict { get; private set; } public Dictionary<int, int> skillDict { get; private set; } public int func { get; private set; } public int privilege { get; private set; } public Item item { get; private set; } public int treasure { get; private set; } public int exp { get; set; } public TreasureSpecialData specialData { get; private set; } public int stateSfxId { get; private set; } public const int selectedSfxId = 5144; public string sfxGotState { get; private set; } public string sfxUnGotState { get; private set; } public int limitLevel { get; set; } public TreasureStage() public TreasureStage(TreasureUpConfig _config) { unlockType = TreasureStageUnlock.None; } public TreasureStage(int _value, TreasureStageUnlock _type = TreasureStageUnlock.Func) { unlockType = _type; func = _type == TreasureStageUnlock.Func ? _value : 0; privilege = _type == TreasureStageUnlock.Privilege ? _value : 0; stateSfxId = 5141; sfxGotState = "Effect_FaBao_Icon_JiNeng_01"; sfxUnGotState = "Effect_FaBao_Icon_JiNeng_02"; //stateSfxId = _type == TreasureStageUnlock.Func ? 5140 : 5143; //sfxGotState = _type == TreasureStageUnlock.Func ? "Effect_FaBao_Icon_GongNeng_01" : "Effect_FaBao_Icon_TeQuan_02"; //sfxUnGotState = _type == TreasureStageUnlock.Func ? "Effect_FaBao_Icon_GongNeng" : "Effect_FaBao_Icon_TeQuan"; if (_type == TreasureStageUnlock.Privilege) if (_config.UnLockFuncID != 0) { SetSpecial(); unlockType = TreasureStageUnlock.Func; func = _config.UnLockFuncID; } } public TreasureStage(string _property) { unlockType = TreasureStageUnlock.Property; propertyDict = ConfigParse.GetDic<int, int>(_property); stateSfxId = propertyDict.ContainsKey(6) ? 5142 : 5139; sfxGotState = propertyDict.ContainsKey(6) ? "Effect_FaBao_Icon_ShengMing" : "Effect_FaBao_Icon_GongJi"; sfxUnGotState = propertyDict.ContainsKey(6) ? "Effect_FaBao_Icon_ShengMing" : "Effect_FaBao_Icon_GongJi"; } public TreasureStage(int[] _skills) { unlockType = TreasureStageUnlock.Skill; stateSfxId = 5141; sfxGotState = "Effect_FaBao_Icon_JiNeng_01"; sfxUnGotState = "Effect_FaBao_Icon_JiNeng_02"; skillDict = new Dictionary<int, int>(); for (int i = 0; i < _skills.Length; i++) else if (_config.UnLockSkill != null && _config.UnLockSkill.Length > 1) { skillDict.Add(i + 1, _skills[i]); unlockType = TreasureStageUnlock.Skill; skillDict = new Dictionary<int, int>(); for (int i = 0; i < _config.UnLockSkill.Length; i++) { skillDict.Add(i + 1, _config.UnLockSkill[i]); } } } else if (!string.IsNullOrEmpty(_config.AddAttr)) { unlockType = TreasureStageUnlock.Property; propertyDict = ConfigParse.GetDic<int, int>(_config.AddAttr); } else if (_config.ActiveMWID != 0) { unlockType = TreasureStageUnlock.Treasure; treasure = _config.ActiveMWID; } else if (!string.IsNullOrEmpty(_config.ItemAward)) { unlockType = TreasureStageUnlock.Item; var itemArray = LitJson.JsonMapper.ToObject<int[]>(_config.ItemAward); if (itemArray != null && itemArray.Length > 0) { item = new Item() { id = itemArray[0], count = itemArray.Length > 1 ? itemArray[1] : 1, bind = itemArray.Length > 2 ? (itemArray[2] == 1) : false, }; } } public void SetSpecial() { var _priviligeCfg = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>(privilege); specialData = new TreasureSpecialData((TreasurePrivilege)_priviligeCfg.PrivilegeID); exp = _config.NeedExp; stage = _config.LV; switch (unlockType) { case TreasureStageUnlock.Property: stateSfxId = propertyDict.ContainsKey(6) ? 5142 : 5139; sfxGotState = propertyDict.ContainsKey(6) ? "Effect_FaBao_Icon_ShengMing" : "Effect_FaBao_Icon_GongJi"; sfxUnGotState = propertyDict.ContainsKey(6) ? "Effect_FaBao_Icon_ShengMing" : "Effect_FaBao_Icon_GongJi"; break; default: stateSfxId = 5141; sfxGotState = "Effect_FaBao_Icon_JiNeng_01"; sfxUnGotState = "Effect_FaBao_Icon_JiNeng_02"; break; } } public int GetSkill(int _job) @@ -682,8 +622,6 @@ return _skillCfg.FightPower; } break; case TreasureStageUnlock.Privilege: return specialData.GetFightPower(); } return 0; } @@ -695,297 +633,8 @@ Property, Skill, Func, Privilege, } public enum TreasurePrivilege { Property = 1, DemonJarAtk = 2, StrengthenAdd = 3, RuneBreakExpAdd = 4, MountAtk = 5, PetHp = 6, Boss = 7, Wing = 8, Suit = 9, Wash = 10, Sign = 11, } public enum TreasurePrivilegeState { Doing = 0, Reward = 1, Complete = 2 } public class TreasureSpecialData { public TreasurePrivilege type { get; private set; } public int progress { get; private set; } public int totalProgress { get; private set; } public int effectValue { get; private set; } public List<AwardItem> items { get; private set; } public Dictionary<int, int> propertyDict { get; private set; } public Redpoint privilegeRedpoint { get; private set; } private TreasurePrivilegeState m_State = TreasurePrivilegeState.Doing; public TreasurePrivilegeState state { get { return m_State; } set { m_State = value; } } public int presentFinishCount { get; set; } public int presentGetCount { get; set; } public bool itemGet { get; set; } public TreasureSpecialData(TreasurePrivilege _type) { type = _type; var config = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>((int)_type); progress = Mathf.Max(1, config.singleValue); totalProgress = config.maxValue; var _effectValue = 0; int.TryParse(config.EffectValue, out _effectValue); effectValue = _effectValue; if (!string.IsNullOrEmpty(config.attr)) { var propertyJson = LitJson.JsonMapper.ToObject(config.attr); propertyDict = new Dictionary<int, int>(); foreach (var _key in propertyJson.Keys) { var _property = int.Parse(_key); var _value = int.Parse(propertyJson[_key].ToJson()); propertyDict.Add(_property, _value); } } if (!string.IsNullOrEmpty(config.itemAward)) { var itemArray = LitJson.JsonMapper.ToObject<int[][]>(config.itemAward); if (itemArray != null && itemArray.Length > 0) { items = new List<AwardItem>(); for (int i = 0; i < itemArray.Length; i++) { var _array = itemArray[i]; items.Add(new AwardItem() { isBind = _array[2], item = new Item() { id = _array[0], count = _array[1], }, }); } } } if (type == TreasurePrivilege.PetHp) { var petCount = ConfigManager.Instance.GetAllValues<PetInfoConfig>().Count; totalProgress = petCount; } else if (type == TreasurePrivilege.MountAtk) { var mountConfigs = ConfigManager.Instance.GetAllValues<HorseConfig>(); var maxlv = 0; for (int i = 0; i < mountConfigs.Count; i++) { maxlv += mountConfigs[i].MaxLV; } totalProgress = maxlv; } else if (type == TreasurePrivilege.StrengthenAdd) { var configs = ConfigManager.Instance.GetAllValues<ItemPlusSumAttrConfig>(); totalProgress = configs[configs.Count - 1].countNeed; } switch (_type) { case TreasurePrivilege.DemonJarAtk: case TreasurePrivilege.StrengthenAdd: case TreasurePrivilege.MountAtk: case TreasurePrivilege.PetHp: case TreasurePrivilege.Boss: case TreasurePrivilege.Wash: privilegeRedpoint = new Redpoint(TreasureModel.TREASURE_SOUL_ID, TreasureModel.TREASURE_SOUL_ID * 100 + (int)type); break; } } public int GetPrivilegeValue(int _index = 0) { switch (type) { case TreasurePrivilege.RuneBreakExpAdd: return effectValue; case TreasurePrivilege.DemonJarAtk: case TreasurePrivilege.Suit: return effectValue; case TreasurePrivilege.Wing: case TreasurePrivilege.StrengthenAdd: return effectValue; } return 0; } public void UpdateState() { switch (type) { case TreasurePrivilege.Property: case TreasurePrivilege.RuneBreakExpAdd: case TreasurePrivilege.Wing: case TreasurePrivilege.Suit: state = TreasurePrivilegeState.Complete; break; case TreasurePrivilege.Boss: case TreasurePrivilege.DemonJarAtk: case TreasurePrivilege.PetHp: case TreasurePrivilege.MountAtk: privilegeRedpoint.state = RedPointState.None; if (presentFinishCount >= totalProgress && (presentGetCount / progress) >= (totalProgress / progress)) { state = TreasurePrivilegeState.Complete; } else if (presentGetCount > 0 && presentFinishCount / progress < presentGetCount / progress) { state = TreasurePrivilegeState.Reward; privilegeRedpoint.state = RedPointState.Simple; } else { state = TreasurePrivilegeState.Doing; } break; case TreasurePrivilege.Wash: privilegeRedpoint.state = itemGet ? RedPointState.None : RedPointState.Simple; state = itemGet ? TreasurePrivilegeState.Doing : TreasurePrivilegeState.Reward; break; case TreasurePrivilege.StrengthenAdd: privilegeRedpoint.state = RedPointState.None; var strengthen = ModelCenter.Instance.GetModel<PlayerStrengthengDatas>(); var playerpack = ModelCenter.Instance.GetModel<PlayerPackModel>(); presentGetCount = 0; foreach (var value in strengthen._EqInfo.Values) { ItemModel itemModel = playerpack.GetItemModelByIndex(PackType.rptEquip, value.EquipIndex); if (itemModel != null) { presentGetCount += value.EquipPartStarLV; } } var configs = ConfigManager.Instance.GetAllValues<ItemPlusSumAttrConfig>(); bool contains = configs.FindIndex((x) => { return x.countNeed > presentFinishCount && presentGetCount >= x.countNeed; }) != -1; if (presentFinishCount >= totalProgress && presentGetCount >= totalProgress) { state = TreasurePrivilegeState.Complete; } else if (contains) { state = TreasurePrivilegeState.Reward; privilegeRedpoint.state = RedPointState.Simple; } else { state = TreasurePrivilegeState.Doing; } break; } } public string ProgressDisplay() { switch (type) { case TreasurePrivilege.DemonJarAtk: case TreasurePrivilege.PetHp: case TreasurePrivilege.MountAtk: case TreasurePrivilege.Boss: if (state == TreasurePrivilegeState.Complete) { return UIHelper.GetTextColorByItemColor(TextColType.Green, totalProgress.ToString(), true); } else if (state == TreasurePrivilegeState.Doing) { return StringUtility.Contact(UIHelper.GetTextColorByItemColor(TextColType.Red, presentGetCount.ToString(), true), "/", (presentFinishCount / progress + 1) * progress); } else if (state == TreasurePrivilegeState.Reward) { var _completeCount = (presentFinishCount / progress + 1) * progress; return StringUtility.Contact(UIHelper.GetTextColorByItemColor(TextColType.Green, presentGetCount.ToString(), true), "/", _completeCount); } break; case TreasurePrivilege.StrengthenAdd: var configs = ConfigManager.Instance.GetAllValues<ItemPlusSumAttrConfig>(); var next = configs.Count - 1; for (int i = 0; i < configs.Count; i++) { if (configs[i].countNeed > presentFinishCount) { next = i; break; } } if (state == TreasurePrivilegeState.Complete) { return totalProgress.ToString(); } else if (state == TreasurePrivilegeState.Doing || state == TreasurePrivilegeState.Reward) { var colortype = presentGetCount >= configs[next].countNeed ? TextColType.Green : TextColType.Red; return StringUtility.Contact(UIHelper.GetTextColorByItemColor(colortype, presentGetCount.ToString(), true), "/", configs[next].countNeed); } break; } return string.Empty; } public void GetReward() { switch (type) { case TreasurePrivilege.MountAtk: case TreasurePrivilege.DemonJarAtk: case TreasurePrivilege.PetHp: case TreasurePrivilege.Boss: case TreasurePrivilege.Wash: var _pak = new CA504_tagCMPlayerGetReward(); _pak.RewardType = (int)GotServerRewardType.Def_RewardType_TreasureSoul; _pak.DataEx = (uint)type; _pak.DataExStrLen = 0; _pak.DataExStr = string.Empty; GameNetSystem.Instance.SendInfo(_pak); break; case TreasurePrivilege.StrengthenAdd: var configs = ConfigManager.Instance.GetAllValues<ItemPlusSumAttrConfig>(); var present = 0; for (int i = 0; i < configs.Count; i++) { if (presentGetCount >= configs[i].countNeed) { present = i; } } CA503_tagCMActiveAllEquipAttr pak = new CA503_tagCMActiveAllEquipAttr(); pak.Type = 0; pak.Cnt = (uint)configs[present].countNeed; GameNetSystem.Instance.SendInfo(pak); break; } } public int GetFightPower() { var _fightPower = 0; if (propertyDict != null) { _fightPower += UIHelper.GetFightPower(propertyDict); } return _fightPower; } Item, Treasure, } } System/Treasure/TreasureLevelUpWin.cs
@@ -163,7 +163,7 @@ model.treasureLevelProgressUpdateEvent += TreasureLevelProgressUpdateEvent; model.treasureSelectedEvent += TreasureSelectedEvent; model.treasureStageUpEvent += TreasureStageUpEvent; PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent; //PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent; m_TreasureAnimation.OnStepComplete += OnStepComplete; RedpointCenter.Instance.redpointValueChangeEvent += RedpointValueChangeEvent; achievementModel.achievementCompletedEvent += AchievementCompletedEvent; @@ -209,7 +209,7 @@ PlayerTaskDatas.CardLevelChange -= CardLevelChange; model.treasureSelectedEvent -= TreasureSelectedEvent; model.treasureStageUpEvent -= TreasureStageUpEvent; PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= PlayerDataRefreshInfoEvent; //PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= PlayerDataRefreshInfoEvent; m_TreasureAnimation.OnStepComplete -= OnStepComplete; RedpointCenter.Instance.redpointValueChangeEvent -= RedpointValueChangeEvent; achievementModel.achievementCompletedEvent -= AchievementCompletedEvent; @@ -423,31 +423,31 @@ } } private void PlayerDataRefreshInfoEvent(PlayerDataRefresh type) { if (type != PlayerDataRefresh.LV) { return; } if (m_Treasure != null && m_Treasure.state != TreasureState.Collected) { UpdateTreasureUnlockDetail(); } else if (m_Treasure != null && m_Treasure.state == TreasureState.Collected) { if (m_TreasureAnimation.stepComplete && !model.treasureStepUpShow && !m_AchievementScroll.showing && !m_Treasure.IsMaxStage()) { var _stage = m_Treasure.treasureStages[m_Treasure.StageCount - 1]; if (beforePlayerLv < _stage.limitLevel && PlayerDatas.Instance.baseData.LV >= _stage.limitLevel) { DisplayAchievements(true); UpdateTreasureProgress(); } } beforePlayerLv = PlayerDatas.Instance.baseData.LV; } } //private void PlayerDataRefreshInfoEvent(PlayerDataRefresh type) //{ // if (type != PlayerDataRefresh.LV) // { // return; // } // if (m_Treasure != null && m_Treasure.state != TreasureState.Collected) // { // UpdateTreasureUnlockDetail(); // } // else if (m_Treasure != null && m_Treasure.state == TreasureState.Collected) // { // if (m_TreasureAnimation.stepComplete && !model.treasureStepUpShow // && !m_AchievementScroll.showing && !m_Treasure.IsMaxStage()) // { // var _stage = m_Treasure.treasureStages[m_Treasure.StageCount - 1]; // if (beforePlayerLv < _stage.limitLevel && PlayerDatas.Instance.baseData.LV >= _stage.limitLevel) // { // DisplayAchievements(true); // UpdateTreasureProgress(); // } // } // beforePlayerLv = PlayerDatas.Instance.baseData.LV; // } //} private void OnFuncStateChangeEvent(int _id) { @@ -566,14 +566,14 @@ FuncOpen.Instance.ProcessorFuncErrorTip(126); return; } var _stage = m_Treasure.treasureStages.Find((x) => { return x.unlockType == TreasureStageUnlock.Privilege; }); if (_stage != null) { OpenTreasureStageTip(_stage.stage, m_PrivilegeLockBtn.transform as RectTransform); } //var _stage = m_Treasure.treasureStages.Find((x) => //{ // return x.unlockType == TreasureStageUnlock.Privilege; //}); //if (_stage != null) //{ // OpenTreasureStageTip(_stage.stage, m_PrivilegeLockBtn.transform as RectTransform); //} } private void OpenTreasureStageTip(int _stage, RectTransform _target) @@ -1016,7 +1016,7 @@ case TreasureStageUnlock.Func: StartScreenShot(); break; case TreasureStageUnlock.Privilege: //case TreasureStageUnlock.Privilege: case TreasureStageUnlock.Property: WindowCenter.Instance.Open<TreasureNewStageWin>(true); break; @@ -1178,31 +1178,31 @@ m_TreasureStageDesc.text = Language.Get("TreasureLevelUpSkill", _funcCfg.Remark); m_CurrentStageIcon.SetSprite(_funcCfg.Icon); break; case TreasureStageUnlock.Privilege: var privilege = m_Treasure.treasureStages[m_Treasure.StageCount - 1]; var _privilegeCfg = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>(_nextStage.privilege); if (!FuncOpen.Instance.IsFuncOpen(126)) { m_CurrentStageIcon.SetSprite("UnKnowIcon"); if (!FuncOpen.Instance.IsFuncOpen(126)) { var funcConfig = ConfigManager.Instance.GetTemplate<FuncOpenLVConfig>(126); m_TreasureStageDesc.text = Language.Get("TreasurePrivilegeFuncLimit", funcConfig.LimitLV, funcConfig.Remark); } } else { m_CurrentStageIcon.SetSprite(_privilegeCfg.Icon); if (PlayerDatas.Instance.baseData.LV >= _nextStage.limitLevel) { m_TreasureStageDesc.text = _privilegeCfg.Name; } else { m_TreasureStageDesc.text = Language.Get("TreasurePrivilege_Unlock", _nextStage.limitLevel); } } break; //case TreasureStageUnlock.Privilege: // var privilege = m_Treasure.treasureStages[m_Treasure.StageCount - 1]; // var _privilegeCfg = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>(_nextStage.privilege); // if (!FuncOpen.Instance.IsFuncOpen(126)) // { // m_CurrentStageIcon.SetSprite("UnKnowIcon"); // if (!FuncOpen.Instance.IsFuncOpen(126)) // { // var funcConfig = ConfigManager.Instance.GetTemplate<FuncOpenLVConfig>(126); // m_TreasureStageDesc.text = Language.Get("TreasurePrivilegeFuncLimit", funcConfig.LimitLV, funcConfig.Remark); // } // } // else // { // m_CurrentStageIcon.SetSprite(_privilegeCfg.Icon); // if (PlayerDatas.Instance.baseData.LV >= _nextStage.limitLevel) // { // m_TreasureStageDesc.text = _privilegeCfg.Name; // } // else // { // m_TreasureStageDesc.text = Language.Get("TreasurePrivilege_Unlock", _nextStage.limitLevel); // } // } // break; } } else System/Treasure/TreasureMeridianBehaviour.cs
@@ -92,14 +92,14 @@ if (m_TreasureStage != null && m_TreasureStage.unlockType != TreasureStageUnlock.Property) { if (m_TreasureStage.unlockType == TreasureStageUnlock.Privilege) { if (!FuncOpen.Instance.IsFuncOpen(126)) { FuncOpen.Instance.ProcessorFuncErrorTip(126); return; } } //if (m_TreasureStage.unlockType == TreasureStageUnlock.Privilege) //{ // if (!FuncOpen.Instance.IsFuncOpen(126)) // { // FuncOpen.Instance.ProcessorFuncErrorTip(126); // return; // } //} model.selectedStage = m_TreasureStage.stage; if (!WindowCenter.Instance.CheckOpen<TreasureStageTipWin>()) { @@ -174,21 +174,21 @@ m_Descs[0].gameObject.SetActive(true); m_Icon.SetSprite(_funcCfg.Icon); break; case TreasureStageUnlock.Privilege: m_Descs[0].gameObject.SetActive(true); m_Descs[0].color = UIHelper.s_LightYellow; var _privilegeCfg = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>(m_TreasureStage.privilege); if (FuncOpen.Instance.IsFuncOpen(126)) { m_Icon.SetSprite(_privilegeCfg.Icon); m_Descs[0].text = _privilegeCfg.Name; } else { m_Icon.SetSprite("UnKnowIcon"); m_Descs[0].text = string.Empty; } break; //case TreasureStageUnlock.Privilege: // m_Descs[0].gameObject.SetActive(true); // m_Descs[0].color = UIHelper.s_LightYellow; // var _privilegeCfg = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>(m_TreasureStage.privilege); // if (FuncOpen.Instance.IsFuncOpen(126)) // { // m_Icon.SetSprite(_privilegeCfg.Icon); // m_Descs[0].text = _privilegeCfg.Name; // } // else // { // m_Icon.SetSprite("UnKnowIcon"); // m_Descs[0].text = string.Empty; // } // break; } m_Icon.SetNativeSize(); } @@ -200,22 +200,22 @@ { return; } if (m_TreasureStage != null && m_TreasureStage.unlockType == TreasureStageUnlock.Privilege) { var _privilegeCfg = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>(m_TreasureStage.privilege); if (FuncOpen.Instance.IsFuncOpen(126)) { m_Icon.SetSprite(_privilegeCfg.Icon); m_Icon.SetNativeSize(); m_Descs[0].text = _privilegeCfg.Name; } else { m_Icon.SetSprite("UnKnowIcon"); m_Icon.SetNativeSize(); m_Descs[0].text = string.Empty; } } //if (m_TreasureStage != null && m_TreasureStage.unlockType == TreasureStageUnlock.Privilege) //{ // var _privilegeCfg = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>(m_TreasureStage.privilege); // if (FuncOpen.Instance.IsFuncOpen(126)) // { // m_Icon.SetSprite(_privilegeCfg.Icon); // m_Icon.SetNativeSize(); // m_Descs[0].text = _privilegeCfg.Name; // } // else // { // m_Icon.SetSprite("UnKnowIcon"); // m_Icon.SetNativeSize(); // m_Descs[0].text = string.Empty; // } //} } private void OnLineStepComplete() System/Treasure/TreasureModel.cs
@@ -46,9 +46,7 @@ public event Action vipKillNPCTreasureEvent; public event Action<int> treasureLevelProgressUpdateEvent; public event Action<int> treasureStageUpEvent; public event Action<int> treasurePrivilegeUpdateEvent; public event Action<int> humanTreasureStateChangeEvent; public event Action<int> treasureSelectSoulChangeEvent; bool m_WaitOpenDetailsWin = false; public bool waitOpenDetailsWin { @@ -81,22 +79,6 @@ } } } int m_SelectSoul = 0; public int selectSoul { get { return m_SelectSoul; } set { m_SelectSoul = value; if (treasureSelectSoulChangeEvent != null) { treasureSelectSoulChangeEvent(value); } } } public int gotoSoul { get; set; } int m_SelectedStage = 0; public int selectedStage { @@ -187,7 +169,6 @@ Dictionary<int, Treasure> treasures = new Dictionary<int, Treasure>(); Dictionary<TreasureCategory, List<int>> treasureCategory = new Dictionary<TreasureCategory, List<int>>(); Dictionary<int, int> treasureMapDict = new Dictionary<int, int>(); Dictionary<int, TreasureSpecialData> treasurePrivilegeDict = new Dictionary<int, TreasureSpecialData>(); Dictionary<int, int> treasureAchievementDict = new Dictionary<int, int>(); List<int> eightFurnacesAchievements = new List<int>(); List<int> m_CacheGotAchievements = new List<int>(); @@ -264,7 +245,6 @@ FuncOpen.Instance.OnFuncStateChangeEvent += OnFunctionStateChange; packageModel.RefreshItemCountAct += OnPackageItemChange; WindowCenter.Instance.windowAfterOpenEvent += OnWindowOpen; PlayerStrengthengDatas.RefreshEquipUpgradLvAct += RefreshEquipSTRLv; } public override void UnInit() @@ -278,7 +258,6 @@ FuncOpen.Instance.OnFuncStateChangeEvent -= OnFunctionStateChange; packageModel.RefreshItemCountAct -= OnPackageItemChange; WindowCenter.Instance.windowAfterOpenEvent -= OnWindowOpen; PlayerStrengthengDatas.RefreshEquipUpgradLvAct -= RefreshEquipSTRLv; } public void OnAfterPlayerDataInitialize() @@ -301,9 +280,6 @@ { var humanTreasure = treasure as HumanTreasure; humanTreasure.humanState = HumanTreasureState.Locked; treasure.specialData.presentFinishCount = 0; treasure.specialData.presentGetCount = 0; treasure.specialData.itemGet = false; } } } @@ -314,7 +290,6 @@ UpdateAchievementRedpoints(); UpdateCastSoulRedpoints(); UpdateSkillLevelUpRedpoints(); UpdatePrivileges(); } private bool needDisplayReguluLevelUp = false; @@ -748,11 +723,6 @@ UpdateSkillLevelUpRedpoints(); } } if (_type == PackType.rptEquip) { UpdateTreasurePrivilegeStrenthen(); } } private void OnFunctionStateChange(int _functionId) @@ -1137,166 +1107,12 @@ } UpdateCastSoulRedpoint(treasure.id); UpdateAchievementRedpoint(treasure.id); if (treasure.IsMaxStage()) { UpdatePrivilege(treasure.id); } if (serverInited && _up && treasureStageUpEvent != null) { treasureStageUpEvent(treasure.id); } } } } public void UpdateTreasurePrivilege(HA353_tagMCMWPrivilegeDataInfo package) { for (int i = 0; i < package.Count; i++) { var _data = package.InfoList[i]; if ((TreasurePrivilege)_data.PriID == TreasurePrivilege.StrengthenAdd) { continue; } if (treasurePrivilegeDict.ContainsKey((int)_data.PriID)) { var _specialData = treasurePrivilegeDict[(int)_data.PriID]; _specialData.presentFinishCount = (int)_data.GotValue; _specialData.presentGetCount = (int)_data.CurValue; _specialData.itemGet = _data.ItemAwardState == 1; var _list = treasureCategory[TreasureCategory.Human]; var _index = _list.FindIndex((x) => { var treasure = treasures[x]; return (int)treasure.specialData.type == _data.PriID; }); if (_index != -1) { UpdatePrivilege(_list[_index]); } } if (treasurePrivilegeUpdateEvent != null) { treasurePrivilegeUpdateEvent((int)_data.PriID); } } } public void UpdateTreasurePrivilege(HA317_tagMCAllEquipAttrActiveInfo package) { for (int i = 0; i < package.ActiveInfo.Length; i++) { var _data = package.ActiveInfo[i]; if (_data.Type == 0) { if (treasurePrivilegeDict.ContainsKey((int)TreasurePrivilege.StrengthenAdd)) { var _specialData = treasurePrivilegeDict[(int)TreasurePrivilege.StrengthenAdd]; _specialData.presentFinishCount = (int)_data.Cnt; var _list = treasureCategory[TreasureCategory.Human]; var _index = _list.FindIndex((x) => { var treasure = treasures[x]; return treasure.specialData.type == TreasurePrivilege.StrengthenAdd; }); if (_index != -1) { UpdatePrivilege(_list[_index]); } } if (treasurePrivilegeUpdateEvent != null) { treasurePrivilegeUpdateEvent((int)TreasurePrivilege.StrengthenAdd); } } } } private void RefreshEquipSTRLv(int _index) { UpdateTreasurePrivilegeStrenthen(); } public void UpdateTreasurePrivilegeStrenthen() { var _list = treasureCategory[TreasureCategory.Human]; var _index = _list.FindIndex((x) => { var treasure = treasures[x]; return treasure.specialData.type == TreasurePrivilege.StrengthenAdd; }); if (_index != -1) { UpdatePrivilege(_list[_index]); if (treasurePrivilegeUpdateEvent != null) { treasurePrivilegeUpdateEvent((int)TreasurePrivilege.StrengthenAdd); } } } private void UpdatePrivileges() { var list = treasureCategory[TreasureCategory.Human]; for (int i = 0; i < list.Count; i++) { UpdatePrivilege(list[i]); } } public bool IsGetTreasurePrivilege(TreasurePrivilege type) { var list = treasureCategory[TreasureCategory.Human]; for (int i = 0; i < list.Count; i++) { Treasure treasure; if (TryGetTreasure(list[i], out treasure) && treasure.specialData.type == type && treasure.IsMaxStage()) { return true; } } return false; } private void UpdatePrivilege(int _id) { if (treasures.ContainsKey(_id)) { var treasure = treasures[_id]; if (treasure.state != TreasureState.Collected || !treasure.IsMaxStage()) { if (treasure.specialData.privilegeRedpoint != null) { treasure.specialData.privilegeRedpoint.state = RedPointState.None; } return; } treasure.specialData.UpdateState(); } } public int GetPrivilegeValue(int _privilegeId) { if (treasurePrivilegeDict.ContainsKey(_privilegeId)) { var _list = GetTreasureCategory(TreasureCategory.Human); Treasure _treasure = null; var _index = _list.FindIndex((x) => { if (TryGetTreasure(x, out _treasure)) { return _treasure.unLockPrivilege == _privilegeId; } return false; }); if (_index != -1 && _treasure.IsMaxStage()) { var _specialData = treasurePrivilegeDict[_privilegeId]; return _specialData.GetPrivilegeValue(); } } return 0; } public void HumanTreasureStateChange(int _id) @@ -1396,10 +1212,6 @@ if (TryGetTreasure(config.MWID, out treasure)) { treasure.UpdateTreasureStage(config); if (treasure.specialData != null) { treasurePrivilegeDict.Add((int)treasure.specialData.type, treasure.specialData); } } } System/Treasure/TreasureNewGotWin.cs
@@ -407,15 +407,15 @@ m_Story.text = string.Format(config.Verse[0], killNpcConfig.MaxAtk); } break; case 304: var _specialData = treasure.specialData; if (_specialData != null) { var _keyValue = _specialData.propertyDict.First(); var _propertyConfig = ConfigManager.Instance.GetTemplate<PlayerPropertyConfig>(_keyValue.Key); m_Story.text = string.Format(config.Verse[0], _keyValue.Value, _propertyConfig.Name); } break; //case 304://签到相关配置移到功能配置表 // var _specialData = treasure.specialData; // if (_specialData != null) // { // var _keyValue = _specialData.propertyDict.First(); // var _propertyConfig = ConfigManager.Instance.GetTemplate<PlayerPropertyConfig>(_keyValue.Key); // m_Story.text = string.Format(config.Verse[0], _keyValue.Value, _propertyConfig.Name); // } // break; } flyObject = unlockFlyObject1; } System/Treasure/TreasureNewStageWin.cs
@@ -81,9 +81,9 @@ case TreasureStageUnlock.Property: DisplayProperty(stage); break; case TreasureStageUnlock.Privilege: DisplayPrivilege(stage); break; //case TreasureStageUnlock.Privilege: // DisplayPrivilege(stage); // break; } } @@ -101,30 +101,30 @@ m_ContainerProgress.gameObject.SetActive(false); m_Progress1.gameObject.SetActive(false); m_Progress2.gameObject.SetActive(false); var config = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>(_stage.privilege); m_PrivilegeName.text = config.Name; m_Description.text = config.Description; switch (_stage.specialData.type) { case TreasurePrivilege.Property: break; case TreasurePrivilege.DemonJarAtk: break; case TreasurePrivilege.StrengthenAdd: break; case TreasurePrivilege.Suit: case TreasurePrivilege.RuneBreakExpAdd: case TreasurePrivilege.Boss: break; case TreasurePrivilege.MountAtk: break; case TreasurePrivilege.PetHp: break; case TreasurePrivilege.Wing: break; case TreasurePrivilege.Wash: break; } //var config = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>(_stage.privilege); //m_PrivilegeName.text = config.Name; //m_Description.text = config.Description; //switch (_stage.specialData.type) //{ // case TreasurePrivilege.Property: // break; // case TreasurePrivilege.DemonJarAtk: // break; // case TreasurePrivilege.StrengthenAdd: // break; // case TreasurePrivilege.Suit: // case TreasurePrivilege.RuneBreakExpAdd: // case TreasurePrivilege.Boss: // break; // case TreasurePrivilege.MountAtk: // break; // case TreasurePrivilege.PetHp: // break; // case TreasurePrivilege.Wing: // break; // case TreasurePrivilege.Wash: // break; //} } } System/Treasure/TreasureSoulBehaviour.cs
@@ -16,15 +16,15 @@ [SerializeField] Button m_SelectBtn; [SerializeField] RedpointBehaviour m_Redpoint; int treasureId = 0; int treasureSoulId = 0; Treasure treasure; TreasureSpecialData special; TreasureModel model TreasureSoulModel model { get { return ModelCenter.Instance.GetModel<TreasureModel>(); return ModelCenter.Instance.GetModel<TreasureSoulModel>(); } } @@ -36,45 +36,38 @@ private void OnEnable() { model.treasureSelectSoulChangeEvent += TreasureSelectSoulChangeEvent; PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent; model.treasureSoulEvent += TreasureSoulEvent; } private void OnDisable() { model.treasureSelectSoulChangeEvent -= TreasureSelectSoulChangeEvent; PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= PlayerDataRefreshInfoEvent; model.treasureSoulEvent -= TreasureSoulEvent; } public void Display(int _id) { treasureId = _id; treasureSoulId = _id; m_Redpoint.redpointId = 0; if (model.TryGetTreasure(_id, out treasure)) if (model.TryGetTreasureSoul(_id, out special)) { var _privilege = treasure.unLockPrivilege; var config = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>(_privilege); var config = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>(_id); if (config == null) { return; } m_Redpoint.redpointId = treasure.specialData.privilegeRedpoint != null ? treasure.specialData.privilegeRedpoint.id : 0; m_Redpoint.redpointId = special.redpoint.id; m_SoulName.text = config.Name; m_SelectImg.SetSprite(model.selectSoul == treasureId ? "ListBtn_Select" : "ListBtn_UnSelect"); m_SelectImg.SetSprite(model.selectSoul == treasureSoulId ? "ListBtn_Select" : "ListBtn_UnSelect"); DisplayState(); } } void DisplayState() { if (treasure != null) if (special != null) { var stage = treasure.treasureStages[treasure.StageCount - 1]; m_Lock.gameObject.SetActive(PlayerDatas.Instance.baseData.LV < stage.limitLevel); if (PlayerDatas.Instance.baseData.LV < stage.limitLevel) { m_SoulState.text = Language.Get("TreasurePrivilege_Unlock", stage.limitLevel); } else if (treasure.IsMaxStage()) if (special.active) { m_SoulState.text = Language.Get("TreasureSoul_Awoke"); } @@ -85,28 +78,25 @@ } } private void PlayerDataRefreshInfoEvent(PlayerDataRefresh refreshType) private void TreasureSelectSoulChangeEvent(int _id) { if (refreshType == PlayerDataRefresh.LV) if (special != null) { m_SelectImg.SetSprite(model.selectSoul == treasureSoulId ? "ListBtn_Select" : "ListBtn_UnSelect"); } } private void TreasureSoulEvent(int _id) { if (_id == treasureSoulId) { DisplayState(); } } private void TreasureSelectSoulChangeEvent(int _id) { if (treasure != null) { m_SelectImg.SetSprite(model.selectSoul == treasureId ? "ListBtn_Select" : "ListBtn_UnSelect"); } } private void OnSelect() { if(model.TryGetTreasure(treasureId,out treasure)) { model.selectSoul = treasureId; } model.selectSoul = treasureSoulId; } } } System/Treasure/TreasureSoulModel.cs
New file @@ -0,0 +1,566 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using TableConfig; using System; namespace Snxxz.UI { public class TreasureSoulModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk { Dictionary<int, TreasureSpecialData> treasureSoulDict = new Dictionary<int, TreasureSpecialData>(); List<int> treasureSouls = new List<int>(); Dictionary<int, List<int>> soulAchievements = new Dictionary<int, List<int>>(); public event Action<int> treasureSoulEvent; public event Action<int> treasureSelectSoulChangeEvent; int m_SelectSoul = 0; public int selectSoul { get { return m_SelectSoul; } set { m_SelectSoul = value; if (treasureSelectSoulChangeEvent != null) { treasureSelectSoulChangeEvent(value); } } } public int gotoSoul { get; set; } PlayerPackModel packModel { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } } TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } } AchievementModel achievementModel { get { return ModelCenter.Instance.GetModel<AchievementModel>(); } } public override void Init() { packModel.RefreshItemCountAct += RefreshItemCountAct; PlayerStrengthengDatas.RefreshEquipUpgradLvAct += RefreshEquipSTRLv; achievementModel.achievementProgressUpdateEvent += AchievementUpdate; achievementModel.achievementCompletedEvent += AchievementUpdate; ParseConfig(); } public void OnBeforePlayerDataInitialize() { foreach (var special in treasureSoulDict.Values) { special.presentFinishCount = 0; special.presentGetCount = 0; special.itemGet = false; special.active = false; } } public void OnPlayerLoginOk() { UpdateRedpoints(); } public override void UnInit() { packModel.RefreshItemCountAct -= RefreshItemCountAct; PlayerStrengthengDatas.RefreshEquipUpgradLvAct -= RefreshEquipSTRLv; achievementModel.achievementProgressUpdateEvent -= AchievementUpdate; achievementModel.achievementCompletedEvent -= AchievementUpdate; } void ParseConfig() { var configs = ConfigManager.Instance.GetAllValues<TreasurePrivilegeConfig>(); for (int i = 0; i < configs.Count; i++) { var treasureConfig = ConfigManager.Instance.GetTemplate<TreasureConfig>(configs[i].treasureId); if (treasureConfig == null || treasureConfig.Category != (int)TreasureCategory.Human) { continue; } treasureSouls.Add(configs[i].PrivilegeID); treasureSoulDict.Add(configs[i].PrivilegeID, new TreasureSpecialData((TreasurePrivilege)configs[i].PrivilegeID)); } } public List<int> GetTreasureSouls() { return treasureSouls; } public bool TryGetTreasureSoul(int _id, out TreasureSpecialData special) { return treasureSoulDict.TryGetValue(_id, out special); } public int GetTreasureSoulValue(int _soulId) { if (treasureSoulDict.ContainsKey(_soulId)) { if (IsGetTreasureSoul(_soulId)) { var _specialData = treasureSoulDict[_soulId]; return _specialData.GetPrivilegeValue(); } } return 0; } public bool IsGetTreasureSoul(int _soulId) { TreasureSpecialData special; return TryGetTreasureSoul(_soulId, out special) && special.active; } public bool IsOpenTreasureSoul(int _soulId) { TreasureSpecialData special; if (TryGetTreasureSoul(_soulId, out special)) { Treasure treasure; return treasureModel.TryGetTreasure(special.treasureId, out treasure) && treasure.state == TreasureState.Collected; } return false; } private void RefreshEquipSTRLv(int obj) { UpdateTreasureSoulStrenthen(); } private void RefreshItemCountAct(PackType packType, int arg2, int arg3) { if (packType == PackType.rptEquip) { UpdateTreasureSoulStrenthen(); } } private void AchievementUpdate(int _id) { foreach (var soulId in soulAchievements.Keys) { if (soulAchievements[soulId].Contains(_id)) { UpdateAchievementRedpoint(_id); } } } public void UpdateTreasureSoulStrenthen() { UpdateRedpoint((int)TreasurePrivilege.StrengthenAdd); if (treasureSoulEvent != null) { treasureSoulEvent((int)TreasurePrivilege.StrengthenAdd); } } public void UpdateTreasurePrivilege(HA353_tagMCMWPrivilegeDataInfo package) { for (int i = 0; i < package.Count; i++) { var _data = package.InfoList[i]; if ((TreasurePrivilege)_data.PriID == TreasurePrivilege.StrengthenAdd) { continue; } if (treasureSoulDict.ContainsKey((int)_data.PriID)) { var _specialData = treasureSoulDict[(int)_data.PriID]; _specialData.presentFinishCount = (int)_data.GotValue; _specialData.presentGetCount = (int)_data.CurValue; _specialData.itemGet = _data.ItemAwardState == 1; } UpdateRedpoint((int)_data.PriID); UpdateAchievementRedpoint((int)_data.PriID); if (treasureSoulEvent != null) { treasureSoulEvent((int)_data.PriID); } } } public void UpdateTreasurePrivilege(HA317_tagMCAllEquipAttrActiveInfo package) { for (int i = 0; i < package.ActiveInfo.Length; i++) { var _data = package.ActiveInfo[i]; if (_data.Type == 0) { if (treasureSoulDict.ContainsKey((int)TreasurePrivilege.StrengthenAdd)) { var _specialData = treasureSoulDict[(int)TreasurePrivilege.StrengthenAdd]; _specialData.presentFinishCount = (int)_data.Cnt; UpdateRedpoint((int)TreasurePrivilege.StrengthenAdd); } if (treasureSoulEvent != null) { treasureSoulEvent((int)TreasurePrivilege.StrengthenAdd); } } } } private void UpdateRedpoint(int _id) { if (treasureSoulDict.ContainsKey(_id)) { var special = treasureSoulDict[_id]; special.UpdateState(); if (special.privilegeRedpoint != null) { special.privilegeRedpoint.state = RedPointState.None; if (!FuncOpen.Instance.IsFuncOpen(126) || !IsOpenTreasureSoul(_id) || !IsGetTreasureSoul(_id)) { return; } switch (special.type) { case TreasurePrivilege.StrengthenAdd: case TreasurePrivilege.DemonJarAtk: case TreasurePrivilege.MountAtk: case TreasurePrivilege.PetHp: case TreasurePrivilege.Boss: special.privilegeRedpoint.state = special.state == TreasurePrivilegeState.Reward ? RedPointState.Simple : RedPointState.None; break; case TreasurePrivilege.Wash: special.privilegeRedpoint.state = special.itemGet ? RedPointState.None : RedPointState.Simple; break; } } } } private void UpdateAchievementRedpoint(int _id) { if (treasureSoulDict.ContainsKey(_id) && soulAchievements.ContainsKey(_id)) { var special = treasureSoulDict[_id]; special.activeRedpoint.state = RedPointState.None; if (!FuncOpen.Instance.IsFuncOpen(126) || !IsOpenTreasureSoul(_id) || special.active) { return; } var list = soulAchievements[_id]; bool allCompleted = true; for (int i = 0; i < list.Count; i++) { Achievement achievement; achievementModel.TryGetAchievement(list[i], out achievement); if (achievement == null || (!achievement.completed && !Achievement.IsReach(achievement.id, achievement.progress))) { allCompleted = false; } } special.activeRedpoint.state = allCompleted ? RedPointState.Simple : RedPointState.None; } } private void UpdateRedpoints() { foreach (var special in treasureSoulDict.Keys) { UpdateRedpoint(special); UpdateAchievementRedpoint(special); } } } public class TreasureSpecialData { public TreasurePrivilege type { get; private set; } public int progress { get; private set; } public int totalProgress { get; private set; } public int effectValue { get; private set; } public List<AwardItem> items { get; private set; } public Dictionary<int, int> propertyDict { get; private set; } public Redpoint redpoint { get; private set; } public Redpoint privilegeRedpoint { get; private set; } public Redpoint activeRedpoint { get; private set; } public int treasureId { get; set; } public bool active { get; set; } private TreasurePrivilegeState m_State = TreasurePrivilegeState.Doing; public TreasurePrivilegeState state { get { return m_State; } set { m_State = value; } } public int presentFinishCount { get; set; } public int presentGetCount { get; set; } public bool itemGet { get; set; } public TreasureSpecialData(TreasurePrivilege _type) { type = _type; var config = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>((int)_type); progress = Mathf.Max(1, config.singleValue); totalProgress = config.maxValue; var _effectValue = 0; int.TryParse(config.EffectValue, out _effectValue); effectValue = _effectValue; treasureId = config.treasureId; if (!string.IsNullOrEmpty(config.attr)) { var propertyJson = LitJson.JsonMapper.ToObject(config.attr); propertyDict = new Dictionary<int, int>(); foreach (var _key in propertyJson.Keys) { var _property = int.Parse(_key); var _value = int.Parse(propertyJson[_key].ToJson()); propertyDict.Add(_property, _value); } } if (!string.IsNullOrEmpty(config.itemAward)) { var itemArray = LitJson.JsonMapper.ToObject<int[][]>(config.itemAward); if (itemArray != null && itemArray.Length > 0) { items = new List<AwardItem>(); for (int i = 0; i < itemArray.Length; i++) { var _array = itemArray[i]; items.Add(new AwardItem() { isBind = _array[2], item = new Item() { id = _array[0], count = _array[1], }, }); } } } if (type == TreasurePrivilege.PetHp) { var petCount = ConfigManager.Instance.GetAllValues<PetInfoConfig>().Count; totalProgress = petCount; } else if (type == TreasurePrivilege.MountAtk) { var mountConfigs = ConfigManager.Instance.GetAllValues<HorseConfig>(); var maxlv = 0; for (int i = 0; i < mountConfigs.Count; i++) { maxlv += mountConfigs[i].MaxLV; } totalProgress = maxlv; } else if (type == TreasurePrivilege.StrengthenAdd) { var configs = ConfigManager.Instance.GetAllValues<ItemPlusSumAttrConfig>(); totalProgress = configs[configs.Count - 1].countNeed; } redpoint = new Redpoint(TreasureModel.TREASURE_SOUL_ID, TreasureModel.TREASURE_SOUL_ID * 100 + (int)type); activeRedpoint = new Redpoint(redpoint.id, redpoint.id * 100 + 1); switch (_type) { case TreasurePrivilege.DemonJarAtk: case TreasurePrivilege.StrengthenAdd: case TreasurePrivilege.MountAtk: case TreasurePrivilege.PetHp: case TreasurePrivilege.Boss: case TreasurePrivilege.Wash: privilegeRedpoint = new Redpoint(redpoint.id, redpoint.id * 100 + 2); break; } } public int GetPrivilegeValue(int _index = 0) { switch (type) { case TreasurePrivilege.RuneBreakExpAdd: return effectValue; case TreasurePrivilege.DemonJarAtk: case TreasurePrivilege.Suit: return effectValue; case TreasurePrivilege.Wing: case TreasurePrivilege.StrengthenAdd: return effectValue; } return 0; } public void UpdateState() { switch (type) { case TreasurePrivilege.Property: case TreasurePrivilege.RuneBreakExpAdd: case TreasurePrivilege.Wing: case TreasurePrivilege.Suit: state = TreasurePrivilegeState.Complete; break; case TreasurePrivilege.Boss: case TreasurePrivilege.DemonJarAtk: case TreasurePrivilege.PetHp: case TreasurePrivilege.MountAtk: if (presentFinishCount >= totalProgress && (presentGetCount / progress) >= (totalProgress / progress)) { state = TreasurePrivilegeState.Complete; } else if (presentGetCount > 0 && presentFinishCount / progress < presentGetCount / progress) { state = TreasurePrivilegeState.Reward; } else { state = TreasurePrivilegeState.Doing; } break; case TreasurePrivilege.Wash: state = itemGet ? TreasurePrivilegeState.Doing : TreasurePrivilegeState.Reward; break; case TreasurePrivilege.StrengthenAdd: var strengthen = ModelCenter.Instance.GetModel<PlayerStrengthengDatas>(); var playerpack = ModelCenter.Instance.GetModel<PlayerPackModel>(); presentGetCount = 0; foreach (var value in strengthen._EqInfo.Values) { ItemModel itemModel = playerpack.GetItemModelByIndex(PackType.rptEquip, value.EquipIndex); if (itemModel != null) { presentGetCount += value.EquipPartStarLV; } } var configs = ConfigManager.Instance.GetAllValues<ItemPlusSumAttrConfig>(); bool contains = configs.FindIndex((x) => { return x.countNeed > presentFinishCount && presentGetCount >= x.countNeed; }) != -1; if (presentFinishCount >= totalProgress && presentGetCount >= totalProgress) { state = TreasurePrivilegeState.Complete; } else if (contains) { state = TreasurePrivilegeState.Reward; } else { state = TreasurePrivilegeState.Doing; } break; } } public string ProgressDisplay() { switch (type) { case TreasurePrivilege.DemonJarAtk: case TreasurePrivilege.PetHp: case TreasurePrivilege.MountAtk: case TreasurePrivilege.Boss: if (state == TreasurePrivilegeState.Complete) { return UIHelper.GetTextColorByItemColor(TextColType.Green, totalProgress.ToString(), true); } else if (state == TreasurePrivilegeState.Doing) { return StringUtility.Contact(UIHelper.GetTextColorByItemColor(TextColType.Red, presentGetCount.ToString(), true), "/", (presentFinishCount / progress + 1) * progress); } else if (state == TreasurePrivilegeState.Reward) { var _completeCount = (presentFinishCount / progress + 1) * progress; return StringUtility.Contact(UIHelper.GetTextColorByItemColor(TextColType.Green, presentGetCount.ToString(), true), "/", _completeCount); } break; case TreasurePrivilege.StrengthenAdd: var configs = ConfigManager.Instance.GetAllValues<ItemPlusSumAttrConfig>(); var next = configs.Count - 1; for (int i = 0; i < configs.Count; i++) { if (configs[i].countNeed > presentFinishCount) { next = i; break; } } if (state == TreasurePrivilegeState.Complete) { return totalProgress.ToString(); } else if (state == TreasurePrivilegeState.Doing || state == TreasurePrivilegeState.Reward) { var colortype = presentGetCount >= configs[next].countNeed ? TextColType.Green : TextColType.Red; return StringUtility.Contact(UIHelper.GetTextColorByItemColor(colortype, presentGetCount.ToString(), true), "/", configs[next].countNeed); } break; } return string.Empty; } public void GetReward() { switch (type) { case TreasurePrivilege.MountAtk: case TreasurePrivilege.DemonJarAtk: case TreasurePrivilege.PetHp: case TreasurePrivilege.Boss: case TreasurePrivilege.Wash: var _pak = new CA504_tagCMPlayerGetReward(); _pak.RewardType = (int)GotServerRewardType.Def_RewardType_TreasureSoul; _pak.DataEx = (uint)type; _pak.DataExStrLen = 0; _pak.DataExStr = string.Empty; GameNetSystem.Instance.SendInfo(_pak); break; case TreasurePrivilege.StrengthenAdd: var configs = ConfigManager.Instance.GetAllValues<ItemPlusSumAttrConfig>(); var present = 0; for (int i = 0; i < configs.Count; i++) { if (presentGetCount >= configs[i].countNeed) { present = i; } } CA503_tagCMActiveAllEquipAttr pak = new CA503_tagCMActiveAllEquipAttr(); pak.Type = 0; pak.Cnt = (uint)configs[present].countNeed; GameNetSystem.Instance.SendInfo(pak); break; } } public int GetFightPower() { var _fightPower = 0; if (propertyDict != null) { _fightPower += UIHelper.GetFightPower(propertyDict); } return _fightPower; } } public enum TreasurePrivilegeState { Doing = 0, Reward = 1, Complete = 2 } public enum TreasurePrivilege { Property = 1, DemonJarAtk = 2, StrengthenAdd = 3, RuneBreakExpAdd = 4, MountAtk = 5, PetHp = 6, Boss = 7, Wing = 8, Suit = 9, Wash = 10, Sign = 11, } } System/Treasure/TreasureSoulModel.cs.meta
File was renamed from System/Treasure/FairyTreasureCollectPanelPattern1.cs.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 guid: f4d29363b41f2a740834a1aabf805009 timeCreated: 1521102270 guid: 546ae13b091e8c845b2c8d0e1a458b39 timeCreated: 1534406321 licenseType: Pro MonoImporter: serializedVersion: 2 System/Treasure/TreasureSoulPattern.cs
@@ -6,15 +6,15 @@ { public class TreasureSoulPattern : MonoBehaviour { protected TreasureModel model { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } } protected Treasure treasure; protected TreasureSoulModel model { get { return ModelCenter.Instance.GetModel<TreasureSoulModel>(); } } protected TreasureSpecialData special; public virtual void Display(int _id) { model.TryGetTreasure(_id, out treasure); model.treasurePrivilegeUpdateEvent -= TreasurePrivilegeUpdateEvent; model.treasurePrivilegeUpdateEvent += TreasurePrivilegeUpdateEvent; model.TryGetTreasureSoul(_id, out special); model.treasureSoulEvent -= TreasurePrivilegeUpdateEvent; model.treasureSoulEvent += TreasurePrivilegeUpdateEvent; } protected virtual void TreasurePrivilegeUpdateEvent(int _id) @@ -24,7 +24,7 @@ public virtual void Dispose() { model.treasurePrivilegeUpdateEvent -= TreasurePrivilegeUpdateEvent; model.treasureSoulEvent -= TreasurePrivilegeUpdateEvent; } } } System/Treasure/TreasureSoulPattern1.cs
@@ -25,13 +25,12 @@ private void OnGet() { treasure.specialData.GetReward(); special.GetReward(); } private void OnGoto() { var specialData = treasure.specialData; switch (specialData.type) switch (special.type) { case TreasurePrivilege.DemonJarAtk: WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.LootPreciousFrameFunc1); @@ -46,14 +45,13 @@ WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.PetFunc2); break; } model.gotoSoul = treasure.id; model.gotoSoul = (int)special.type; } public override void Display(int _id) { base.Display(_id); var specialData = treasure.specialData; switch (specialData.type) switch (special.type) { case TreasurePrivilege.DemonJarAtk: m_ProgressTitle.text = Language.Get("TreasurePrivilege_DemonJar"); @@ -73,14 +71,13 @@ private void Display() { var specialData = treasure.specialData; m_Get.gameObject.SetActive(false); m_Goto.gameObject.SetActive(false); for (int i = 0; i < properties.Count; i++) { properties[i].gameObject.SetActive(false); } switch (specialData.type) switch (special.type) { case TreasurePrivilege.DemonJarAtk: case TreasurePrivilege.Boss: @@ -89,9 +86,9 @@ var _index = 0; m_ContainerHas.gameObject.SetActive(true); m_ContainerNone.gameObject.SetActive(false); foreach (var _key in specialData.propertyDict.Keys) foreach (var _key in special.propertyDict.Keys) { var _value = specialData.propertyDict[_key] * specialData.presentFinishCount / specialData.progress; var _value = special.propertyDict[_key] * special.presentFinishCount / special.progress; if (_value <= 0) { m_ContainerHas.gameObject.SetActive(false); @@ -102,11 +99,11 @@ properties[_index].DisplayUpper(_key, _value); _index++; } m_Get.gameObject.SetActive(specialData.state == TreasurePrivilegeState.Reward); m_Goto.gameObject.SetActive(specialData.state == TreasurePrivilegeState.Doing); m_Progress.text = specialData.ProgressDisplay(); m_Get.gameObject.SetActive(special.state == TreasurePrivilegeState.Reward); m_Goto.gameObject.SetActive(special.state == TreasurePrivilegeState.Doing); m_Progress.text = special.ProgressDisplay(); //m_Progress.color = specialData.state == TreasurePrivilegeState.Doing ? UIHelper.GetUIColor(TextColType.Red, true) : UIHelper.GetUIColor(TextColType.Green, true); m_Complete.gameObject.SetActive(specialData.state == TreasurePrivilegeState.Complete); m_Complete.gameObject.SetActive(special.state == TreasurePrivilegeState.Complete); break; } } @@ -114,7 +111,7 @@ protected override void TreasurePrivilegeUpdateEvent(int _id) { base.TreasurePrivilegeUpdateEvent(_id); if (_id == (int)treasure.specialData.type) if (_id == (int)special.type) { Display(); } System/Treasure/TreasureSoulPattern2.cs
@@ -47,13 +47,12 @@ private void Display() { var specialData = treasure.specialData; var configs = ConfigManager.Instance.GetAllValues<ItemPlusSumAttrConfig>(); var present = -1; var next = 0; for (int i = 0; i < configs.Count; i++) { if (specialData.presentFinishCount >= configs[i].countNeed) if (special.presentFinishCount >= configs[i].countNeed) { present = i; } @@ -87,22 +86,22 @@ } } } m_Complete.gameObject.SetActive(specialData.state == TreasurePrivilegeState.Complete); m_Goto.gameObject.SetActive(specialData.state == TreasurePrivilegeState.Doing); m_Get.gameObject.SetActive(specialData.state == TreasurePrivilegeState.Reward); m_Progress.text = specialData.ProgressDisplay(); m_Complete.gameObject.SetActive(special.state == TreasurePrivilegeState.Complete); m_Goto.gameObject.SetActive(special.state == TreasurePrivilegeState.Doing); m_Get.gameObject.SetActive(special.state == TreasurePrivilegeState.Reward); m_Progress.text = special.ProgressDisplay(); //m_Progress.color = specialData.state == TreasurePrivilegeState.Doing ? UIHelper.GetUIColor(TextColType.Red, true) : UIHelper.GetUIColor(TextColType.Green, true); } private void OnGoto() { WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.RebornOpenStrength); model.gotoSoul = treasure.id; model.gotoSoul = (int)special.type; } private void OnGet() { treasure.specialData.GetReward(); special.GetReward(); } } } System/Treasure/TreasureSoulPattern3.cs
@@ -31,7 +31,7 @@ protected override void TreasurePrivilegeUpdateEvent(int _id) { base.TreasurePrivilegeUpdateEvent(_id); if (_id == (int)treasure.specialData.type) if (_id == (int)special.type) { Display(); } @@ -39,14 +39,13 @@ private void Display() { var specialData = treasure.specialData; for (int i = 0; i < m_Items.Length; i++) { m_Items[i].gameObject.SetActive(specialData.items != null && i < specialData.items.Count); m_Items[i].gameObject.SetActive(special.items != null && i < special.items.Count); m_Items[i].cellBtn.RemoveAllListeners(); if (specialData.items != null && i < specialData.items.Count) if (special.items != null && i < special.items.Count) { var award = specialData.items[i]; var award = special.items[i]; ItemCellModel cellModel = new ItemCellModel(award.item.id, true, (ulong)award.item.count, award.isBind); m_Items[i].Init(cellModel); m_Items[i].cellBtn.AddListener(() => @@ -56,12 +55,12 @@ }); } } m_Get.SetInteractable(m_GetText, specialData.state == TreasurePrivilegeState.Reward); m_Get.SetInteractable(m_GetText, special.state == TreasurePrivilegeState.Reward); } private void OnGet() { treasure.specialData.GetReward(); special.GetReward(); } } } System/Treasure/TreasureSoulPattern4.cs
@@ -33,7 +33,7 @@ protected override void TreasurePrivilegeUpdateEvent(int _id) { base.TreasurePrivilegeUpdateEvent(_id); if (_id == treasure.id) if (_id == (int)special.type) { Display(); } @@ -41,27 +41,26 @@ private void Display() { var specialData = treasure.specialData; for (int i = 0; i < properties.Count; i++) { properties[i].gameObject.SetActive(false); } switch (specialData.type) switch (special.type) { case TreasurePrivilege.Property: m_ContainerHas.gameObject.SetActive(true); m_ContainerNone.gameObject.SetActive(false); var _index = 0; foreach (var _key in specialData.propertyDict.Keys) foreach (var _key in special.propertyDict.Keys) { var _value = specialData.propertyDict[_key]; var _value = special.propertyDict[_key]; properties[_index].gameObject.SetActive(true); properties[_index].DisplayUpper(_key, _value); _index++; } break; case TreasurePrivilege.Suit: var percentSuit = (float)specialData.propertyDict[87] / 10000; var percentSuit = (float)special.propertyDict[87] / 10000; var dict = suitModel.GetActiveSuitAttr(); var _suitIndex = 0; foreach (var _key in dict.Keys) @@ -79,7 +78,7 @@ m_ContainerNone.gameObject.SetActive(_suitIndex == 0); break; case TreasurePrivilege.Wing: var percentWing = (float)specialData.propertyDict[86] / 10000; var percentWing = (float)special.propertyDict[86] / 10000; var itemModel = pack.GetItemModelByIndex(PackType.rptEquip, (int)RoleEquipType.retWing); m_ContainerHas.gameObject.SetActive(itemModel != null); m_ContainerNone.gameObject.SetActive(itemModel == null); System/Treasure/TreasureSoulWin.cs
@@ -19,27 +19,22 @@ [SerializeField] Button m_CloseBtn; [SerializeField] Image m_SelectSoulImg; [SerializeField] Text m_SelectTreasureName; [SerializeField] Text m_SoulName; [SerializeField] Text m_SoulDescription; [SerializeField] Image m_SoulTarget; [SerializeField] Button m_GotoGetBtn; [SerializeField] Button m_Active; [SerializeField] List<TreasureSoulPattern> m_TreasureSouls; [SerializeField] RectTransform m_ContainerPreview; [SerializeField] Text m_PropertyTitle; [SerializeField] List<PropertyBehaviour> propertys; [SerializeField] ScrollerController m_ScollerControl; TreasureModel m_Model; TreasureModel model TreasureSoulModel m_Model; TreasureSoulModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<TreasureModel>()); return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<TreasureSoulModel>()); } } PlayerSuitModel suitModel { get { return ModelCenter.Instance.GetModel<PlayerSuitModel>(); } } @@ -54,7 +49,6 @@ } bool m_CorrectClose = true; int m_SelectSoul = 0; List<int> sortSouls = new List<int>(); @@ -66,14 +60,13 @@ protected override void AddListeners() { m_GotoGetBtn.onClick.AddListener(OnGotoGet); m_Active.onClick.AddListener(Active); m_CloseBtn.onClick.AddListener(CloseClick); m_ScollerControl.OnRefreshCell += OnRefreshCell; } protected override void OnPreOpen() { m_CorrectClose = true; model.treasureSelectSoulChangeEvent += TreasureSelectSoulChangeEvent; PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent; m_TreasureSoulBtn.state = TitleBtnState.Click; @@ -106,19 +99,22 @@ protected override void OnAfterClose() { if (m_CorrectClose) { WindowCenter.Instance.Open<MainInterfaceWin>(); } WindowCenter.Instance.Open<MainInterfaceWin>(); } #endregion private void Display() { sortSouls.Clear(); var _list = model.GetTreasureCategory(TreasureCategory.Human); sortSouls.AddRange(_list); if (m_ScollerControl.GetNumberOfCells(m_ScollerControl.m_Scorller) == 0) var _list = model.GetTreasureSouls(); for (int i = 0; i < _list.Count; i++) { if (model.IsOpenTreasureSoul(_list[i])) { sortSouls.Add(_list[i]); } } if (m_ScollerControl.GetNumberOfCells(m_ScollerControl.m_Scorller) != sortSouls.Count) { m_ScollerControl.Refresh(); for (int i = 0; i < sortSouls.Count; i++) @@ -146,38 +142,17 @@ return _soul; } model.gotoSoul = 0; var _list = model.GetTreasureCategory(TreasureCategory.Human); var _select = _list[0]; for (int i = 0; i < _list.Count; i++) var _select = sortSouls[sortSouls.Count - 1]; for (int i = 0; i < sortSouls.Count; i++) { Treasure treasure; if (model.TryGetTreasure(_list[i], out treasure)) TreasureSpecialData special; if (model.TryGetTreasureSoul(sortSouls[i], out special)) { if (treasure.specialData.privilegeRedpoint != null && treasure.specialData.privilegeRedpoint.state == RedPointState.Simple) if (special.redpoint.state == RedPointState.Simple) { return _list[i]; return sortSouls[i]; } } } for (int i = 0; i < _list.Count; i++) { Treasure treasure; if (model.TryGetTreasure(_list[i], out treasure)) { if (treasure.state == TreasureState.Collected) { if (!treasure.IsMaxStage()) { return _list[i]; } _select = treasure.id; } } } if (_list.Contains(m_SelectSoul)) { return m_SelectSoul; } return _select; } @@ -196,48 +171,35 @@ DisplaySelect(); } private void OnGotoGet() private void Active() { m_CorrectClose = false; CloseImmediately(); model.currentCategory = TreasureCategory.Human; model.selectedTreasure = model.selectSoul; model.openFromTreasureSoul = true; WindowCenter.Instance.Open<TreasureLevelUpWin>(); } private void DisplaySelect() { Treasure treasure; model.TryGetTreasure(model.selectSoul, out treasure); if (treasure != null) TreasureSpecialData special; model.TryGetTreasureSoul(model.selectSoul, out special); if (special != null) { var _privilege = treasure.unLockPrivilege; var config = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>(_privilege); var config = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>((int)special.type); if (config != null) { m_SoulName.text = config.Name; m_SoulDescription.text = UIHelper.ReplaceNewLine(config.Description); m_SoulTarget.SetSprite(config.targetDescription); m_SoulTarget.SetNativeSize(); m_GotoGetBtn.gameObject.SetActive(!treasure.IsMaxStage()); DisplayPrivilege(treasure); m_Active.gameObject.SetActive(model.IsGetTreasureSoul(model.selectSoul)); DisplayPrivilege(special); m_SelectSoulImg.SetSprite(config.Icon); m_SelectSoulImg.material = treasure.IsMaxStage() ? MaterialUtility.GetUIDefaultGraphicMaterial() : MaterialUtility.GetDefaultSpriteGrayMaterial(); } var treasureConfig = ConfigManager.Instance.GetTemplate<TreasureConfig>(model.selectSoul); m_SelectTreasureName.text = treasureConfig.Name; DisplyPreview(treasure); } } private void DisplayPrivilege(Treasure treasure) private void DisplayPrivilege(TreasureSpecialData special) { int _pattern = -1; switch (treasure.specialData.type) switch (special.type) { case TreasurePrivilege.Property: case TreasurePrivilege.Suit: @@ -260,200 +222,23 @@ for (int i = 0; i < m_TreasureSouls.Count; i++) { m_TreasureSouls[i].Dispose(); m_TreasureSouls[i].gameObject.SetActive(_pattern == i && treasure.IsMaxStage()); if (_pattern == i && treasure.IsMaxStage()) m_TreasureSouls[i].gameObject.SetActive(_pattern == i && model.IsGetTreasureSoul(model.selectSoul)); if (_pattern == i) { m_TreasureSouls[i].Display(treasure.id); m_TreasureSouls[i].Display((int)special.type); } } } private void DisplyPreview(Treasure treasure) { m_ContainerPreview.gameObject.SetActive(false); if (treasure.IsMaxStage()) { return; } switch (treasure.specialData.type) { case TreasurePrivilege.Wing: case TreasurePrivilege.Suit: case TreasurePrivilege.Property: m_PropertyTitle.text = Language.Get("TreasureSoulAddPropertyTitle"); break; case TreasurePrivilege.DemonJarAtk: case TreasurePrivilege.StrengthenAdd: case TreasurePrivilege.MountAtk: case TreasurePrivilege.PetHp: case TreasurePrivilege.Boss: m_PropertyTitle.text = Language.Get("TreasureSoulGetPropertyTitle"); break; } var specialData = treasure.specialData; for (int i = 0; i < propertys.Count; i++) { propertys[i].gameObject.SetActive(false); } switch (specialData.type) { case TreasurePrivilege.Property: var _index = 0; m_ContainerPreview.gameObject.SetActive(true); foreach (var _key in specialData.propertyDict.Keys) { var _value = specialData.propertyDict[_key]; propertys[_index].gameObject.SetActive(true); propertys[_index].DisplayUpper(_key, _value); _index++; } break; case TreasurePrivilege.Suit: var percentSuit = (float)specialData.propertyDict[87] / 10000; var dict = suitModel.GetActiveSuitAttr(); var _suitIndex = 0; foreach (var _key in dict.Keys) { var propertyConfig = ConfigManager.Instance.GetTemplate<PlayerPropertyConfig>(_key); if (propertyConfig == null || propertyConfig.type != 1) { continue; } propertys[_suitIndex].gameObject.SetActive(true); propertys[_suitIndex].DisplayUpper(_key, (int)(percentSuit * dict[_key])); _suitIndex++; } m_ContainerPreview.gameObject.SetActive(_suitIndex > 0); break; case TreasurePrivilege.Wing: var percentWing = (float)specialData.propertyDict[86] / 10000; var itemModel = pack.GetItemModelByIndex(PackType.rptEquip, (int)RoleEquipType.retWing); m_ContainerPreview.gameObject.SetActive(itemModel != null); if (itemModel != null) { var itemConfig = ConfigManager.Instance.GetTemplate<ItemConfig>(itemModel.itemId); float value = 0; if (ContainsProperty(itemConfig, 6, out value)) { if (itemModel.GetUseDataModel(42) != null) { value += strengthengmodel.BackpackWings(itemModel.itemId, itemModel.GetUseDataModel(42)[0])[1]; } } propertys[0].gameObject.SetActive(true); propertys[0].Display(6, (int)(value * percentWing)); } break; case TreasurePrivilege.DemonJarAtk: case TreasurePrivilege.PetHp: case TreasurePrivilege.MountAtk: case TreasurePrivilege.Boss: var index = 0; m_ContainerPreview.gameObject.SetActive(true); foreach (var _key in specialData.propertyDict.Keys) { var _value = specialData.propertyDict[_key] * (specialData.presentGetCount / specialData.progress); if (_value <= 0) { m_ContainerPreview.gameObject.SetActive(false); break; } propertys[index].gameObject.SetActive(true); propertys[index].DisplayUpper(_key, _value); index++; } break; case TreasurePrivilege.StrengthenAdd: var configs = ConfigManager.Instance.GetAllValues<ItemPlusSumAttrConfig>(); var present = -1; var next = 0; var presentGetCount = 0; foreach (var value in strengthengmodel._EqInfo.Values) { ItemModel equip = pack.GetItemModelByIndex(PackType.rptEquip, value.EquipIndex); if (equip != null) { presentGetCount += value.EquipPartStarLV; } } for (int i = 0; i < configs.Count; i++) { if (presentGetCount >= configs[i].countNeed) { present = i; } } next = present + 1; m_ContainerPreview.gameObject.SetActive(present >= 0); if (present >= 0) { var config = configs[present]; for (int i = 0; i < propertys.Count; i++) { propertys[i].gameObject.SetActive(i < config.attType.Length); if (i < config.attType.Length) { propertys[i].DisplayUpper(config.attType[i], config.attValue[i]); } } } break; } } int Compare(int x, int y) { //Treasure treasure_x; //Treasure treasure_y; //if (model.TryGetTreasure(x, out treasure_x) && model.TryGetTreasure(y, out treasure_y)) //{ // var stage_x = treasure_x.treasureStages[treasure_x.StageCount - 1]; // var stage_y = treasure_y.treasureStages[treasure_y.StageCount - 1]; // bool awaking_x = PlayerDatas.Instance.baseData.LV >= stage_x.limitLevel && !treasure_x.IsMaxStage(); // bool awaking_y = PlayerDatas.Instance.baseData.LV >= stage_y.limitLevel && !treasure_y.IsMaxStage(); // if (awaking_x != awaking_y) // { // return -awaking_x.CompareTo(awaking_y); // } // bool awoke_x = treasure_x.IsMaxStage(); // bool awoke_y = treasure_y.IsMaxStage(); // if (awoke_x != awoke_y) // { // return -awoke_x.CompareTo(awoke_y); // } //} TreasureSpecialData special_x; TreasureSpecialData special_y; if (model.TryGetTreasureSoul(x, out special_x) && model.TryGetTreasureSoul(y, out special_y)) { return special_x.treasureId.CompareTo(special_y.treasureId); } return x.CompareTo(y); } public bool ContainsProperty(ItemConfig config, int _property, out float value) { value = 0; if (config.Effect1 == _property && config.EffectValueA1 > 0) { value = config.EffectValueA1; return true; } if (config.Effect2 == _property && config.EffectValueA2 > 0) { value = config.EffectValueA2; return true; } if (config.Effect3 == _property && config.EffectValueA3 > 0) { value = config.EffectValueA3; return true; } if (config.Effect4 == _property && config.EffectValueA4 > 0) { value = config.EffectValueA4; return true; } if (config.Effect5 == _property && config.EffectValueA5 > 0) { value = config.EffectValueA5; return true; } return false; } } System/Treasure/TreasureStageTipWin.cs
@@ -131,45 +131,15 @@ m_Description.text = string.Empty; } break; case TreasureStageUnlock.Privilege: m_ContainerFuncSoul.gameObject.SetActive(true); m_ContainerSpecial.gameObject.SetActive(true); var privilegeConfig = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>(m_TreasureStage.privilege); m_Icon.SetSprite(privilegeConfig.Icon); m_StageName.text = privilegeConfig.Name; m_Description.text = UIHelper.ReplaceNewLine(privilegeConfig.Description); DisplayTreasureSpecial(); break; } } void DisplayTreasureSpecial() { m_TreasurePrivileges[0].gameObject.SetActive(false); m_TreasurePrivileges[1].gameObject.SetActive(false); switch (m_Treasure.specialData.type) { case TreasurePrivilege.Sign: case TreasurePrivilege.Property: break; case TreasurePrivilege.DemonJarAtk: break; case TreasurePrivilege.StrengthenAdd: break; case TreasurePrivilege.Suit: case TreasurePrivilege.RuneBreakExpAdd: case TreasurePrivilege.Boss: m_TreasurePrivileges[0].gameObject.SetActive(false); m_TreasurePrivileges[1].gameObject.SetActive(false); break; case TreasurePrivilege.MountAtk: break; case TreasurePrivilege.PetHp: break; case TreasurePrivilege.Wing: break; case TreasurePrivilege.Wash: break; //case TreasureStageUnlock.Privilege: // m_ContainerFuncSoul.gameObject.SetActive(true); // m_ContainerSpecial.gameObject.SetActive(true); // var privilegeConfig = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>(m_TreasureStage.privilege); // m_Icon.SetSprite(privilegeConfig.Icon); // m_StageName.text = privilegeConfig.Name; // m_Description.text = UIHelper.ReplaceNewLine(privilegeConfig.Description); // DisplayTreasureSpecial(); // break; } } System/WindowBase/ModelCenter.cs
@@ -187,6 +187,7 @@ RegisterModel<TrialDungeonModel>(); RegisterModel<ActivitiesPushMgr>(); RegisterModel<MultipleRealmPointModel>(); RegisterModel<TreasureSoulModel>(); inited = true; } System/WindowJump/WindowJumpMgr.cs
@@ -685,7 +685,7 @@ var soulId = 0; if (int.TryParse(_tagWinSearchModel.SelectActive, out soulId)) { ModelCenter.Instance.GetModel<TreasureModel>().gotoSoul = soulId; ModelCenter.Instance.GetModel<TreasureSoulModel>().gotoSoul = soulId; } SetJumpLogic<TreasureSoulWin>(_tagWinSearchModel.TABID); break;