| | |
| | |
|
| | | public override void Init()
|
| | | {
|
| | | ParseAlchemyConfig();
|
| | | ParseAlchemySpecConfig();
|
| | | GetRefineStoveConditions();
|
| | | _blastFurnaceExpDict = new Dictionary<int, int>();
|
| | | extraMats = null;
|
| | | alchemyModellist = null;
|
| | | _upTreasureRateModel = Config.Instance.Get<FuncConfigConfig>("TreasureUpRateItem");
|
| | | if (_upTreasureRateModel != null)
|
| | | {
|
| | | extraMats = ConfigParse.GetMultipleStr<int>(_upTreasureRateModel.Numerical2);
|
| | |
|
| | |
|
| | | }
|
| | | List<RefineStoveConfig> stovelist = Config.Instance.GetAllValues<RefineStoveConfig>();
|
| | | MaxStoveLv = 0;
|
| | | if (stovelist != null)
|
| | |
| | |
|
| | | MaxStoveLv = stovelist[stovelist.Count - 1].LV;
|
| | | }
|
| | |
|
| | | alchemyModellist = Config.Instance.GetAllValues<AlchemyConfig>();
|
| | | |
| | | FuncConfigConfig alchemyRedPoint = Config.Instance.Get<FuncConfigConfig>("AlchemyRedPoint");
|
| | | int.TryParse(alchemyRedPoint.Numerical1, out makeDrugRedLv);
|
| | | SetDandrugRedPointlist();
|
| | |
| | | addExp = 0;
|
| | | preStoveLv = 1;
|
| | | jumpToPrescripe = 0;
|
| | | treasureRefineDict.Clear();
|
| | | FuncOpen.Instance.OnFuncStateChangeEvent -= RefreshFuncOpenState;
|
| | | playerPack.RefreshItemCountAct -= RefreshMat;
|
| | | playerPack.ItemCntReduceAct -= RefreshDanReduce;
|
| | |
| | | {
|
| | |
|
| | | }
|
| | |
|
| | | public void OnPlayerLoginOk()
|
| | | {
|
| | | CheckMakerDandrugCondition();
|
| | | CheckRecycleStoreRed();
|
| | | CheckMakeDrugRedPoint(true);
|
| | | playerPack.RefreshItemCountAct += RefreshMat;
|
| | | FuncOpen.Instance.OnFuncStateChangeEvent += RefreshFuncOpenState;
|
| | | playerPack.RefreshItemSumUseCntAct += RefreshItemUsce;
|
| | | WindowCenter.Instance.windowAfterCloseEvent += StoveUpgradAfterClose;
|
| | | playerPack.ItemCntReduceAct += RefreshDanReduce;
|
| | | PlayerDatas.Instance.PlayerDataRefreshInfoEvent += RefreshRealm;
|
| | | PlayerPetDatas.Event_H0704Add += AddPetEvent;
|
| | | PlayerMountDatas.Event_MountHA301A += AddMountEvent;
|
| | |
|
| | | }
|
| | |
|
| | | #region 解析本地数据
|
| | | public Dictionary<int, AlchemyData> alchemyDataDict { get; private set; }
|
| | | private void ParseAlchemyConfig()
|
| | | {
|
| | | alchemyDataDict = new Dictionary<int, AlchemyData>();
|
| | | alchemyModellist = Config.Instance.GetAllValues<AlchemyConfig>();
|
| | | for(int i = 0; i < alchemyModellist.Count; i++)
|
| | | {
|
| | | var alchemyConfig = alchemyModellist[i];
|
| | | AlchemyData alchemyData = new AlchemyData();
|
| | | alchemyData.id = alchemyConfig.AlchemyID;
|
| | | alchemyData.alchemyConfig = alchemyConfig;
|
| | | alchemyData.normalMatDic = ConfigParse.GetDic<int, int>(alchemyConfig.MaterialAll);
|
| | | alchemyData.previewDict = GetPreviewDict(alchemyConfig.AlchemPreviewItem);
|
| | | if(!alchemyDataDict.ContainsKey(alchemyConfig.AlchemyID))
|
| | | {
|
| | | alchemyDataDict.Add(alchemyConfig.AlchemyID,alchemyData);
|
| | | }
|
| | | }
|
| | | }
|
| | | public Dictionary<int, AlchemySpecData> alchemySpecDataDict { get; private set; }
|
| | | private void ParseAlchemySpecConfig()
|
| | | {
|
| | | alchemySpecDataDict = new Dictionary<int, AlchemySpecData>();
|
| | | var speclist = Config.Instance.GetAllValues<AlchemySpecConfig>();
|
| | | for (int i = 0; i < speclist.Count; i++)
|
| | | {
|
| | | var specConfig = speclist[i];
|
| | | AlchemySpecData specData = new AlchemySpecData();
|
| | | specData.id = specConfig.ID;
|
| | | specData.specConfig = specConfig;
|
| | | specData.previewDict = GetPreviewDict(specConfig.AlchemPreviewItem);
|
| | | if (!alchemySpecDataDict.ContainsKey(specConfig.ID))
|
| | | {
|
| | | alchemySpecDataDict.Add(specConfig.ID, specData);
|
| | | }
|
| | | }
|
| | | }
|
| | | /// <summary>
|
| | | /// 得到预览合成丹药的列表
|
| | | /// </summary>
|
| | | private Dictionary<int, int> GetPreviewDict(string alchemyPreview)
|
| | | {
|
| | | Dictionary<int, int> keyValues = new Dictionary<int, int>();
|
| | | JsonData jsonData = JsonMapper.ToObject(alchemyPreview);
|
| | | if (jsonData.IsArray)
|
| | | {
|
| | | for (int i = 0; i < jsonData.Count; i++)
|
| | | {
|
| | | 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());
|
| | | keyValues.Add(itemId, effectId);
|
| | | }
|
| | | else
|
| | | {
|
| | | keyValues.Add(itemId, 0);
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | return keyValues;
|
| | | }
|
| | |
|
| | | public AlchemyData GetAlchemyData(int id)
|
| | | {
|
| | | AlchemyData alchemyData = null;
|
| | | alchemyDataDict.TryGetValue(id,out alchemyData);
|
| | | return alchemyData;
|
| | | }
|
| | |
|
| | | public AlchemySpecData GetAlchemySpecData(int id)
|
| | | {
|
| | | AlchemySpecData specData = null;
|
| | | alchemySpecDataDict.TryGetValue(id, out specData);
|
| | | return specData;
|
| | | }
|
| | |
|
| | | public class AlchemyData
|
| | | {
|
| | | public int id;
|
| | | public AlchemyConfig alchemyConfig;
|
| | | public Dictionary<int, int> normalMatDic;
|
| | | public Dictionary<int, int> previewDict;
|
| | | }
|
| | |
|
| | | public class AlchemySpecData
|
| | | {
|
| | | public int id;
|
| | | public AlchemySpecConfig specConfig;
|
| | | public Dictionary<int, int> previewDict;
|
| | | }
|
| | | #endregion
|
| | |
|
| | | private void RefreshFuncOpenState(int funcId)
|
| | | {
|
| | |
| | | private void AddPetEvent()
|
| | | {
|
| | | CheckMakerDandrugCondition();
|
| | | }
|
| | |
|
| | |
|
| | | public void OnPlayerLoginOk()
|
| | | {
|
| | | CheckMakerDandrugCondition();
|
| | | CheckRecycleStoreRed();
|
| | | CheckMakeDrugRedPoint(true);
|
| | | playerPack.RefreshItemCountAct += RefreshMat;
|
| | | FuncOpen.Instance.OnFuncStateChangeEvent += RefreshFuncOpenState;
|
| | | playerPack.RefreshItemSumUseCntAct += RefreshItemUsce;
|
| | | WindowCenter.Instance.windowAfterCloseEvent += StoveUpgradAfterClose;
|
| | | playerPack.ItemCntReduceAct += RefreshDanReduce;
|
| | | PlayerDatas.Instance.PlayerDataRefreshInfoEvent += RefreshRealm;
|
| | | PlayerPetDatas.Event_H0704Add += AddPetEvent;
|
| | | PlayerMountDatas.Event_MountHA301A += AddMountEvent;
|
| | |
|
| | | }
|
| | |
|
| | | public void RefreshAddSpecMat(AlchemySpecConfig alchemySpecModel)
|
| | |
| | | return isReach;
|
| | | }
|
| | |
|
| | | public Dictionary<uint, byte> treasureRefineDict = new Dictionary<uint, byte>(); //key 法宝ID value 等级
|
| | | public event Action RefreshTreasureRefineEvent;
|
| | | public Treasure treasureData { get; private set; }
|
| | | public void RefreshTreasureRefineModel(HA3BE_tagMCMagicWeaponMsg data)
|
| | | {
|
| | | }
|
| | |
|
| | | public int GetAllTreasureRefineLv()
|
| | | {
|
| | | int sumLv = 0;
|
| | | foreach (var value in treasureRefineDict.Values)
|
| | | {
|
| | | sumLv += value;
|
| | | }
|
| | | return sumLv;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 判断法宝是否精炼到满级
|
| | | /// </summary>
|
| | | /// <param name="treasureId"></param>
|
| | | /// <param name="lv"></param>
|
| | | /// <returns></returns>
|
| | | public bool TreasureIsFullLv(int treasureId, int lv)
|
| | | {
|
| | | if (_tagTreasureRefineModeDict == null)
|
| | | return false;
|
| | |
|
| | | if (_tagTreasureRefineModeDict.ContainsKey(treasureId))
|
| | | {
|
| | | if (_tagTreasureRefineModeDict[treasureId][_tagTreasureRefineModeDict[treasureId].Count - 1].TreasureLV <= lv)
|
| | | {
|
| | | return true;
|
| | | }
|
| | | }
|
| | | return false;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 得到炼丹和铸炼的结果
|
| | | /// 得到炼丹
|
| | | /// </summary>
|
| | | public event Action<MakeType, int> RefreshMakeItemAnswerAct;
|
| | | public void GetMakerResult(H0721_tagMakeItemAnswer answer)
|
| | |
| | | if (!WindowCenter.Instance.IsOpen<MakerDrugFailWin>())
|
| | | {
|
| | | WindowCenter.Instance.Open<MakerDrugFailWin>();
|
| | | }
|
| | | }
|
| | | break;
|
| | | case MakeType.Def_mitMWUpLevel:
|
| | | if (answer.Result == 1)
|
| | | {
|
| | | if (!WindowCenter.Instance.IsOpen<TreasureRefineSuccessWin>())
|
| | | {
|
| | | WindowCenter.Instance.Open<TreasureRefineSuccessWin>();
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | if (!WindowCenter.Instance.IsOpen<TreasureRefineFailWin>())
|
| | | {
|
| | | WindowCenter.Instance.Open<TreasureRefineFailWin>();
|
| | | }
|
| | | }
|
| | | break;
|
| | |
| | | {
|
| | | materialIds = null;
|
| | | materialNums = null;
|
| | | _tagAlchemyModel = Config.Instance.Get<AlchemyConfig>(alchemyId);
|
| | | if (_tagAlchemyModel == null)
|
| | | var alchemyData = GetAlchemyData(alchemyId);
|
| | | if (alchemyData == null)
|
| | | return;
|
| | |
|
| | | _alchemyMaterialDict = ConfigParse.GetDic<int, int>(_tagAlchemyModel.MaterialAll);
|
| | | _alchemyMaterialDict = alchemyData.normalMatDic;
|
| | | materialIds = _alchemyMaterialDict.Keys.ToArray();
|
| | | materialNums = _alchemyMaterialDict.Values.ToArray();
|
| | | }
|
| | |
| | | /// </summary>
|
| | | public Dictionary<int, int> GetPreviewMakeDruglist(AlchemyConfig alchemyModel)
|
| | | {
|
| | | JsonData jsonData = JsonMapper.ToObject(alchemyModel.AlchemPreviewItem);
|
| | | PreviewItemDict.Clear();
|
| | | if (jsonData.IsArray)
|
| | | {
|
| | | for (int i = 0; i < jsonData.Count; i++)
|
| | | {
|
| | | 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 PreviewItemDict;
|
| | | if (alchemyModel == null) return null;
|
| | | var alchmeyData = GetAlchemyData(alchemyModel.AlchemyID);
|
| | | if (alchmeyData == null) return null;
|
| | |
|
| | | return alchmeyData.previewDict;
|
| | | }
|
| | |
|
| | | Dictionary<int, int> PreviewItemDict = new Dictionary<int, int>();
|
| | | public Dictionary<int, int> GetPreviewSpecMakeDruglist(AlchemySpecConfig alchemyModel)
|
| | | {
|
| | | JsonData jsonData = JsonMapper.ToObject(alchemyModel.AlchemPreviewItem);
|
| | | PreviewItemDict.Clear();
|
| | | if (jsonData.IsArray)
|
| | | {
|
| | | for (int i = 0; i < jsonData.Count; i++)
|
| | | {
|
| | | 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 PreviewItemDict;
|
| | | if (alchemyModel == null) return null;
|
| | | var specData = GetAlchemySpecData(alchemyModel.ID);
|
| | | if (specData == null) return null;
|
| | |
|
| | | return specData.previewDict;
|
| | | }
|
| | |
|
| | | public int GetEffectIdByItemId(int itemId)
|
| | | public List<int> GetPreviewIdlist(AlchemyConfig alchemyConfig)
|
| | | {
|
| | | int effectId = 0;
|
| | | PreviewItemDict.TryGetValue(itemId, out effectId);
|
| | | return effectId;
|
| | | if (alchemyConfig == null) return null;
|
| | | var dict = GetPreviewMakeDruglist(alchemyConfig);
|
| | | if (dict == null) return null;
|
| | |
|
| | | return dict.Keys.ToList();
|
| | | }
|
| | |
|
| | | public List<int> GetSpecPreviewIdlist(AlchemySpecConfig specConfig)
|
| | | {
|
| | | if (specConfig == null) return null;
|
| | | var dict = GetPreviewSpecMakeDruglist(specConfig);
|
| | | if (dict == null) return null;
|
| | |
|
| | | return dict.Keys.ToList();
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | }
|
| | | #endregion
|
| | |
|
| | | #region 法宝的逻辑处理
|
| | | private List<int> collectedTreasurelist = new List<int>();
|
| | | private Dictionary<int, List<TreasureRefineConfig>> _tagTreasureRefineModeDict;
|
| | | public List<int> GetCollectedTreasureList()
|
| | | {
|
| | | collectedTreasurelist.Clear();
|
| | | _tagTreasureRefineModeDict = TreasureRefineConfig.GetTreasureRefineDict();
|
| | | foreach (var key in _tagTreasureRefineModeDict.Keys)
|
| | | {
|
| | | Treasure treasure = null;
|
| | | sTreasureModel.TryGetTreasure(key, out treasure);
|
| | | if (treasure != null)
|
| | | {
|
| | | if (treasure.state == TreasureState.Collected)
|
| | | {
|
| | | collectedTreasurelist.Add(key);
|
| | | }
|
| | | }
|
| | | }
|
| | | return collectedTreasurelist;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 设置法宝铸炼的属性 材料
|
| | | /// </summary>
|
| | |
|
| | | public int[] attrIDs { get; private set; }
|
| | | public int[] attrValues { get; private set; }
|
| | | private Dictionary<int, int> _treasureAttrDict;
|
| | |
|
| | | public void SetTreasureRefineModel(TreasureRefineConfig model)
|
| | | {
|
| | | _treasureAttrDict = null;
|
| | | attrIDs = null;
|
| | | attrValues = null;
|
| | |
|
| | | if (model == null)
|
| | | return;
|
| | | _treasureAttrDict = ConfigParse.GetDic<int, int>(model.TreasureLVStatus);
|
| | | attrIDs = _treasureAttrDict.Keys.ToArray();
|
| | | attrValues = _treasureAttrDict.Values.ToArray();
|
| | |
|
| | | }
|
| | |
|
| | | public int[] nextAttrIDs { get; private set; }
|
| | | public int[] nextAttrValues { get; private set; }
|
| | | public int nextRefineMaterialID { get; private set; }
|
| | | public int nextRefineMaterialNum { get; private set; }
|
| | | private string[] arrays;
|
| | | private Dictionary<int, int> _nextTreasureAttrDict;
|
| | | public void SetNextTreasureRefineModel(TreasureRefineConfig model)
|
| | | {
|
| | | _nextTreasureAttrDict = null;
|
| | | nextAttrIDs = null;
|
| | | nextAttrValues = null;
|
| | |
|
| | | if (model == null)
|
| | | return;
|
| | | _nextTreasureAttrDict = ConfigParse.GetDic<int, int>(model.TreasureLVStatus);
|
| | | nextAttrIDs = _nextTreasureAttrDict.Keys.ToArray();
|
| | | nextAttrValues = _nextTreasureAttrDict.Values.ToArray();
|
| | | arrays = model.TreasureUpItems.Split('_');
|
| | | nextRefineMaterialID = int.Parse(arrays[0]);
|
| | | nextRefineMaterialNum = int.Parse(arrays[1]);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 得到当前法宝的所有技能
|
| | | /// </summary>
|
| | | public Dictionary<int, TreasureSkillData> treasureSkillDict = new Dictionary<int, TreasureSkillData>(); // key 技能ID
|
| | | private List<TreasureRefineConfig> _tagTreasureRefineModellist;
|
| | | public void SetTreasureSkillDict(int treasureId, int lv)
|
| | | {
|
| | | treasureSkillDict.Clear();
|
| | | _tagTreasureRefineModellist = TreasureRefineConfig.GetTreasureRefineList(treasureId);
|
| | | if (_tagTreasureRefineModellist == null)
|
| | | return;
|
| | |
|
| | | int i = 0;
|
| | | int length = _tagTreasureRefineModellist.Count;
|
| | | for (i = 0; i < length; i++)
|
| | | {
|
| | | if (_tagTreasureRefineModellist[i].OpenSkill != 0)
|
| | | {
|
| | |
|
| | | if (lv >= _tagTreasureRefineModellist[i].TreasureLV)
|
| | | {
|
| | | TreasureSkillData skillData = new TreasureSkillData(_tagTreasureRefineModellist[i].TreasureLV, false);
|
| | | AddTreasureSkillDict(_tagTreasureRefineModellist[i].OpenSkill, skillData);
|
| | | }
|
| | | else
|
| | | {
|
| | | TreasureSkillData skillData = new TreasureSkillData(_tagTreasureRefineModellist[i].TreasureLV, true);
|
| | | AddTreasureSkillDict(_tagTreasureRefineModellist[i].OpenSkill, skillData);
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | private void AddTreasureSkillDict(int skillId, TreasureSkillData skillData)
|
| | | {
|
| | | if (treasureSkillDict.ContainsKey(skillId))
|
| | | treasureSkillDict[skillId] = skillData;
|
| | | else
|
| | | treasureSkillDict.Add(skillId, skillData);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 预览法宝属性值
|
| | | /// </summary>
|
| | | private PlayerPropertyConfig _playerProModel;
|
| | | public string GetTreasureAttrStr(int proID, int value, bool showName)
|
| | | {
|
| | | _playerProModel = Config.Instance.Get<PlayerPropertyConfig>(proID);
|
| | | if (_playerProModel == null)
|
| | | return "";
|
| | | string s = "";
|
| | | if (showName)
|
| | | {
|
| | | if (_playerProModel.Name.Contains("%s"))
|
| | | s = _playerProModel.Name.Replace("%s", GetProValueTypeStr(_playerProModel.ISPercentage, value));
|
| | | else
|
| | | s = _playerProModel.Name + ":" + GetProValueTypeStr(_playerProModel.ISPercentage, value);
|
| | |
|
| | | }
|
| | | else
|
| | | {
|
| | | s = GetProValueTypeStr(_playerProModel.ISPercentage, value);
|
| | | }
|
| | | return s;
|
| | | }
|
| | |
|
| | | public string GetFireSuccessRate(int proID, int value)
|
| | | {
|
| | | if (proID != 226)
|
| | | return "";
|
| | |
|
| | | string s = Language.Get("Supplement1006", Mathf.RoundToInt(value / 100));
|
| | | return s;
|
| | | }
|
| | |
|
| | | public int fireId { get; private set; }
|
| | | public event Action<float> RefreshSuccessRateEvent;
|
| | | public void SetCurUseFire(int fireId, float value)
|
| | | {
|
| | | this.fireId = fireId;
|
| | | if (RefreshSuccessRateEvent != null)
|
| | | RefreshSuccessRateEvent(value);
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region 选择炉火逻辑处理
|
| | |
|
| | | /// <summary>
|
| | |
| | | openBlastFurnaceLv = int.Parse(_tagfuncModel.Numerical2);
|
| | |
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | | #endregion
|
| | |
|
| | | public string GetProValueTypeStr(int isPercentage, int value)
|
| | |
| | | }
|
| | |
|
| | | #region 发送请求
|
| | | public void SendRefineTreasureQuest(uint treasureId, uint materId)
|
| | | {
|
| | | CA577_tagCMMWRefine cMMWRefine = new CA577_tagCMMWRefine();
|
| | | cMMWRefine.MWID = treasureId;
|
| | | cMMWRefine.MaterialID = materId;
|
| | | GameNetSystem.Instance.SendInfo(cMMWRefine);
|
| | | fireId = 0;
|
| | | }
|
| | |
|
| | | public void SendMakerDrugQuest(ushort drugId, uint specConfigID)
|
| | | {
|
| | | CA576_tagCMPlayerRefine cMPlayerRefine = new CA576_tagCMPlayerRefine();
|
| | | cMPlayerRefine.RefineNum = drugId;
|
| | | cMPlayerRefine.UseRateItem = specConfigID;
|
| | | GameNetSystem.Instance.SendInfo(cMPlayerRefine);
|
| | | fireId = 0;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | if (haveCnt >= specConfig.SpecialMateriaNUM)
|
| | | {
|
| | | isEnough = true;
|
| | | List<int> specIdlist = GetPreviewSpecMakeDruglist(specConfig).Keys.ToList();
|
| | | List<int> specIdlist = GetSpecPreviewIdlist(specConfig);
|
| | | specDurgDict.Add(specConfig.SpecialMaterialD, specIdlist);
|
| | | }
|
| | | }
|
| | |
| | | {
|
| | | if (alchemyConfig == null) return false;
|
| | | bool isEnough = true;
|
| | | Dictionary<int, int> matDict = ConfigParse.GetDic<int, int>(alchemyConfig.MaterialAll);
|
| | | var matDict = GetAlchemyData(alchemyConfig.AlchemyID).normalMatDic;
|
| | | foreach (var id in matDict.Keys)
|
| | | {
|
| | | int haveCnt = playerPack.GetItemCountByID(PackType.rptItem, id);
|
| | |
| | |
|
| | | public bool IsHaveReachFull(AlchemyConfig alchemyConfig)
|
| | | {
|
| | | if (alchemyConfig == null) return false;
|
| | | List<int> previewlist = GetPreviewMakeDruglist(alchemyConfig).Keys.ToList();
|
| | | var previewlist = GetPreviewIdlist(alchemyConfig);
|
| | | if (previewlist == null) return false;
|
| | |
|
| | | for (int i = 0; i < previewlist.Count; i++)
|
| | | {
|
| | | if (playerPack.CheckIsDrugById(previewlist[i]))
|
| | |
| | |
|
| | | public bool CheckNormalAlchemyIsReachMaxUse(AlchemyConfig alchemyConfig)
|
| | | {
|
| | | if (alchemyConfig == null) return false;
|
| | | var previewlist = GetPreviewIdlist(alchemyConfig);
|
| | | if (previewlist == null) return false;
|
| | |
|
| | | List<int> previewlist = GetPreviewMakeDruglist(alchemyConfig).Keys.ToList();
|
| | | for (int i = 0; i < previewlist.Count; i++)
|
| | | {
|
| | | if (playerPack.CheckIsDrugById(previewlist[i]))
|