少年修仙传客户端代码仓库
client_Hale
2019-04-09 f58b982abb974dbc9d6b88ac1868317d062e52df
System/MainInterfacePanel/HeadPortraitTip.cs
@@ -14,7 +14,6 @@
    public class HeadPortraitTip : MonoBehaviour
    {
        [SerializeField] Image _Head;//人物头像
        [SerializeField] Text _BuffNumber;//Buff数量
        [SerializeField] Text _VipNumber;//Vip等级
@@ -37,32 +36,20 @@
        [SerializeField] UIEffect m_UieffectEmperor;//娲皇Buff
        [SerializeField] Image m_Shield;//护盾显示
        private int _hp = 0;//获取当前的血量
        private int _maxHp = 0;//获取最大血量
        private int _fighting = 0;//获取战斗;
        private int _ReincarnationLv = 0;//获取转生等级
        private int _jobType = 0;//获取顽疾职业
        [SerializeField] Text _TimeTxt;//时间
        [SerializeField] Slider _BatterySlider;//电量
        [SerializeField] Image m_WifiImg;//Wife
        [SerializeField] GameObject m_BatteryChong;//充电
        public float loadingTime = 1f;//时间刷新
        private float loadingtime = 0f;//默认时间
        VipModel m_VipModel;
        VipModel vipModel { get { return m_VipModel ?? (m_VipModel = ModelCenter.Instance.GetModel<VipModel>()); } }
        BuffModel m_BuffModel;
        BuffModel Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } }
        PKModel m_PKModel;
        PKModel pKModel { get { return m_PKModel ?? (m_PKModel = ModelCenter.Instance.GetModel<PKModel>()); } }
        PlayerMainDate m_MainModel;
        PlayerMainDate onMainModel { get { return m_MainModel ?? (m_MainModel = ModelCenter.Instance.GetModel<PlayerMainDate>()); } }
        RolePromoteModel m_PromoteModel;
        RolePromoteModel promoteModel { get { return m_PromoteModel ?? (m_PromoteModel = ModelCenter.Instance.GetModel<RolePromoteModel>()); } }
        CapacityDelayModel m_CapacityDelayModel;
        CapacityDelayModel capacityDelayModel { get { return m_CapacityDelayModel ?? (m_CapacityDelayModel = ModelCenter.Instance.GetModel<CapacityDelayModel>()); } }
        VipModel vipModel { get { return ModelCenter.Instance.GetModel<VipModel>(); } }
        BuffModel Buffmodel { get { return ModelCenter.Instance.GetModel<BuffModel>(); } }
        PKModel pKModel { get { return ModelCenter.Instance.GetModel<PKModel>(); } }
        PlayerMainDate onMainModel { get { return ModelCenter.Instance.GetModel<PlayerMainDate>(); } }
        FairyGrabBossModel fairyGrabBossModel { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } }
        private int vipExperienceSurplusTime = 0;
        private int GetLv = 0;//获取人物等级
        public void Init()
@@ -73,31 +60,33 @@
            TextSwitch(Buffmodel.PkType);
            OnElectricQuantity();
            OnNetworkState();
            RefreshVipActive();
            SetShieldNumber();//设置护盾值
            m_VipExperienceTween.Init();
            _TimeTxt.text = DateTime.Now.ToString("HH:mm");
            OnNetworkState();
            onBatteryStateChanged(SDKUtility.Instance.ChargingType);
            RefreshVipData();
            EmperorBuffEvent();
            _PatternBtn.SetListener(PatternButton);
            _BuffBtn.SetListener(BuffButton);
            _VIPBtn.onClick.AddListener(VIPButton);
            _HeadBtn.onClick.AddListener(HeadButton);
            _PromoteBtn.onClick.AddListener(OnPromoteBtn);
            PlayerDatas.Instance.playerDataRefreshEvent += Updatefighting;//数据的刷新(h0418)
            PlayerDatas.Instance.OnSwitchAttackMode += OnSwitchAttackMode;
            BuffModel.Even_ObjAddBuf += BuffGameObject;
            BuffModel.Even_ObjDelBuff += BuffGameObject;
            PlayerMainDate.ElectricQuantityEvent += OnElectricQuantity;
            OnNetworkState();
            PlayerMainDate.NetworkStateEvent += OnNetworkState;
            UIEventTrigger.Get(_PatternBtn.gameObject).OnUp = PatternButton;
            UIEventTrigger.Get(_BuffBtn.gameObject).OnUp = BuffButton;
            TimeMgr.Instance.OnSyntonyEvent += OnSyntonyEvent;
            onBatteryStateChanged(SDKUtility.Instance.ChargingType);
            SDKUtility.Instance.OnChargingTypeChanged += onBatteryStateChanged;
            vipModel.OnVipTimeEvent += RefreshVipData;
            PlayerMainDate.EmperorBuffEvent += EmperorBuffEvent;
            _VIPBtn.onClick.AddListener(VIPButton);
            _HeadBtn.onClick.AddListener(HeadButton);
            _PromoteBtn.onClick.AddListener(OnPromoteBtn);
            RefreshVipData();
            EmperorBuffEvent();
            bool IsBossBool = PlayerDatas.Instance.hero != null && MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss);//是否在Boss区域
            if (PlayerDatas.Instance.baseData.MapID == 10040 && !IsBossBool)//关于逍遥城状态的特殊处理
            var inBossArea = PlayerDatas.Instance.hero != null && MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss);//是否在Boss区域
            if (PlayerDatas.Instance.baseData.MapID == 10040 && !inBossArea)//关于逍遥城状态的特殊处理
            {
                if (Buffmodel.PkType != onMainModel.AreaState)
                {
@@ -119,9 +108,10 @@
            SDKUtility.Instance.OnChargingTypeChanged -= onBatteryStateChanged;
            vipModel.OnVipTimeEvent -= RefreshVipData;
            PlayerMainDate.EmperorBuffEvent -= EmperorBuffEvent;
            _VIPBtn.onClick.RemoveAllListeners();
            _HeadBtn.onClick.RemoveAllListeners();
            _PromoteBtn.onClick.RemoveAllListeners();
            _VIPBtn.RemoveAllListeners();
            _HeadBtn.RemoveAllListeners();
            _PromoteBtn.RemoveAllListeners();
            m_VipExperienceTween.UnInit();
        }
@@ -134,7 +124,6 @@
                    m_UieffectEmperor.Play();
                }
            }
        }
        private void CloseEmperorBufEffect()
@@ -151,20 +140,8 @@
        private void onBatteryStateChanged(SDKUtility.E_ChargingType arg0)
        {
            switch ((int)arg0)
            {
                case 0:
                case 1:
                    m_BatteryChong.SetActive(false);
                    break;
                case 2:
                case 3:
                    m_BatteryChong.SetActive(true);
                    break;
                default:
                    m_BatteryChong.SetActive(false);
                    break;
            }
            m_BatteryChong.gameObject.SetActive(arg0 == SDKUtility.E_ChargingType.ChargingFull
                || arg0 == SDKUtility.E_ChargingType.Charging);
        }
        private void OnNetworkState()
@@ -179,11 +156,11 @@
                    {
                        m_WifiImg.SetSprite("MainInterfaceWifiIcon3");
                    }
                    else if (onMainModel.WifiSignal > 1 && onMainModel.WifiSignal <= 3)
                    else if (onMainModel.WifiSignal <= 3)
                    {
                        m_WifiImg.SetSprite("MainInterfaceWifiIcon2");
                    }
                    else if (onMainModel.WifiSignal > 3)
                    else
                    {
                        m_WifiImg.SetSprite("MainInterfaceWifiIcon");
                    }
@@ -202,9 +179,9 @@
        private void OnSwitchAttackMode(E_AttackMode obj)//PK状态切换
        {
            TextSwitch((int)obj);
        }
        void PatternButton(GameObject obj)
        void PatternButton()
        {
            int mapID = PlayerDatas.Instance.baseData.MapID;
            var config = MapConfig.Get(mapID);
@@ -229,12 +206,12 @@
                    return;
                }
                if (onMainModel.ShieldedArea.Contains(mapID))//Boss争夺战前三只保底只能是和平模式
                {
                    SysNotifyMgr.Instance.ShowTip("Map_AtkType");
                    return;
                }
                if (onMainModel.ActivityList.Contains(PlayerDatas.Instance.baseData.MapID) && activityline != PlayerDatas.Instance.baseData.FBID)//再前四章新手地图且不在活动区域
                {
                    SysNotifyMgr.Instance.ShowTip("Map_AtkType");
@@ -252,32 +229,28 @@
                SysNotifyMgr.Instance.ShowTip("Map_AtkType");
            }
        }
        void TextSwitch(int _EnumType)
        {
            Image _PkImage = _PatternBtn.GetComponent<Image>();
            var _PkImage = _PatternBtn.GetComponent<Image>();
            switch (_EnumType)
            {
                case 0:
                    Buffmodel.PkType = 0;
                    _PkImage.SetSprite("Atk_Peace");//和平
                    break;
                case 1:
                    Buffmodel.PkType = 1;
                    _PkImage.SetSprite("Atk_All");//全体
                    break;
                case 2:
                    Buffmodel.PkType = 2;
                    break;
                case 3:
                    Buffmodel.PkType = 3;
                    break;
                case 4:
                    Buffmodel.PkType = 4;
                    break;
                case 5:
                    Buffmodel.PkType = 5;
@@ -299,7 +272,7 @@
            }
        }
        void BuffButton(GameObject obj)
        void BuffButton()
        {
            CloseEmperorBufEffect();
            WindowCenter.Instance.Open<BuffListWin>();
@@ -315,14 +288,6 @@
            WindowCenter.Instance.Close<MainInterfaceWin>();
            WindowCenter.Instance.Open<VipRechargeWin>(false, 1);
        }
        void CombatButton()
        {
            // DesignDebug.Log("战斗力提升");
            SysNotifyMgr.Instance.ShowTip("UnopenedFunction");
        }
        void HeadButton()
        {
@@ -346,45 +311,25 @@
                _BuffBtn.gameObject.SetActive(true);
                _BuffNumber.text = Count.ToString();
            }
        }
        void Initialize()//关于数据的初始化
        {
            GetLv = PlayerDatas.Instance.baseData.LV;
            _LVText.text = PlayerDatas.Instance.baseData.LV.ToString();//等级的初始化
            _Hp_number.text = PlayerDatas.Instance.baseData.HP.ToString() + "/" + PlayerDatas.Instance.extersion.MaxHP.ToString();//人物血量的初始化
            _hp = (int)PlayerDatas.Instance.baseData.HP;
            _maxHp = (int)PlayerDatas.Instance.extersion.MaxHP;
            if (_maxHp > 0)
            {
                _HPSlider.value = (float)Math.Round((float)_hp / _maxHp, 2, MidpointRounding.AwayFromZero);//血条的初始化
            }
            else
            {
                _HPSlider.value = 1f;
            }
            _fighting = (int)PlayerDatas.Instance.baseData.FightPoint;
            DisplayHp();
            _PowerNumbern.text = PlayerDatas.Instance.baseData.FightPoint.ToString();
            _jobType = (int)PlayerDatas.Instance.baseData.Job;
            HeadImage(PlayerDatas.Instance.baseData.Job, 0);//角色头像初始化
            JobTitle(PlayerDatas.Instance.baseData.Job, 1);
            VipImage(PlayerDatas.Instance.baseData.VIPLv);//获取Vip等级且赋值
            DisplayHead(PlayerDatas.Instance.baseData.Job, 0);//角色头像初始化
            DisplayVip(PlayerDatas.Instance.baseData.VIPLv);//获取Vip等级且赋值
        }
        void OnFightHpChange(uint hp)
        {
            _hp = (int)hp;
            _Hp_number.text = _hp.ToString() + "/" + _maxHp.ToString();
            _HPSlider.value = (float)Math.Round((float)_hp / _maxHp, 2, MidpointRounding.AwayFromZero);//血量条
        }
        void Updatefighting(PlayerDataType _tCDBPlayerRefresh)//数据的刷新
        void Updatefighting(PlayerDataType type)//数据的刷新
        {
            switch (_tCDBPlayerRefresh)
            switch (type)
            {
                case PlayerDataType.FightPower://战斗力的刷新83
                    _fighting = (int)PlayerDatas.Instance.baseData.FightPoint;
                    _PowerNumbern.text = PlayerDatas.Instance.baseData.FightPoint.ToString();
                    break;
                case PlayerDataType.LV://等级的刷新8
@@ -396,25 +341,11 @@
                    }
                    break;
                case PlayerDataType.MaxHP://最大血量的刷新28
                    _maxHp = (int)PlayerDatas.Instance.extersion.MaxHP;
                    _Hp_number.text = _hp.ToString() + "/" + _maxHp.ToString();
                    _HPSlider.value = (float)Math.Round((float)_hp / _maxHp, 2, MidpointRounding.AwayFromZero);//血量条
                    break;
                case PlayerDataType.HP://当前血量29
                    _hp = (int)PlayerDatas.Instance.baseData.HP;
                    _Hp_number.text = _hp.ToString() + "/" + _maxHp.ToString();
                    _HPSlider.value = (float)Math.Round((float)_hp / _maxHp, 2, MidpointRounding.AwayFromZero);//血量条
                    DisplayHp();
                    break;
                case PlayerDataType.VIPLv://关于VIP等级的刷新
                    RefreshVipActive();
                    VipImage((int)PlayerDatas.Instance.baseData.VIPLv);
                    break;
                case PlayerDataType.Job://玩家职业
                    _jobType = (int)PlayerDatas.Instance.baseData.Job;
                    JobTitle(_jobType, _ReincarnationLv);
                    break;
                case PlayerDataType.ExAttr1://获取转生等级
                    JobTitle(_jobType, 1);
                    DisplayVip((int)PlayerDatas.Instance.baseData.VIPLv);
                    break;
                case PlayerDataType.ExAttr4://当前护盾值
                    SetShieldNumber();
@@ -427,41 +358,43 @@
            }
        }
        void HeadImage(int _jobID, int _ReincarnationLv)//关于人物头像的赋值
        void DisplayHead(int _jobID, int _ReincarnationLv)//关于人物头像的赋值
        {
            _Head.SetSprite(GeneralDefine.GetJobHeadPortrait(_jobID, _ReincarnationLv));
        }
        void VipImage(int _vipID)//获取Vip等级且赋值
        void DisplayVip(int _vipID)//获取Vip等级且赋值
        {
            _VipNumber.text = vipModel.IsVipExperience() ? "1" : _vipID.ToString();
        }
        void JobTitle(int _Job, int _ReincarnationLv)//职业名称
        private void DisplayHp()
        {
            string str = _Job + "0" + _ReincarnationLv;
            int JobName = int.Parse(str);
            string Name = "";
            if (JobNameConfig.Get(JobName) != null)
            var hp = (int)PlayerDatas.Instance.baseData.HP;
            var maxHp = (int)PlayerDatas.Instance.extersion.MaxHP;
            _Hp_number.text = StringUtility.Contact(hp, "/", maxHp);
            if (maxHp > 0)
            {
                Name = JobNameConfig.Get(JobName).name;
                _HPSlider.value = (float)hp / maxHp;//血条的初始化
            }
            else
            {
                _HPSlider.value = 1f;
            }
        }
        private void RefreshVipData()
        {
            RefreshVipActive();
            var _hero = PlayerDatas.Instance.hero;
            bool _lifeBarShow = false;
            VipImage(PlayerDatas.Instance.baseData.VIPLv);
            if (_hero != null && _hero.SelectTarget != null)
            var hero = PlayerDatas.Instance.hero;
            var lifeBarShow = false;
            DisplayVip(PlayerDatas.Instance.baseData.VIPLv);
            if (hero != null && hero.SelectTarget != null)
            {
                _lifeBarShow = (_hero.SelectTarget is GA_NpcFightBoss) || (_hero.SelectTarget is GA_NpcClientFightBoss);
                lifeBarShow = (hero.SelectTarget is GA_NpcFightBoss) || (hero.SelectTarget is GA_NpcClientFightBoss);
            }
            vipExperienceImg.gameObject.SetActive(vipModel.IsVipExperience() && !_lifeBarShow);
            vipExperienceImg.gameObject.SetActive(vipModel.IsVipExperience() && !lifeBarShow);
            vipExperienceSurplusTime = Mathf.Max(0, (int)(vipModel.vipExperienceOverdue - TimeUtility.ServerNow).TotalSeconds);
            if (vipExperienceSurplusTime > 0)
            {
@@ -479,60 +412,53 @@
        {
            if (_type == TimeMgr.SyntonyType.VipExperirnceOverdue)
            {
                RefreshVipActive();
                VipImage(PlayerDatas.Instance.baseData.VIPLv);
                DisplayVip(PlayerDatas.Instance.baseData.VIPLv);
            }
        }
        private void RefreshVipActive()
        {
            //             _VipNumber.material = (vipModel.IsVipActive() || vipModel.IsVipExperience()) ?
            //                 MaterialUtility.GetUIDefaultGraphicMaterial() : MaterialUtility.GetDefaultSpriteGrayMaterial();
            //             _VIPBtn.image.material = (vipModel.IsVipActive() || vipModel.IsVipExperience()) ?
            //                 MaterialUtility.GetUIDefaultGraphicMaterial() : MaterialUtility.GetDefaultSpriteGrayMaterial();
        }
        private void LateUpdate()
        {
            loadingtime += Time.deltaTime;
            if (loadingtime >= loadingTime)
            if (loadingtime >= 1f)
            {
                _TimeTxt.text = DateTime.Now.ToString("HH:mm");
                loadingtime = 0f;
            }
            if (vipExperienceSurplusTime <= 0)
                return;
            var _surplusTime = Mathf.Max(0, (int)(vipModel.vipExperienceOverdue - TimeUtility.ServerNow).TotalSeconds);
            if (vipExperienceSurplusTime != _surplusTime)
            {
                vipExperienceSurplusTime = _surplusTime;
                return;
            }
            var surplusTime = Mathf.Max(0, (int)(vipModel.vipExperienceOverdue - TimeUtility.ServerNow).TotalSeconds);
            if (vipExperienceSurplusTime != surplusTime)
            {
                vipExperienceSurplusTime = surplusTime;
                RefreshVipExperienceTime();
            }
            if (vipExperienceSurplusTime == 0)
            {
                RefreshVipData();
            }
        }
        private void SetShieldNumber()//护盾值设置
        {
            if (PlayerDatas.Instance.extersion.MaxProDef != 0)
            {
                int MaxProDef = PlayerDatas.Instance.extersion.MaxProDef;//最大值
                int ExAttr4 = (int)PlayerDatas.Instance.baseData.shield;//当前值
                float fillAmount = (float)Math.Round((double)ExAttr4 / MaxProDef, 2, MidpointRounding.AwayFromZero);
                var MaxProDef = PlayerDatas.Instance.extersion.MaxProDef;//最大值
                var ExAttr4 = (int)PlayerDatas.Instance.baseData.shield;//当前值
                var fillAmount = (float)ExAttr4 / MaxProDef;
                m_Shield.fillAmount = fillAmount;
            }
            else
            {
                m_Shield.fillAmount = 0f;
            }
        }
    }
    }
}