| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 | using System.Collections;using System.Collections.Generic;using Excel2Json;using Fort23.UTool;using GameLogic.Hero;using UnityEngine;using Utility;public class PlayerManager : Singleton<PlayerManager>{    public List<HeroInfo> heroList = new List<HeroInfo>();    /// <summary>    /// 上阵的英雄,也可以叫主力,替补英雄等级=主力英雄的最低等级(和afk一样的)    /// </summary>    public List<HeroInfo> heroListInLead = new List<HeroInfo>();    public GameConstantConfig gameConstantConfig;        public HeroInfo lastHeroInfo;    public void Init()    {        gameConstantConfig = ConfigComponent.Instance.Get<GameConstantConfig>(1);        InitGameData();    }    private void InitGameData()    {        AccountFileInfo.Instance.LoadPlayerData();        for (int i = 0; i < AccountFileInfo.Instance.playerData.HeroListInLeadDatas.Count; i++)        {            AccountFileInfo.HeroData heroData = AccountFileInfo.Instance.playerData.HeroListInLeadDatas[i];            HeroInfo heroInfo = new HeroInfo();            heroInfo.InitHero(heroData);            heroListInLead.Add(heroInfo);        }    }    public void InitTestHero()    {        heroListInLead.Clear();        // AccountFileInfo.Instance.LoadPlayerData();                AccountFileInfo.HeroData heroData1 = new AccountFileInfo.HeroData        {            heroModelId = 105,            heroPowerId = 1,            heroPromoteId = 3        };                AccountFileInfo.HeroData heroData2 = new AccountFileInfo.HeroData        {            heroModelId = 107,            heroPowerId = 1,            heroPromoteId = 3        };                AccountFileInfo.HeroData heroData3 = new AccountFileInfo.HeroData        {            heroModelId = 116,            heroPowerId = 1,            heroPromoteId = 3        };        AccountFileInfo.HeroData heroData4 = new AccountFileInfo.HeroData        {            heroModelId = 113,            heroPowerId = 1,            heroPromoteId = 3        };        AccountFileInfo.Instance.playerData.HeroListInLeadDatas.Clear();        AccountFileInfo.Instance.playerData.HeroListInLeadDatas.Add(heroData1);        AccountFileInfo.Instance.playerData.HeroListInLeadDatas.Add(heroData2);        AccountFileInfo.Instance.playerData.HeroListInLeadDatas.Add(heroData3);        AccountFileInfo.Instance.playerData.HeroListInLeadDatas.Add(heroData4);                for (int i = 0; i < AccountFileInfo.Instance.playerData.HeroListInLeadDatas.Count; i++)        {            AccountFileInfo.HeroData heroData = AccountFileInfo.Instance.playerData.HeroListInLeadDatas[i];            HeroInfo heroInfo = new HeroInfo();            heroInfo.InitHero(heroData);            heroListInLead.Add(heroInfo);        }    }    public CombatHeroInfo GetHeroInfo(int modelID)    {        if (lastHeroInfo != null && lastHeroInfo.modelID == modelID)        {            return lastHeroInfo;        }                for (int i = 0; i < heroListInLead.Count; i++)        {            HeroInfo info = heroListInLead[i];            if (info.modelID == modelID)            {                return info;            }        }        return null;    }    private int leadHeroIdx = 0;    /// <summary>    /// 快速保存英雄数据    /// 反复升级统一英雄时,就不用反复遍历列表了    /// </summary>    /// <param name="heroInfo"></param>    /// <returns>ture=升级的是同一个英雄</returns>    private bool QuickSaveHeroData(HeroInfo heroInfo)    {        var lastHeroData= AccountFileInfo.Instance.playerData.HeroListInLeadDatas[leadHeroIdx];                if (heroInfo.modelID == lastHeroData.heroModelId)        {            AccountFileInfo.Instance.playerData.HeroListInLeadDatas[leadHeroIdx] = heroInfo.ToHeroData();            AccountFileInfo.Instance.SavePlayerData();            return true;        }        return false;    }        /// <summary>    /// 保存英雄数据    /// </summary>    /// <param name="heroInfo"></param>    public void SaveHeroData(HeroInfo heroInfo)    {        if (!QuickSaveHeroData(heroInfo))        {            for (int i = 0; i < AccountFileInfo.Instance.playerData.HeroListInLeadDatas.Count; i++)            {                AccountFileInfo.HeroData heroData = AccountFileInfo.Instance.playerData.HeroListInLeadDatas[i];                if (heroData.heroModelId == heroInfo.modelID)                {                    AccountFileInfo.Instance.playerData.HeroListInLeadDatas[i] = heroInfo.ToHeroData();                    //存下来,用于快速查找                    leadHeroIdx = i;                    AccountFileInfo.Instance.SavePlayerData();                    return;                }            }        }    }}
 |