fix(rules): a cone/line template excludes the caster's whole footprint, not just the anchor cell (SRD aiming-a-spell.md: 'It starts from any corner of your square' - every occupied square is origin space and never inside its own area) - cone_cells/line_cells take caster_cells; combat passes caster.occupied_cells(); 1x1 casters bit-identical; documented simplification: a grazed caster cell still consumes a length slot
This commit is contained in:
@@ -7255,9 +7255,15 @@ class CombatEngine:
|
||||
else:
|
||||
origin = caster.pos
|
||||
if effect.shape == "cone":
|
||||
cells = cone_cells(self._grid, origin, aim, span_cells)
|
||||
cells = cone_cells(
|
||||
self._grid, origin, aim, span_cells,
|
||||
caster_cells=caster.occupied_cells(),
|
||||
)
|
||||
else:
|
||||
cells = line_cells(self._grid, origin, aim, span_cells)
|
||||
cells = line_cells(
|
||||
self._grid, origin, aim, span_cells,
|
||||
caster_cells=caster.occupied_cells(),
|
||||
)
|
||||
affected = [
|
||||
state
|
||||
for state in self._states
|
||||
|
||||
Reference in New Issue
Block a user