Các giai đoạn của Boss (Boss Fight Phases)

Tags:
AI
Gameplay
Combat

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.

Bình luận (0)

Bạn cần đăng nhập để có thể bình luận.

Chưa có bình luận nào. Hãy là người đầu tiên!

Bài viết liên quan

AI chỉ có thể 'nhìn thấy' và phát hiện người chơi nếu họ nằm trong một hình nón phía trước mặt nó. Hữu ích cho các game stealth.

AI
Gameplay
Stealth

AI sẽ bắn đạn về phía người chơi khi họ ở trong tầm tấn công và có một khoảng thời gian chờ (cooldown) giữa mỗi lần bắn.

AI
Gameplay
Spawning
Physics

AI sẽ phát hiện người chơi trong một phạm vi nhất định và bắt đầu di chuyển về phía họ. Khi người chơi ra khỏi phạm vi, AI sẽ dừng lại.

AI
Movement
Gameplay
Player

Một script đơn giản cho AI để di chuyển tuần tự qua một danh sách các điểm (waypoints). Khi đến điểm cuối cùng, nó sẽ quay trở lại điểm đầu tiên.

AI
Movement
Gameplay

Theo dõi các đòn đánh liên tiếp để thực hiện chuỗi combo. Reset combo nếu người chơi không tấn công kịp thời.

Gameplay
Player
Combat

Một cấu trúc Finite State Machine (FSM) đơn giản sử dụng enum và switch-case để quản lý các trạng thái khác nhau của AI, như đi tuần, truy đuổi và tấn công.

AI
Architecture
Design Pattern
Gameplay

Một hệ thống để spawn các đợt (wave) kẻ địch. Đợt tiếp theo sẽ bắt đầu sau khi tất cả kẻ địch trong đợt hiện tại đã bị tiêu diệt và một khoảng thời gian chờ trôi qua.

AI
Gameplay
Spawning
Coroutine

Tạo một viên đạn (projectile) tại một điểm và bắn nó đi theo một hướng xác định. Thường dùng cho nhân vật hoặc kẻ địch.

Gameplay
Player
Spawning
Physics

Cho phép nhân vật thực hiện một cú lướt nhanh theo hướng di chuyển hiện tại. Có cooldown để tránh lạm dụng.

Player
Movement
Gameplay
Coroutine

Sử dụng Input System mới của Unity để di chuyển nhân vật 2D hoặc 3D một cách hiệu quả và linh hoạt.

2D
3D
Input
Gameplay
Player