Projection functions ==================== Example: :: # Produces line projection # .................... # .................... # .@*******#.......... # .................... # .................... rlfl.project_beam(map_number, p, p1) # Produces line to ball projection # Note: ball spells are usually a combination # of beam and ball. # ........***........... # .......*****.......... # .@....*******......... # .......*****.......... # ........***........... rlfl.project_ball(map_number, p, p1, 3) # Adding the rlfl.PROJECT_SHEL flag # ........***........... # .......*...*.......... # .@....*.....*......... # .......*...*.......... # ........***........... rlfl.project_ball(map_number, p, p1, 3, rlfl.PROJECT_SHEL) # Adding the rlfl.PROJECT_SQUARE flag # ......*******......... # ......*******......... # .@....*******......... # ......*******......... # ......*******......... rlfl.project_ball(map_number, p, p1, 3, rlfl.PROJECT_SQUARE) # Adding the rlfl.PROJECT_SQUARE|rlfl.PROJECT_SHEL flag # ......*******......... # ......*.....*......... # .@....*.....*......... # ......*.....*......... # ......*******......... rlfl.project_ball(map_number, p, p1, 3, rlfl.PROJECT_SQUARE|rlfl.PROJECT_SHEL) # Adding the rlfl.PROJECT_DIAMOND flag # .........*............ # ........***........... # .@.....*****.......... # ........***........... # .........*............ rlfl.project_ball(map_number, p, p1, 2, rlfl.PROJECT_DIAMOND) # Adding the rlfl.PROJECT_DIAMOND|rlfl.PROJECT_SHEL flag # .........*............ # ........*.*........... # .@.....*...*.......... # ........*.*........... # .........*............ rlfl.project_ball(map_number, p, p1, 2, rlfl.PROJECT_DIAMOND|rlfl.PROJECT_SHEL) # Produces breath projection # .........***....... # .....********...... # .D********@**...... # .....********...... # .........***....... rlfl.project_cone(map_number, p, p1, 3) # 3 Enemys (or walls) marked with rlfl.CELL_REFL #.....R.....#........ #....*.*...*......... #...*...*.*.......... #..R.....R........... #...*................ #....@............... #.................... rlfl.project_beam(map_number, p, p1, rlfl.MAX_RANGE, rlfl.PROJECT_REFL) Projection flags ---------------- .. attribute:: rlfl.PROJECT_THRU Causes the projection to ignore walls .. attribute:: rlfl.PROJECT_STOP Causes projection to stop on first cell marked rlfl.CELL_OCUP .. attribute:: rlfl.PROJECT_PASS Causes projection not to stop at target .. attribute:: rlfl.PROJECT_SHEL Causes empty ball projection. .. attribute:: rlfl.PROJECT_SQUARE Causes a square shaped projection. .. attribute:: rlfl.PROJECT_DIAMOND Causes a diamond shaped projection. .. attribute:: rlfl.PROJECT_REFL Causes projection to bounce of cells marked CELL_REFL. Function list ------------- .. function:: rlfl.project_beam(map_number, source, target[, range, flags]) Return a beam projection as a set on tuples `(x, y)`. `range` defaults to max range. .. function:: rlfl.project_ball(map_number, source, target, radius[, range, flags]) Return a ball shaped projection as a set on tuples `(x, y)`. `range` defaults to max range. .. function:: rlfl.project_cone(map_number, source, target, radius[, range, flags]) Return a cone shaped projection as a set on tuples `(x, y)`. `range` defaults to max range.