//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Friday, April 26, 2019
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class OtherPlayerEquipWin : Window,SecondWindowInterface
|
{
|
[SerializeField] RectTransform m_Content;
|
[SerializeField] CyclicScroll m_EquipLevelScroll;
|
[SerializeField] EquipSlots m_EquipSlots;
|
[SerializeField] Text m_FightPoint;
|
[SerializeField] RawImage m_Role;
|
[SerializeField] OtherPlayerSuitWidget m_WidgetSuit;
|
|
OtherPlayerEquipModel model { get { return ModelCenter.Instance.GetModel<OtherPlayerEquipModel>(); } }
|
EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } }
|
|
bool resetRoleRotation = false;
|
public Button close { get; set; }
|
#region Built-in
|
|
protected override void BindController()
|
{
|
if (this is SecondWindowInterface)
|
{
|
var frame = this.GetComponentInChildren<SecondFrameLoader>();
|
frame.Create();
|
close = frame.GetComponentInChildren<Button>();
|
}
|
}
|
|
protected override void AddListeners()
|
{
|
close.SetListener(() => { WindowCenter.Instance.Close<OtherPlayerEquipWin>(); });
|
}
|
|
protected override void OnPreOpen()
|
{
|
resetRoleRotation = true;
|
m_Content.SetActive(false);
|
model.selectedLevelChangeEvent += OnSelectedLevelChange;
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
model.selectedLevelChangeEvent -= OnSelectedLevelChange;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
DisplayEquipLevels();
|
if (model.selectedLevel != 0)
|
{
|
m_Content.SetActive(true);
|
DisplayEquips();
|
DisplayFightPoint();
|
DisplayAppearance();
|
DisplaySuitInfo();
|
}
|
}
|
|
#endregion
|
|
private void OnSelectedLevelChange()
|
{
|
m_Content.SetActive(true);
|
DisplayEquips();
|
DisplayFightPoint();
|
DisplayAppearance();
|
DisplaySuitInfo();
|
}
|
|
private void DisplayEquipLevels()
|
{
|
var realm = model.playerRealm;
|
var levels = new List<int>();
|
var allLevels = equipModel.GetAllEquipSets();
|
|
foreach (var level in allLevels)
|
{
|
var config = EquipControlConfig.Get(level, 1);
|
if (realm >= config.realm)
|
{
|
levels.Add(level);
|
}
|
}
|
|
m_EquipLevelScroll.Init(levels);
|
}
|
|
private void DisplayEquips()
|
{
|
var equipDetails = model.GetEquipBriefs();
|
for (int i = 1; i <= 12; i++)
|
{
|
var itemId = equipDetails.ContainsKey(i) ? equipDetails[i].itemId : 0;
|
var star = equipDetails.ContainsKey(i) ? equipDetails[i].star : 0;
|
m_EquipSlots[i].Display(i, itemId, star);
|
}
|
}
|
|
private void DisplayFightPoint()
|
{
|
m_FightPoint.text = model.GetFightPoint().ToString();
|
}
|
|
private void DisplayAppearance()
|
{
|
var appearance = model.GetEquipAppearance();
|
UI3DModelExhibition.Instance.ShowPlayer(m_Role, new UI3DPlayerExhibitionData()
|
{
|
job = appearance.job,
|
clothesId = appearance.clothes,
|
weaponId = appearance.weapon,
|
secondaryId = appearance.secondary,
|
keepRotation = resetRoleRotation,
|
reikiRootEffectId = model.reikiRootEffectId,
|
equipLevel = model.equipLevel,
|
});
|
|
resetRoleRotation = false;
|
}
|
|
private void DisplaySuitInfo()
|
{
|
m_WidgetSuit.Display(model.GetSuitInfo());
|
}
|
|
[System.Serializable]
|
public class EquipSlots
|
{
|
public OtherPlayerEquipSlotBehaviour weapon;
|
public OtherPlayerEquipSlotBehaviour secondary;
|
public OtherPlayerEquipSlotBehaviour hat;
|
public OtherPlayerEquipSlotBehaviour clothes;
|
public OtherPlayerEquipSlotBehaviour belt;
|
public OtherPlayerEquipSlotBehaviour trousers;
|
public OtherPlayerEquipSlotBehaviour shoes;
|
public OtherPlayerEquipSlotBehaviour glove;
|
public OtherPlayerEquipSlotBehaviour neck;
|
public OtherPlayerEquipSlotBehaviour fairy1;
|
public OtherPlayerEquipSlotBehaviour fairy2;
|
public OtherPlayerEquipSlotBehaviour jade;
|
|
public OtherPlayerEquipSlotBehaviour this[int place] {
|
get {
|
switch ((RoleEquipType)place)
|
{
|
case RoleEquipType.Weapon:
|
return weapon;
|
case RoleEquipType.Weapon2:
|
return secondary;
|
case RoleEquipType.Hat:
|
return hat;
|
case RoleEquipType.Clothes:
|
return clothes;
|
case RoleEquipType.Belt:
|
return belt;
|
case RoleEquipType.Trousers:
|
return trousers;
|
case RoleEquipType.Shoes:
|
return shoes;
|
case RoleEquipType.Glove:
|
return glove;
|
case RoleEquipType.Neck:
|
return neck;
|
case RoleEquipType.FairyCan1:
|
return fairy1;
|
case RoleEquipType.FairyCan2:
|
return fairy2;
|
case RoleEquipType.Jade:
|
return jade;
|
default:
|
return null;
|
}
|
}
|
}
|
}
|
}
|
|
}
|