using System; using System.Collections; using System.Collections.Generic; using System.Linq; using DG.Tweening; using UnityEngine; using UnityEngine.UI; public class Character : MonoBehaviour { [SerializeField] private int ID; [SerializeField] public List ownedCardPrefabList = new(); [SerializeField] private int maxHp = 10; // ============== private ================= private int hp; private Canvas canvas; private Image hp_fill; private Camera main_camera; private readonly List owned_card_list = new(); public List setup_character(int id, Transform card_container, Camera camera1, bool isFriend) { ID = id; hp = maxHp; main_camera = camera1; canvas = transform.Find("Canvas").GetComponent(); hp_fill = canvas.transform.Find("hp/hpFill").GetComponent(); hp_fill.fillAmount = (float)hp / maxHp; Transform container = card_container.Find("CardContainer"); if (isFriend) setup_character_card(container); return owned_card_list; } public void take_damage(int damage) { hp -= damage; hp_fill.fillAmount = (float)hp / maxHp; } private void setup_character_card(Transform card_container) { for (int i = 0; i < ownedCardPrefabList.Count; i++) { GameObject _card = Instantiate(ownedCardPrefabList[i], transform.position, Quaternion.identity, parent: card_container); int cardID = ID + i + 1; Card card_component = _card.GetComponent(); owned_card_list.Add(card_component); card_component.setup_card(cardID, main_camera); } } }