| | |
| | |
|
| | | public class HeadPortraitTip : MonoBehaviour
|
| | | {
|
| | |
|
| | | [SerializeField] Image _Head;//人物头像
|
| | | [SerializeField] Text _BuffNumber;//Buff数量
|
| | | [SerializeField] Text _VipNumber;//Vip等级
|
| | |
| | |
|
| | | [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()
|
| | |
| | | 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)
|
| | | {
|
| | |
| | | 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();
|
| | | }
|
| | |
|
| | |
| | | m_UieffectEmperor.Play();
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | private void CloseEmperorBufEffect()
|
| | |
| | |
|
| | | 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()
|
| | |
| | | {
|
| | | 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");
|
| | | }
|
| | |
| | | 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);
|
| | |
| | | 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");
|
| | |
| | | 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;
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | void BuffButton(GameObject obj)
|
| | | void BuffButton()
|
| | | {
|
| | | CloseEmperorBufEffect();
|
| | | WindowCenter.Instance.Open<BuffListWin>();
|
| | |
| | | WindowCenter.Instance.Close<MainInterfaceWin>();
|
| | | WindowCenter.Instance.Open<VipRechargeWin>(false, 1);
|
| | | }
|
| | |
|
| | | void CombatButton()
|
| | | {
|
| | | // DesignDebug.Log("战斗力提升");
|
| | |
|
| | | SysNotifyMgr.Instance.ShowTip("UnopenedFunction");
|
| | | }
|
| | |
|
| | |
|
| | | void HeadButton()
|
| | | {
|
| | |
| | | _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
|
| | |
| | | }
|
| | | 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();
|
| | |
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | 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)
|
| | | {
|
| | |
| | | {
|
| | | 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;
|
| | | }
|
| | |
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | | }
|
| | |
|
| | |
|
| | | }
|