# Ciblage des patterns

Dans le gestionnaire, ouvrir **Patterns d’attaque → Cible et ancrage**.
Les réglages sont communs aux armes du héros et aux attaques des créatures.
Un adversaire appartient au groupe opposé : `enemy` pour un lanceur `player`,
`player` pour une créature. Les morts et créatures inactives sont exclus.

## Choisir la destination

`target_mode` propose la visée actuelle (`aim` : pointeur du héros ou cible IA),
le lanceur (`self`), droit devant (`forward`), l’adversaire le plus proche,
le plus éloigné, aléatoire, avec le moins ou le plus de PV bruts ou de PV en
pourcentage, un point aléatoire dans un disque, ou une direction aléatoire.

`target_range` définit le rayon de recherche autour du lanceur, en pixels du
monde logique. À zéro, il utilise le maximum entre la distance de déclenchement
et la portée des coups de la frise. Ce rayon ne change ni les dégâts ni leur zone.
`target_fallback` choisit la visée, le lanceur ou droit devant si aucun adversaire
n’est disponible. Les choix aléatoires sont faits une seule fois par attaque.
Une cible morte, supprimée, inactive ou sortie du rayon laisse sa dernière position
connue ; elle n’est pas remplacée en cours d’attaque.

## Ancrer et suivre la zone

En mode simple, `anchor` vaut `auto` (comportement historique), `actor`
(sur le lanceur) ou `world` (au point choisi dans le monde).
En mode avancé, les blocs règlent individuellement leur ancrage et leur vitesse,
mais partagent la même cible acquise au début du pattern.
Une zone sur le lanceur utilise la direction choisie au départ ; son orientation
peut ensuite tourner selon le balayage. Une zone dans le monde poursuit sa
cible à `tracking_speed`, puis le verrouillage arrête son centre.
Le coup réutilise ce centre : aucun saut vers la position actuelle de la cible.
`locked = true` est prioritaire sur une vitesse positive dans un bloc avancé.

Exemple : `sticky`, adversaire aléatoire, rayon 300, ancrage automatique,
poursuite 120 px/s, avertissement 1 s, délai d’esquive 0,5 s. La zone apparaît
sur l’adversaire choisi, le poursuit une seconde, reste figée une demi-seconde,
puis frappe. Avec le héros comme lanceur, elle choisit une créature ; dans
l’autre sens, elle vise le joueur.

Les patterns existants restent compatibles sans réécriture du maître ni du
brouillon : cible `aim`, rayon 0, repli `aim`, ancrage `auto`. Notamment, la zone
sticky historique du héros part encore de lui et poursuit le pointeur. Choisir
explicitement l’ancrage `world` permet de la poser directement au point visé.
Les collisions des coups restent celles de leurs zones ou projectiles.

## Validation

- `res://scenes/main/attack_targeting_check.tscn` : sélection, factions, PV,
  hasard stable, perte de cible, poursuite et verrouillage des deux acteurs.
- `tools/game-data-manager/tests/attack_targeting_validation_test.php` :
  conservation des nouveaux réglages et rejet des valeurs invalides.
- Tests existants de frise et sticky, smoke test et contrôle du pont 3D.
