using UnityEngine; using System.Collections; using UnityEngine.UI; using System.Collections.Generic; using System; //用于记录主界面的一些信息 public class PlayerMainDate : GameSystemManager { public event Action AddPowerEvent; //-------用于每分钟经验的获取 public delegate void OnExperience(int _source, int _ExpPoint, int _Exp);//(1.单位经验亿点,2.经验单位点) public static event OnExperience Event_Experience; //--------------------用于战斗力滚动 public long prowNum = 0; //滚动前战力,最后一次战力 public long prowNumChange = 0; public bool isAdd = true;//为true增加 为false减少 private bool prowBool = true; public event Func customDisplayPower; public override void Init() { DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize; } public override void Release() { DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize; } public void OnBeforePlayerDataInitialize() { prowNum = 0; prowNumChange = 0; prowBool = true; } public void PowerAdd(long power) { if (prowBool) { prowNum = power; prowBool = false; } else { if (power != prowNum) { prowNumChange = power - prowNum; prowNum = power; isAdd = prowNumChange > 0; prowNumChange = Math.Abs(prowNumChange); if (customDisplayPower != null && customDisplayPower()) { return; } if (UIManager.Instance.IsOpened()) { AddPowerEvent?.Invoke(); return; } UIManager.Instance.OpenWindow(); } else { prowNum = power; } } } // public void CustomPowerUp(ulong nowPower ,ulong addPower) // { // prowNum = (long)nowPower; // prowNumChange = (long)addPower; // isAdd = true; // if (UIManager.Instance.IsOpened()) // { // AddPowerEvent?.Invoke(); // return; // } // UIManager.Instance.OpenWindow(); // } /// /// 武将自身的战力变化 /// /// public void AddPowerNotOnTeam(HeroInfo hero) { if (HeroUIManager.Instance.lastFightPower.Key != hero.itemHero.guid) { return; } if (hero.IsInTeamByTeamType(TeamType.Story)) { return; } prowNum = hero.CalculatePower(); prowNumChange = prowNum - HeroUIManager.Instance.lastFightPower.Value; HeroUIManager.Instance.lastFightPower = new KeyValuePair(); isAdd = prowNumChange > 0; prowNumChange = Math.Abs(prowNumChange); if (UIManager.Instance.IsOpened()) { AddPowerEvent?.Invoke(); return; } UIManager.Instance.OpenWindow(); } }