using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
public class RealmHeartMagicBehaviour : MonoBehaviour
|
{
|
[SerializeField] Text m_BossName;
|
[SerializeField] Text m_FightPower;
|
[SerializeField] RawImage m_RawBoss;
|
[SerializeField] Button m_Goto;
|
[SerializeField] UIEffect m_OpenEffect;
|
|
const string State_EnterHash = "Show";
|
const string State_IdleHash = "Idle";
|
|
int realmLevel = 0;
|
|
DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
|
private void Awake()
|
{
|
m_Goto.AddListener(GotoBoss);
|
}
|
|
public void Display(int realmLevel)
|
{
|
this.realmLevel = realmLevel;
|
|
DisplayBase();
|
|
m_RawBoss.SetActive(false);
|
m_OpenEffect.Play();
|
|
StartCoroutine(Co_DisplayBoss());
|
}
|
|
void DisplayBase()
|
{
|
var fightPower = PlayerDatas.Instance.baseData.FightPoint;
|
var bossFightPower = NPCExConfig.Get( RealmLVUPTaskConfig.GetBossID(realmLevel)).SuppressFightPower;
|
var satisfy = fightPower >= (ulong)bossFightPower;
|
var label = UIHelper.AppendColor(satisfy ? TextColType.LightGreen : TextColType.Red, UIHelper.ReplaceLargeNum(fightPower));
|
m_FightPower.text = StringUtility.Contact(UIHelper.AppendColor(TextColType.LightGreen,
|
Language.Get("RolePromoteBetterFight")), label, "/", UIHelper.ReplaceLargeNum(bossFightPower));
|
var npcConfig = NPCConfig.Get(RealmLVUPTaskConfig.GetBossID(realmLevel));
|
m_BossName.text = npcConfig.charName;
|
}
|
|
IEnumerator Co_DisplayBoss()
|
{
|
yield return WaitingForSecondConst.WaitMS1800;
|
DisplayBoss();
|
}
|
|
void DisplayBoss()
|
{
|
m_RawBoss.SetActive(true);
|
int bossID = RealmLVUPTaskConfig.GetBossID(realmLevel);
|
UI3DModelExhibition.Instance.ShowNPC(m_RawBoss, new UI3DNPCExhibitionData()
|
{
|
gray = false,
|
isDialogue = false,
|
npcId = bossID,
|
});
|
|
var npcConfig = NPCConfig.Get(bossID);
|
|
var npcModel = UI3DModelExhibition.Instance.NpcModelPet;
|
if (npcModel != null)
|
{
|
var animator = npcModel.GetComponentInChildren<Animator>();
|
if (animator != null)
|
{
|
var runtimeController = AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerRealmSuffix, npcConfig.MODE);
|
animator.runtimeAnimatorController = runtimeController;
|
animator.Play(State_EnterHash, 0);
|
}
|
}
|
}
|
|
public void Dispose()
|
{
|
UI3DModelExhibition.Instance.StopShow();
|
StopAllCoroutines();
|
}
|
|
private void GotoBoss()
|
{
|
if (CrossServerUtility.IsCrossServer())
|
{
|
SysNotifyMgr.Instance.ShowTip("CrossMap10");
|
return;
|
}
|
|
var fightPower = PlayerDatas.Instance.baseData.FightPoint;
|
var bossFightPower = NPCExConfig.Get(RealmLVUPTaskConfig.GetBossID(realmLevel)).SuppressFightPower;
|
var satisfy = fightPower >= (ulong)bossFightPower;
|
|
if ((ulong)bossFightPower > PlayerDatas.Instance.baseData.FightPoint)
|
{
|
ConfirmCancel.ShowPopConfirm(
|
Language.Get("Mail101"),
|
Language.Get("RuneTower25", bossFightPower),
|
(bool ok) =>
|
{
|
if (ok)
|
{
|
dungeonModel.SingleChallenge(RealmModel.REALM_DUNGEON_ID, 0);
|
}
|
}
|
);
|
return;
|
}
|
|
|
dungeonModel.SingleChallenge(RealmModel.REALM_DUNGEON_ID, 0);
|
}
|
}
|
}
|
|