2025-12-01 17:10:33 +08:00

53 lines
1.7 KiB
C#

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<GameObject> 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<Card> owned_card_list = new();
public List<Card> setup_character(int id, Transform card_container, Camera camera1, bool isFriend)
{
ID = id;
hp = maxHp;
main_camera = camera1;
canvas = transform.Find("Canvas").GetComponent<Canvas>();
hp_fill = canvas.transform.Find("hp/hpFill").GetComponent<Image>();
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<GameObject>(ownedCardPrefabList[i],
transform.position, Quaternion.identity, parent: card_container);
int cardID = ID + i + 1;
Card card_component = _card.GetComponent<Card>();
owned_card_list.Add(card_component);
card_component.setup_card(cardID, main_camera);
}
}
}