Project_WL/Assets/Script/UI/Pet/IngamePetCard.cs

101 lines
3.3 KiB
C#

using UnityEngine;
using UnityEngine.UI;
public class IngamePetCard : CardCoolTimeBase
{
public Image[] sprites; // 0 등급, 1 아이콘, 2 공격타입bg, 3 공격타입, 4 쿨타임, 5 쉴드시간
public Slider slider_hp;
PetListTableData m_PetTableData;
//ServerData_Pet m_ServerData_Pet;
bool isOnlyShow, ShowShieldTime;
public void Set_Empty()
{
m_PetTableData = null;
sprites[0].sprite = UIAtlasMgr.Ins.Get_Sprite("empty_slot_pet");
sprites[1].enabled = sprites[3].enabled = sprites[5].enabled = false;
slider_hp.gameObject.SetActive(false);
CoolTime_Off();
}
public override void Set<T>(T _base)
{
Set_Empty();
base.Set(_base);
m_PetTableData = _base as PetListTableData;
//if (m_PetTableData != null) m_ServerData_Pet = ServerInfo.Ins.m_ServerData.Get_PetData(m_PetTableData.ID);
sprites[1].enabled = true;
sprites[1].color = Color.white;
//var chapter = InGameInfo.Ins.Get_CurStageData().Chapter;
if (!DSUtil.CheckNull(m_PetTableData))
{
Set_CoolTime(0f, 100f, 0);
slider_hp.gameObject.SetActive(true);
Set_HPGage(1f);
Set_Icon(false);
}
}
public void Set_DPS(PetListTableData _ptd)
{
if (_ptd == null)
gameObject.SetActive(false);
else
{
gameObject.SetActive(true);
Set_OnlyShow();
m_PetTableData = _ptd;
sprite_cooltime.gameObject.SetActive(false);
label_cooltime.text = "";
slider_hp.gameObject.SetActive(false);
Set_Icon(false);
sprites[5].enabled = false;
}
}
public void Set_OnlyShow() { isOnlyShow = true; }
public void Set_ShieldUI(bool _active)
{
ShowShieldTime = _active;
sprites[5].enabled = _active;
sprite_cooltime.gameObject.SetActive(!_active);
label_cooltime.text = "";
}
public void Set_ShieldCoolTime(float _time, float _maxtime)
{
sprites[5].fillAmount = _time / _maxtime;
label_cooltime.text = "";
}
public void Set_HPGage(float _v) { slider_hp.value = _v; if (_v <= 0f) sprites[1].color = Color.gray; }
public void Set_Icon(bool _isberserk)
{
sprites[0].sprite = UIAtlasMgr.Ins.Get_GradeSprite(m_PetTableData.n_PetGrade);
sprites[1].enabled = sprites[2].enabled = true;
sprites[1].sprite = UIAtlasMgr.Ins.Get_Sprite(m_PetTableData.Get_Icon());
sprites[2].color = MyValue.Get_SliderGradeColor((eItemGrade)m_PetTableData.n_PetGrade);
//sprites[3].sprite = UIAtlasMgr.Ins.Get_Sprite(m_PetTableData.AttackTypeIcon);
}
protected override void Update()
{
base.Update();
if (m_CoolTime > 0f)
{
m_CoolTime -= Time.deltaTime;
if (!ShowShieldTime) Set_CoolTime(m_CoolTime, 100f, 0);
}
}
public void OnClick_Card()
{
if (!isOnlyShow && m_PetTableData != null && m_CoolTime <= 0f)
{
if (InGameInfo.Ins.Set_Skill_ToPet(eEffect.Skill_Shield, false, false, 30f, (int)m_PetTableData.n_PetGrade * 0.05f, m_PetTableData.ID, !sprites[5].enabled))
Set_CoolTime(100f, 100f, 0);
else
MessageInfo.Ins.Add_Log(171);
}
}
}