feat(enemy): afegir behaviors WANDER/CHASE/FLEE i target multi-ship
This commit is contained in:
@@ -15,11 +15,12 @@
|
||||
// Primitiva de moviment activa per a un enemic. Substitueix el switch
|
||||
// hardcoded sobre EnemyType.
|
||||
enum class MovementType : uint8_t {
|
||||
ZIGZAG, // Canvi de direcció probabilístic (Pentagon/Star)
|
||||
ZIGZAG, // Canvi de direcció probabilístic agressiu (Pentagon/Star)
|
||||
TRACKING, // LERP discret cap al ship cada N segons (Square)
|
||||
RECTILINEAR_PROXIMITY, // Rectilini + boost rotació visual prop del ship (Pinwheel)
|
||||
// Futurs (Fase B):
|
||||
// WANDER, CHASE, FLEE
|
||||
WANDER, // Canvi de direcció probabilístic suau, sense target
|
||||
CHASE, // Steering continu cap al ship més proper
|
||||
FLEE, // Steering continu allunyant-se del ship més proper
|
||||
};
|
||||
|
||||
// Accions que s'executen periòdicament (un timer per acció). Futur (Fase C):
|
||||
@@ -39,7 +40,7 @@ enum class AimMode : uint8_t {
|
||||
struct MovementConfig {
|
||||
MovementType type{MovementType::ZIGZAG};
|
||||
|
||||
// ZIGZAG
|
||||
// ZIGZAG i WANDER (canvi de direcció probabilístic; comparteixen camps).
|
||||
float angle_change_max{0.0F};
|
||||
float zigzag_prob_per_second{0.0F};
|
||||
|
||||
@@ -50,6 +51,11 @@ struct MovementConfig {
|
||||
// RECTILINEAR_PROXIMITY
|
||||
float rotation_proximity_multiplier{0.0F};
|
||||
float proximity_distance{0.0F};
|
||||
|
||||
// CHASE / FLEE: força del steering per segon (LERP velocity ↔ direcció ideal).
|
||||
// 1.0 = en ~1s la velocitat queda totalment realineada cap al target.
|
||||
float chase_strength{0.0F};
|
||||
float flee_strength{0.0F};
|
||||
};
|
||||
|
||||
// Acció periòdica. interval = segons entre disparades; el dispatcher manté un
|
||||
|
||||
Reference in New Issue
Block a user