Các giai đoạn của Boss (Boss Fight Phases)
C# Code
using UnityEngine;
public class BossController : MonoBehaviour
{
public enum BossPhase { Phase1, Phase2, Phase3 }
private BossPhase currentPhase;
public int maxHealth = 1000;
private int currentHealth;
public float phase2Threshold = 0.7f; // 70% máu
public float phase3Threshold = 0.3f; // 30% máu
void Start()
{
currentHealth = maxHealth;
currentPhase = BossPhase.Phase1;
}
public void TakeDamage(int damage)
{
currentHealth -= damage;
CheckPhaseTransition();
}
private void CheckPhaseTransition()
{
float healthPercentage = (float)currentHealth / maxHealth;
if (currentPhase == BossPhase.Phase1 && healthPercentage <= phase2Threshold)
{
currentPhase = BossPhase.Phase2;
EnterPhase2();
}
else if (currentPhase == BossPhase.Phase2 && healthPercentage <= phase3Threshold)
{
currentPhase = BossPhase.Phase3;
EnterPhase3();
}
}
void Update()
{
// Logic của boss được điều khiển bởi switch-case dựa trên phase
switch (currentPhase)
{
case BossPhase.Phase1:
// Hành vi của Phase 1 (ví dụ: tấn công cơ bản)
break;
case BossPhase.Phase2:
// Hành vi của Phase 2 (ví dụ: nhanh hơn, thêm kỹ năng mới)
break;
case BossPhase.Phase3:
// Hành vi của Phase 3 (ví dụ: tấn công điên cuồng)
break;
}
}
private void EnterPhase2()
{
Debug.Log("BOSS ENTERING PHASE 2!");
// Thay đổi model, bật hiệu ứng, tăng tốc độ, ...
}
private void EnterPhase3()
{
Debug.Log("BOSS ENTERING FINAL PHASE!");
// ...
}
}Một cấu trúc để một con boss thay đổi hành vi và bộ kỹ năng khi máu của nó xuống dưới các ngưỡng nhất định.