fn resolve_selection(
selection: ExecutableSelection,
state: TargetProgramState,
explicit_target: EnemyIdx,
geometry: EffectGeometry,
rng: Option<&mut dyn FnMut() -> f64>,
) -> Result<ResolvedTargetShape, TargetShapeError>fn resolve_selection(
selection: ExecutableSelection,
state: TargetProgramState,
explicit_target: EnemyIdx,
geometry: EffectGeometry,
rng: Option<&mut dyn FnMut() -> f64>,
) -> Result<ResolvedTargetShape, TargetShapeError>