134 lines
4.0 KiB
C#
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;
|
|
}
|
|
}
|