//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Wednesday, November 15, 2017
|
//--------------------------------------------------------
|
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class BossShowWin : Window
|
{
|
[SerializeField] UIEffect bossNameEffect;
|
[SerializeField] Button skipBtn;
|
[SerializeField] HeadUpName m_HeadUpHero;
|
[SerializeField] HeadUpName[] m_HeadUpNpcs;
|
|
public static int bossShowId = 0;
|
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
skipBtn.onClick.AddListener(OnSkipBtn);
|
}
|
|
private void OnSkipBtn()
|
{
|
BossShowModel.Instance.StopBossShow();
|
}
|
|
protected override void OnPreOpen()
|
{
|
BossShowModel.Instance.OnBossNameEvent += OnBossNameEvent;
|
skipBtn.SetActive(BossShowModel.Instance.satisfyStep);
|
|
var config = ActorShowConfig.Get(bossShowId);
|
|
m_HeadUpHero.target = null;
|
|
m_HeadUpHero.SetActive(BossShowModel.Instance.showHero != null);
|
if (BossShowModel.Instance.showHero != null)
|
{
|
DisplayHeadUpName();
|
}
|
|
for (int i = 0; i < m_HeadUpNpcs.Length; i++)
|
{
|
if (i < BossShowModel.Instance.showNpcs.Count)
|
{
|
m_HeadUpNpcs[i].SetActive(true);
|
DisplayHeadUpNpcName(m_HeadUpNpcs[i], BossShowModel.Instance.showNpcs[i]);
|
}
|
else
|
{
|
m_HeadUpNpcs[i].target = null;
|
m_HeadUpNpcs[i].SetActive(false);
|
}
|
}
|
}
|
|
private void OnBossNameEvent()
|
{
|
ActorShowConfig actorShowModel = null;
|
if (ActorShowConfig.GetActorShowModel(PlayerDatas.Instance.baseData.MapID, BossShowModel.Instance.NpcID, out actorShowModel))
|
{
|
bossNameEffect.effect = actorShowModel.uieffect;
|
bossNameEffect.keep = true;
|
bossNameEffect.Play();
|
bossNameEffect.SetLayer(LayerUtility.UILayer);
|
return;
|
}
|
}
|
|
protected override void OnAfterOpen()
|
{
|
m_HeadUpHero.SyncPosition(true);
|
|
for (int i = 0; i < m_HeadUpNpcs.Length; i++)
|
{
|
m_HeadUpNpcs[i].SyncPosition(true);
|
}
|
}
|
|
protected override void OnPreClose()
|
{
|
BossShowModel.Instance.OnBossNameEvent -= OnBossNameEvent;
|
bossNameEffect.StopImediatly();
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
|
void DisplayHeadUpName()
|
{
|
m_HeadUpHero.pattern = HeadUpName.Pattern.Hero;
|
m_HeadUpHero.camera = BossShowModel.Instance.showCamera;
|
var hero = BossShowModel.Instance.showHero;
|
if (hero != null)
|
{
|
var MP_Name = hero.m_Model.transform.GetChildTransformDeeply("A_Name");
|
if (!MP_Name)
|
{
|
MP_Name = hero.m_Model.transform;
|
}
|
m_HeadUpHero.target = MP_Name;
|
}
|
m_HeadUpHero.offset = new Vector3(0, 0, 0);
|
var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
|
var name = UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName);
|
var familyName = UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.FamilyName);
|
m_HeadUpHero.SetPlayerInfo(new HeadUpName.PlayerInfo()
|
{
|
realm = realmLevel,
|
name = name,
|
alliance = familyName,
|
});
|
|
m_HeadUpHero.SyncPosition(true);
|
}
|
|
void DisplayHeadUpNpcName(HeadUpName headUpName, ShowActor npc)
|
{
|
headUpName.pattern = HeadUpName.Pattern.Monster;
|
headUpName.camera = BossShowModel.Instance.showCamera;
|
if (npc != null)
|
{
|
var MP_Name = npc.m_Model.transform.GetChildTransformDeeply("A_Name");
|
if (!MP_Name)
|
{
|
MP_Name = npc.m_Model.transform;
|
}
|
headUpName.target = MP_Name;
|
}
|
headUpName.offset = new Vector3(0, 0, 0);
|
var npcConfig = NPCConfig.Get(npc.npcId);
|
headUpName.SetMonsterInfo(npcConfig.NPCID, npcConfig.NPCLV);
|
|
headUpName.SyncPosition(true);
|
}
|
}
|
|
}
|
|
|
|
|