APFStatusIconUI GetStatusIcon(PFTable.Card.StatusIcon statusIconType) { if (StatusIconList != null) { APFStatusIconUI statusIcon = StatusIconList.Find(comp => { return(comp.StatusIconType == statusIconType); }); return(statusIcon); } return(null); }
private APFStatusIconUI AddStatusIcon(PFTable.Card.StatusIcon statusIconType, int statusKeepTurnCount) { APFStatusIconUI newStatusIcon = PFUtil.Instantiate <APFStatusIconUI>(PFPrefabPath.StatusIcon, StatusIcon_UIGrid.gameObject, Vector3.zero); StatusIcon_UIGrid.repositionNow = true; //grid에 새 요소를 추가한후, 위치를 재정비한다. string statusIconPath = PFCardTable.GetStatusIconPath(statusIconType); UnityEngine.Sprite sprite = Resources.Load <UnityEngine.Sprite>(statusIconPath); newStatusIcon.StatusIconType = statusIconType; newStatusIcon.SetStatusKeepTurnCount(statusKeepTurnCount); newStatusIcon.StatusIconImage.sprite2D = sprite; StatusIconList.Add(newStatusIcon); return(newStatusIcon); }
public virtual void OnUseCard(PFTable.Card card, APFCharacter target) { if (card != null) { if (card.shield > 0) { int newShieldVal = Shield + card.shield; SetShieldValue(newShieldVal); } if (card.statusIcon != PFTable.Card.StatusIcon.None) { APFStatusIconUI statusIcon = GetStatusIcon(card.statusIcon); if (statusIcon == null) { AddStatusIcon(card.statusIcon, card.statusKeepTurnCount); } else { int newStatusKeepTurnCount = statusIcon.GetStatusKeepTurnCount() + card.statusKeepTurnCount; statusIcon.SetStatusKeepTurnCount(newStatusKeepTurnCount); } } if (card.statusIcon_target != PFTable.Card.StatusIcon.None) { APFStatusIconUI statusIcon = target.GetStatusIcon(card.statusIcon_target); if (statusIcon == null) { target.AddStatusIcon(card.statusIcon_target, card.statusKeepTurnCount); } else { int newStatusKeepTurnCount = statusIcon.GetStatusKeepTurnCount() + card.statusKeepTurnCount; statusIcon.SetStatusKeepTurnCount(newStatusKeepTurnCount); } } } }