| | |
| | | var _result = Equation.Instance.Eval<float>(runeExpFormula);
|
| | | runeExpResultDict.Add(i + 1, _result);
|
| | | }
|
| | | doublePropertyRunes = new List<int>();
|
| | | var _cfgs = Config.Instance.GetAllValues<RuneComposeConfig>();
|
| | | foreach (var _cfg in _cfgs)
|
| | | {
|
| | | doublePropertyRunes.Add(_cfg.TagItemID);
|
| | | }
|
| | |
|
| | | config = Config.Instance.Get<FuncConfigConfig>("RuneDoubleInlayCnt");
|
| | | doublePropRuneInlayDict = ConfigParse.GetDic<int, int>(config.Numerical1);
|
| | |
| | | return Mathf.RoundToInt(runeValue);
|
| | | }
|
| | | private Dictionary<int, float> runeExpResultDict = new Dictionary<int, float>();
|
| | | public List<int> doublePropertyRunes { get; private set; }
|
| | | public int GetRuneNeedExp(int id, int level)
|
| | | {
|
| | | float _levelUpExp = 0;
|
| | |
| | |
|
| | | public bool CanEquipBetterRune(int _hole)
|
| | | {
|
| | | var _runeHole = GetHoleRune(_hole);
|
| | | if (_runeHole == null)
|
| | | foreach (var rune in runePackData.Values)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | var _runeCfg = Config.Instance.Get<RuneConfig>(_runeHole.id);
|
| | | var _itemCfg = Config.Instance.Get<ItemConfig>(_runeHole.id);
|
| | | var _propertyType = _runeCfg.AttrType[0];
|
| | | if (_runeCfg == null)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | foreach (var _rune in runePackData.Values)
|
| | | {
|
| | | if (_rune.IsRuneCream)
|
| | | if (IsBetterRune(rune, _hole))
|
| | | {
|
| | | continue;
|
| | | }
|
| | | var _runeBetterCfg = Config.Instance.Get<RuneConfig>(_rune.id);
|
| | | if (_runeBetterCfg == null)
|
| | | {
|
| | | continue;
|
| | | }
|
| | | bool _same = false;
|
| | | for (int i = 0; i < _runeBetterCfg.AttrType.Length; i++)
|
| | | {
|
| | | if (_runeBetterCfg.AttrType[i] == _propertyType)
|
| | | {
|
| | | _same = true;
|
| | | break;
|
| | | }
|
| | | }
|
| | | if (!_same)
|
| | | {
|
| | | continue;
|
| | | }
|
| | | var _itemBetterCfg = Config.Instance.Get<ItemConfig>(_rune.id);
|
| | | if (_itemBetterCfg.ItemColor > _itemCfg.ItemColor
|
| | | || (_itemBetterCfg.ItemColor == _itemCfg.ItemColor && _runeCfg.AttrType.Length == 1 && _runeBetterCfg.AttrType.Length == 2))
|
| | | {
|
| | | if (runeComposeModel.m_RuneBothPropertys.Contains(_rune.id)
|
| | | && GetDoublePropLimitCount() <= GetCurrentDoublePropCount()
|
| | | && !runeComposeModel.m_RuneBothPropertys.Contains(_runeHole.id))
|
| | | {
|
| | | return false;
|
| | | }
|
| | | return true;
|
| | | }
|
| | | }
|
| | | return false;
|
| | | }
|
| | |
|
| | | public bool IsBetterRune(RuneData _data, int _hole)
|
| | | public bool IsBetterRune(RuneData rune, int _hole)
|
| | | {
|
| | | var _runeHole = GetHoleRune(_hole);
|
| | | if (_runeHole == null)
|
| | | if (rune.IsRuneCream)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | var _runeCfg = Config.Instance.Get<RuneConfig>(_runeHole.id);
|
| | | var _itemCfg = Config.Instance.Get<ItemConfig>(_runeHole.id);
|
| | | var _propertyType = _runeCfg.AttrType[0];
|
| | | if (_runeCfg == null)
|
| | | var runeHole = GetHoleRune(_hole);
|
| | | if (runeHole == null)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | if (_data.IsRuneCream)
|
| | | var runeHoleConfig = Config.Instance.Get<RuneConfig>(runeHole.id);
|
| | | var itemHoleConfig = Config.Instance.Get<ItemConfig>(runeHole.id);
|
| | | var propertyType = runeHoleConfig.AttrType[0];
|
| | | if (runeHoleConfig == null)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | var _runeBetterCfg = Config.Instance.Get<RuneConfig>(_data.id);
|
| | | bool _same = false;
|
| | | for (int i = 0; i < _runeBetterCfg.AttrType.Length; i++)
|
| | |
|
| | | var runeConfig = Config.Instance.Get<RuneConfig>(rune.id);
|
| | | bool same = false;
|
| | | for (int i = 0; i < runeConfig.AttrType.Length; i++)
|
| | | {
|
| | | if (_runeBetterCfg.AttrType[i] == _propertyType)
|
| | | if (runeConfig.AttrType[i] == propertyType)
|
| | | {
|
| | | _same = true;
|
| | | same = true;
|
| | | break;
|
| | | }
|
| | | }
|
| | | if (!_same)
|
| | | if (!same)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | var _itemBetterCfg = Config.Instance.Get<ItemConfig>(_data.id);
|
| | | if (_itemBetterCfg.ItemColor > _itemCfg.ItemColor
|
| | | || (_itemBetterCfg.ItemColor == _itemCfg.ItemColor && _runeCfg.AttrType.Length == 1 && _runeBetterCfg.AttrType.Length == 2))
|
| | |
|
| | | bool isDoubleRuneHole = runeComposeModel.m_RuneBothPropertys.Contains(runeHole.id);
|
| | | bool isDoubleRune = runeComposeModel.m_RuneBothPropertys.Contains(rune.id);
|
| | | if (isDoubleRuneHole != isDoubleRune)
|
| | | {
|
| | | if (runeComposeModel.m_RuneBothPropertys.Contains(_data.id)
|
| | | && GetDoublePropLimitCount() <= GetCurrentDoublePropCount()
|
| | | && !runeComposeModel.m_RuneBothPropertys.Contains(_runeHole.id))
|
| | | {
|
| | | return false;
|
| | | }
|
| | | return true;
|
| | | return isDoubleRune && GetCurrentDoublePropCount() < GetDoublePropLimitCount();
|
| | | }
|
| | | return false;
|
| | |
|
| | | var itemConfig = Config.Instance.Get<ItemConfig>(rune.id);
|
| | | return itemConfig.ItemColor > itemHoleConfig.ItemColor;
|
| | | }
|
| | |
|
| | | public bool CanEquipHoleRune(int id, int _color, out int _hole)
|