From f4f07847775c12b338d8bccedbbabc067dc1ae2c Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期六, 18 八月 2018 14:34:26 +0800
Subject: [PATCH] Merge branch '法宝、法宝魂修改'
---
System/Treasure/TreasureSoulModel.cs | 655 ++++++++++
Core/NetworkPackage/ServerPack/HA3_Function/HA353_tagMCMWPrivilegeDataInfo.cs | 2
System/Treasure/TreasureNewGotBehaviour.cs | 80 +
System/FindPrecious/DemonJarModel.cs | 6
System/Treasure/TreasureUnlockCell.cs | 88 +
Core/GameEngine/Model/Config/TreasurePrivilegeConfig.cs | 67
Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA512_tagCMActiveMWSoul.cs.meta | 4
Core/GameEngine/Model/Config/TreasurePrivilegeConfig.cs.meta | 2
System/Treasure/TreasureMeridianBehaviour.cs | 74
System/Treasure/TreasureNewGotWin.cs | 214 +--
Core/GameEngine/Model/Config/TreasureUpConfig.cs | 58
System/Treasure/TreasureSoulBehaviour.cs | 97 +
Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA512_tagCMActiveMWSoul.cs | 18
System/Treasure/TreasureNewStageWin.cs | 52
System/Treasure/FairyTreasureCollectPanelPattern4.cs | 38
System/Treasure/TreasureSoulPattern4.cs | 13
System/Treasure/TreasureSoulWin.cs | 294 ++--
System/Treasure/TreasureUnlockCell.cs.meta | 4
System/BlastFurnace/TreasureRefineTips.cs | 67 -
System/Treasure/TreasureSoulPattern2.cs | 15
System/Treasure/TreasureStageTipWin.cs | 45
System/Treasure/TreasureModel.cs | 237 ---
System/BlastFurnace/BlastFurnaceModel.cs | 22
System/Treasure/TreasureSoulPattern.cs | 12
Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA317_tagMCAllEquipAttrActiveInfo.cs | 2
System/Rune/RuneBreakWin.cs | 4
System/Treasure/TreasureLevelUpWin.cs | 217 +--
System/Treasure/TreasureSoulAchievementCell.cs | 68 +
Core/GameEngine/Model/Config/TreasureUpConfig.cs.meta | 2
/dev/null | 257 ----
System/Treasure/TreasureData.cs | 514 +------
System/WindowJump/WindowJumpMgr.cs | 2
System/Treasure/TreasureSoulModel.cs.meta | 4
System/Treasure/FairyTreasureCollectPanelPattern5.cs | 25
Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA353_tagMCMWPrivilegeDataInfo.cs | 2
System/Treasure/TreasureSoulAchievementCell.cs.meta | 4
System/Treasure/TreasureSoulPattern1.cs | 33
System/Treasure/TreasureNewGotBehaviour.cs.meta | 4
System/Treasure/TreasureSoulPattern3.cs | 13
System/WindowBase/ModelCenter.cs | 1
System/Treasure/TreasureAnimation.cs | 28
System/BlastFurnace/TreasureRefineSuccessWin.cs | 282 ++--
System/Skill/QuickSetting.cs | 2
System/Rune/RuneModel.cs | 8
44 files changed, 1,767 insertions(+), 1,869 deletions(-)
diff --git a/Core/GameEngine/Model/Config/TreasurePrivilegeConfig.cs b/Core/GameEngine/Model/Config/TreasurePrivilegeConfig.cs
index 7689253..e1880ae 100644
--- a/Core/GameEngine/Model/Config/TreasurePrivilegeConfig.cs
+++ b/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);
- }
- }
-
- }
-
-}
-
-
-
-
+ }
+ }
+
+ }
+
+}
+
+
+
+
diff --git a/Core/GameEngine/Model/Config/TreasurePrivilegeConfig.cs.meta b/Core/GameEngine/Model/Config/TreasurePrivilegeConfig.cs.meta
index 4b7dce1..d557769 100644
--- a/Core/GameEngine/Model/Config/TreasurePrivilegeConfig.cs.meta
+++ b/Core/GameEngine/Model/Config/TreasurePrivilegeConfig.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 761a8477b6259554ab927daec347dba7
-timeCreated: 1529925515
+timeCreated: 1534424449
licenseType: Pro
MonoImporter:
serializedVersion: 2
diff --git a/Core/GameEngine/Model/Config/TreasureUpConfig.cs b/Core/GameEngine/Model/Config/TreasureUpConfig.cs
index 22aa595..fc7c72a 100644
--- a/Core/GameEngine/Model/Config/TreasureUpConfig.cs
+++ b/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);
- }
- }
-
- }
-
-}
-
-
-
-
+ }
+ }
+
+ }
+
+}
+
+
+
+
diff --git a/Core/GameEngine/Model/Config/TreasureUpConfig.cs.meta b/Core/GameEngine/Model/Config/TreasureUpConfig.cs.meta
index 7712a82..4aeb44c 100644
--- a/Core/GameEngine/Model/Config/TreasureUpConfig.cs.meta
+++ b/Core/GameEngine/Model/Config/TreasureUpConfig.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 882666fd713678849aebb360643bfe19
-timeCreated: 1528358559
+timeCreated: 1534419056
licenseType: Pro
MonoImporter:
serializedVersion: 2
diff --git a/Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA512_tagCMActiveMWSoul.cs b/Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA512_tagCMActiveMWSoul.cs
new file mode 100644
index 0000000..ad429fe
--- /dev/null
+++ b/Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA512_tagCMActiveMWSoul.cs
@@ -0,0 +1,18 @@
+using UnityEngine;
+using System.Collections;
+
+// A5 12 激活法宝之魂 #tagCMActiveMWSoul
+
+public class CA512_tagCMActiveMWSoul : GameNetPackBasic {
+ public byte ID; //编号
+
+ public CA512_tagCMActiveMWSoul () {
+ combineCmd = (ushort)0x03FE;
+ _cmd = (ushort)0xA512;
+ }
+
+ public override void WriteToBytes () {
+ WriteBytes (ID, NetDataType.BYTE);
+ }
+
+}
diff --git a/System/Treasure/FairyTreasureCollectPanelPattern1.cs.meta b/Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA512_tagCMActiveMWSoul.cs.meta
similarity index 75%
copy from System/Treasure/FairyTreasureCollectPanelPattern1.cs.meta
copy to Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA512_tagCMActiveMWSoul.cs.meta
index 735eb11..fd81d22 100644
--- a/System/Treasure/FairyTreasureCollectPanelPattern1.cs.meta
+++ b/Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA512_tagCMActiveMWSoul.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
-guid: f4d29363b41f2a740834a1aabf805009
-timeCreated: 1521102270
+guid: 0ffb9a375c8c7ad499c781a9d61d3e95
+timeCreated: 1534562087
licenseType: Pro
MonoImporter:
serializedVersion: 2
diff --git a/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA317_tagMCAllEquipAttrActiveInfo.cs b/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA317_tagMCAllEquipAttrActiveInfo.cs
index 5cfc797..130961e 100644
--- a/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA317_tagMCAllEquipAttrActiveInfo.cs
+++ b/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);
}
}
diff --git a/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA353_tagMCMWPrivilegeDataInfo.cs b/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA353_tagMCMWPrivilegeDataInfo.cs
index 8a83515..7945bf5 100644
--- a/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA353_tagMCMWPrivilegeDataInfo.cs
+++ b/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);
}
}
diff --git a/Core/NetworkPackage/ServerPack/HA3_Function/HA353_tagMCMWPrivilegeDataInfo.cs b/Core/NetworkPackage/ServerPack/HA3_Function/HA353_tagMCMWPrivilegeDataInfo.cs
index ce5ae71..e7f1fb8 100644
--- a/Core/NetworkPackage/ServerPack/HA3_Function/HA353_tagMCMWPrivilegeDataInfo.cs
+++ b/Core/NetworkPackage/ServerPack/HA3_Function/HA353_tagMCMWPrivilegeDataInfo.cs
@@ -17,6 +17,7 @@
for (int i = 0; i < Count; i ++) {
InfoList[i] = new tagMCMWPrivilegeData();
TransBytes (out InfoList[i].PriID, vBytes, NetDataType.DWORD);
+ TransBytes (out InfoList[i].State, vBytes, NetDataType.BYTE);
TransBytes (out InfoList[i].CurValue, vBytes, NetDataType.DWORD);
TransBytes (out InfoList[i].GotValue, vBytes, NetDataType.DWORD);
TransBytes (out InfoList[i].ItemAwardState, vBytes, NetDataType.BYTE);
@@ -25,6 +26,7 @@
public struct tagMCMWPrivilegeData {
public uint PriID; // 特权ID
+ public byte State; //激活状态
public uint CurValue; //当前总进度
public uint GotValue; //已领取进度
public byte ItemAwardState; //物品奖励是否已领取
diff --git a/System/BlastFurnace/BlastFurnaceModel.cs b/System/BlastFurnace/BlastFurnaceModel.cs
index eea87e1..e18abc3 100644
--- a/System/BlastFurnace/BlastFurnaceModel.cs
+++ b/System/BlastFurnace/BlastFurnaceModel.cs
@@ -213,28 +213,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()
diff --git a/System/BlastFurnace/TreasureRefineSuccessWin.cs b/System/BlastFurnace/TreasureRefineSuccessWin.cs
index bbb1038..d163148 100644
--- a/System/BlastFurnace/TreasureRefineSuccessWin.cs
+++ b/System/BlastFurnace/TreasureRefineSuccessWin.cs
@@ -1,141 +1,141 @@
-锘縰sing 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();
- }
- }
-}
+锘縰sing 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();
+ }
+ }
+}
diff --git a/System/BlastFurnace/TreasureRefineTips.cs b/System/BlastFurnace/TreasureRefineTips.cs
index a15c5e8..0f317ba 100644
--- a/System/BlastFurnace/TreasureRefineTips.cs
+++ b/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)
diff --git a/System/FindPrecious/DemonJarModel.cs b/System/FindPrecious/DemonJarModel.cs
index 225ced0..02b078f 100644
--- a/System/FindPrecious/DemonJarModel.cs
+++ b/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;
}
diff --git a/System/Rune/RuneBreakWin.cs b/System/Rune/RuneBreakWin.cs
index 0c9a4b3..7825338 100644
--- a/System/Rune/RuneBreakWin.cs
+++ b/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()
diff --git a/System/Rune/RuneModel.cs b/System/Rune/RuneModel.cs
index 41e2adc..1b7a42d 100644
--- a/System/Rune/RuneModel.cs
+++ b/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;
diff --git a/System/Skill/QuickSetting.cs b/System/Skill/QuickSetting.cs
index b5d61eb..c94f876 100644
--- a/System/Skill/QuickSetting.cs
+++ b/System/Skill/QuickSetting.cs
@@ -14,6 +14,7 @@
quickSettingDic.Add(QuickSettingType.Skill, new QuickSettingRange(QuickSettingType.Skill, 30, 3));
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));
setting = new string(UCharacter, 100);
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += BeforePlayerDataInitializeEvent;
}
@@ -107,6 +108,7 @@
Skill,
FairyLeagueGuide,
AutoUseXp,
+ SpAnim,
}
public struct QuickSettingRange
{
diff --git a/System/Treasure/FairyTreasureCollectPanelPattern1.cs b/System/Treasure/FairyTreasureCollectPanelPattern1.cs
deleted file mode 100644
index f821c09..0000000
--- a/System/Treasure/FairyTreasureCollectPanelPattern1.cs
+++ /dev/null
@@ -1,257 +0,0 @@
-锘�//--------------------------------------------------------
-// [Author]: 绗簩涓栫晫
-// [ Date ]: Thursday, March 15, 2018
-//--------------------------------------------------------
-using UnityEngine;
-using System.Collections;
-using UnityEngine.UI;
-using TableConfig;
-using System;
-
-namespace Snxxz.UI
-{
- public class FairyTreasureCollectPanelPattern1 : FairyTreasureCollect
- {
- [SerializeField] RectTransform m_CollectContainer;
- [SerializeField] FairyTreasureCollectConditionBehaviour1[] m_Conditions;
- [SerializeField] Text m_LevelNeed;
- [SerializeField] Button m_UnLockTreasure;
-
- [SerializeField] RectTransform m_LevelUpContainer;
- [SerializeField] Text m_StoveLevel;
- [SerializeField] RectTransform m_CurrentProperty;
- [SerializeField] Text[] m_CurrentPropertyNames;
- [SerializeField] Text[] m_CurrentPropertyValues;
-
- [SerializeField] RectTransform m_NextProperty;
- [SerializeField] Text[] m_NextPropertyNames;
- [SerializeField] Text[] m_NextPropertyValues;
-
- [SerializeField] RectTransform m_MaxLevelContainer;
-
- [SerializeField] Button m_GotoStove;
-
- PlayerPackModel packModel { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
- BlastFurnaceModel blastFurnaceModel { get { return ModelCenter.Instance.GetModel<BlastFurnaceModel>(); } }
- Item[] needItems = null;
-
- public override void Display(int _treasureId, bool _tween = false)
- {
- base.Display(_treasureId);
- if (!model.TryGetTreasure(_treasureId, out treasure))
- {
- return;
- }
-
- needItems = treasure.needItems;
-
- switch (treasure.state)
- {
- case TreasureState.Collected:
- DisplayCollectedState();
- break;
- case TreasureState.Locked:
- DisplayLockedState();
- break;
- }
-
- CheckAchievementGuide();
-
- m_UnLockTreasure.RemoveAllListeners();
- m_GotoStove.RemoveAllListeners();
-
- m_UnLockTreasure.AddListener(UnLockTreasure);
- m_GotoStove.AddListener(GotoStove);
-
- model.treasureStateChangeEvent += OnTreasureStateChange;
- }
-
- public override void Dispose()
- {
- base.Dispose();
-
- model.treasureStateChangeEvent -= OnTreasureStateChange;
- m_UnLockTreasure.RemoveAllListeners();
- m_GotoStove.RemoveAllListeners();
- }
-
- private void DisplayCollectedState()
- {
- m_CollectContainer.gameObject.SetActive(false);
- m_LevelUpContainer.gameObject.SetActive(true);
-
- var stoveLevel = blastFurnaceModel.StoveLV;
- m_StoveLevel.text = Language.Get("BlastFurnace101", stoveLevel);
-
- var configNow = ConfigManager.Instance.GetTemplate<RefineStoveConfig>(stoveLevel);
- var min = Mathf.Min(m_CurrentPropertyNames.Length, m_CurrentPropertyValues.Length);
- for (int i = 0; i < min; i++)
- {
- if (i < configNow.AttrID.Length)
- {
- m_CurrentPropertyNames[i].gameObject.SetActive(true);
- m_CurrentPropertyValues[i].gameObject.SetActive(true);
-
- var propertyId = configNow.AttrID[i];
- var propertyConfig = ConfigManager.Instance.GetTemplate<PlayerPropertyConfig>(propertyId);
- m_CurrentPropertyNames[i].text = propertyConfig.Name;
- m_CurrentPropertyValues[i].text = StringUtility.Contact("+", configNow.AttrValue[i]);
- }
- else
- {
- m_CurrentPropertyNames[i].gameObject.SetActive(false);
- m_CurrentPropertyValues[i].gameObject.SetActive(false);
- }
- }
-
- var isMax = false;
- m_NextProperty.gameObject.SetActive(!isMax);
- m_MaxLevelContainer.gameObject.SetActive(isMax);
-
- if (!isMax)
- {
- var configNext = ConfigManager.Instance.GetTemplate<RefineStoveConfig>(stoveLevel + 1);
- var min1 = Mathf.Min(m_NextPropertyNames.Length, m_NextPropertyValues.Length);
- for (int i = 0; i < min1; i++)
- {
- if (i < configNext.AttrID.Length)
- {
- m_NextPropertyNames[i].gameObject.SetActive(true);
- m_NextPropertyValues[i].gameObject.SetActive(true);
-
- var propertyId = configNext.AttrID[i];
- var propertyConfig = ConfigManager.Instance.GetTemplate<PlayerPropertyConfig>(propertyId);
- m_NextPropertyNames[i].text = propertyConfig.Name;
- m_NextPropertyValues[i].text = StringUtility.Contact("+", configNext.AttrValue[i]);
- }
- else
- {
- m_NextPropertyNames[i].gameObject.SetActive(false);
- m_NextPropertyValues[i].gameObject.SetActive(false);
- }
- }
- }
- }
-
- private void DisplayLockedState()
- {
- m_CollectContainer.gameObject.SetActive(true);
- m_LevelUpContainer.gameObject.SetActive(false);
-
- var config = ConfigManager.Instance.GetTemplate<TreasureConfig>(treasure.id);
- m_LevelNeed.text = Language.Get("TreasureLvRequire", config.ChallengeLevel);
-
- for (int i = 0; i < m_Conditions.Length; i++)
- {
- var condition = m_Conditions[i];
- if (i < needItems.Length)
- {
- condition.gameObject.SetActive(true);
- condition.Display(needItems[i].id, needItems[i].count);
- }
- else
- {
- condition.gameObject.SetActive(false);
- }
- }
- }
-
- private bool TestCollectConditions(out int _error)
- {
- for (int i = 0; i < needItems.Length; i++)
- {
- var item = needItems[i];
- var own = packModel.GetItemCountByID(PackType.rptItem, item.id);
- if (own < item.count)
- {
- _error = 1;
- return false;
- }
- }
-
- var config = ConfigManager.Instance.GetTemplate<TreasureConfig>(treasure.id);
- var playerLevel = PlayerDatas.Instance.baseData.LV;
-
- if (playerLevel < config.ChallengeLevel)
- {
- _error = 2;
- return false;
- }
-
- _error = 0;
- return true;
- }
-
- private void UnLockTreasure()
- {
- var error = 0;
- if (TestCollectConditions(out error))
- {
- var unlock = new CA50E_tagCMOpenMagicWeapon();
- unlock.MWID = (uint)treasure.id;
- GameNetSystem.Instance.SendInfo(unlock);
-
- WindowCenter.Instance.Close<TreasureLevelUpWin>();
- WindowCenter.Instance.Open<MainInterfaceWin>();
- }
- else
- {
- switch (error)
- {
- case 1:
- SysNotifyMgr.Instance.ShowTip("TreasureItemUnenough");
- break;
- case 2:
- SysNotifyMgr.Instance.ShowTip("TreasureLvUnenough");
- break;
- }
- }
- }
-
- private void GotoStove()
- {
- WindowCenter.Instance.Close<TreasureLevelUpWin>();
-
- WindowCenter.Instance.Close<MainInterfaceWin>();
- WindowCenter.Instance.Open<BlastFurnaceWin>();
- }
-
- protected override void OnTreasureStateChange(int _treasureId)
- {
- if (treasure.id != _treasureId)
- {
- return;
- }
-
- switch (treasure.state)
- {
- case TreasureState.Collected:
- DisplayCollectedState();
- break;
- case TreasureState.Locked:
- DisplayLockedState();
- break;
- }
- }
-
- private void CheckAchievementGuide()
- {
- if (AchievementGoto.guideAchievementId != 0)
- {
- var config = ConfigManager.Instance.GetTemplate<SuccessConfig>(AchievementGoto.guideAchievementId);
- var condition = config.Type == 115;
-
- if (condition)
- {
- var guideEffect = AchievementGuideEffectPool.Require(1);
- guideEffect.transform.SetParentEx(m_UnLockTreasure.transform, Vector3.zero, Vector3.zero, Vector3.one);
- }
- }
- }
-
- }
-
-}
-
-
-
diff --git a/System/Treasure/FairyTreasureCollectPanelPattern4.cs b/System/Treasure/FairyTreasureCollectPanelPattern4.cs
index 07eac78..07c6e21 100644
--- a/System/Treasure/FairyTreasureCollectPanelPattern4.cs
+++ b/System/Treasure/FairyTreasureCollectPanelPattern4.cs
@@ -24,6 +24,8 @@
}
}
+ TreasureSoulModel treasureSoulModel { get { return ModelCenter.Instance.GetModel<TreasureSoulModel>(); } }
+
public override void Display(int _treasureId, bool _tween = false)
{
base.Display(_treasureId, _tween);
@@ -80,28 +82,24 @@
private void OnSignRefresh()
{
- if (treasure.treasureStages[0].unlockType == TreasureStageUnlock.Privilege)
+ if(treasure.id== treasureSoulModel.signAddTreasure)
{
- var _specialData = treasure.treasureStages[0].specialData;
- if (_specialData.type == TreasurePrivilege.Sign)
+ var _property = treasureSoulModel.signAddProperty.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)
{
- 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");
- }
+ 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");
}
}
}
diff --git a/System/Treasure/FairyTreasureCollectPanelPattern5.cs b/System/Treasure/FairyTreasureCollectPanelPattern5.cs
index f018d70..4f05f94 100644
--- a/System/Treasure/FairyTreasureCollectPanelPattern5.cs
+++ b/System/Treasure/FairyTreasureCollectPanelPattern5.cs
@@ -78,8 +78,6 @@
DisplayFurnace();
DisplayFunc();
achievementModel.achievementCompletedEvent += AchievementCompletedEvent;
- model.treasureStateChangeEvent -= OnTreasureStateChange;
- model.treasureStateChangeEvent += OnTreasureStateChange;
completedAchivement = 0;
@@ -110,23 +108,10 @@
achievementModel.GotoCompleteAchievement(currentAchievement.id);
}
- protected override void OnTreasureStateChange(int _id)
- {
- if (_id != treasureId)
- {
- return;
- }
- if (model.newGotTreasureId == treasureId)
- {
- model.newGotTreasureId = 0;
- }
- }
-
public override void Dispose()
{
m_GotoGet.onClick.RemoveAllListeners();
achievementModel.achievementCompletedEvent -= AchievementCompletedEvent;
- model.treasureStateChangeEvent -= OnTreasureStateChange;
for (int i = 0; i < m_FurnacesAchievements.Length; i++)
{
m_FurnacesAchievements[i].Dispose();
@@ -261,10 +246,6 @@
IEnumerator Co_Fly()
{
yield return WaitingForSecondConst.WaitMS300;
- if (model.newGotTreasureId == treasureId)
- {
- model.newGotTreasureId = 0;
- }
model.treasureStepUpShow = false;
BeginFly();
}
@@ -347,7 +328,11 @@
private void DisplayFunc()
{
m_FuncTitle.text = treasure.state == TreasureState.Collected ? Language.Get("FairyTreasureOpenFunc") : Language.Get("FairyTreasureUnOpenFunc");
- var config = ConfigManager.Instance.GetTemplate<FuncOpenLVConfig>(treasure.unLockFunc);
+ var funcStage = treasure.treasureStages.Find((x) =>
+ {
+ return x.unlockType == TreasureStageUnlock.Func;
+ });
+ var config = ConfigManager.Instance.GetTemplate<FuncOpenLVConfig>(funcStage.func);
if (config != null)
{
m_FuncIcon.SetSprite(config.Icon);
diff --git a/System/Treasure/TreasureAnimation.cs b/System/Treasure/TreasureAnimation.cs
index 74c35a7..3a82d92 100644
--- a/System/Treasure/TreasureAnimation.cs
+++ b/System/Treasure/TreasureAnimation.cs
@@ -278,6 +278,12 @@
var _effect = EffectMgr.Instance.PlayUIEffect(SPIRALSFX, 2700, m_TreasureMeridians[_index].transform.parent, false);
_effect.transform.localPosition = _config[_index].position;
_duration = _effect.duration;
+
+ if (_index == _config.stagePointNum - 1 && m_ProgressPosTween.gameObject.activeInHierarchy)
+ {
+ m_ProgressPosTween.Play(true);
+ }
+
while (_timer < _duration)
{
_timer += Time.deltaTime;
@@ -602,7 +608,12 @@
OnAchievementTweenComplete();
}
});
- m_ProgressPosTween.Play();
+ Treasure treasure;
+ model.TryGetTreasure(selectTreasureId, out treasure);
+ if (!treasure.IsHighestStage)
+ {
+ m_ProgressPosTween.Play();
+ }
if (OnStepComplete != null)
{
OnStepComplete(TreasureShowStep.FirstUnLock);
@@ -612,7 +623,6 @@
yield return null;
}
stepComplete = true;
- Treasure treasure;
model.TryGetTreasure(selectTreasureId, out treasure);
if (treasure.treasureStages[0].unlockType != TreasureStageUnlock.None)
{
@@ -709,13 +719,15 @@
{
yield return null;
}
-
- timer = 0;
- var _effect = EffectMgr.Instance.PlayUIEffect(CONVERGESFX, 2700, m_TreasureMeridians[_skillStageIndex].transform.parent, false);
- _effect.transform.localPosition = _config[_skillStageIndex].position;
- while (timer < 0.5f)
+ if (_config.stagePointNum > 1)
{
- yield return null;
+ timer = 0;
+ var _effect = EffectMgr.Instance.PlayUIEffect(CONVERGESFX, 2700, m_TreasureMeridians[_skillStageIndex].transform.parent, false);
+ _effect.transform.localPosition = _config[_skillStageIndex].position;
+ while (timer < 0.5f)
+ {
+ yield return null;
+ }
}
timer = 0;
m_ContainerLevelUp.gameObject.SetActive(false);
diff --git a/System/Treasure/TreasureData.cs b/System/Treasure/TreasureData.cs
index 3a3a23b..5eb5636 100644
--- a/System/Treasure/TreasureData.cs
+++ b/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
{
@@ -86,11 +78,6 @@
}
}
- public int unLockFunc
- {
- get; private set;
- }
-
public int unLockPrivilege
{
get; private set;
@@ -115,8 +102,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 +173,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 +231,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);
}
@@ -311,18 +244,21 @@
stage = _lv;
exp = _exp;
hasClickChallenge = _hasClickChallenge;
- if ((this is HumanTreasure) && IsMaxStage())
+ if ((this is HumanTreasure))
{
- (this as HumanTreasure).humanState = HumanTreasureState.Potential;
+ (this as HumanTreasure).UpdateTreasureState();
}
}
- public bool IsMaxStage()
+ public bool IsHighestStage
{
- return treasureStages.FindIndex((x) =>
+ get
{
- return x.stage >= stage + 1;
- }) == -1;
+ return treasureStages.FindIndex((x) =>
+ {
+ return x.stage >= stage + 1;
+ }) == -1;
+ }
}
public bool IsUnlockStage(TreasureStageUnlock _type)
@@ -362,24 +298,11 @@
{
return m_State;
}
- set
+ private set
{
m_State = value;
- if (value == HumanTreasureState.CastSoul)
- {
- if (IsMaxStage())
- {
- m_State = HumanTreasureState.Potential;
- }
- }
ModelCenter.Instance.GetModel<TreasureModel>().HumanTreasureStateChange(base.id);
}
- }
-
- public HumanTreasure(int _id)
- : base(_id)
- {
-
}
public HumanTreasure(int _id, int[] _potentialIds, Redpoint _skillLevelUpRedpoint, Redpoint _achievementPoint
@@ -387,6 +310,28 @@
: base(_id, _potentialIds, _skillLevelUpRedpoint, _achievementPoint)
{
castSoulRedpoint = _castSoulPoint;
+ }
+
+ public void UpdateTreasureState()
+ {
+ if (state == TreasureState.Locked)
+ {
+ humanState = HumanTreasureState.Locked;
+ return;
+ }
+ if (state == TreasureState.Collecting)
+ {
+ humanState = HumanTreasureState.Challenge;
+ return;
+ }
+ if (IsHighestStage && FuncOpen.Instance.IsFuncOpen(82))
+ {
+ humanState = HumanTreasureState.Potential;
+ }
+ else
+ {
+ humanState = HumanTreasureState.CastSoul;
+ }
}
public Redpoint castSoulRedpoint { get; private set; }
@@ -600,63 +545,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 +635,6 @@
return _skillCfg.FightPower;
}
break;
- case TreasureStageUnlock.Privilege:
- return specialData.GetFightPower();
}
return 0;
}
@@ -695,297 +646,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,
}
}
diff --git a/System/Treasure/TreasureLevelUpWin.cs b/System/Treasure/TreasureLevelUpWin.cs
index 6ff449a..a3026fe 100644
--- a/System/Treasure/TreasureLevelUpWin.cs
+++ b/System/Treasure/TreasureLevelUpWin.cs
@@ -23,13 +23,8 @@
[SerializeField] RectTransform m_ContainerUnGet;
[SerializeField] RectTransform m_ContainerLockDetail;
[SerializeField] PositionTween m_LockDetailPosTween;
+ [SerializeField] ScrollerController m_Controller;
[SerializeField] Button m_GetTreasureBtn;
- [SerializeField] RectTransform m_ContainerLockFunc;
- [SerializeField] RectTransform m_ContainerLockSkill;
- [SerializeField] RectTransform m_ContainerLockPrivilege;
- [SerializeField] Button m_PrivilegeLockBtn;
- [SerializeField] Button m_FuncLockBtn;
- [SerializeField] Button m_SkillLockBtn;
[SerializeField] RectTransform m_ContainerLimit;
[SerializeField] Text m_TreasureChallengeLimit;
[SerializeField] Text m_TreasureStory;
@@ -43,6 +38,7 @@
[SerializeField] TreasureProperty m_TreasureProperty;
[SerializeField] TreasureMeridianBehaviour[] m_TreasureMeridians;
[Header("Progress")]
+ [SerializeField] RectTransform m_ContainerPropgress;
[SerializeField] Image m_CurrentStageIcon;
[SerializeField] Text m_TreasureLevelProgress;
[SerializeField] Text m_TreasureStageDesc;
@@ -110,7 +106,7 @@
public event Action OnLineStepComplete;
- public int beforePlayerLv = 0;
+ int beforePlayerLv = 0;
#region Built-in
protected override void BindController()
@@ -123,11 +119,9 @@
m_BackBtn.onClick.AddListener(OnBack);
m_GetTreasureBtn.onClick.AddListener(OnGetTreasure);
m_LevelUpBtn.onClick.AddListener(OnLevelUp);
- m_PrivilegeLockBtn.onClick.AddListener(OnStagePrivilegeClick);
- m_FuncLockBtn.onClick.AddListener(OnStageFuncClick);
- m_SkillLockBtn.onClick.AddListener(OnStageSkillClick);
m_LeftBtn.onClick.AddListener(OnLeftBtn);
m_RightBtn.onClick.AddListener(OnRightBtn);
+ m_Controller.OnRefreshCell += OnRefreshCell;
}
protected override void OnPreOpen()
@@ -163,7 +157,6 @@
model.treasureLevelProgressUpdateEvent += TreasureLevelProgressUpdateEvent;
model.treasureSelectedEvent += TreasureSelectedEvent;
model.treasureStageUpEvent += TreasureStageUpEvent;
- PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent;
m_TreasureAnimation.OnStepComplete += OnStepComplete;
RedpointCenter.Instance.redpointValueChangeEvent += RedpointValueChangeEvent;
achievementModel.achievementCompletedEvent += AchievementCompletedEvent;
@@ -209,7 +202,6 @@
PlayerTaskDatas.CardLevelChange -= CardLevelChange;
model.treasureSelectedEvent -= TreasureSelectedEvent;
model.treasureStageUpEvent -= TreasureStageUpEvent;
- PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= PlayerDataRefreshInfoEvent;
m_TreasureAnimation.OnStepComplete -= OnStepComplete;
RedpointCenter.Instance.redpointValueChangeEvent -= RedpointValueChangeEvent;
achievementModel.achievementCompletedEvent -= AchievementCompletedEvent;
@@ -246,12 +238,18 @@
}
#endregion
+ private void OnRefreshCell(ScrollerDataType type, CellView cell)
+ {
+ TreasureUnlockCell treasureUnlockCell = cell as TreasureUnlockCell;
+ treasureUnlockCell.Display(model.selectedTreasure, cell.index);
+ }
+
private void TreasureStateChangeEvent(int _id)
{
Treasure _treasure;
model.TryGetTreasure(_id, out _treasure);
if (_id == model.selectedTreasure && _treasure != null
- && _treasure.state == TreasureState.Collecting)
+ && _treasure.state == TreasureState.Collecting && model.serverInited)
{
UpdateStage();
if (WindowCenter.Instance.CheckOpen<EffectToFaBaoWin>())
@@ -380,7 +378,8 @@
{
m_ContainerUnGet.gameObject.SetActive(false);
- if (m_Treasure.IsMaxStage() || _state == 2)
+ if ((m_Treasure.IsHighestStage && FuncOpen.Instance.IsFuncOpen(82)
+ && model.GetSpAnim(m_Treasure.id)) || _state == 2)
{
if (_state != 2)
{
@@ -391,12 +390,14 @@
else
{
m_TreasureProperty.SetActive(true);
+ model.SetSpAnim(m_Treasure.id);
}
m_TreasurePotential.Display(m_Treasure, _state);
}
else
{
m_ContainerLevelUp.gameObject.SetActive(true);
+ m_ContainerPropgress.gameObject.SetActive(!m_Treasure.IsHighestStage);
m_ContainerPotential.gameObject.SetActive(false);
if (model.treasureEntranceShowId == model.selectedTreasure)
{
@@ -417,78 +418,51 @@
m_TreasureAnimation.OnStageLock(m_Treasure.GetStageIndex(m_Treasure.stage));
}
m_TreasureProperty.SetActive(m_Treasure.state == TreasureState.Collected);
+ if (_state == 1 && m_Treasure.IsHighestStage
+ && FuncOpen.Instance.IsFuncOpen(82) && !model.GetSpAnim(m_Treasure.id))
+ {
+ m_TreasureAnimation.step = TreasureAnimation.TreasureShowStep.FirstPotential;
+ UpdateStage(2);
+ return;
+ }
}
m_TreasureAnimation.step = TreasureAnimation.TreasureShowStep.UnLock;
}
}
}
- 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)
{
- if (_id == 126)
+ if (_id == 82 && FuncOpen.Instance.IsFuncOpen(_id) && model.serverInited)
{
- UpdateTreasureProgress();
- UpdateTreasureUnlockDetail();
+ if (m_TreasureAnimation.stepComplete && m_Treasure.IsHighestStage
+ && !model.GetSpAnim(m_Treasure.id))
+ {
+ m_TreasureAnimation.step = TreasureAnimation.TreasureShowStep.FirstPotential;
+ UpdateStage(2);
+ }
}
}
private void UpdateTreasureUnlockDetail()
{
var _cfg = ConfigManager.Instance.GetTemplate<TreasureConfig>(model.selectedTreasure);
- var _funcCfg = ConfigManager.Instance.GetTemplate<FuncOpenLVConfig>(m_Treasure.unLockFunc);
m_TreasureStory.text = _cfg.Story;
- m_ContainerLockFunc.gameObject.SetActive(_funcCfg != null);
- if (_funcCfg != null)
+
+ m_Controller.Refresh();
+ for (int i = 0; i < m_Treasure.treasureStages.Count; i++)
{
- m_FuncLockBtn.image.SetSprite(_funcCfg.Icon);
- }
- var _skillCfg = ConfigManager.Instance.GetTemplate<SkillConfig>(m_Treasure.unLockSkill);
- m_ContainerLockSkill.gameObject.SetActive(_skillCfg != null);
- if (_skillCfg != null)
- {
- m_SkillLockBtn.image.SetSprite(_skillCfg.IconName);
- }
- var _privilegeCfg = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>(m_Treasure.unLockPrivilege);
- m_ContainerLockPrivilege.gameObject.SetActive(_privilegeCfg != null);
- if (_privilegeCfg != null)
- {
- var privilegeStage = m_Treasure.treasureStages[m_Treasure.StageCount - 1];
- if (FuncOpen.Instance.IsFuncOpen(126))
+ var stage = m_Treasure.treasureStages[i];
+ switch (stage.unlockType)
{
- m_PrivilegeLockBtn.image.SetSprite(_privilegeCfg.Icon);
+ case TreasureStageUnlock.Skill:
+ case TreasureStageUnlock.Func:
+ case TreasureStageUnlock.Treasure:
+ m_Controller.AddCell(ScrollerDataType.Header, stage.stage);
+ break;
}
- else
- {
- m_PrivilegeLockBtn.image.SetSprite("UnKnowIcon");
- }
- m_PrivilegeLockBtn.image.SetNativeSize();
}
+ m_Controller.Restart();
Achievement achievement = null;
int _achievementId = 0;
@@ -520,59 +494,6 @@
m_TreasureChallengeLimit.text = Language.Get("TreasureGetRequire", _taskConfig.lv);
break;
}
- }
- }
-
- private void OnStageSkillClick()
- {
- if (model.treasureStepUpShow)
- {
- return;
- }
- var _stage = m_Treasure.treasureStages.Find((x) =>
- {
- return x.unlockType == TreasureStageUnlock.Skill;
- });
- if (_stage != null)
- {
- OpenTreasureStageTip(_stage.stage,m_SkillLockBtn.transform as RectTransform);
- }
- }
-
- private void OnStageFuncClick()
- {
- if (model.treasureStepUpShow)
- {
- return;
- }
- var _stage = m_Treasure.treasureStages.Find((x) =>
- {
- return x.unlockType == TreasureStageUnlock.Func;
- });
- if (_stage != null)
- {
- OpenTreasureStageTip(_stage.stage,m_FuncLockBtn.transform as RectTransform);
- }
- }
-
- private void OnStagePrivilegeClick()
- {
- if (model.treasureStepUpShow)
- {
- return;
- }
- if (!FuncOpen.Instance.IsFuncOpen(126))
- {
- 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);
}
}
@@ -792,7 +713,7 @@
{
var config = ConfigManager.Instance.GetTemplate<TreasureConfig>(model.selectedTreasure);
if (!m_Init || config == null || (TreasureCategory)config.Category != TreasureCategory.Human
- || m_Treasure.state != TreasureState.Collected || m_Treasure.IsMaxStage())
+ || m_Treasure.state != TreasureState.Collected || m_Treasure.IsHighestStage)
{
return;
}
@@ -870,7 +791,15 @@
model.SetTreasureStageShow(m_Treasure.id, -1);
m_TreasureAnimation.OnStageLock(m_Treasure.GetStageIndex(m_Treasure.stage));
}
- CheckGuide65();
+ if (!m_Treasure.IsHighestStage)
+ {
+ CheckGuide65();
+ }
+ else if (FuncOpen.Instance.IsFuncOpen(82) && !model.GetSpAnim(m_Treasure.id))
+ {
+ m_TreasureAnimation.step = TreasureAnimation.TreasureShowStep.FirstPotential;
+ UpdateStage(2);
+ }
break;
case TreasureAnimation.TreasureShowStep.FirstUnLock:
UpdateLevelUpSfx(false);
@@ -894,7 +823,7 @@
{
if (_win is TreasureNewStageWin)
{
- if (m_Treasure.IsMaxStage())
+ if (m_Treasure.IsHighestStage && FuncOpen.Instance.IsFuncOpen(82))
{
m_TreasureAnimation.step = TreasureAnimation.TreasureShowStep.FirstPotential;
UpdateStage(2);
@@ -919,7 +848,7 @@
private void RequestMeridianLine()
{
- if (m_Treasure.IsMaxStage())
+ if (m_Treasure.IsHighestStage && FuncOpen.Instance.IsFuncOpen(82))
{
return;
}
@@ -981,7 +910,7 @@
{
case TreasureStageUnlock.Func:
m_ContainerTip.gameObject.SetActive(true);
- var _funcConfig = ConfigManager.Instance.GetTemplate<FuncOpenLVConfig>(m_Treasure.unLockFunc);
+ var _funcConfig = ConfigManager.Instance.GetTemplate<FuncOpenLVConfig>(stage.func);
m_NewStageTip.text = StringUtility.Contact(Language.Get("TreasureGetNewFunc"),
UIHelper.GetTextColorByItemColor(TextColType.Green, _funcConfig.Remark));
break;
@@ -1016,9 +945,14 @@
case TreasureStageUnlock.Func:
StartScreenShot();
break;
- case TreasureStageUnlock.Privilege:
+ case TreasureStageUnlock.Item:
case TreasureStageUnlock.Property:
WindowCenter.Instance.Open<TreasureNewStageWin>(true);
+ break;
+ case TreasureStageUnlock.Treasure:
+ WindowJumpMgr.Instance.ClearJumpData();
+ WindowCenter.Instance.Open<MainInterfaceWin>();
+ CloseImmediately();
break;
}
}
@@ -1178,30 +1112,15 @@
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);
- }
- }
+ case TreasureStageUnlock.Item:
+ var _itemConfig = ConfigManager.Instance.GetTemplate<ItemConfig>(_nextStage.item.id);
+ m_CurrentStageIcon.SetSprite(_itemConfig.IconKey);
+ m_TreasureStageDesc.text = Language.Get("TreasureLevelUpItem", _itemConfig.ItemName);
+ break;
+ case TreasureStageUnlock.Treasure:
+ var _treasureConfig = ConfigManager.Instance.GetTemplate<TreasureConfig>(_nextStage.treasure);
+ m_CurrentStageIcon.SetSprite(_treasureConfig.Icon);
+ m_TreasureStageDesc.text = Language.Get("TreasureLevelUpTreasure", _treasureConfig.Name);
break;
}
}
diff --git a/System/Treasure/TreasureMeridianBehaviour.cs b/System/Treasure/TreasureMeridianBehaviour.cs
index bf82b31..e6db53b 100644
--- a/System/Treasure/TreasureMeridianBehaviour.cs
+++ b/System/Treasure/TreasureMeridianBehaviour.cs
@@ -84,21 +84,18 @@
{
m_TreasureLevelUpWin.OnLineStepComplete -= OnLineStepComplete;
}
- FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
}
private void OnStageClick()
{
- if (m_TreasureStage != null
- && m_TreasureStage.unlockType != TreasureStageUnlock.Property)
+ if (m_TreasureStage != null&& m_TreasureStage.unlockType != TreasureStageUnlock.Property)
{
- if (m_TreasureStage.unlockType == TreasureStageUnlock.Privilege)
+ if (m_TreasureStage.unlockType == TreasureStageUnlock.Item)
{
- if (!FuncOpen.Instance.IsFuncOpen(126))
- {
- FuncOpen.Instance.ProcessorFuncErrorTip(126);
- return;
- }
+ var item = m_TreasureStage.item;
+ ItemAttrData itemAttrData = new ItemAttrData(item.id, true, (ulong)item.count, -1, item.bind ? 1 : 0);
+ ModelCenter.Instance.GetModel<ItemTipsModel>().SetItemTipsModel(itemAttrData);
+ return;
}
model.selectedStage = m_TreasureStage.stage;
if (!WindowCenter.Instance.CheckOpen<TreasureStageTipWin>())
@@ -120,8 +117,6 @@
m_TreasureLevelUpWin = _win;
m_TreasureLevelUpWin.OnLineStepComplete -= OnLineStepComplete;
m_TreasureLevelUpWin.OnLineStepComplete += OnLineStepComplete;
- FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
- FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
stageIndex = _stageIndex;
if (model.TryGetTreasure(model.selectedTreasure, out m_Treasure))
{
@@ -158,6 +153,7 @@
m_Icon.SetSprite(GeneralConfig.Instance.propertyIconDict[_key]);
}
}
+ m_Icon.SetNativeSize();
break;
case TreasureStageUnlock.Skill:
var _skillId = m_TreasureStage.GetSkill(PlayerDatas.Instance.baseData.Job);
@@ -166,6 +162,7 @@
m_Descs[0].color = m_Treasure.id == 104 ? UIHelper.GetUIColor(TextColType.NavyYellow) : UIHelper.s_LightYellow;
m_Descs[0].gameObject.SetActive(true);
m_Icon.SetSprite(_skillCfg.IconName);
+ m_Icon.SetNativeSize();
break;
case TreasureStageUnlock.Func:
var _funcCfg = ConfigManager.Instance.GetTemplate<FuncOpenLVConfig>(m_TreasureStage.func);
@@ -173,47 +170,24 @@
m_Descs[0].color = UIHelper.s_LightYellow;
m_Descs[0].gameObject.SetActive(true);
m_Icon.SetSprite(_funcCfg.Icon);
+ m_Icon.SetNativeSize();
break;
- case TreasureStageUnlock.Privilege:
+ case TreasureStageUnlock.Item:
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;
- }
+ var itemConfig = ConfigManager.Instance.GetTemplate<ItemConfig>(m_TreasureStage.item.id);
+ m_Icon.SetSprite(itemConfig.IconKey);
+ m_Descs[0].text = itemConfig.ItemName;
+ m_Icon.SetNativeSize();
break;
- }
- m_Icon.SetNativeSize();
- }
- }
-
- private void OnFuncStateChangeEvent(int _id)
- {
- if (_id != 126)
- {
- 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;
+ case TreasureStageUnlock.Treasure:
+ m_Descs[0].gameObject.SetActive(true);
+ m_Descs[0].color = UIHelper.s_LightYellow;
+ var treasureConfig = ConfigManager.Instance.GetTemplate<TreasureConfig>(m_TreasureStage.treasure);
+ m_Icon.SetSprite(treasureConfig.Icon);
+ m_Descs[0].text = treasureConfig.Name;
+ m_Icon.rectTransform.sizeDelta = new Vector2(86, 86);
+ break;
}
}
}
@@ -325,6 +299,10 @@
public void RequestSfx()
{
+ if (m_Treasure == null)
+ {
+ return;
+ }
var _stage = model.GetTreasureStageShow(m_Treasure.id);
PlayLineSfx(m_Treasure.stage < m_TreasureStage.stage || _stage == m_TreasureStage.stage ? 4 : 2);
RequestStateSfx();
diff --git a/System/Treasure/TreasureModel.cs b/System/Treasure/TreasureModel.cs
index 348d071..a9e49b8 100644
--- a/System/Treasure/TreasureModel.cs
+++ b/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()
@@ -300,10 +279,7 @@
if ((treasure is HumanTreasure))
{
var humanTreasure = treasure as HumanTreasure;
- humanTreasure.humanState = HumanTreasureState.Locked;
- treasure.specialData.presentFinishCount = 0;
- treasure.specialData.presentGetCount = 0;
- treasure.specialData.itemGet = false;
+ humanTreasure.UpdateTreasureState();
}
}
}
@@ -314,7 +290,6 @@
UpdateAchievementRedpoints();
UpdateCastSoulRedpoints();
UpdateSkillLevelUpRedpoints();
- UpdatePrivileges();
}
private bool needDisplayReguluLevelUp = false;
@@ -359,6 +334,34 @@
{
var _playerId = PlayerDatas.Instance.baseData.PlayerID;
LocalSave.SetBool(StringUtility.Contact(_playerId, "_PotentialUnlockShow_", _treasureId), _value);
+ }
+
+ public bool GetSpAnim(int _treasureId)
+ {
+ 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.SpAnim, 0), out value);
+ return MathUtility.GetBitValue(value, (ushort)index);
+ }
+
+ public void SetSpAnim(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.SpAnim, 0), out value);
+ int bitValue = MathUtility.SetBitValue((int)value, (ushort)index, anim);
+ QuickSetting.Instance.SetQuickSetting(QuickSetting.QuickSettingType.SpAnim, bitValue);
+ QuickSetting.Instance.SendPackage();
}
public bool TryGetUnlockShowTreasure(out int _id)
@@ -510,7 +513,7 @@
if (treasure is HumanTreasure)
{
var humanTreasure = treasure as HumanTreasure;
- humanTreasure.humanState = HumanTreasureState.CastSoul;
+ humanTreasure.UpdateTreasureState();
UpdateCastSoulRedpoint(treasure.id);
if (GetTreasureUnlockShow(TreasureCategory.Human) == treasure.id)
{
@@ -519,7 +522,7 @@
}
if (serverInited)
{
- newGotTreasureId = id == 301 ? 0 : id;
+ newGotTreasureId = id;
treasureEntranceShowId = id;
var mapConfig = ConfigManager.Instance.GetTemplate<MapConfig>(PlayerDatas.Instance.baseData.MapID);
@@ -578,7 +581,7 @@
treasure.state = TreasureState.Collecting;
if ((TreasureCategory)config.Category == TreasureCategory.Human)
{
- (treasure as HumanTreasure).humanState = HumanTreasureState.Challenge;
+ (treasure as HumanTreasure).UpdateTreasureState();
}
if ((TreasureCategory)config.Category == TreasureCategory.Demon)
{
@@ -748,11 +751,6 @@
UpdateSkillLevelUpRedpoints();
}
}
-
- if (_type == PackType.rptEquip)
- {
- UpdateTreasurePrivilegeStrenthen();
- }
}
private void OnFunctionStateChange(int _functionId)
@@ -760,7 +758,7 @@
if (_functionId == 82)
{
UpdateSkillLevelUpRedpoints();
- if (!FuncOpen.Instance.IsFuncOpen(82) || !serverInited)
+ if (!FuncOpen.Instance.IsFuncOpen(82))
{
return;
}
@@ -769,8 +767,9 @@
{
Treasure treasure;
TryGetTreasure(list[i], out treasure);
- if (WindowCenter.Instance.CheckOpen<TreasureLevelUpWin>()
- && selectedTreasure == list[i] && treasure.IsMaxStage())
+ var humanTreasure = treasure as HumanTreasure;
+ humanTreasure.UpdateTreasureState();
+ if (!serverInited || !treasure.IsHighestStage)
{
continue;
}
@@ -870,7 +869,7 @@
return;
}
var anyPointialLevelupAble = false;
- if (treasure.state == TreasureState.Collected && treasure.IsMaxStage())
+ if (treasure.state == TreasureState.Collected && treasure.IsHighestStage)
{
for (int i = 0; i < treasure.potentials.Count; i++)
{
@@ -995,7 +994,7 @@
if (_pretreasure == null || _pretreasure.state == TreasureState.Collected)
{
treasure.state = TreasureState.Collecting;
- (treasure as HumanTreasure).humanState = HumanTreasureState.Challenge;
+ (treasure as HumanTreasure).UpdateTreasureState();
collectingHuman = treasure.id;
if (serverInited)
{
@@ -1054,7 +1053,7 @@
return;
}
- if((TreasureCategory)config.Category == TreasureCategory.Human && treasure.IsMaxStage())
+ if((TreasureCategory)config.Category == TreasureCategory.Human && treasure.IsHighestStage)
{
return;
}
@@ -1137,166 +1136,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 +1241,6 @@
if (TryGetTreasure(config.MWID, out treasure))
{
treasure.UpdateTreasureStage(config);
- if (treasure.specialData != null)
- {
- treasurePrivilegeDict.Add((int)treasure.specialData.type, treasure.specialData);
- }
}
}
diff --git a/System/Treasure/TreasureNewGotBehaviour.cs b/System/Treasure/TreasureNewGotBehaviour.cs
new file mode 100644
index 0000000..0566dc0
--- /dev/null
+++ b/System/Treasure/TreasureNewGotBehaviour.cs
@@ -0,0 +1,80 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using TableConfig;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Snxxz.UI
+{
+ public class TreasureNewGotBehaviour : MonoBehaviour
+ {
+ [SerializeField] RectTransform m_ContainerFunc;
+ [SerializeField] RectTransform m_ContainerSkill;
+ [SerializeField] RectTransform m_ContaienrTreasure;
+ [SerializeField] Image m_FuncIcon;
+ [SerializeField] Image m_SkillIcon;
+ [SerializeField] Image m_TreasureIcon;
+ [SerializeField] Text m_Func;
+ [SerializeField] Text m_FuncName;
+
+ [SerializeField] UIAlphaTween alphaTween;
+
+ TreasureModel model { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
+ public void Display(int id,int stage)
+ {
+ Treasure treasure;
+ alphaTween.SetStartState();
+ m_ContainerFunc.gameObject.SetActive(false);
+ m_ContainerSkill.gameObject.SetActive(false);
+ m_ContaienrTreasure.gameObject.SetActive(false);
+ if (model.TryGetTreasure(id, out treasure))
+ {
+ var treasureStage = treasure.treasureStages.Find((x) =>
+ {
+ return x.stage == stage;
+ });
+ switch (treasureStage.unlockType)
+ {
+ case TreasureStageUnlock.Skill:
+ m_ContainerSkill.gameObject.SetActive(true);
+ var job = PlayerDatas.Instance.baseData.Job;
+ var skillConfig = ConfigManager.Instance.GetTemplate<SkillConfig>(treasureStage.GetSkill(job));
+ if (skillConfig != null)
+ {
+ m_SkillIcon.SetSprite(skillConfig.IconName);
+ m_Func.text = Language.Get("TreasureUnlockNewSkill");
+ m_FuncName.text = skillConfig.SkillName;
+ }
+ break;
+ case TreasureStageUnlock.Func:
+ m_ContainerFunc.gameObject.SetActive(true);
+ var funcConfig = ConfigManager.Instance.GetTemplate<FuncOpenLVConfig>(treasureStage.func);
+ if (funcConfig != null)
+ {
+ m_FuncIcon.SetSprite(funcConfig.Icon);
+ m_Func.text = Language.Get("TreasureUnlockNewFunc");
+ m_FuncName.text = funcConfig.Remark;
+ }
+ break;
+ case TreasureStageUnlock.Treasure:
+ m_ContaienrTreasure.gameObject.SetActive(true);
+ var treasureConfig = ConfigManager.Instance.GetTemplate<TreasureConfig>(treasureStage.treasure);
+ if (treasureConfig != null)
+ {
+ m_TreasureIcon.SetSprite(treasureConfig.Icon);
+ m_Func.text = Language.Get("TreasureUnlockNewTreasure");
+ m_FuncName.text = treasureConfig.Name;
+ }
+ break;
+ }
+ }
+ }
+
+ public void Show()
+ {
+ gameObject.SetActive(true);
+ alphaTween.Play();
+ }
+ }
+}
+
diff --git a/System/Treasure/FairyTreasureCollectPanelPattern1.cs.meta b/System/Treasure/TreasureNewGotBehaviour.cs.meta
similarity index 75%
rename from System/Treasure/FairyTreasureCollectPanelPattern1.cs.meta
rename to System/Treasure/TreasureNewGotBehaviour.cs.meta
index 735eb11..a69ea67 100644
--- a/System/Treasure/FairyTreasureCollectPanelPattern1.cs.meta
+++ b/System/Treasure/TreasureNewGotBehaviour.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
-guid: f4d29363b41f2a740834a1aabf805009
-timeCreated: 1521102270
+guid: e242f7bb709856c4f9c2e9d8d3f705cc
+timeCreated: 1534498126
licenseType: Pro
MonoImporter:
serializedVersion: 2
diff --git a/System/Treasure/TreasureNewGotWin.cs b/System/Treasure/TreasureNewGotWin.cs
index 997b9e1..08f11b3 100644
--- a/System/Treasure/TreasureNewGotWin.cs
+++ b/System/Treasure/TreasureNewGotWin.cs
@@ -39,22 +39,7 @@
[SerializeField] RectTransform m_ContainerFuncUnLock;
[SerializeField] Slider m_FuncUnLockSlider;
[SerializeField] Text m_UnlockTip;
- [SerializeField] RectTransform m_ContainerFunc;
- [SerializeField] UIAlphaTween m_FadeInFunc;
- [SerializeField] Image m_FuncIcon;
- [SerializeField] Text m_FuncName;
-
- [SerializeField] RectTransform m_ContainerSkill;
- [SerializeField] UIAlphaTween m_FadeInSkill;
- [SerializeField] Image m_SkillIcon;
- [SerializeField] Text m_SKillName;
- [SerializeField] Text m_SkillDescription;
-
- [SerializeField] RectTransform m_ContainerSpecial;
- [SerializeField] UIAlphaTween m_FadeInSpecial;
- [SerializeField] Image m_SpecialIcon;
- [SerializeField] Text m_SpecialName;
- [SerializeField] Text m_SpecialDescription;
+ [SerializeField] TreasureNewGotBehaviour[] m_TreasureNewGots;
[SerializeField] RectTransform m_ContianerStory;
[SerializeField] UIAlphaTween m_FadeInStory;
@@ -73,6 +58,8 @@
Treasure treasure;
TreasureStage treasureStage;
+ int displayStageCount = 0;
+ float stageTime = 0.7f;
public static event Action CloseTreasureNewGotWinEvent;
ShowStep m_ShowStep = ShowStep.None;
@@ -99,20 +86,14 @@
case ShowStep.ShowNameAndSliderUnlock:
OnEnterShowNameAndSliderUnlock();
break;
- case ShowStep.ShowFunc:
+ case ShowStep.ShowUnlock:
OnEnterShowFuncUnlock();
- break;
- case ShowStep.ShowSkill:
- OnEnterShowSkill();
- break;
- case ShowStep.ShowSpecialEffect:
- OnEnterShowSpecialEffect();
break;
case ShowStep.ShowStory:
OnEnterShowStory();
break;
- case ShowStep.ShowUnlock:
- OnEnterShowUnlock();
+ case ShowStep.ShowComplete:
+ OnEnterShowComplete();
break;
case ShowStep.FadeOut:
OnEnterFadeOut();
@@ -126,7 +107,6 @@
}
}
- float beforeSliderTime = 0;
#region Built-in
protected override void BindController()
{
@@ -147,14 +127,16 @@
m_ContainerMask.gameObject.SetActive(false);
m_ContainerDescription.gameObject.SetActive(false);
m_ContainerTreasureName.gameObject.SetActive(false);
- m_ContainerSkill.gameObject.SetActive(false);
m_ContianerStory.gameObject.SetActive(false);
m_ContainerFuncUnLock.gameObject.SetActive(false);
- m_ContainerFunc.gameObject.SetActive(false);
- m_ContainerSpecial.gameObject.SetActive(false);
m_UnlockTip.gameObject.SetActive(false);
m_ContainerFinishShow.gameObject.SetActive(false);
m_ContainerFightPower.gameObject.SetActive(false);
+
+ for (int i = 0; i < m_TreasureNewGots.Length; i++)
+ {
+ m_TreasureNewGots[i].gameObject.SetActive(false);
+ }
model.TryGetTreasure(model.newGotTreasureId, out treasure);
treasureStage = treasure.treasureStages.Find((x) =>
@@ -250,54 +232,35 @@
}
break;
case ShowStep.ShowNameAndSliderUnlock:
- m_FuncUnLockSlider.value = timer / 2.8f;
+ m_FuncUnLockSlider.value = 0;
if (timer > 0.7f)
{
- beforeSliderTime += 0.7f;
- timer = 0f;
- showStep = ShowStep.ShowFunc;
- }
- break;
- case ShowStep.ShowFunc:
- m_FuncUnLockSlider.value = (timer + beforeSliderTime) / 2.8f;
- if (timer > 0.7f)
- {
- beforeSliderTime += 0.7f;
- timer = 0f;
- showStep = ShowStep.ShowSkill;
- }
- break;
- case ShowStep.ShowSkill:
- m_FuncUnLockSlider.value = (timer + beforeSliderTime) / 2.8f;
- if (timer > 0.7f)
- {
- beforeSliderTime += 0.7f;
- timer = 0f;
- showStep = ShowStep.ShowSpecialEffect;
- }
- break;
- case ShowStep.ShowSpecialEffect:
- m_FuncUnLockSlider.value = (timer + beforeSliderTime) / 2.8f;
- if (timer > 0.7f)
- {
- beforeSliderTime += 0.7f;
- timer = 0f;
- showStep = ShowStep.ShowUnlock;
- }
- break;
- case ShowStep.ShowStory:
- if (timer > 0.7f)
- {
- beforeSliderTime = 3f;
timer = 0f;
showStep = ShowStep.ShowUnlock;
}
break;
case ShowStep.ShowUnlock:
- if (timer + beforeSliderTime <= 2.8f)
+ m_FuncUnLockSlider.value = timer / (3 * stageTime);
+ if (timer > 3 * stageTime)
{
- m_FuncUnLockSlider.value = (timer + beforeSliderTime) / 2.8f;
+ timer = 0f;
+ showStep = ShowStep.ShowComplete;
}
+ var index = (int)(timer / stageTime);
+ if (index < displayStageCount && index < m_TreasureNewGots.Length
+ && !m_TreasureNewGots[index].gameObject.activeSelf)
+ {
+ m_TreasureNewGots[index].Show();
+ }
+ break;
+ case ShowStep.ShowStory:
+ if (timer > 0.7f)
+ {
+ timer = 0f;
+ showStep = ShowStep.ShowComplete;
+ }
+ break;
+ case ShowStep.ShowComplete:
if (timer > 10f)
{
timer = 0f;
@@ -321,7 +284,6 @@
{
showStep = ShowStep.ShowModel;
timer = 0f;
- beforeSliderTime = 0;
var config = ConfigManager.Instance.GetTemplate<TreasureConfig>(treasure.id);
m_TreasureName.text = config.Name;
@@ -342,34 +304,27 @@
var _flyObjectPoint = m_FlyObjectPoint2;
- if (treasure.unLockSkill > 0)
+ var index = 0;
+ displayStageCount = 0;
+ for (int i = 0; i < m_TreasureNewGots.Length; i++)
{
- var skillConfig = ConfigManager.Instance.GetTemplate<SkillConfig>(treasure.unLockSkill);
- m_SkillIcon.SetSprite(skillConfig.IconName);
- m_SKillName.text = skillConfig.SkillName;
- m_SkillDescription.text = skillConfig.Description;
- m_ContainerSkill.gameObject.SetActive(true);
- m_FadeInSkill.SetStartState();
- }
-
- if (treasure.unLockFunc > 0)
- {
- var funcConfig = ConfigManager.Instance.GetTemplate<FuncOpenLVConfig>(treasure.unLockFunc);
- m_FuncIcon.SetSprite(funcConfig.Icon);
- m_FuncName.text = funcConfig.Remark;
- m_ContainerFunc.gameObject.SetActive(true);
- m_FadeInFunc.SetStartState();
- _flyObjectPoint = m_FlyObjectPoint3;
- }
-
- if (treasure.unLockPrivilege > 0)
- {
- var privilegeConfig = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>(treasure.unLockPrivilege);
- m_SpecialIcon.SetSprite(privilegeConfig.Icon);
- m_SpecialName.text = privilegeConfig.Name;
- m_SpecialDescription.text = privilegeConfig.Description;
- m_ContainerSpecial.gameObject.SetActive(true);
- m_FadeInSpecial.SetStartState();
+ TreasureStage _stage = null;
+ for (int k = index; k < treasure.treasureStages.Count; k++)
+ {
+ index++;
+ if (treasure.treasureStages[k].unlockType == TreasureStageUnlock.Func ||
+ treasure.treasureStages[k].unlockType == TreasureStageUnlock.Skill ||
+ treasure.treasureStages[k].unlockType == TreasureStageUnlock.Treasure)
+ {
+ _stage = treasure.treasureStages[k];
+ displayStageCount++;
+ break;
+ }
+ }
+ if (_stage != null)
+ {
+ m_TreasureNewGots[i].Display(treasure.id, _stage.stage);
+ }
}
if (treasureStage != null && (TreasureCategory)config.Category != TreasureCategory.Fairy
@@ -407,15 +362,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;
}
@@ -423,7 +378,7 @@
private void FinishShow()
{
- if (showStep == ShowStep.ShowUnlock)
+ if (showStep == ShowStep.ShowComplete)
{
timer = 0f;
showStep = ShowStep.FadeOut;
@@ -482,28 +437,9 @@
showStep = ShowStep.ShowStory;
return;
}
- if (treasure.unLockFunc > 0)
+ if (displayStageCount == 0)
{
- m_FadeInFunc.SetStartState();
- m_FadeInFunc.Play();
- }
- else
- {
- showStep = ShowStep.ShowSkill;
- }
- }
-
- private void OnEnterShowSkill()
- {
- if (treasure.unLockSkill > 0)
- {
- m_ContainerSkill.gameObject.SetActive(true);
- m_FadeInSkill.SetStartState();
- m_FadeInSkill.Play();
- }
- else
- {
- showStep = ShowStep.ShowSpecialEffect;
+ showStep = ShowStep.ShowComplete;
}
}
@@ -516,22 +452,6 @@
m_UnlockTip.gameObject.SetActive(true);
}
- private void OnEnterShowSpecialEffect()
- {
- m_ContainerSkill.gameObject.SetActive(treasure.unLockSkill > 0);
-
- if (treasure.unLockPrivilege > 0)
- {
- m_ContainerSpecial.gameObject.SetActive(true);
- m_FadeInSpecial.SetStartState();
- m_FadeInSpecial.Play();
- }
- else
- {
- showStep = ShowStep.ShowUnlock;
- }
- }
-
private void OnEnterShowStory()
{
m_ContianerStory.gameObject.SetActive(true);
@@ -539,7 +459,7 @@
m_FadeInStory.Play();
}
- private void OnEnterShowUnlock()
+ private void OnEnterShowComplete()
{
m_ContainerFinishShow.gameObject.SetActive(true);
}
@@ -566,11 +486,9 @@
ShowModel,
SliderName,
ShowNameAndSliderUnlock,
- ShowFunc,
- ShowSkill,
- ShowSpecialEffect,
- ShowStory,
ShowUnlock,
+ ShowStory,
+ ShowComplete,
FadeOut,
FlyTo,
}
diff --git a/System/Treasure/TreasureNewStageWin.cs b/System/Treasure/TreasureNewStageWin.cs
index 1e3ee19..71e7ae4 100644
--- a/System/Treasure/TreasureNewStageWin.cs
+++ b/System/Treasure/TreasureNewStageWin.cs
@@ -19,13 +19,9 @@
[SerializeField] PropertyCompareBehaviour m_Property;
[SerializeField] Button m_PropertyConfirmBtn;
- [SerializeField] RectTransform m_ContainerPrivilege;
- [SerializeField] Text m_PrivilegeName;
- [SerializeField] Text m_Description;
- [SerializeField] RectTransform m_ContainerProgress;
- [SerializeField] Text m_Progress1;
- [SerializeField] Text m_Progress2;
- [SerializeField] Button m_PrivilegeConfirmBtn;
+ [SerializeField] RectTransform m_ContainerItem;
+ [SerializeField] ItemCell m_Item;
+ [SerializeField] Button m_ItemConfirm;
Treasure treasure;
@@ -45,7 +41,7 @@
protected override void AddListeners()
{
m_PropertyConfirmBtn.onClick.AddListener(CloseClick);
- m_PrivilegeConfirmBtn.onClick.AddListener(CloseClick);
+ m_ItemConfirm.onClick.AddListener(CloseClick);
}
protected override void OnPreOpen()
@@ -69,7 +65,7 @@
private void Display()
{
m_ContainerProperty.gameObject.SetActive(false);
- m_ContainerPrivilege.gameObject.SetActive(false);
+ m_ContainerItem.gameObject.SetActive(false);
model.TryGetTreasure(model.selectedTreasure, out treasure);
if (treasure == null)
{
@@ -81,8 +77,8 @@
case TreasureStageUnlock.Property:
DisplayProperty(stage);
break;
- case TreasureStageUnlock.Privilege:
- DisplayPrivilege(stage);
+ case TreasureStageUnlock.Item:
+ DisplayItem(stage);
break;
}
}
@@ -95,38 +91,12 @@
m_Property.Display(_keyValue.Key, _beforeValue, UIHelper.GetPropertyMapPlayerData((AttrEnum)_keyValue.Key));
}
- private void DisplayPrivilege(TreasureStage _stage)
+ private void DisplayItem(TreasureStage _stage)
{
- m_ContainerPrivilege.gameObject.SetActive(true);
- 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;
- }
+ m_ContainerItem.gameObject.SetActive(true);
+ ItemCellModel itemCell = new ItemCellModel(_stage.item.id, true, (ulong)_stage.item.count, _stage.item.bind ? 1 : 0);
+ m_Item.Init(itemCell);
}
-
}
}
diff --git a/System/Treasure/TreasureSoulAchievementCell.cs b/System/Treasure/TreasureSoulAchievementCell.cs
new file mode 100644
index 0000000..031fb9f
--- /dev/null
+++ b/System/Treasure/TreasureSoulAchievementCell.cs
@@ -0,0 +1,68 @@
+锘縰sing System;
+using System.Collections;
+using System.Collections.Generic;
+using TableConfig;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Snxxz.UI
+{
+ public class TreasureSoulAchievementCell : CellView
+ {
+ [SerializeField] Text m_Description;
+ [SerializeField] Text m_Progress;
+ [SerializeField] Image m_Complete;
+
+ AchievementModel model { get { return ModelCenter.Instance.GetModel<AchievementModel>(); } }
+
+ int achievementId = 0;
+
+ private void OnEnable()
+ {
+ model.achievementProgressUpdateEvent += AchievementProgressUpdateEvent;
+ model.achievementCompletedEvent += AchievementCompletedEvent;
+ }
+
+ private void OnDisable()
+ {
+ model.achievementProgressUpdateEvent -= AchievementProgressUpdateEvent;
+ model.achievementCompletedEvent -= AchievementCompletedEvent;
+ }
+
+ private void AchievementProgressUpdateEvent(int _id)
+ {
+ if (_id == achievementId)
+ {
+ Display(achievementId);
+ }
+ }
+
+ private void AchievementCompletedEvent(int _id)
+ {
+ if (_id == achievementId)
+ {
+ Display(achievementId);
+ }
+ }
+
+ public void Display(int _achievementId)
+ {
+ achievementId = _achievementId;
+ Achievement achievement;
+ var config = ConfigManager.Instance.GetTemplate<SuccessConfig>(_achievementId);
+ if (config != null)
+ {
+ m_Description.text = config.Describe;
+ }
+ m_Complete.gameObject.SetActive(false);
+ if (model.TryGetAchievement(_achievementId, out achievement))
+ {
+ var progress = achievement.completed ? config.NeedCnt : Mathf.Clamp(achievement.progress, 0, config.NeedCnt);
+ m_Progress.text = StringUtility.Contact("(", UIHelper.GetTextColorByItemColor(progress >= config.NeedCnt ? TextColType.Green : TextColType.Red, progress.ToString(), true)
+ , "/", config.NeedCnt, ")");
+ m_Complete.gameObject.SetActive(achievement.completed);
+ }
+ }
+ }
+}
+
diff --git a/System/Treasure/FairyTreasureCollectPanelPattern1.cs.meta b/System/Treasure/TreasureSoulAchievementCell.cs.meta
similarity index 75%
copy from System/Treasure/FairyTreasureCollectPanelPattern1.cs.meta
copy to System/Treasure/TreasureSoulAchievementCell.cs.meta
index 735eb11..fed67dc 100644
--- a/System/Treasure/FairyTreasureCollectPanelPattern1.cs.meta
+++ b/System/Treasure/TreasureSoulAchievementCell.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
-guid: f4d29363b41f2a740834a1aabf805009
-timeCreated: 1521102270
+guid: 5563e9b8650a93448a20b3fa6e58df56
+timeCreated: 1534570886
licenseType: Pro
MonoImporter:
serializedVersion: 2
diff --git a/System/Treasure/TreasureSoulBehaviour.cs b/System/Treasure/TreasureSoulBehaviour.cs
index cca74c2..54672d5 100644
--- a/System/Treasure/TreasureSoulBehaviour.cs
+++ b/System/Treasure/TreasureSoulBehaviour.cs
@@ -16,17 +16,19 @@
[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>();
}
}
+
+ AchievementModel achievementModel { get { return ModelCenter.Instance.GetModel<AchievementModel>(); } }
private void Awake()
{
@@ -36,77 +38,102 @@
private void OnEnable()
{
model.treasureSelectSoulChangeEvent += TreasureSelectSoulChangeEvent;
- PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent;
+ model.treasureSoulEvent += TreasureSoulEvent;
+ achievementModel.achievementCompletedEvent += AchievementCompletedEvent;
}
private void OnDisable()
{
model.treasureSelectSoulChangeEvent -= TreasureSelectSoulChangeEvent;
- PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= PlayerDataRefreshInfoEvent;
+ model.treasureSoulEvent -= TreasureSoulEvent;
+ achievementModel.achievementCompletedEvent -= AchievementCompletedEvent;
+ }
+
+ private void AchievementCompletedEvent(int _id)
+ {
+ int achievementId = 0;
+ if (model.TryGetRealmAchievement(treasureSoulId, out achievementId))
+ {
+ if (achievementId == _id)
+ {
+ DisplayState();
+ }
+ }
}
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)
+ if (special.active)
{
- m_SoulState.text = Language.Get("TreasurePrivilege_Unlock", stage.limitLevel);
- }
- else if (treasure.IsMaxStage())
- {
+ m_Lock.gameObject.SetActive(false);
m_SoulState.text = Language.Get("TreasureSoul_Awoke");
}
else
{
- m_SoulState.text = Language.Get("TreasureSoul_Awaking");
+ int achievementId = 0;
+ bool unlock = true;
+ if (model.TryGetRealmAchievement(treasureSoulId, out achievementId))
+ {
+ Achievement achievement;
+ if (achievementModel.TryGetAchievement(achievementId, out achievement))
+ {
+ unlock = achievement.completed;
+ }
+ }
+ m_Lock.gameObject.SetActive(!unlock);
+ if (unlock)
+ {
+ m_SoulState.text = Language.Get("TreasureSoul_Awaking");
+ }
+ else
+ {
+ var successConfig = ConfigManager.Instance.GetTemplate<SuccessConfig>(achievementId);
+ var realmConfig = ConfigManager.Instance.GetTemplate<RealmConfig>(successConfig.Condition[0]);
+ m_SoulState.text = string.Format("澧冪晫<Img img={0}/>瑙i攣", realmConfig.Img);
+ }
}
- }
- }
-
- private void PlayerDataRefreshInfoEvent(PlayerDataRefresh refreshType)
- {
- if (refreshType == PlayerDataRefresh.LV)
- {
- DisplayState();
}
}
private void TreasureSelectSoulChangeEvent(int _id)
{
- if (treasure != null)
+ if (special != null)
{
- m_SelectImg.SetSprite(model.selectSoul == treasureId ? "ListBtn_Select" : "ListBtn_UnSelect");
+ m_SelectImg.SetSprite(model.selectSoul == treasureSoulId ? "ListBtn_Select" : "ListBtn_UnSelect");
+ }
+ }
+
+ private void TreasureSoulEvent(int _id)
+ {
+ if (_id == treasureSoulId)
+ {
+ DisplayState();
}
}
private void OnSelect()
{
- if(model.TryGetTreasure(treasureId,out treasure))
- {
- model.selectSoul = treasureId;
- }
+ model.selectSoul = treasureSoulId;
}
}
}
diff --git a/System/Treasure/TreasureSoulModel.cs b/System/Treasure/TreasureSoulModel.cs
new file mode 100644
index 0000000..15e6b47
--- /dev/null
+++ b/System/Treasure/TreasureSoulModel.cs
@@ -0,0 +1,655 @@
+锘縰sing 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 Dictionary<int, int> signAddProperty = new Dictionary<int, int>();
+ public int signAddTreasure { get; private set; }
+
+ 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));
+ soulAchievements.Add(configs[i].PrivilegeID, new List<int>(configs[i].successList));
+ }
+ var funcConfig = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("MWSignDayAttr");
+ var jsonData = LitJson.JsonMapper.ToObject(funcConfig.Numerical1);
+ signAddTreasure = int.Parse(funcConfig.Numerical2);
+ foreach (var _key in jsonData.Keys)
+ {
+ signAddProperty.Add(int.Parse(_key), int.Parse(jsonData[_key].ToString()));
+ }
+ }
+
+ public List<int> GetTreasureSouls()
+ {
+ return treasureSouls;
+ }
+
+ public bool TryGetRealmAchievement(int _id,out int achievementId)
+ {
+ achievementId = 0;
+ List<int> list;
+ if (soulAchievements.TryGetValue(_id, out list))
+ {
+ for (int i = 0; i < list.Count; i++)
+ {
+ var config = ConfigManager.Instance.GetTemplate<SuccessConfig>(list[i]);
+ if (config != null && config.Type == 50)
+ {
+ achievementId = list[i];
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public bool TryGetAchievements(int _id,out List<int> list)
+ {
+ return soulAchievements.TryGetValue(_id, out list);
+ }
+
+ public bool IsCompleteRealmAchievement(int _id)
+ {
+ TreasureSpecialData special;
+ if (TryGetTreasureSoul(_id, out special))
+ {
+ if (special.active)
+ {
+ return true;
+ }
+ int achievementId;
+ if (TryGetRealmAchievement(_id, out achievementId))
+ {
+ Achievement achievement;
+ return achievementModel.TryGetAchievement(achievementId, out achievement) && achievement.completed;
+ }
+ }
+ return true;
+ }
+
+ public bool IsCompleteAllAchievement(int _id)
+ {
+ if (soulAchievements.ContainsKey(_id))
+ {
+ 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;
+ }
+ }
+ return allCompleted;
+ }
+ return false;
+ }
+
+ public bool TryGetTreasureSoul(int _id, out TreasureSpecialData special)
+ {
+ return treasureSoulDict.TryGetValue(_id, out special);
+ }
+
+ public void ActiveTreasureSoul(int _id)
+ {
+ if (IsCompleteAllAchievement(_id))
+ {
+ CA512_tagCMActiveMWSoul pak = new CA512_tagCMActiveMWSoul();
+ pak.ID = (byte)_id;
+ GameNetSystem.Instance.SendInfo(pak);
+ }
+ }
+
+ 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];
+ TreasureSpecialData special;
+ if (!treasureSoulDict.TryGetValue((int)_data.PriID, out special))
+ {
+ continue;
+ }
+ special.active = _data.State == 1;
+ if ((TreasurePrivilege)_data.PriID == TreasurePrivilege.StrengthenAdd)
+ {
+ if (treasureSoulEvent != null)
+ {
+ treasureSoulEvent((int)_data.PriID);
+ }
+ continue;
+ }
+ special.presentFinishCount = (int)_data.GotValue;
+ special.presentGetCount = (int)_data.CurValue;
+ special.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.Sp:
+ 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.Sp:
+ 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.Sp:
+ 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.Sp:
+ 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.Sp:
+ 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,
+ Sp = 7,
+ Wing = 8,
+ Suit = 9,
+ Wash = 10,
+ Sign = 11,
+ }
+}
+
diff --git a/System/Treasure/FairyTreasureCollectPanelPattern1.cs.meta b/System/Treasure/TreasureSoulModel.cs.meta
similarity index 75%
copy from System/Treasure/FairyTreasureCollectPanelPattern1.cs.meta
copy to System/Treasure/TreasureSoulModel.cs.meta
index 735eb11..99a29bb 100644
--- a/System/Treasure/FairyTreasureCollectPanelPattern1.cs.meta
+++ b/System/Treasure/TreasureSoulModel.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
-guid: f4d29363b41f2a740834a1aabf805009
-timeCreated: 1521102270
+guid: 546ae13b091e8c845b2c8d0e1a458b39
+timeCreated: 1534406321
licenseType: Pro
MonoImporter:
serializedVersion: 2
diff --git a/System/Treasure/TreasureSoulPattern.cs b/System/Treasure/TreasureSoulPattern.cs
index ee73713..57e64e1 100644
--- a/System/Treasure/TreasureSoulPattern.cs
+++ b/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;
}
}
}
diff --git a/System/Treasure/TreasureSoulPattern1.cs b/System/Treasure/TreasureSoulPattern1.cs
index a072566..dd775bfe 100644
--- a/System/Treasure/TreasureSoulPattern1.cs
+++ b/System/Treasure/TreasureSoulPattern1.cs
@@ -25,18 +25,17 @@
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);
break;
- case TreasurePrivilege.Boss:
+ case TreasurePrivilege.Sp:
WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.FindPreciousFrameFunc1);
break;
case TreasurePrivilege.MountAtk:
@@ -46,19 +45,18 @@
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");
break;
- case TreasurePrivilege.Boss:
+ case TreasurePrivilege.Sp:
m_ProgressTitle.text = Language.Get("TreasurePrivilege_FairyBoss");
break;
case TreasurePrivilege.MountAtk:
@@ -73,25 +71,24 @@
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:
+ case TreasurePrivilege.Sp:
case TreasurePrivilege.MountAtk:
case TreasurePrivilege.PetHp:
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();
}
diff --git a/System/Treasure/TreasureSoulPattern2.cs b/System/Treasure/TreasureSoulPattern2.cs
index 8d2b37d..030e3e6 100644
--- a/System/Treasure/TreasureSoulPattern2.cs
+++ b/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();
}
}
}
diff --git a/System/Treasure/TreasureSoulPattern3.cs b/System/Treasure/TreasureSoulPattern3.cs
index d235ed8..702b509 100644
--- a/System/Treasure/TreasureSoulPattern3.cs
+++ b/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();
}
}
}
diff --git a/System/Treasure/TreasureSoulPattern4.cs b/System/Treasure/TreasureSoulPattern4.cs
index 22c766a..ea38793 100644
--- a/System/Treasure/TreasureSoulPattern4.cs
+++ b/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);
diff --git a/System/Treasure/TreasureSoulWin.cs b/System/Treasure/TreasureSoulWin.cs
index 8da282b..f846dc0 100644
--- a/System/Treasure/TreasureSoulWin.cs
+++ b/System/Treasure/TreasureSoulWin.cs
@@ -19,27 +19,31 @@
[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] Text m_ActiveText;
+ [SerializeField] Button m_GotoRealm;
[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
+ [SerializeField] RectTransform m_ContainerPreview;
+ [SerializeField] Text m_PreviewTitle;
+ [SerializeField] List<PropertyBehaviour> m_PreviewPropretys;
+
+ [SerializeField] RectTransform m_ContainerCondition;
+ [SerializeField] ScrollerController m_ConditonControl;
+
+ 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>(); } }
@@ -53,8 +57,12 @@
}
}
+ AchievementModel achievementModel
+ {
+ get { return ModelCenter.Instance.GetModel<AchievementModel>(); }
+ }
- bool m_CorrectClose = true;
+
int m_SelectSoul = 0;
List<int> sortSouls = new List<int>();
@@ -66,16 +74,19 @@
protected override void AddListeners()
{
- m_GotoGetBtn.onClick.AddListener(OnGotoGet);
+ m_Active.onClick.AddListener(Active);
+ m_GotoRealm.onClick.AddListener(GotoRealm);
m_CloseBtn.onClick.AddListener(CloseClick);
m_ScollerControl.OnRefreshCell += OnRefreshCell;
+ m_ConditonControl.OnRefreshCell += OnRefreshConditionCell;
}
protected override void OnPreOpen()
{
- m_CorrectClose = true;
model.treasureSelectSoulChangeEvent += TreasureSelectSoulChangeEvent;
PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent;
+ model.treasureSoulEvent += TreasureSoulEvent;
+ achievementModel.achievementCompletedEvent += AchievementCompletedEvent;
m_TreasureSoulBtn.state = TitleBtnState.Click;
Display();
DisplaySelect();
@@ -97,6 +108,8 @@
{
model.treasureSelectSoulChangeEvent -= TreasureSelectSoulChangeEvent;
PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= PlayerDataRefreshInfoEvent;
+ model.treasureSoulEvent -= TreasureSoulEvent;
+ achievementModel.achievementCompletedEvent -= AchievementCompletedEvent;
for (int i = 0; i < m_TreasureSouls.Count; i++)
{
m_TreasureSouls[i].Dispose();
@@ -106,19 +119,31 @@
protected override void OnAfterClose()
{
- if (m_CorrectClose)
- {
- WindowCenter.Instance.Open<MainInterfaceWin>();
- }
+ WindowCenter.Instance.Open<MainInterfaceWin>();
}
#endregion
+
+ private void AchievementCompletedEvent(int _id)
+ {
+ List<int> list;
+ if (model.TryGetAchievements(model.selectSoul, out list) && list.Contains(_id))
+ {
+ DisplaySelect();
+ }
+ }
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 +171,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 +200,81 @@
DisplaySelect();
}
- private void OnGotoGet()
+ private void TreasureSoulEvent(int _id)
{
- m_CorrectClose = false;
- CloseImmediately();
- model.currentCategory = TreasureCategory.Human;
- model.selectedTreasure = model.selectSoul;
- model.openFromTreasureSoul = true;
- WindowCenter.Instance.Open<TreasureLevelUpWin>();
+ if (_id == model.selectSoul)
+ {
+ TreasureSpecialData special;
+ if (model.TryGetTreasureSoul(_id, out special))
+ {
+ m_SelectSoulImg.material = special.active ? MaterialUtility.GetUIDefaultGraphicMaterial() : MaterialUtility.GetDefaultSpriteGrayMaterial();
+ }
+ }
+ }
+
+ private void Active()
+ {
+ model.ActiveTreasureSoul(model.selectSoul);
+ }
+
+ private void GotoRealm()
+ {
+ WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.RealmFunc1);
}
private void DisplaySelect()
{
- Treasure treasure;
- model.TryGetTreasure(model.selectSoul, out treasure);
- if (treasure != null)
+ TreasureSpecialData special;
+ model.TryGetTreasureSoul(model.selectSoul, out special);
+ m_ContainerCondition.gameObject.SetActive(false);
+ 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);
+ DisplayPrivilege(special);
m_SelectSoulImg.SetSprite(config.Icon);
- m_SelectSoulImg.material = treasure.IsMaxStage() ? MaterialUtility.GetUIDefaultGraphicMaterial() : MaterialUtility.GetDefaultSpriteGrayMaterial();
+ m_SelectSoulImg.material = special.active ? MaterialUtility.GetUIDefaultGraphicMaterial() : MaterialUtility.GetDefaultSpriteGrayMaterial();
+
+ if (special.active)
+ {
+ m_Active.gameObject.SetActive(false);
+ m_GotoRealm.gameObject.SetActive(false);
+ }
+ else
+ {
+ if (!model.IsCompleteRealmAchievement(model.selectSoul))
+ {
+ m_Active.gameObject.SetActive(false);
+ m_GotoRealm.gameObject.SetActive(true);
+ }
+ else
+ {
+ m_Active.gameObject.SetActive(true);
+ m_GotoRealm.gameObject.SetActive(false);
+ m_Active.SetInteractable(m_ActiveText, model.IsCompleteAllAchievement(model.selectSoul));
+ m_ContainerCondition.gameObject.SetActive(true);
+ DisplayCondition();
+ }
+ }
+ m_ContainerPreview.gameObject.SetActive(!special.active);
+ if (!special.active)
+ {
+ DisplayPreview(model.selectSoul);
+ }
}
-
- 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:
@@ -247,7 +284,7 @@
case TreasurePrivilege.DemonJarAtk:
case TreasurePrivilege.MountAtk:
case TreasurePrivilege.PetHp:
- case TreasurePrivilege.Boss:
+ case TreasurePrivilege.Sp:
_pattern = 0;
break;
case TreasurePrivilege.StrengthenAdd:
@@ -260,56 +297,53 @@
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)
+ private void DisplayPreview(int _id)
{
m_ContainerPreview.gameObject.SetActive(false);
- if (treasure.IsMaxStage())
- {
- return;
- }
- switch (treasure.specialData.type)
+ TreasureSpecialData special;
+ model.TryGetTreasureSoul(_id, out special);
+ switch (special.type)
{
case TreasurePrivilege.Wing:
case TreasurePrivilege.Suit:
case TreasurePrivilege.Property:
- m_PropertyTitle.text = Language.Get("TreasureSoulAddPropertyTitle");
+ m_PreviewTitle.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");
+ case TreasurePrivilege.Sp:
+ m_PreviewTitle.text = Language.Get("TreasureSoulGetPropertyTitle");
break;
}
- var specialData = treasure.specialData;
- for (int i = 0; i < propertys.Count; i++)
+ for (int i = 0; i < m_PreviewPropretys.Count; i++)
{
- propertys[i].gameObject.SetActive(false);
+ m_PreviewPropretys[i].gameObject.SetActive(false);
}
- switch (specialData.type)
+ switch (special.type)
{
case TreasurePrivilege.Property:
var _index = 0;
m_ContainerPreview.gameObject.SetActive(true);
- foreach (var _key in specialData.propertyDict.Keys)
+ foreach (var _key in special.propertyDict.Keys)
{
- var _value = specialData.propertyDict[_key];
- propertys[_index].gameObject.SetActive(true);
- propertys[_index].DisplayUpper(_key, _value);
+ var _value = special.propertyDict[_key];
+ m_PreviewPropretys[_index].gameObject.SetActive(true);
+ m_PreviewPropretys[_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)
@@ -319,14 +353,14 @@
{
continue;
}
- propertys[_suitIndex].gameObject.SetActive(true);
- propertys[_suitIndex].DisplayUpper(_key, (int)(percentSuit * dict[_key]));
+ m_PreviewPropretys[_suitIndex].gameObject.SetActive(true);
+ m_PreviewPropretys[_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 percentWing = (float)special.propertyDict[86] / 10000;
var itemModel = pack.GetItemModelByIndex(PackType.rptEquip, (int)RoleEquipType.retWing);
m_ContainerPreview.gameObject.SetActive(itemModel != null);
if (itemModel != null)
@@ -340,26 +374,26 @@
value += strengthengmodel.BackpackWings(itemModel.itemId, itemModel.GetUseDataModel(42)[0])[1];
}
}
- propertys[0].gameObject.SetActive(true);
- propertys[0].Display(6, (int)(value * percentWing));
+ m_PreviewPropretys[0].gameObject.SetActive(true);
+ m_PreviewPropretys[0].Display(6, (int)(value * percentWing));
}
break;
case TreasurePrivilege.DemonJarAtk:
case TreasurePrivilege.PetHp:
case TreasurePrivilege.MountAtk:
- case TreasurePrivilege.Boss:
+ case TreasurePrivilege.Sp:
var index = 0;
m_ContainerPreview.gameObject.SetActive(true);
- foreach (var _key in specialData.propertyDict.Keys)
+ foreach (var _key in special.propertyDict.Keys)
{
- var _value = specialData.propertyDict[_key] * (specialData.presentGetCount / specialData.progress);
+ var _value = special.propertyDict[_key] * (special.presentGetCount / special.progress);
if (_value <= 0)
{
m_ContainerPreview.gameObject.SetActive(false);
break;
}
- propertys[index].gameObject.SetActive(true);
- propertys[index].DisplayUpper(_key, _value);
+ m_PreviewPropretys[index].gameObject.SetActive(true);
+ m_PreviewPropretys[index].DisplayUpper(_key, _value);
index++;
}
break;
@@ -388,12 +422,12 @@
if (present >= 0)
{
var config = configs[present];
- for (int i = 0; i < propertys.Count; i++)
+ for (int i = 0; i < m_PreviewPropretys.Count; i++)
{
- propertys[i].gameObject.SetActive(i < config.attType.Length);
+ m_PreviewPropretys[i].gameObject.SetActive(i < config.attType.Length);
if (i < config.attType.Length)
{
- propertys[i].DisplayUpper(config.attType[i], config.attValue[i]);
+ m_PreviewPropretys[i].DisplayUpper(config.attType[i], config.attValue[i]);
}
}
}
@@ -401,31 +435,45 @@
}
}
+ private void DisplayCondition()
+ {
+ m_ContainerCondition.gameObject.SetActive(true);
+ List<int> list;
+ model.TryGetAchievements(model.selectSoul, out list);
+ m_ConditonControl.Refresh();
+ if (list != null)
+ {
+ for (int i = 0; i < list.Count; i++)
+ {
+ var config = ConfigManager.Instance.GetTemplate<SuccessConfig>(list[i]);
+ if (config != null && config.Type == 50)
+ {
+ continue;
+ }
+ m_ConditonControl.AddCell(ScrollerDataType.Header, list[i]);
+ }
+ }
+ m_ConditonControl.Restart();
+ }
+
+ private void OnRefreshConditionCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell as TreasureSoulAchievementCell;
+ _cell.Display(cell.index);
+ }
+
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)
+ bool ContainsProperty(ItemConfig config, int _property, out float value)
{
value = 0;
if (config.Effect1 == _property && config.EffectValueA1 > 0)
diff --git a/System/Treasure/TreasureStageTipWin.cs b/System/Treasure/TreasureStageTipWin.cs
index 3701e79..d8927f4 100644
--- a/System/Treasure/TreasureStageTipWin.cs
+++ b/System/Treasure/TreasureStageTipWin.cs
@@ -26,8 +26,6 @@
[SerializeField] Image m_Icon;
[SerializeField] Text m_StageName;
[SerializeField] Text m_Description;
- [SerializeField] RectTransform m_ContainerSpecial;
- [SerializeField] List<Text> m_TreasurePrivileges;
TreasureModel m_Model;
TreasureModel model
@@ -98,7 +96,6 @@
m_ContainerSkill.gameObject.SetActive(false);
m_ContainerFuncSoul.gameObject.SetActive(false);
- m_ContainerSpecial.gameObject.SetActive(false);
switch (m_TreasureStage.unlockType)
{
@@ -131,44 +128,12 @@
m_Description.text = string.Empty;
}
break;
- case TreasureStageUnlock.Privilege:
+ case TreasureStageUnlock.Treasure:
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:
+ var treasureConfig = ConfigManager.Instance.GetTemplate<TreasureConfig>(m_TreasureStage.treasure);
+ m_Icon.SetSprite(treasureConfig.Icon);
+ m_StageName.text = treasureConfig.Name;
+ m_Description.text = UIHelper.ReplaceNewLine(treasureConfig.Verse.Length > 0 ? treasureConfig.Verse[0] : string.Empty);
break;
}
}
diff --git a/System/Treasure/TreasureUnlockCell.cs b/System/Treasure/TreasureUnlockCell.cs
new file mode 100644
index 0000000..d17bc75
--- /dev/null
+++ b/System/Treasure/TreasureUnlockCell.cs
@@ -0,0 +1,88 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using TableConfig;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace Snxxz.UI
+{
+ public class TreasureUnlockCell : CellView
+ {
+ [SerializeField] Image m_Icon;
+ [SerializeField] Text m_Func;
+ [SerializeField] Image m_Cutline;
+ [SerializeField] Button m_Button;
+
+ TreasureModel model { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
+
+ public void Display(int id, int stage)
+ {
+ m_Button.RemoveAllListeners();
+ Treasure treasure;
+ if (model.TryGetTreasure(id, out treasure))
+ {
+ var treasureStage = treasure.treasureStages.Find((x) =>
+ {
+ return x.stage == stage;
+ });
+ bool last = true;
+ for (int i = 0; i < treasure.treasureStages.Count; i++)
+ {
+ var _stage = treasure.treasureStages[i];
+ if (stage < _stage.stage &&
+ (_stage.unlockType == TreasureStageUnlock.Func || _stage.unlockType == TreasureStageUnlock.Skill
+ || _stage.unlockType == TreasureStageUnlock.Treasure))
+ {
+ last = false;
+ break;
+ }
+ }
+ m_Cutline.gameObject.SetActive(!last);
+ if (treasureStage != null)
+ {
+ switch (treasureStage.unlockType)
+ {
+ case TreasureStageUnlock.Skill:
+ var skillConfig = ConfigManager.Instance.GetTemplate<SkillConfig>(treasureStage.GetSkill(PlayerDatas.Instance.baseData.Job));
+ if (skillConfig != null)
+ {
+ m_Icon.SetSprite(skillConfig.IconName);
+ m_Func.text = Language.Get("TreasureUnlockNewSkill");
+ }
+ break;
+ case TreasureStageUnlock.Func:
+ var funcConfig = ConfigManager.Instance.GetTemplate<FuncOpenLVConfig>(treasureStage.func);
+ if (funcConfig != null)
+ {
+ m_Icon.SetSprite(funcConfig.Icon);
+ m_Func.text = Language.Get("TreasureUnlockNewFunc");
+ }
+ break;
+ case TreasureStageUnlock.Treasure:
+ var treasureConfig = ConfigManager.Instance.GetTemplate<TreasureConfig>(treasureStage.treasure);
+ if (treasureConfig != null)
+ {
+ m_Icon.SetSprite(treasureConfig.Icon);
+ m_Func.text = Language.Get("TreasureUnlockNewTreasure");
+ }
+ break;
+ }
+ m_Button.AddListener(() =>
+ {
+ if (model.treasureStepUpShow)
+ {
+ return;
+ }
+ model.selectedStage = treasureStage.stage;
+ if (!WindowCenter.Instance.CheckOpen<TreasureStageTipWin>())
+ {
+ TreasureStageTipWin.SetTargetPosition(m_Button.transform as RectTransform);
+ WindowCenter.Instance.Open<TreasureStageTipWin>();
+ }
+ });
+ }
+ }
+ }
+ }
+}
+
diff --git a/System/Treasure/FairyTreasureCollectPanelPattern1.cs.meta b/System/Treasure/TreasureUnlockCell.cs.meta
similarity index 75%
copy from System/Treasure/FairyTreasureCollectPanelPattern1.cs.meta
copy to System/Treasure/TreasureUnlockCell.cs.meta
index 735eb11..ddead50 100644
--- a/System/Treasure/FairyTreasureCollectPanelPattern1.cs.meta
+++ b/System/Treasure/TreasureUnlockCell.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
-guid: f4d29363b41f2a740834a1aabf805009
-timeCreated: 1521102270
+guid: 77f99fdc05a9d774ab1f11302d406df8
+timeCreated: 1534492640
licenseType: Pro
MonoImporter:
serializedVersion: 2
diff --git a/System/WindowBase/ModelCenter.cs b/System/WindowBase/ModelCenter.cs
index 4d66982..783ca6b 100644
--- a/System/WindowBase/ModelCenter.cs
+++ b/System/WindowBase/ModelCenter.cs
@@ -188,6 +188,7 @@
RegisterModel<ActivitiesPushMgr>();
RegisterModel<MultipleRealmPointModel>();
RegisterModel<DogzModel>();
+ RegisterModel<TreasureSoulModel>();
inited = true;
}
diff --git a/System/WindowJump/WindowJumpMgr.cs b/System/WindowJump/WindowJumpMgr.cs
index 2f57a9e..a97dedd 100644
--- a/System/WindowJump/WindowJumpMgr.cs
+++ b/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;
--
Gitblit v1.8.0