using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using System.Linq;
|
using TableConfig;
|
using UnityEngine;
|
namespace Snxxz.UI
|
{
|
public class DogzModel : Model
|
{
|
public override void Init()
|
{
|
ParseConfig();
|
}
|
public override void UnInit()
|
{
|
|
}
|
|
#region 配置
|
private Dictionary<int, Dictionary<int, int>> m_DogzEquipLimit = new Dictionary<int, Dictionary<int, int>>();
|
public int DogzAssistDefaultCnt { get; private set; }
|
public int AddAssistItem { get; private set; }
|
public int AddAssistItemCnt { get; private set; }
|
void ParseConfig()
|
{
|
var _dogzCfgs = ConfigManager.Instance.GetAllValues<DogzConfig>();
|
for (int i = 0; i < _dogzCfgs.Count; i++)
|
{
|
var _dict = new Dictionary<int, int>();
|
var _json = LitJson.JsonMapper.ToObject(_dogzCfgs[i].EquipLimit);
|
foreach (var _key in _json.Keys)
|
{
|
var _index = int.Parse(_key);
|
_dict.Add(_index, int.Parse(_json[_key].ToString()));
|
}
|
m_DogzEquipLimit.Add(_dogzCfgs[i].id, _dict);
|
}
|
var _funcCfg = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("DogzAssist");
|
DogzAssistDefaultCnt = int.Parse(_funcCfg.Numerical1);
|
var _itemJson = LitJson.JsonMapper.ToObject(_funcCfg.Numerical2);
|
var _itemJsonKey = _itemJson.Keys.First();
|
AddAssistItem = int.Parse(_itemJsonKey);
|
AddAssistItemCnt = int.Parse(_itemJson[_itemJsonKey].ToString());
|
|
dogzAssists = new List<int>();
|
}
|
|
public int GetDogzEquipLimitByIndex(int _dogzId, int _index)
|
{
|
if (m_DogzEquipLimit.ContainsKey(_dogzId))
|
{
|
var _dict = m_DogzEquipLimit[_dogzId];
|
if (_dict.ContainsKey(_index))
|
{
|
return _dict[_index];
|
}
|
}
|
return 0;
|
}
|
|
public int GetDogzGrade(int _id)
|
{
|
|
return 0;
|
}
|
|
public static string GetDogzPartNameByIndex(int _index)
|
{
|
switch (_index)
|
{
|
//case 0:
|
// return "兽角";
|
//case 1:
|
// return "魔眼";
|
//case 2:
|
// return "獠牙";
|
//case 3:
|
// return "兽爪";
|
//case 4:
|
// return "鳞甲";
|
default:
|
return string.Empty;
|
}
|
}
|
public static string GetItemColorName(int _itemColor)
|
{
|
switch (_itemColor)
|
{
|
//case 0:
|
//case 1:
|
// return "白色";
|
//case 2:
|
// return "蓝色";
|
//case 3:
|
// return "紫色";
|
//case 4:
|
// return "橙色";
|
//case 5:
|
// return "红色";
|
default:
|
return string.Empty;
|
}
|
}
|
#endregion
|
|
public int presentSelectDogz { get; set; }
|
public event Action UpdateSelectDogzEvent;
|
public void SetSelectDogz(int _id)
|
{
|
presentSelectDogz = _id;
|
if (UpdateSelectDogzEvent != null)
|
{
|
UpdateSelectDogzEvent();
|
}
|
}
|
|
#region 协议
|
public List<int> dogzAssists { get; private set; }
|
public event Action UpdateAssistDogzEvent;
|
public void UpdateAssistDogz()
|
{
|
dogzAssists.Clear();
|
if (UpdateAssistDogzEvent != null)
|
{
|
UpdateAssistDogzEvent();
|
}
|
}
|
private Dictionary<int, List<DogzEquipData>> m_DogzEquipDict = new Dictionary<int, List<DogzEquipData>>();
|
public List<DogzEquipData> GetDogzEquips(int _dogzId)
|
{
|
List<DogzEquipData> _list = null;
|
m_DogzEquipDict.TryGetValue(_dogzId,out _list);
|
return _list;
|
}
|
public bool TryGetDogzEquip(int _dogzId, int _index, out DogzEquipData _equipData)
|
{
|
_equipData = default(DogzEquipData);
|
List<DogzEquipData> _list = GetDogzEquips(_dogzId);
|
if (_list == null)
|
{
|
return false;
|
}
|
var index = _list.FindIndex((x) =>
|
{
|
return x.Index == _index;
|
});
|
if (index != -1)
|
{
|
_equipData = _list[index];
|
return true;
|
}
|
return false;
|
}
|
#endregion
|
|
#region 装备详细信息
|
public DogzEquipData viewDetailData { get; private set; }
|
|
public bool viewDetailCompare { get; private set; }
|
|
public void ViewDetail(int _itemId, bool compare = false)
|
{
|
viewDetailData = new DogzEquipData(_itemId);
|
viewDetailCompare = compare;
|
if (!WindowCenter.Instance.CheckOpen<DogzDetailsWin>())
|
{
|
WindowCenter.Instance.Open<DogzDetailsWin>();
|
}
|
}
|
|
public int DogzEquipScore(DogzEquipData data)
|
{
|
return 0;
|
}
|
#endregion
|
}
|
}
|
|