using vnxbqy.UI;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using System;
|
//心法科技
|
public class SkillsInformation
|
{
|
public int id;//单位数id
|
public int SkillID;//技能ID
|
public int SkillLV;//技能等级
|
}
|
|
public class PlayerMethodData : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
|
{
|
public Dictionary<int, SkillsInformation> _DicSkill = new Dictionary<int, SkillsInformation>();//存储心法
|
|
public Dictionary<int, Redpoint> MethodRedPointDic = new Dictionary<int, Redpoint>();//心法列表红点
|
public Dictionary<int, Redpoint> MethodRedPointBtnDic = new Dictionary<int, Redpoint>();//心法按钮红点
|
|
public delegate void MtehodHA504();
|
public static event MtehodHA504 EventHA504;//刷新心发技能信息
|
public delegate void OnCepaContribution();
|
public static event OnCepaContribution Event_CepaContribution;//用于仙盟贡献度的刷新
|
|
public int _ContributionNumber = 0;//仙盟贡献度
|
public Dictionary<int, int> MethodDataNeedLVDic = new Dictionary<int, int>();//心法下表对应的所需学习等级
|
|
FairyModel fairyModel { get { return ModelCenter.Instance.GetModel<FairyModel>(); } }
|
public int FairyHallMax = 0;//获取仙盟大厅最大等级
|
public override void Init()
|
{
|
string str = FuncConfigConfig.Get("FamilyTechNeedLV").Numerical1;
|
MethodDataNeedLVDic = ConfigParse.GetDic<int, int>(str);
|
var fairy = FamilyConfig.GetValues();
|
foreach (var value in fairy)
|
{
|
if (value.familyLV > FairyHallMax)
|
{
|
FairyHallMax = value.familyLV;
|
}
|
|
}
|
|
}
|
|
public override void UnInit()
|
{
|
|
}
|
|
public void OnBeforePlayerDataInitialize()
|
{
|
|
_ContributionNumber = 0;
|
}
|
|
public void OnPlayerLoginOk()
|
{
|
PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo;
|
PlayerDatas.Instance.fairyData.OnRefreshFairyMine -= OnRefreshFairyMine;
|
PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;//加入仙盟
|
PlayerDatas.Instance.fairyData.OnRefreshFairyMine += OnRefreshFairyMine;//退出仙盟
|
PlayerDatas.Instance.playerDataRefreshEvent -= Updatefighting;//数据的刷新(h0418)
|
PlayerDatas.Instance.playerDataRefreshEvent += Updatefighting;//数据的刷新(h0418)
|
FairyAuMethodDic();
|
FairyAuMethodRedPoint();
|
}
|
|
private void Updatefighting(PlayerDataType obj)
|
{
|
if (obj == PlayerDataType.LV)
|
{
|
FairyAuMethodDic();
|
FairyAuMethodRedPoint();
|
}
|
}
|
|
private void OnRefreshFairyInfo()//加入仙盟
|
{
|
FairyAuHallRedPoint();
|
FairyAuMethodDic();
|
FairyAuMethodRedPoint();
|
}
|
|
private void OnRefreshFairyMine()//退出仙盟
|
{
|
if (!PlayerDatas.Instance.fairyData.HasFairy)
|
{
|
foreach (var key in MethodRedPointBtnDic.Keys)
|
{
|
MethodRedPointBtnDic[key].state = RedPointState.None;
|
}
|
}
|
}
|
private const int RedPoint_key1 = 1070101;//心法红点
|
private Redpoint redPointStre1 = new Redpoint(MainRedDot.FAIRY_REDPOINT_KEY2, RedPoint_key1);
|
public Redpoint fairyHeartRedpoint { get { return redPointStre1; } }
|
private const int RedPoint_key2 = 1070104;//仙盟大厅红点
|
private Redpoint redPointStre2 = new Redpoint(MainRedDot.FAIRY_REDPOINT_KEY2, RedPoint_key2);
|
private void FairyAuMethodDic()//仙盟心法列表红点
|
{
|
if (MethodRedPointDic.Count != 0)
|
{
|
return;
|
}
|
foreach (var key in _DicSkill.Keys)
|
{
|
if (!MethodRedPointDic.ContainsKey(key))
|
{
|
int redPointId = RedPoint_key1 * 10 + key;
|
Redpoint redPointMountStare = new Redpoint(RedPoint_key1, redPointId);
|
MethodRedPointDic.Add(key, redPointMountStare);
|
int redPointId1 = redPointId * 10 + key;
|
Redpoint redPointMountStare1 = new Redpoint(redPointId, redPointId1);
|
MethodRedPointBtnDic.Add(key, redPointMountStare1);
|
}
|
}
|
}
|
private void FairyAuMethodRedPoint()//仙盟心法红点
|
{
|
if (MethodRedPointBtnDic.Count == 0)
|
{
|
return;
|
}
|
foreach (var key in MethodRedPointBtnDic.Keys)
|
{
|
MethodRedPointBtnDic[key].state = RedPointState.None;
|
}
|
if (!fairyModel.fairyMethodToOpen)
|
{
|
return;
|
}
|
foreach (var key in _DicSkill.Keys)
|
{
|
if (MethodDataNeedLVDic.ContainsKey(_DicSkill[key].id) && PlayerDatas.Instance.baseData.LV >= MethodDataNeedLVDic[_DicSkill[key].id])
|
{
|
var familyTechConfig = FamilyTechConfig.Get(_DicSkill[key].SkillID + 1);
|
if (_DicSkill[key].SkillLV > 0)
|
{
|
|
if (familyTechConfig == null)
|
{
|
continue;
|
}
|
if (_ContributionNumber >= familyTechConfig.needPoint)
|
{
|
MethodRedPointBtnDic[key].state = RedPointState.Simple;
|
}
|
}
|
else
|
{
|
if (familyTechConfig == null)
|
{
|
continue;
|
}
|
if (_ContributionNumber >= familyTechConfig.needPoint)
|
{
|
MethodRedPointBtnDic[key].state = RedPointState.Simple;
|
}
|
}
|
}
|
}
|
}
|
|
public void FairyAuHallRedPoint()//仙盟大厅红点
|
{
|
redPointStre2.state = RedPointState.None;
|
if (!PlayerDatas.Instance.fairyData.HasFairy)
|
{
|
return;
|
}
|
if ((int)PlayerDatas.Instance.fairyData.mine.FamilyLV >= 2 && (int)PlayerDatas.Instance.fairyData.fairy.FamilyLV < FairyHallMax)
|
{
|
int _familyLV = (int)PlayerDatas.Instance.fairyData.fairy.FamilyLV;
|
if ((int)PlayerDatas.Instance.fairyData.fairy.FamilyMoney >= FamilyConfig.Get(_familyLV).needMoney)
|
{
|
redPointStre2.state = RedPointState.Simple;
|
}
|
}
|
}
|
|
public void MethodHA504(HA504_tagMCPlayerTechInfo info)//获取心法技能信息
|
{
|
for (int i = 0; i < info.TechCnt; i++)
|
{
|
|
if (!_DicSkill.ContainsKey(info.TechInfoList[i].TechID))
|
{
|
|
SkillsInformation _skill = new SkillsInformation();
|
_skill.id = info.TechInfoList[i].TechID;
|
_skill.SkillID = Skill_ID(info.TechInfoList[i].TechID, info.TechInfoList[i].TechLV);
|
_skill.SkillLV = info.TechInfoList[i].TechLV;
|
_DicSkill.Add(info.TechInfoList[i].TechID, _skill);
|
|
}
|
else
|
{
|
|
_DicSkill[info.TechInfoList[i].TechID].id = info.TechInfoList[i].TechID;
|
_DicSkill[info.TechInfoList[i].TechID].SkillID = Skill_ID(info.TechInfoList[i].TechID, info.TechInfoList[i].TechLV);
|
_DicSkill[info.TechInfoList[i].TechID].SkillLV = info.TechInfoList[i].TechLV;
|
if (EventHA504 != null)
|
EventHA504();
|
|
}
|
}
|
|
FairyAuMethodRedPoint();
|
FairyAuMethodDic();
|
}
|
|
int Skill_ID(int _id, int _lv)
|
{
|
string _strID = _id.ToString();
|
string _strLV = _lv.ToString();
|
string _strAll = null;
|
if (_lv < 10)
|
{
|
_strAll = _strID + "00" + _strLV;
|
return int.Parse(_strAll);
|
}
|
else if (_lv >= 10 && _lv < 100)
|
{
|
_strAll = _strID + "0" + _strLV;
|
return int.Parse(_strAll);
|
}
|
_strAll = _strID + _strLV;
|
return int.Parse(_strAll);
|
}
|
|
public void CepaContribution(int value)//获取仙盟的贡献度
|
{
|
_ContributionNumber = value;
|
FairyAuMethodDic();
|
FairyAuMethodRedPoint();
|
if (Event_CepaContribution != null)
|
Event_CepaContribution();
|
}
|
|
|
}
|