110 lines
3.5 KiB
C#
110 lines
3.5 KiB
C#
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class IngamePetCard : CardCoolTimeBase
|
|
{
|
|
public static IngamePetCard Ins;
|
|
public static bool isIns;
|
|
|
|
public Image[] sprites; // 0 등급, 1 아이콘, 2 공격타입bg, 3 공격타입, 4 쿨타임, 5 쉴드시간
|
|
public Slider slider_hp;
|
|
public IngameBuffDebuffBase m_IngameBuffDebuffBase;
|
|
|
|
PetListTableData m_PetTableData;
|
|
//ServerData_Pet m_ServerData_Pet;
|
|
|
|
bool isOnlyShow, ShowShieldTime;
|
|
|
|
private void Awake()
|
|
{
|
|
Ins = this;
|
|
isIns = true;
|
|
}
|
|
|
|
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);
|
|
}
|
|
|
|
void 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);
|
|
}
|
|
}
|
|
} |