using System.Collections; using System.Collections.Generic; using Core.Language; using Excel2Json; using Fort23.Core; using Fort23.UTool; using GameLogic.Bag; using GameLogic.Combat.CombatTool; using GameLogic.CombatScenesTool; using GameLogic.Equipment; using GameLogic.Hero; using GameLogic.Player; using UnityEngine; using Utility; public class PlayerManager : Singleton { public GameConstantConfig gameConstantConfig; public GongFaControl GongFaControl; public FaBaoControl FaBaoControl; public BagController BagController; /// /// 玩家角色属性 /// public HeroInfo myHero; public long serverTime => TimeHelper.ServerNow(); public void Init() { AccountFileInfo.Instance.LoadPlayerData(); SetConfigs(); InitGameData(); } private void SetConfigs() { gameConstantConfig = ConfigComponent.Instance.Get(1); } private void InitGameData() { GongFaControl = new GongFaControl(); FaBaoControl = new FaBaoControl(); BagController = new BagController(); HeroInfo heroInfo = new HeroInfo(); heroInfo.InitHero(AccountFileInfo.Instance.playerData.heroData); myHero = heroInfo; BagController.Init(); StaticUpdater.Instance.RemoveRenderUpdateCallBack(Update); StaticUpdater.Instance.AddRenderUpdateCallBack(Update); } private float timer; private void Update() { timer += Time.deltaTime; if (timer > 1) { timer = 0; // PlayerManager.Instance.myHero.heroData.exp += myHero.powerUpConfig.AutoXiuwei; // AccountFileInfo.Instance.SavePlayerData(); } //每天刷新 if (TimeHelper.ClientNow() > AccountFileInfo.Instance.playerData.nextRefence) { AccountFileInfo.Instance.playerData.nextRefence = TimeHelper.GetBaseRefreshTime(TimeHelper.ClientNow()); AccountFileInfo.Instance.playerData.todayUseExpElixrPanelCount = 0; AccountFileInfo.Instance.SavePlayerData(); } } public void AddTestHeroInfo(TestCombatHeroConfig.TestHeroInfoConfig testHeroInfoConfig) { AccountFileInfo.HeroData heroData = new AccountFileInfo.HeroData(); heroData.heroModelId = testHeroInfoConfig.heroID; heroData.heroPowerId = testHeroInfoConfig.level; myHero = new HeroInfo(); myHero.InitHero(heroData); if (testHeroInfoConfig.skill.Count > 0) { GongFaControl.allSkill.Clear(); for (int i = 0; i < testHeroInfoConfig.skill.Count; i++) { SkillInfo skillInfo = new SkillInfo(testHeroInfoConfig.skill[i], 1); skillInfo.index = i; GongFaControl.AddSkillInfo(skillInfo); } } if (testHeroInfoConfig.magicWeaponId.Count > 0) { for (int i = 0; i < testHeroInfoConfig.magicWeaponId.Count; i++) { FaBaoInfo faBaoInfo = new FaBaoInfo(testHeroInfoConfig.magicWeaponId[i], 1); FaBaoControl.AddFaBao(faBaoInfo); FaBaoControl.FightFaBao[i] = faBaoInfo; } } // for (int i = 0; i < 4; i++) // { // FaBaoControl.FightFaBao[i] = FaBaoControl.myAllFaBao[i]; // } myHero.hp += testHeroInfoConfig.hp; myHero.attack += testHeroInfoConfig.att; myHero.TaoismSkillId = 601011; myHero.MagicWeaponID.Clear(); myHero.MagicWeaponID.AddRange(FaBaoControl.FightFaBao); } /// /// 保存英雄数据 /// /// public void SaveHeroData(HeroInfo heroInfo) { AccountFileInfo.Instance.playerData.heroData = heroInfo.heroData; AccountFileInfo.Instance.SavePlayerData(); } /// /// 时间(秒)转换位小时分钟秒 /// /// /// public static string TimeToHSM(long miao) { long fen = miao / 60; miao = miao % 60; long xiaoShi = fen / 60; long tian = xiaoShi / 24; xiaoShi = xiaoShi % 24; fen = fen % 60; if (tian > 0) { return $"{tian}天{xiaoShi}小時"; // return string.Format(LanguageManager.Instance.Text(818), tian, xiaoShi); } else { if (xiaoShi <= 0 && fen <= 59) { return $"{fen}分{miao}秒"; // return string.Format(LanguageManager.Instance.Text(819), fen, miao); } else { return $"{xiaoShi}小時{fen}分"; // return string.Format(LanguageManager.Instance.Text(820), xiaoShi, fen); } } } }