83 lines
2.7 KiB
YAML
83 lines
2.7 KiB
YAML
name: orb
|
||
ai_type: orb # Validat contra el directori; mapeja a EnemyType::ORB.
|
||
|
||
# Shape circular pròpia (anell exterior + anell interior + 6 radis + nucli),
|
||
# pensada per llegir-se com a "reactor / orb" amb més detall que els enemics
|
||
# petits.
|
||
shape:
|
||
path: enemy/orb.shp
|
||
scale: 1.0
|
||
collision_factor: 1.0
|
||
|
||
physics:
|
||
mass: 50.0 # Molt pesat: una bala el frena un poc però no el "envia a passejar".
|
||
speed: 50.0 # Avança decidit cap al ship (no és lent passiu, és amenaça constant).
|
||
rotation_delta_min: 0.3
|
||
rotation_delta_max: 1.5
|
||
restitution: 1.0
|
||
linear_damping: 0.0
|
||
angular_damping: 0.0
|
||
|
||
ai:
|
||
# Persecució contínua del ship més proper. chase_strength alt (1.0 = ~1s
|
||
# per realinear-se) perquè, encara que una bala l'empentja lateralment,
|
||
# ràpidament torna a posar la seua proa cap al jugador.
|
||
movement:
|
||
type: chase
|
||
chase_strength: 1.0
|
||
|
||
animation:
|
||
pulse:
|
||
trigger_prob_per_second: 0.01
|
||
duration_min: 1.0
|
||
duration_max: 3.0
|
||
amplitude_min: 0.08
|
||
amplitude_max: 0.20
|
||
frequency_min: 1.5
|
||
frequency_max: 3.0
|
||
rotation_accel:
|
||
trigger_prob_per_second: 0.02
|
||
duration_min: 3.0
|
||
duration_max: 8.0
|
||
multiplier_min: 0.3
|
||
multiplier_max: 4.0
|
||
|
||
wounded:
|
||
duration: 1.5 # Una mica més llarg que els altres (és un boss).
|
||
blink_hz: 10.0
|
||
|
||
spawn:
|
||
invulnerability_duration: 3.0
|
||
invulnerability_brightness_start: 0.3
|
||
invulnerability_brightness_end: 0.7
|
||
invulnerability_scale_start: 0.0
|
||
invulnerability_scale_end: 1.0
|
||
safety_distance: 54.0 # 1.5× del normal (alineat amb scale 1.5).
|
||
|
||
colors:
|
||
normal: [66, 195, 208] # #42C3D0 — turquesa-cyan distintiu per al boss.
|
||
wounded: [255, 220, 60]
|
||
|
||
score: 500 # 5x un enemic normal: aguanta 10x més.
|
||
|
||
# Estrenant el sistema HP: 10 unitats. Cada bala fa decrease_health + flash
|
||
# + create_debris_partial (xip a 0.3x) + create_fireworks_small (espurna).
|
||
# Al 10è hit (HP=0), on_no_health encadena destroy directe — sense passar
|
||
# per wounded (com Star). 10 HP ja és prou dificultat sense afegir un hit
|
||
# extra.
|
||
health: 10
|
||
|
||
events:
|
||
on_hit:
|
||
- action: decrease_health # primer: si arriba a 0 dispara on_no_health
|
||
#- action: flash # feedback visual de damage parcial
|
||
- action: create_debris_partial # xip a 0.3x mida (sense ser letal)
|
||
- action: create_fireworks_small # espurna a cada hit (12 punts, lent)
|
||
- action: apply_impulse # empenta el cos (skip si will_die)
|
||
on_no_health:
|
||
- action: destroy # mort directa, sense wounded
|
||
on_destroy:
|
||
- action: add_score
|
||
- action: create_debris # explosió completa
|
||
- action: create_fireworks
|