//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Wednesday, March 21, 2018
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
using System.Collections.Generic;
|
using System;
|
|
//是否显示XP
|
namespace Snxxz.UI
|
{
|
|
public class IsShowXpButton : MonoBehaviour
|
{
|
[SerializeField] UIEffect m_UiEffect;
|
List<int> ProhibitedToRelease = new List<int>();
|
PlayerMainDate m_MainModel;
|
PlayerMainDate onMainModel { get { return m_MainModel ?? (m_MainModel = ModelCenter.Instance.GetModel<PlayerMainDate>()); } }
|
private int m_PlayerXpSkillId = 0;
|
private SkillConfig _XpSkill;
|
|
public void Init()
|
{
|
m_PlayerXpSkillId = ConfigParse.GetDic<int, int>(FuncConfigConfig.Get("XpSkillID").Numerical1)[PlayerDatas.Instance.baseData.Job];//获取各个职业的XP技能
|
StorageList();
|
Skill.OnSkillCDFinished += OnSkillCDFinished;
|
Skill.OnSkillCast += OnSkillCast;
|
PlayerMainDate.Event_XpSkill += OPenXpSkill;
|
int MapIDNow = PlayerDatas.Instance.baseData.MapID;
|
if (ProhibitedToRelease.Contains(MapIDNow))
|
{
|
this.gameObject.SetActive(false);
|
}
|
else
|
{
|
this.gameObject.SetActive(true);
|
}
|
int SkillID = onMainModel.SkillID;
|
if (SkillID == 0)
|
{
|
return;
|
}
|
_XpSkill = SkillConfig.Get(SkillID);
|
if (_XpSkill != null)
|
{
|
if (PlayerDatas.Instance.hero != null)
|
{
|
Skill _skill = PlayerDatas.Instance.hero.SkillMgr.Get(_XpSkill.SkillID);
|
if (_skill.IsValid())
|
{
|
if (!m_UiEffect.IsPlaying)
|
{
|
m_UiEffect.Play();
|
}
|
}
|
else
|
{
|
if (m_UiEffect.IsPlaying)
|
{
|
m_UiEffect.Stop();
|
}
|
}
|
}
|
}
|
}
|
|
public void Unit()
|
{
|
|
Skill.OnSkillCDFinished -= OnSkillCDFinished;
|
Skill.OnSkillCast -= OnSkillCast;
|
PlayerMainDate.Event_XpSkill -= OPenXpSkill;
|
}
|
|
private void OPenXpSkill()//获得技能
|
{
|
if (onMainModel.SkillID != 0)
|
{
|
if (!m_UiEffect.IsPlaying)
|
{
|
m_UiEffect.Play();
|
}
|
}
|
}
|
|
private void OnSkillCast(uint objSID, int obj)//技能释放
|
{
|
if (objSID != PlayerDatas.Instance.PlayerId)
|
{
|
return;
|
}
|
if (obj != 0 && obj == m_PlayerXpSkillId)
|
{
|
if (m_UiEffect.IsPlaying)
|
{
|
m_UiEffect.Stop();
|
}
|
}
|
}
|
|
private void OnSkillCDFinished(int obj)//冷却结束
|
{
|
if (obj != 0 && obj == m_PlayerXpSkillId)
|
{
|
if (!m_UiEffect.IsPlaying)
|
{
|
m_UiEffect.Play();
|
}
|
}
|
}
|
|
private void StorageList()
|
{
|
if (ProhibitedToRelease.Count <= 0)
|
{
|
string str = FuncConfigConfig.Get("XpNoUseDungeon").Numerical1;
|
string[] list = ConfigParse.GetMultipleStr(str);//解析出数组|
|
|
for (int i = 0; i < list.Length; i++)
|
{
|
ProhibitedToRelease.Add(int.Parse(list[i]));
|
}
|
}
|
}
|
|
}
|
|
}
|