//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Saturday, September 09, 2017
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
namespace Snxxz.UI
|
{
|
[XLua.Hotfix]
|
public class SkillDetailsWin : Window
|
{
|
[SerializeField] Button m_Close;
|
[SerializeField] Image m_SkillIcon;
|
[SerializeField] Text m_SkillInfo1;
|
[SerializeField] Text m_SkillInfo2;
|
[SerializeField] RectTransform m_ContainerDescription;
|
[SerializeField] Text[] m_Descriptions;
|
[SerializeField] RectTransform m_ContaienrFightPower;
|
[SerializeField] Text m_FightPower;
|
[SerializeField] RectTransform m_ContainerGodWeaponEffectSkill;
|
[SerializeField] PropertyBehaviour[] m_Propertys;
|
[SerializeField] Text m_GodWeaponEffectCondition;
|
[SerializeField] RectTransform m_ContainerPlayer;
|
[SerializeField] RawImage m_RawPlayer;
|
|
MagicianModel godWeaponModel { get { return ModelCenter.Instance.GetModel<MagicianModel>(); } }
|
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
m_Close.onClick.AddListener(CloseClick);
|
}
|
|
protected override void OnPreOpen()
|
{
|
m_ContainerGodWeaponEffectSkill.gameObject.SetActive(false);
|
m_ContainerDescription.gameObject.SetActive(false);
|
m_ContainerPlayer.gameObject.SetActive(false);
|
switch (SkillDetails.sourceType)
|
{
|
case SkillDetails.SkillSourceType.GodWeaponEffectSkill:
|
DisplayGodWeaponEffectSkill();
|
break;
|
default:
|
DisplayNormal();
|
break;
|
}
|
}
|
|
protected override void OnAfterOpen()
|
{
|
|
}
|
|
protected override void OnPreClose()
|
{
|
UI3DModelExhibition.InstanceClone1.StopShow();
|
}
|
|
protected override void OnAfterClose()
|
{
|
|
}
|
#endregion
|
|
void DisplayNormal()
|
{
|
m_SkillInfo2.gameObject.SetActive(true);
|
m_ContainerDescription.gameObject.SetActive(true);
|
m_SkillIcon.SetSprite(SkillDetails.skillConfig.IconName);
|
|
switch (SkillDetails.sourceType)
|
{
|
case SkillDetails.SkillSourceType.GodWeaponSkill:
|
{
|
m_SkillInfo2.text = SkillDetails.skillConfig.SkillName;
|
m_SkillInfo1.text = SkillDetails.skillSource;
|
}
|
break;
|
case SkillDetails.SkillSourceType.PetSkill:
|
{
|
if (SkillDetails.skillConfig.CoolDownTime > 0)
|
{
|
m_SkillInfo2.text = StringUtility.Contact("CD:", (float)SkillDetails.skillConfig.CoolDownTime / 1000, Language.Get("RealmWin_Bewrite_35"));
|
}
|
else
|
{
|
m_SkillInfo2.gameObject.SetActive(false);
|
}
|
m_SkillInfo1.text = SkillDetails.skillConfig.SkillName;
|
}
|
break;
|
case SkillDetails.SkillSourceType.ViewHorsePet:
|
{
|
if (SkillDetails.skillConfig.CoolDownTime > 0)
|
{
|
m_SkillInfo2.text = StringUtility.Contact("CD:", (float)SkillDetails.skillConfig.CoolDownTime / 1000, Language.Get("RealmWin_Bewrite_35"));
|
}
|
else
|
{
|
m_SkillInfo2.gameObject.SetActive(false);
|
}
|
m_SkillInfo1.text = SkillDetails.skillConfig.SkillName;
|
}
|
break;
|
case SkillDetails.SkillSourceType.BlastFurnace:
|
{
|
m_SkillInfo2.text = SkillDetails.skillConfig.SkillName;
|
m_SkillInfo1.text = SkillDetails.skillSource;
|
}
|
break;
|
case SkillDetails.SkillSourceType.DogzSkill:
|
{
|
m_SkillInfo1.text = SkillDetails.skillConfig.SkillName;
|
m_SkillInfo2.text = Language.Get("PlayerDetail_Level", SkillDetails.skillConfig.SkillLV);
|
}
|
break;
|
case SkillDetails.SkillSourceType.JadeDynastySkill:
|
{
|
m_SkillInfo1.text = SkillDetails.skillConfig.SkillName;
|
m_SkillInfo2.gameObject.SetActive(false);
|
}
|
break;
|
}
|
|
DisplayDescriptions();
|
|
DisplayFightPower();
|
}
|
|
void DisplayGodWeaponEffectSkill()
|
{
|
m_ContainerGodWeaponEffectSkill.gameObject.SetActive(true);
|
m_ContainerPlayer.gameObject.SetActive(true);
|
var level = godWeaponModel.GetGodWeaponStageRequireLevel(SkillDetails.godWeaponType, SkillDetails.godWeaponEffectStage);
|
var godWeaponEffectConfig = GodWeaponEffectConfig.Get(SkillDetails.godWeaponType, level);
|
var config = GodWeaponConfig.GetConfig(SkillDetails.godWeaponType, 1);
|
m_SkillIcon.SetSprite(godWeaponModel.GetEffectSkillIcon(godWeaponEffectConfig.type, godWeaponEffectConfig.level));
|
m_SkillInfo1.text = Language.Get("GodWeaponEffectSource", config.Name);
|
m_SkillInfo2.text = godWeaponEffectConfig.skillName;
|
|
var dict = godWeaponModel.GetEffectPropertyUpper(SkillDetails.godWeaponType, SkillDetails.godWeaponEffectStage);
|
if (dict != null && dict.Count > 0)
|
{
|
var index = 0;
|
foreach (var key in dict.Keys)
|
{
|
m_Propertys[index].gameObject.SetActive(true);
|
m_Propertys[index].DisplayUpper(key, dict[key]);
|
index++;
|
}
|
for (int i = index; i < m_Propertys.Length; i++)
|
{
|
m_Propertys[i].gameObject.SetActive(false);
|
}
|
}
|
|
m_GodWeaponEffectCondition.text = Language.Get("L1113", config.Name, level);
|
|
var job = PlayerDatas.Instance.baseData.Job;
|
var godWeaponDict = new Dictionary<int, int>();
|
godWeaponDict.Add(SkillDetails.godWeaponType, level);
|
|
var data = new UI3DPlayerExhibitionData()
|
{
|
job = job,
|
godWeapons = godWeaponDict,
|
};
|
UI3DModelExhibition.InstanceClone1.ShowOtherPlayer(m_RawPlayer, data);
|
|
DisplayFightPower();
|
}
|
|
void DisplayDescriptions()
|
{
|
for (int i = 0; i < m_Descriptions.Length; i++)
|
{
|
m_Descriptions[i].gameObject.SetActive(i < SkillDetails.skillDescriptions.Count);
|
if (i < SkillDetails.skillDescriptions.Count)
|
{
|
m_Descriptions[i].text = SkillDetails.skillDescriptions[i];
|
}
|
}
|
}
|
|
void DisplayFightPower()
|
{
|
m_ContaienrFightPower.gameObject.SetActive(SkillDetails.fightPower > 0);
|
if (SkillDetails.fightPower > 0)
|
{
|
m_FightPower.text = StringUtility.Contact("+", SkillDetails.fightPower);
|
}
|
}
|
}
|
|
}
|
|
|
|
|