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/TreasureModel.cs | 237 +++++++++-------------------------------------------------
1 files changed, 39 insertions(+), 198 deletions(-)
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);
- }
}
}
--
Gitblit v1.8.0