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(); } } 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(); 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); } } }