feat(): 大量更新
This commit is contained in:
77
Assets/Script/Gameplay/Enemy/EnemyController.cs
Normal file
77
Assets/Script/Gameplay/Enemy/EnemyController.cs
Normal file
@@ -0,0 +1,77 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Share;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Gameplay.Enemy
|
||||
{
|
||||
public class EnemyController : MonoBehaviour, ICharacter
|
||||
{
|
||||
[SerializeField] private string enemyName;
|
||||
[SerializeField] private int maxHealth = 100;
|
||||
public int MaxHealth => maxHealth;
|
||||
public int CurrentHealth { get; set; }
|
||||
|
||||
[SerializeField] private CardBookData cardBookData;
|
||||
private CardBook myCardBook;
|
||||
private List<Card> cards;
|
||||
private int currentCardIndex = 0;
|
||||
|
||||
public bool IsFlight { get; private set; }
|
||||
public bool IsDead { get; private set; }
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
CurrentHealth = MaxHealth;
|
||||
myCardBook = new CardBook(cardBookData);
|
||||
cards = new List<Card>();
|
||||
}
|
||||
|
||||
public void TakeDamage(int damage)
|
||||
{
|
||||
CurrentHealth -= damage;
|
||||
}
|
||||
|
||||
public void Heal(int heal)
|
||||
{
|
||||
CurrentHealth += heal;
|
||||
if (CurrentHealth > MaxHealth)
|
||||
{
|
||||
CurrentHealth = MaxHealth;
|
||||
}
|
||||
}
|
||||
|
||||
public void StartCombat()
|
||||
{
|
||||
Debug.Log($"{name} Enemy Start Combat");
|
||||
IsFlight = false;
|
||||
}
|
||||
|
||||
public void EndFlight()
|
||||
{
|
||||
Debug.Log($"{name} Enemy End Flight");
|
||||
IsFlight = true;
|
||||
}
|
||||
|
||||
public bool HasCardsLeft()
|
||||
{
|
||||
return currentCardIndex < cards.Count;
|
||||
}
|
||||
|
||||
public Card GetNextCard()
|
||||
{
|
||||
if (!HasCardsLeft())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return cards[currentCardIndex++];
|
||||
}
|
||||
|
||||
public void InitializeDeckCycle()
|
||||
{
|
||||
cards = myCardBook.GetCards().ToList();
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user