using System; using System.Collections.Generic; using TableConfig; namespace Snxxz.UI { public class RolePointModel : Model { public override void Init() { ParseConfig(); FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent; } public override void UnInit() { } private void OnFuncStateChangeEvent(int func) { if ((FuncOpenEnum)func == FuncOpenEnum.AddPoint) { UpdateRedPoint(); } } private Dictionary> rolePointFormulaDic = new Dictionary>(); public Dictionary GetPointAttrFormula(int job) { Dictionary dic; rolePointFormulaDic.TryGetValue(job, out dic); return dic; } public bool ContainsProperty(int _type) { var _dict = GetPointAttrFormula(PlayerDatas.Instance.baseData.Job); return _dict.ContainsKey(_type); } public int[] rolePointAddAttrArray { get; private set; } private Dictionary> rolePointRecomDic = new Dictionary>(); public Dictionary GetPointRecom(int job) { Dictionary dic; rolePointRecomDic.TryGetValue(job, out dic); return dic; } private Dictionary> roleCreatePointDic = new Dictionary>(); public Dictionary GetPointCreate(int job) { Dictionary dic; roleCreatePointDic.TryGetValue(job, out dic); return dic; } private void ParseConfig() { FuncConfigConfig cfg; for (int i = 1; i <= 3; i++) { cfg = ConfigManager.Instance.GetTemplate(string.Format("PointAttr{0}", i)); if (cfg != null) { Dictionary dic = ConfigParse.GetDic(cfg.Numerical1); rolePointFormulaDic.Add(i, dic); } cfg = ConfigManager.Instance.GetTemplate(string.Format("PointAdd{0}", i)); if (cfg != null) { Dictionary dic = ConfigParse.GetDic(cfg.Numerical1); rolePointRecomDic.Add(i, dic); } cfg = ConfigManager.Instance.GetTemplate(string.Format("CreatRolePoint{0}", i)); if (cfg != null) { Dictionary dic = ConfigParse.GetDic(cfg.Numerical1); roleCreatePointDic.Add(i, dic); } } cfg = ConfigManager.Instance.GetTemplate("PointAddAttr"); rolePointAddAttrArray = ConfigParse.GetMultipleStr(cfg.Numerical1); } Redpoint redpoint = new Redpoint(10101, 1010101); Redpoint roleRedPoint = new Redpoint(101, 10101); Redpoint mainRoleRedpoint = new Redpoint(1, 101); public Redpoint addPointRedpoint { get { return redpoint; } } public void UpdateRedPoint() { if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.AddPoint)) { return; } redpoint.state = PlayerDatas.Instance.baseData.FreePoint > 0 ? RedPointState.Simple : RedPointState.None; } public void SendAddPoint(int type, int point) { C0301_tagCAddPoint addPack = new C0301_tagCAddPoint(); addPack.Type = (byte)type; addPack.Point = (ushort)point; GameNetSystem.Instance.SendInfo(addPack); } } }