//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Saturday, January 06, 2018
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class WorshipInfoListWin : Window
|
{
|
[SerializeField] RawImage rawImage;
|
[SerializeField] Text m_PlayerName;
|
[SerializeField] Text m_WorshipText; //膜拜原因
|
[SerializeField] Image m_TitleIcon;
|
[SerializeField] Button m_WorshipBtn;
|
[SerializeField] Button m_CloseBtn;
|
[SerializeField] Toggle m_Toggle;
|
|
|
WorshipInfoListModel worshipInfoListModel { get { return ModelCenter.Instance.GetModel<WorshipInfoListModel>(); } }
|
|
int showIndex = 0;
|
WorshipInfoListModel.WorshipPlayer player;
|
float showNextTime = 0; //下一个显示起始时间,用于防范服务端没有回报问题
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
m_CloseBtn.onClick.AddListener(CloseClick);
|
m_Toggle.SetListener((bool isOn) => {
|
worshipInfoListModel.notShowTip = isOn;
|
});
|
|
m_WorshipBtn.AddListener(Worship);
|
}
|
|
protected override void OnPreOpen()
|
{
|
m_Toggle.isOn = worshipInfoListModel.notShowTip;
|
worshipInfoListModel.WorshipResultEvent += WorshipResult;
|
showIndex = 0;
|
m_Toggle.isOn = false;
|
Display();
|
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
worshipInfoListModel.WorshipResultEvent -= WorshipResult;
|
UI3DModelExhibition.InstanceClone7.StopShow();
|
worshipInfoListModel.players.Clear();
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
protected override void LateUpdate()
|
{
|
if (showNextTime != 0 && Time.time > showNextTime + 1)
|
{
|
showIndex++;
|
showNextTime = 0;
|
Display();
|
}
|
}
|
|
|
#endregion
|
|
void Worship()
|
{
|
var pack = new CB020_tagCGWorship();
|
pack.PlayerID = player.playerID;
|
pack.WorshipType = player.worshipType;
|
pack.WorshipValue = player.worshipValue;
|
GameNetSystem.Instance.SendInfo(pack);
|
|
showNextTime = Time.time;
|
if (m_Toggle.isOn)
|
CloseClick();
|
}
|
|
private void DisplayTitle()
|
{
|
DienstgradConfig config = DienstgradConfig.Get(player.playerInfo.TitleID);
|
if (config == null)
|
{
|
if (player.playerInfo.TitleID != 0)
|
{
|
Debug.LogError("DienstgradConfig not found, ID:" + player.playerInfo.TitleID);
|
}
|
m_TitleIcon.SetActive(false);
|
return;
|
}
|
m_TitleIcon.SetActive(true);
|
UIFrame frame = m_TitleIcon.GetComponent<UIFrame>();
|
if (UIFrameMgr.Inst.ContainsDynamicImage(config.Image))
|
{
|
m_TitleIcon.raycastTarget = false;
|
frame.enabled = true;
|
frame.ResetFrame(config.Image);
|
}
|
else
|
{
|
frame.enabled = false;
|
m_TitleIcon.SetSprite(config.Image);
|
}
|
}
|
|
|
void Display()
|
{
|
if (showIndex >= worshipInfoListModel.players.Count)
|
{
|
CloseClick();
|
return;
|
}
|
player = worshipInfoListModel.players[showIndex];
|
|
DisplayTitle();
|
|
int serverID = UIHelper.GetServerIDByAccount(player.playerInfo.AccID);
|
string serverName = ServerListCenter.Instance.GetServerName(serverID);
|
|
m_PlayerName.text = StringUtility.Contact(player.playerInfo.Name, " ", Language.Get("Z2002", serverName));
|
m_WorshipText.text = Language.Get(StringUtility.Contact("WorshipType_", player.worshipType, "_", player.worshipValue));
|
ShowPlayer();
|
}
|
|
public void ShowPlayer()
|
{
|
int _suitLevel = (int)(player.playerInfo.EquipShowSwitch % 10);
|
int clothes = worshipInfoListModel.GetItemId(RoleEquipType.Clothes, player.playerInfo.EquipShowID);
|
int weapon = worshipInfoListModel.GetItemId(RoleEquipType.Weapon, player.playerInfo.EquipShowID);
|
int weapon2 = worshipInfoListModel.GetItemId(RoleEquipType.Weapon2, player.playerInfo.EquipShowID);
|
int fashionClothes = worshipInfoListModel.GetItemId(RoleEquipType.FashionClothes, player.playerInfo.EquipShowID);
|
int fashionWeapon = worshipInfoListModel.GetItemId(RoleEquipType.FashionWeapon, player.playerInfo.EquipShowID);
|
int fashionWeapon2 = worshipInfoListModel.GetItemId(RoleEquipType.FashionWeapon2, player.playerInfo.EquipShowID);
|
|
var data = new UI3DPlayerExhibitionData
|
{
|
job = player.playerInfo.Job,
|
fashionClothesId = fashionClothes,
|
fashionWeaponId = fashionWeapon,
|
fashionSecondaryId = fashionWeapon2,
|
clothesId = clothes,
|
suitLevel = _suitLevel,
|
weaponId = weapon,
|
wingsId = 0,
|
secondaryId = weapon2,
|
reikiRootEffectId = 0,
|
isDialogue = false,
|
equipLevel = (int)player.playerInfo.EquipShowSwitch / 10 % 100,
|
scale = 0.8f,
|
titleID = player.playerInfo.TitleID,
|
};
|
|
rawImage.SetActiveIL(true);
|
UI3DModelExhibition.InstanceClone7.ShowPlayer(rawImage, data);
|
rawImage.raycastTarget = false;
|
}
|
|
void WorshipResult()
|
{
|
showNextTime = 0;
|
if (player.playerID == worshipInfoListModel.playerIDResult && player.worshipType == worshipInfoListModel.worshipTypeResult)
|
{
|
showIndex++;
|
}
|
Display();
|
}
|
}
|
}
|
|
|
|
|