tune(enemy): big_pentagon orb circular, firework petit per hit, sense wounded chain

This commit is contained in:
2026-05-25 22:28:36 +02:00
parent f64c72f9a6
commit 14b10c663e
9 changed files with 99 additions and 77 deletions
+24 -21
View File
@@ -1,15 +1,17 @@
name: big_pentagon
ai_type: big_pentagon # Validat contra el directori; mapeja a EnemyType::BIG_PENTAGON.
# Reusa la shape de pentagon pe a escala 2.0 — primer enemic gegant del joc.
# 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_pentagon.shp
scale: 2.0
path: enemy_big_orb.shp
scale: 1.5
collision_factor: 1.0
physics:
mass: 20.0 # Massa gran: la bala el frena poc, els trossos volen amb la força de la bala.
speed: 30.0 # Avanç lent, com a "tanc carregant".
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
@@ -17,11 +19,12 @@ physics:
angular_damping: 0.0
ai:
# Persecució lenta del ship més proper: amb chase_strength baix la inèrcia
# és molt notable, fa el comportament del "boss lent" característic.
# 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: 0.3
chase_strength: 1.0
animation:
pulse:
@@ -49,31 +52,31 @@ spawn:
invulnerability_brightness_end: 0.7
invulnerability_scale_start: 0.0
invulnerability_scale_end: 1.0
safety_distance: 72.0 # Doble del normal — és el doble de gran.
safety_distance: 54.0 # 1.5× del normal (alineat amb scale 1.5).
colors:
normal: [0, 180, 255] # Blau elèctric per distingir-lo del pentagon cyan.
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). En el 10è hit, on_no_health
# encadena set_hurt (entra wounded). Wound expira → destroy → on_destroy
# fa l'explosió completa.
# + 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: apply_impulse # empenta el cos (sense will_die és segur en hit no-letal)
- 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: set_hurt # entra wounded; segon hit durant wounded matarà
on_hurt_end:
- action: destroy
- action: destroy # mort directa, sense wounded
on_destroy:
- action: add_score
- action: create_debris # explosió completa
- action: create_debris # explosió completa
- action: create_fireworks
+32
View File
@@ -0,0 +1,32 @@
# enemy_big_orb.shp - ORNI enemic gegant (orb circular, doble anell amb radis)
# © 2026 JailDesigner
#
# Forma "reactor / boss circular" — més detall que els enemics petits perquè
# es renderitza a escala 1.5x i ha de llegir-se com a amenaça gran.
# - Anell exterior: dodecàgon (12 vèrtexs) — aparença circular suau, radi 20.
# - Anell interior: hexàgon (6 vèrtexs, rotat 30°) — radi 10.
# - 6 radis curts que connecten l'anell interior amb l'exterior.
# - Petit "+" central com a nucli.
# Bounding radius natiu = 20 (alineat amb la resta d'enemics).
name: enemy_big_orb
scale: 1.0
center: 0, 0
# Anell exterior (dodecàgon, vèrtex apuntant amunt)
polyline: 0,-20 10,-17.32 17.32,-10 20,0 17.32,10 10,17.32 0,20 -10,17.32 -17.32,10 -20,0 -17.32,-10 -10,-17.32 0,-20
# Anell interior (hexàgon, vèrtex apuntant a la dreta — rotat 30° respecte l'exterior)
polyline: 5,-8.66 10,0 5,8.66 -5,8.66 -10,0 -5,-8.66 5,-8.66
# 6 radis: del vèrtex de l'hexàgon interior al vèrtex corresponent del dodecàgon exterior
line: 5,-8.66 10,-17.32
line: 10,0 20,0
line: 5,8.66 10,17.32
line: -5,8.66 -10,17.32
line: -10,0 -20,0
line: -5,-8.66 -10,-17.32
# Nucli central: petit "+" (2 segments creuats, radi 3)
line: -3,0 3,0
line: 0,-3 0,3
+4 -5
View File
@@ -7,7 +7,7 @@ metadata:
description: "Progressive difficulty curve from novice to expert"
stages:
# STAGE 1: Tutorial - Mix de tots 5 tipus per mostrar-los junts (inclou big_pentagon)
# STAGE 1: Tutorial - 4 tipus (sense star: les bales fan injugable el test).
- stage_id: 1
total_enemies: 50
spawn_config:
@@ -15,10 +15,9 @@ stages:
initial_delay: 0.3
spawn_interval: 0.4
enemy_distribution:
pentagon: 20
cuadrado: 20
molinillo: 20
star: 20
pentagon: 30
cuadrado: 25
molinillo: 25
big_pentagon: 20
difficulty_multipliers:
speed_multiplier: 0.7