//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, December 26, 2017
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
|
namespace vnxbqy.UI
|
{
|
|
public class DemonJarBossLifeBarWin : Window
|
{
|
const long BOSSHP_TOTAL = 1000000000;
|
[SerializeField] BossLifeBar m_BossLifeBar;
|
|
TargetBriefInfo.MonsterInfo bossInfo;
|
|
DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
|
bool inited = false;
|
|
long m_CurrentHp = BOSSHP_TOTAL;
|
long currentHp {
|
get {
|
return m_CurrentHp;
|
}
|
set {
|
if (value <= 0)
|
{
|
m_CurrentHp = 0;
|
}
|
else
|
{
|
m_CurrentHp = value;
|
}
|
}
|
}
|
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
}
|
|
protected override void OnPreOpen()
|
{
|
inited = false;
|
m_BossLifeBar.SetActive(false);
|
}
|
|
protected override void OnAfterOpen()
|
{
|
model.updateMissionEvent += OnUpdateMission;
|
}
|
|
protected override void OnPreClose()
|
{
|
model.updateMissionEvent -= OnUpdateMission;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
this.transform.SetAsFirstSibling();
|
}
|
|
protected override void LateUpdate()
|
{
|
if (inited)
|
{
|
var deltaHp = (long)(Time.deltaTime * model.mission.hpReduceSpeed * 0.0001d * BOSSHP_TOTAL);
|
currentHp = currentHp - deltaHp;
|
if (currentHp <= 0)
|
{
|
CloseClick();
|
}
|
}
|
|
if (TargetBriefInfo.bossInfo != bossInfo)
|
{
|
bossInfo = TargetBriefInfo.bossInfo;
|
if (bossInfo.instanceId != 0)
|
{
|
if (inited)
|
{
|
RefreshBossLifeBar();
|
}
|
else
|
{
|
InitBossLifeBar();
|
}
|
}
|
}
|
}
|
|
#endregion
|
|
private void OnUpdateMission()
|
{
|
if (inited)
|
{
|
UpdateServerRemainHP();
|
}
|
else
|
{
|
if (model.mission.remainHPPer > 0)
|
{
|
InitBossLifeBar();
|
}
|
}
|
}
|
|
void InitBossLifeBar()
|
{
|
var config = NPCConfig.Get(TargetBriefInfo.bossInfo.npcId);
|
if (config!=null)
|
{
|
m_BossLifeBar.SetActive(true);
|
currentHp = (long)(model.mission.remainHPPer * 0.000001d * BOSSHP_TOTAL);
|
m_BossLifeBar.SetBaseInfo(TargetBriefInfo.bossInfo.npcId, (ulong)currentHp, BOSSHP_TOTAL, config.NPCLV);
|
inited = true;
|
}
|
}
|
|
private void UpdateServerRemainHP()
|
{
|
currentHp = (long)(model.mission.remainHPPer * 0.000001d * BOSSHP_TOTAL);
|
}
|
|
public void RefreshBossLifeBar()
|
{
|
m_BossLifeBar.Show((ulong)currentHp, BOSSHP_TOTAL);
|
}
|
|
}
|
|
}
|
|
|
|
|