NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/UI/ShowAllCharacter/PlayerSkillCultivateData.cs

134 lines
4.0 KiB
C#

using cfg.ActorCfg;
using cfg.SkillCfg;
using Framework;
using Gameplay.Net;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SinglePlayerSkillCultivateData
{
public int ID;
public int Level;
public string IconPath;
public DataPlayerSkill SkillCfg;
public DataPlayerSkillUpgrade UpgradeCfg;
public SinglePlayerSkillCultivateData(int iD)
{
ID= iD;
RefreshLevel();
SkillCfg=TableManager.GetSingleton().Tables.PlayerSkillConfig.Get(iD);
if(SkillCfg==null)
{
DebugUtil.LogError("PlayerSkillConfig没有id为{0}的技能", iD);
SkillCfg = TableManager.GetSingleton().Tables.PlayerSkillConfig.DataList[0];
}
UpgradeCfg = TableManager.GetSingleton().Tables.PlayerSkillUpgrade.Get(iD,Level);
if (UpgradeCfg == null)
{
DebugUtil.LogError("PlayerSkillUpgrade没有id为{0},等级为{1}的技能", iD,Level);
UpgradeCfg = TableManager.GetSingleton().Tables.PlayerSkillUpgrade.DataList[0];
}
IconPath = SkillCfg.IconPath;
}
void RefreshLevel()
{
Level = Actor.Instance.PlayerSkill.GetLevel(ID);
}
}
public class PlayerBlockCultivateData
{
public cfg.PlayerSkillCfg.PlayerSkillType skillType;
public List<SinglePlayerSkillCultivateData> dataList;
public PlayerBlockCultivateData(int id)
{
dataList = new List<SinglePlayerSkillCultivateData>();
DataPlayerSkillUpgrade data = TableManager.Instance.Tables.PlayerSkillUpgrade.DataList[id];
skillType = data.SkillType;
}
public void Add(int id)
{
bool isContain = false;
for (int i = 0; i < dataList.Count; i++)
{
if (dataList[i].ID==id)
{
isContain = true;
}
}
if(isContain)
{
return;
}
SinglePlayerSkillCultivateData data = new SinglePlayerSkillCultivateData(id);
dataList.Add(data);
}
}
public class PlayerLayerCultivateData
{
public Dictionary<cfg.PlayerSkillCfg.PlayerSkillType,PlayerBlockCultivateData> DataDic;
public PlayerLayerCultivateData()
{
DataDic = new Dictionary<cfg.PlayerSkillCfg.PlayerSkillType, PlayerBlockCultivateData>();
}
public void Add(int id)
{
DataPlayerSkillUpgrade data = TableManager.Instance.Tables.PlayerSkillUpgrade.DataList[id];
PlayerBlockCultivateData blockCultivateData;
if (DataDic.TryGetValue(data.SkillType,out blockCultivateData))
{
blockCultivateData.Add(id);
}else
{
blockCultivateData = new PlayerBlockCultivateData(id);
DataDic.Add(data.SkillType, blockCultivateData);
}
}
}
public class PlayerSkillCultivateData
{
public Dictionary<int, PlayerLayerCultivateData> playerLayerDic;
public PlayerSkillCultivateData()
{
playerLayerDic = new Dictionary<int, PlayerLayerCultivateData>();
for (int i = 0; i < TableManager.Instance.Tables.PlayerSkillUpgrade.DataList.Count; i++)
{
DataPlayerSkillUpgrade data = TableManager.Instance.Tables.PlayerSkillUpgrade.DataList[i];
PlayerLayerCultivateData player;
if(playerLayerDic.TryGetValue(data.LayerID,out player))
{
player.Add(data.ID);
}else
{
PlayerLayerCultivateData temp = new PlayerLayerCultivateData();
temp.Add(data.ID);
playerLayerDic.Add(data.LayerID, temp);
}
}
}
public int GetMaxLayer()
{
int maxLayer = 0;
for (int i = 0; i < TableManager.Instance.Tables.PlayerSkillUpgrade.DataList.Count; i++)
{
if (TableManager.Instance.Tables.PlayerSkillUpgrade.DataList[i].LayerID>maxLayer)
{
maxLayer = TableManager.Instance.Tables.PlayerSkillUpgrade.DataList[i].LayerID;
}
}
return maxLayer;
}
}