//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Friday, October 13, 2017
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
//任务的默认对话筐
|
namespace vnxbqy.UI
|
{
|
|
|
public class DefaultDialogueBoxWin : Window
|
{
|
public Text _TextName;//NPC名称
|
public Text _TextDefaultDialogue;//默认对话内容
|
public Button _BtnEnter;//确认按钮
|
public Button _CloseBtn;//关闭按钮
|
private int _NPCID = 0;//获取NPCID
|
Dictionary<int, MissionDetailDates> _AllMissionDict = new Dictionary<int, MissionDetailDates>();//任务初始化接收字典
|
#region Built-in
|
TaskModel m_TaskModel;
|
TaskModel taskmodel { get { return m_TaskModel ?? (m_TaskModel = ModelCenter.Instance.GetModel<TaskModel>()); } }
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
_BtnEnter.onClick.AddListener(EnterButton);
|
_CloseBtn.onClick.AddListener(CloseButton);
|
}
|
|
protected override void OnPreOpen()
|
{
|
Display();
|
taskmodel.talkNpcIdUpdate += TalkNpcIdUpdate;
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
taskmodel.talkNpcIdUpdate -= TalkNpcIdUpdate;
|
}
|
|
private void TalkNpcIdUpdate(int npcId)
|
{
|
if (_NPCID != npcId)
|
{
|
Display();
|
}
|
}
|
|
void Display()
|
{
|
_AllMissionDict = taskmodel.allMissionDict;
|
_NPCID = taskmodel.NPCid;
|
var npcConfig = NPCConfig.Get(_NPCID);
|
if (npcConfig != null)
|
{
|
if (npcConfig.NPCSpeakID != 0)
|
{
|
SoundPlayer.Instance.PlayNpcAudio(npcConfig.NPCSpeakID);
|
}
|
}
|
ContentAssignmen();
|
}
|
|
private void IsOpenMaininterface()
|
{
|
Close();
|
}
|
|
protected override void LateUpdate()
|
{
|
base.LateUpdate();
|
|
if (WindowCenter.Instance.IsOpen("MainInterfaceWin"))
|
{
|
WindowCenter.Instance.Close<DefaultDialogueBoxWin>();
|
}
|
|
var hero = PlayerDatas.Instance.hero;
|
if (hero != null && hero.LockTarget != null)
|
{
|
var checkDistSqrt = MathUtility.DistanceSqrtXZ(hero.Pos, hero.LockTarget.Pos);
|
if (checkDistSqrt > Mathf.Pow(GeneralDefine.FarawayNpcDist, 2))
|
{
|
WindowCenter.Instance.Close<DefaultDialogueBoxWin>();
|
WindowCenter.Instance.Open<MainInterfaceWin>();
|
hero.LockTarget = null;
|
}
|
}
|
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
void EnterButton()
|
{
|
Close();
|
WindowCenter.Instance.Open<MainInterfaceWin>();
|
SelectionManager.Release(SelectionManager.E_Type.Green);
|
}
|
void CloseButton()
|
{
|
Close();
|
WindowCenter.Instance.Open<MainInterfaceWin>();
|
SelectionManager.Release(SelectionManager.E_Type.Green);
|
}
|
|
void ContentAssignmen()//内容赋值
|
{
|
NPCConfig Npc = NPCConfig.Get(_NPCID);
|
_TextName.text = Npc.charName;
|
string _taskInfoKey = string.Format("d_{0}_0_1", _NPCID);
|
if (TASKINFOConfig.Get(_taskInfoKey) == null)
|
return;
|
TASKINFOConfig DefaultDialogContent = TASKINFOConfig.Get(_taskInfoKey);
|
_TextDefaultDialogue.text = DefaultDialogContent.show_writing;
|
}
|
}
|
|
}
|
|
|
|
|