From b36979b59d5825972f970d09b28e05ac45629132 Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期二, 14 八月 2018 14:35:12 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
---
System/BlastFurnace/BlastFurnaceModel.cs | 82 +++++++++++++++++++++++++++++++++++------
1 files changed, 70 insertions(+), 12 deletions(-)
diff --git a/System/BlastFurnace/BlastFurnaceModel.cs b/System/BlastFurnace/BlastFurnaceModel.cs
index f175f1c..06aa331 100644
--- a/System/BlastFurnace/BlastFurnaceModel.cs
+++ b/System/BlastFurnace/BlastFurnaceModel.cs
@@ -83,12 +83,14 @@
treasureRefineDict.Clear();
FuncOpen.Instance.OnFuncStateChangeEvent -= RefreshFuncOpenState;
playerPack.RefreshItemCountAct -= RefreshMat;
+ playerPack.RefreshItemSumUseCntAct -= RefreshItemUsce;
}
public void OnAfterPlayerDataInitialize()
{
playerPack.RefreshItemCountAct += RefreshMat;
FuncOpen.Instance.OnFuncStateChangeEvent += RefreshFuncOpenState;
+ playerPack.RefreshItemSumUseCntAct += RefreshItemUsce;
}
private void RefreshFuncOpenState(int funcId)
@@ -370,34 +372,64 @@
/// <summary>
/// 寰楀埌棰勮鍚堟垚涓硅嵂鐨勫垪琛�
/// </summary>
- public List<int> GetPreviewMakeDruglist(AlchemyConfig alchemyModel)
+ public Dictionary<int, int> GetPreviewMakeDruglist(AlchemyConfig alchemyModel)
{
JsonData jsonData = JsonMapper.ToObject(alchemyModel.AlchemPreviewItem);
- List<int> drugIdlist = new List<int>();
+ PreviewItemDict.Clear();
if (jsonData.IsArray)
{
for (int i = 0; i < jsonData.Count; i++)
{
- int itemId = int.Parse(jsonData[i].ToString());
- drugIdlist.Add(itemId);
+ if (jsonData[i].IsArray)
+ {
+ int itemId = int.Parse(jsonData[i][0].ToString());
+ if (jsonData[i].Count > 1)
+ {
+ int effectId = int.Parse(jsonData[i][1].ToString());
+ PreviewItemDict.Add(itemId, effectId);
+ }
+ else
+ {
+ PreviewItemDict.Add(itemId, 0);
+ }
+ }
}
}
- return drugIdlist;
+ return PreviewItemDict;
}
- public List<int> GetPreviewSpecMakeDruglist(AlchemySpecConfig alchemyModel)
+ Dictionary<int, int> PreviewItemDict = new Dictionary<int, int>();
+ public Dictionary<int, int> GetPreviewSpecMakeDruglist(AlchemySpecConfig alchemyModel)
{
JsonData jsonData = JsonMapper.ToObject(alchemyModel.AlchemPreviewItem);
- List<int> drugIdlist = new List<int>();
+ PreviewItemDict.Clear();
if (jsonData.IsArray)
{
for (int i = 0; i < jsonData.Count; i++)
{
- int itemId = int.Parse(jsonData[i].ToString());
- drugIdlist.Add(itemId);
+ if(jsonData[i].IsArray)
+ {
+ int itemId = int.Parse(jsonData[i][0].ToString());
+ if (jsonData[i].Count > 1)
+ {
+ int effectId = int.Parse(jsonData[i][1].ToString());
+ PreviewItemDict.Add(itemId,effectId);
+ }
+ else
+ {
+ PreviewItemDict.Add(itemId,0);
+ }
+ }
}
}
- return drugIdlist;
+ return PreviewItemDict;
+ }
+
+ public int GetEffectIdByItemId(int itemId)
+ {
+ int effectId = 0;
+ PreviewItemDict.TryGetValue(itemId,out effectId);
+ return effectId;
}
/// <summary>
@@ -699,6 +731,14 @@
CheckRecycleStoreRed();
}
+ private void RefreshItemUsce(int id)
+ {
+ if(playerPack.CheckIsDrugById(id))
+ {
+ CheckMakerDandrugCondition();
+ }
+ }
+
public void CheckMakerDandrugCondition()
{
for (int i = alchemyModellist.Count - 1; i > -1; i--)
@@ -726,7 +766,7 @@
{
if(!CheckNormalAlchemyIsReachMaxUse(alchemyModellist[i]))
{
- if (IsNormalMatEnough(alchemyModellist[i]))
+ if (IsNormalMatEnough(alchemyModellist[i]) && !IsHaveReachFull(alchemyModellist[i]))
{
danDrugRedPointlist[i].state = RedPointState.Simple;
return;
@@ -773,11 +813,29 @@
return isEnough;
}
+ public bool IsHaveReachFull(AlchemyConfig alchemyConfig)
+ {
+ if (alchemyConfig == null) return false;
+ List<int> previewlist = GetPreviewMakeDruglist(alchemyConfig).Keys.ToList();
+ for(int i = 0; i < previewlist.Count; i++)
+ {
+ if(playerPack.CheckIsDrugById(previewlist[i]))
+ {
+ AttrFruitConfig fruitConfig = ConfigManager.Instance.GetTemplate<AttrFruitConfig>(previewlist[i]);
+ if(playerPack.IsReachMaxUseDrug(fruitConfig))
+ {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
public bool CheckNormalAlchemyIsReachMaxUse(AlchemyConfig alchemyConfig)
{
if (alchemyConfig == null) return false;
- List<int> previewlist = GetPreviewMakeDruglist(alchemyConfig);
+ List<int> previewlist = GetPreviewMakeDruglist(alchemyConfig).Keys.ToList();
for(int i = 0; i < previewlist.Count; i++)
{
if(playerPack.CheckIsDrugById(previewlist[i]))
--
Gitblit v1.8.0