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) { GongFaControl.allSkill.Clear(); SkillConfig[] allSkillConfig = ConfigComponent.Instance.GetAll(); for (int i = 0; i < allSkillConfig.Length; i++) { SkillConfig skillConfig = allSkillConfig[i]; if (skillConfig.level == testHeroInfoConfig.skillStart) { SkillInfo skillInfo = new SkillInfo(skillConfig.ID, testHeroInfoConfig.skillLevel); skillInfo.index = -1; GongFaControl.AddSkillInfo(skillInfo); } } 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], testHeroInfoConfig.skillLevel, testHeroInfoConfig.skillStart); skillInfo.index = i; GongFaControl.AddSkillInfo(skillInfo); } } else { SkillInfo[] skillInfos = GongFaControl.allUseSkill; for (int i = 0; i < skillInfos.Length; i++) { if (skillInfos[i] != null) { SkillInfo skillInfo = new SkillInfo(skillInfos[i].skillConfig.IDGroup, testHeroInfoConfig.skillLevel, testHeroInfoConfig.skillStart); skillInfo.index = i; GongFaControl.allUseSkill[i] = skillInfo; } } } if (testHeroInfoConfig.magicWeaponId.Count > 0) { int fbLevel = ((testHeroInfoConfig.level - 1) / 10) + 1; if (fbLevel <= 0) { fbLevel = 1; } for (int i = 0; i < testHeroInfoConfig.magicWeaponId.Count; i++) { FaBaoInfo faBaoInfo = new FaBaoInfo(testHeroInfoConfig.magicWeaponId[i], fbLevel); 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.defense += testHeroInfoConfig.def; myHero.Metal += testHeroInfoConfig.jing; myHero.Wood += testHeroInfoConfig.mu; myHero.Water += testHeroInfoConfig.shui; myHero.Fire += testHeroInfoConfig.huo; myHero.Earth += testHeroInfoConfig.tu; myHero.TaoismSkillId = 601011; myHero.MagicWeaponID.Clear(); myHero.MagicWeaponID.AddRange(FaBaoControl.FightFaBao); for (int i = 0; i < FaBaoControl.FightFaBao.Length; i++) { FaBaoInfo faBaoInfo = FaBaoControl.FightFaBao[i]; if (faBaoInfo != null) { foreach (var VARIABLE in faBaoInfo.attriButedIC) { switch (VARIABLE.Key) { case 1: myHero.hp += VARIABLE.Value; break; case 2: myHero.defense += VARIABLE.Value; break; case 3: myHero.attack += VARIABLE.Value; break; } } } } } /// /// 保存英雄数据 /// /// 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); } } } }