| using UnityEngine;  | 
| using System.Collections;  | 
| using UnityEngine.UI;  | 
|   | 
| using System.Collections.Generic;  | 
| using System;  | 
|   | 
| //用于记录主界面的一些信息  | 
|   | 
| public class PlayerMainDate : GameSystemManager<PlayerMainDate>  | 
| {  | 
|     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<bool> 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<PowerAddWin>())  | 
|                 {  | 
|                     AddPowerEvent?.Invoke();  | 
|                     return;  | 
|                 }  | 
|                 UIManager.Instance.OpenWindow<PowerAddWin>();  | 
|             }  | 
|             else  | 
|             {  | 
|                 prowNum = power;  | 
|             }  | 
|         }  | 
|     }  | 
|   | 
|     // public void CustomPowerUp(ulong nowPower ,ulong addPower)  | 
|     // {  | 
|     //     prowNum = (long)nowPower;  | 
|     //     prowNumChange = (long)addPower;  | 
|     //     isAdd = true;  | 
|     //     if (UIManager.Instance.IsOpened<PowerAddWin>())  | 
|     //     {  | 
|     //         AddPowerEvent?.Invoke();  | 
|     //         return;  | 
|     //     }  | 
|     //     UIManager.Instance.OpenWindow<PowerAddWin>();  | 
|     // }  | 
|   | 
|     /// <summary>  | 
|     /// 武将自身的战力变化  | 
|     /// </summary>  | 
|     /// <param name="hero"></param>  | 
|     public void AddPowerNotOnTeam(HeroInfo hero)  | 
|     {  | 
|         if (HeroUIManager.Instance.lastFightPower.Key != hero.itemHero.guid)  | 
|         {  | 
|             return;  | 
|         }  | 
|   | 
|         if (hero.IsInTeamByTeamType(TeamType.Story))  | 
|         {   | 
|             return;  | 
|         }  | 
|   | 
|         prowNum = hero.CalculateFightPower();  | 
|         prowNumChange = prowNum - HeroUIManager.Instance.lastFightPower.Value;  | 
|         HeroUIManager.Instance.lastFightPower = new KeyValuePair<string, long>();  | 
|         isAdd = prowNumChange > 0;  | 
|         prowNumChange = Math.Abs(prowNumChange);  | 
|         if (UIManager.Instance.IsOpened<PowerAddWin>())  | 
|         {  | 
|             AddPowerEvent?.Invoke();  | 
|             return;  | 
|         }  | 
|         UIManager.Instance.OpenWindow<PowerAddWin>();  | 
|     }  | 
| }  | 
|   | 
|   | 
|   | 
|   | 
|   |