//--------------------------------------------------------  
 | 
//    [Author]:           第二世界  
 | 
//    [  Date ]:           Tuesday, November 28, 2017  
 | 
//--------------------------------------------------------  
 | 
  
 | 
using System;  
 | 
using System.Collections;  
 | 
using System.Collections.Generic;  
 | 
using UnityEngine;  
 | 
using UnityEngine.UI;  
 | 
  
 | 
namespace vnxbqy.UI  
 | 
{  
 | 
  
 | 
    public class ExperienceOpenWin : Window  
 | 
    {  
 | 
        //经验显示  
 | 
        #region Built-in  
 | 
        public float TIME = 60f;  
 | 
        private float coentTime = 0;  
 | 
        private int billionsExperience = 0;//获取亿经验  
 | 
        private ulong unitExperience = 0;//获取单位经验  
 | 
        [SerializeField] GameObject m_ExperienceObj;  
 | 
        [SerializeField] Text m_ExperienceText;  
 | 
        [SerializeField] RectTransform GameObject;  
 | 
        [SerializeField] RectTransform StartPoint;  
 | 
        [SerializeField] RectTransform EndPoint;  
 | 
        [SerializeField] UIEffect m_Uieffect;  
 | 
        protected override void BindController()  
 | 
        {  
 | 
        }  
 | 
  
 | 
        protected override void AddListeners()  
 | 
        {  
 | 
        }  
 | 
  
 | 
        protected override void OnPreOpen()  
 | 
        {  
 | 
            m_Uieffect.Play();  
 | 
            m_ExperienceObj.SetActive(false);  
 | 
            coentTime = 0;  
 | 
            billionsExperience = 0;  
 | 
            unitExperience = 0;  
 | 
            PlayerMainDate.Event_Experience += OnExperience;  
 | 
            ChatTip.OnChatUpEvent += OnChatUpEvent;  
 | 
            if(ChatTip.Inst != null)  
 | 
                PositionModification(ChatTip.Inst.IsChatUp);  
 | 
        }  
 | 
  
 | 
  
 | 
  
 | 
        protected override void OnAfterOpen()  
 | 
        {  
 | 
        }  
 | 
  
 | 
        protected override void OnPreClose()  
 | 
        {  
 | 
            PlayerMainDate.Event_Experience -= OnExperience;  
 | 
            ChatTip.OnChatUpEvent -= OnChatUpEvent;  
 | 
        }  
 | 
  
 | 
        protected override void OnAfterClose()  
 | 
        {  
 | 
        }  
 | 
  
 | 
        private void OnChatUpEvent()  
 | 
        {  
 | 
            PositionModification(ChatTip.Inst.IsChatUp);  
 | 
        }  
 | 
  
 | 
        private void PositionModification(bool _bool)  
 | 
        {  
 | 
            if (_bool)  
 | 
            {  
 | 
                GameObject.localPosition = EndPoint.localPosition;  
 | 
            }  
 | 
            else  
 | 
            {  
 | 
                GameObject.localPosition = StartPoint.localPosition;  
 | 
            }  
 | 
        }  
 | 
        private void OnExperience(int _source, int _ExpPoint, int _Exp)  
 | 
        {  
 | 
            if (_source == 2)  
 | 
            {  
 | 
                billionsExperience += _ExpPoint;  
 | 
                unitExperience += (ulong)_Exp;  
 | 
            }  
 | 
           
 | 
        }  
 | 
  
 | 
        string ExperienceIntegration(ulong unitExperience)  
 | 
        {  
 | 
            string Str = null;  
 | 
            float Number = 0;  
 | 
  
 | 
  
 | 
            if (unitExperience >= 100000000)  
 | 
            {  
 | 
                Number = (float)Math.Round((double)unitExperience / 100000000, 2);  
 | 
                Str = Number.ToString() + Language.Get("KnapS115");  
 | 
                return Str;  
 | 
            }  
 | 
            else if (unitExperience >= 10000 && unitExperience < 100000000)  
 | 
            {  
 | 
                Number = (float)Math.Round((double)unitExperience / 10000, 2);  
 | 
                Str = Number.ToString() + Language.Get("KnapS114");  
 | 
                return Str;  
 | 
            }  
 | 
            else if (unitExperience < 10000)  
 | 
            {  
 | 
                if (unitExperience != 0)  
 | 
                {  
 | 
                    Str = unitExperience.ToString();  
 | 
                    return Str;  
 | 
                }  
 | 
                else  
 | 
                {  
 | 
                    return string.Empty;  
 | 
                }  
 | 
                     
 | 
            }  
 | 
              
 | 
            return null;  
 | 
        }  
 | 
        protected override void LateUpdate()  
 | 
        {  
 | 
            coentTime += Time.deltaTime;  
 | 
            int tmpTime = (int)coentTime;  
 | 
            //10秒更新一次  
 | 
            if (tmpTime % 10 == 0 && tmpTime / 10 != 0)  
 | 
            {  
 | 
                ulong allExp = (ulong)((Constants.ExpPointValue * (ulong)billionsExperience + unitExperience) / coentTime * 60);  
 | 
                if (allExp > 0)  
 | 
                {  
 | 
                    m_ExperienceObj.SetActive(true);  
 | 
                    m_ExperienceText.text = ExperienceIntegration(allExp);  
 | 
                }  
 | 
                else  
 | 
                {  
 | 
                    Close();  
 | 
                }  
 | 
  
 | 
            }  
 | 
            if (coentTime >= TIME)  
 | 
            {  
 | 
        
 | 
                coentTime = 0;  
 | 
                billionsExperience = 0;  
 | 
                unitExperience = 0;  
 | 
            }  
 | 
        }  
 | 
  
 | 
        #endregion  
 | 
  
 | 
    }  
 | 
  
 | 
}  
 | 
  
 | 
  
 | 
  
 | 
  
 |