fix(rules): exclude the caster from a line spell's area
CRB Magic - Aiming a Spell: a line 'starts from any corner of your square', so the caster's own square is outside the template (SRD Lightning Bolt: 'The bolt begins at your fingertips' - it leaves the square, it does not fill it). line_cells now drops the origin and takes the length_cells squares beyond it; a degenerate aim affects nothing. Updated the Lightning Bolt and Line Sparks tests (caster no longer caught) and the README. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -916,9 +916,12 @@ Règles modélisées :
|
||||
largeur valant la longueur à chaque distance) et la **ligne** (5 ft de large,
|
||||
longueur = `radius_ft`) partent de la **case du jeteur** et sont pointés
|
||||
vers la cible résolue (`target_id`) ou le point désigné (`target_pos`) — le
|
||||
cône exclut la case d'origine, la ligne commence dans la case du jeteur
|
||||
(« the bolt begins at your fingertips », SRD Lightning Bolt : le jeteur est
|
||||
donc dans sa propre ligne). Toute créature dont une case occupée intersecte
|
||||
cône exclut la case d'origine, la ligne part d'un **coin** de la case du
|
||||
jeteur et n'affecte **pas** sa propre case (CRB « Aiming a Spell » : « It
|
||||
starts from any corner of your square » — SRD Lightning Bolt : « The bolt
|
||||
begins at your fingertips », le trait quitte la case du jeteur au lieu de la
|
||||
remplir ; un viseur dégénéré origine==cible n'affecte personne). Toute
|
||||
créature dont une case occupée intersecte
|
||||
le gabarit subit l'effet, avec sauvegarde et RS par créature comme pour un
|
||||
burst (application partagée, géométrie dans `areas.py`). Le snapshot
|
||||
d'observation expose `{shape, radius_ft}` via la clé `area`.
|
||||
|
||||
Reference in New Issue
Block a user