mini_arcade_core.scenes.systems.builtins.bomberman¶
Reusable arena bomb/explosion helpers for Bomberman-style games.
Classes¶
Common arena tile kinds for bomb-based grid games. |
|
Mutable bomb metadata stored in a bomb field. |
|
Dense bomb occupancy keyed by cell. |
|
Mutable active explosion metadata for one cell. |
|
Dense active explosion occupancy keyed by cell. |
|
Declarative bomb placement rule. |
|
Place bombs onto walkable floor cells when rules allow. |
|
Declarative fuse ticking and detonation rule. |
|
Tick bomb fuses and emit detonation callbacks when they expire. |
|
Declarative active-explosion lifetime rule. |
|
Tick active explosion cells until they expire. |
|
Declarative bomb chain-reaction rule. |
|
Trigger bombs early when an active explosion reaches them. |
|
Declarative breakable-tile destruction rule. |
|
Destroy breakable tiles touched by active explosion cells. |
|
Declarative explosion hazard collision rule. |
|
Invoke callbacks for targets occupying active hazard cells. |
Functions¶
Build a common arena tile map from ASCII rows. |
|
|
Return whether an arena tile can be entered by a player/enemy. |
|
Compute explosion coverage from one bomb origin. |
Populate explosion cells from one bomb and return covered cells. |
Module Contents¶
- class mini_arcade_core.scenes.systems.builtins.bomberman.ArenaTile[source]¶
Bases:
str,enum.EnumCommon arena tile kinds for bomb-based grid games.
- FLOOR = 'floor'¶
- SOLID = 'solid'¶
- BREAKABLE = 'breakable'¶
- SPAWN = 'spawn'¶
- VOID = 'void'¶
- mini_arcade_core.scenes.systems.builtins.bomberman.arena_tile_map_from_strings(*rows: str) mini_arcade_core.scenes.systems.builtins.maze.TileMap[ArenaTile][source]¶
Build a common arena tile map from ASCII rows.
- mini_arcade_core.scenes.systems.builtins.bomberman.is_walkable_arena_tile(tile: ArenaTile | None) bool[source]¶
Return whether an arena tile can be entered by a player/enemy.
- class mini_arcade_core.scenes.systems.builtins.bomberman.BombState[source]¶
Mutable bomb metadata stored in a bomb field.
- fuse_seconds: float = 2.0¶
- blast_range: int = 2¶
- owner_id: int | None = None¶
- payload: Any = None¶
- class mini_arcade_core.scenes.systems.builtins.bomberman.BombField[source]¶
Dense bomb occupancy keyed by cell.
- bomb_at(cell: mini_arcade_core.scenes.systems.builtins.grid.GridCoord) BombState | None[source]¶
Return the bomb currently occupying one cell, if any.
- occupied_cells() tuple[mini_arcade_core.scenes.systems.builtins.grid.GridCoord, Ellipsis][source]¶
Return every cell that currently contains a bomb.
- remove(cell: mini_arcade_core.scenes.systems.builtins.grid.GridCoord) BombState | None[source]¶
Remove and return the bomb at one cell, if present.
- class mini_arcade_core.scenes.systems.builtins.bomberman.ExplosionCellState[source]¶
Mutable active explosion metadata for one cell.
- ttl_seconds: float¶
- owner_id: int | None = None¶
- origin: mini_arcade_core.scenes.systems.builtins.grid.GridCoord | None = None¶
- payload: Any = None¶
- class mini_arcade_core.scenes.systems.builtins.bomberman.ExplosionField[source]¶
Dense active explosion occupancy keyed by cell.
- cell_at(cell: mini_arcade_core.scenes.systems.builtins.grid.GridCoord) ExplosionCellState | None[source]¶
Return the explosion metadata for one cell, if active.
- active_cells() tuple[mini_arcade_core.scenes.systems.builtins.grid.GridCoord, Ellipsis][source]¶
Return the cells currently covered by an active explosion.
- set_or_refresh(cell: mini_arcade_core.scenes.systems.builtins.grid.GridCoord, *, ttl_seconds: float, owner_id: int | None = None, origin: mini_arcade_core.scenes.systems.builtins.grid.GridCoord | None = None, payload: Any = None) ExplosionCellState[source]¶
Create or refresh the active explosion metadata for one cell.
- tick(dt: float) tuple[mini_arcade_core.scenes.systems.builtins.grid.GridCoord, Ellipsis][source]¶
Advance explosion lifetimes and return the cells that expired.
- mini_arcade_core.scenes.systems.builtins.bomberman.blast_cells(tile_map: mini_arcade_core.scenes.systems.builtins.maze.TileMap[ArenaTile], origin: mini_arcade_core.scenes.systems.builtins.grid.GridCoord, *, blast_range: int) tuple[mini_arcade_core.scenes.systems.builtins.grid.GridCoord, Ellipsis][source]¶
Compute explosion coverage from one bomb origin.
- mini_arcade_core.scenes.systems.builtins.bomberman.spawn_explosion_from_bomb(explosions: ExplosionField, tile_map: mini_arcade_core.scenes.systems.builtins.maze.TileMap[ArenaTile], bomb: BombState, *, ttl_seconds: float) tuple[mini_arcade_core.scenes.systems.builtins.grid.GridCoord, Ellipsis][source]¶
Populate explosion cells from one bomb and return covered cells.
- class mini_arcade_core.scenes.systems.builtins.bomberman.BombPlacementBinding[source]¶
Bases:
Generic[TCtx]Declarative bomb placement rule.
- placement_cell_getter: Callable[[TCtx], mini_arcade_core.scenes.systems.builtins.grid.GridCoord]¶
- tile_map_getter: Callable[[TCtx], mini_arcade_core.scenes.systems.builtins.maze.TileMap[ArenaTile]]¶
- build_bomb: Callable[[TCtx, mini_arcade_core.scenes.systems.builtins.grid.GridCoord], BombState]¶
- class mini_arcade_core.scenes.systems.builtins.bomberman.BombPlacementSystem[source]¶
Bases:
Generic[TCtx]Place bombs onto walkable floor cells when rules allow.
- name: str = 'common_bomb_placement'¶
- phase: int¶
- order: int = 24¶
- bindings: tuple[BombPlacementBinding[TCtx], Ellipsis] = ()¶
- class mini_arcade_core.scenes.systems.builtins.bomberman.BombFuseBinding[source]¶
Bases:
Generic[TCtx]Declarative fuse ticking and detonation rule.
- class mini_arcade_core.scenes.systems.builtins.bomberman.BombFuseSystem[source]¶
Bases:
Generic[TCtx]Tick bomb fuses and emit detonation callbacks when they expire.
- name: str = 'common_bomb_fuse'¶
- phase: int¶
- order: int = 32¶
- bindings: tuple[BombFuseBinding[TCtx], Ellipsis] = ()¶
- class mini_arcade_core.scenes.systems.builtins.bomberman.ExplosionLifetimeBinding[source]¶
Bases:
Generic[TCtx]Declarative active-explosion lifetime rule.
- explosions_getter: Callable[[TCtx], ExplosionField]¶
- on_expired: Callable[[TCtx, tuple[mini_arcade_core.scenes.systems.builtins.grid.GridCoord, Ellipsis]], None] | None = None¶
- class mini_arcade_core.scenes.systems.builtins.bomberman.ExplosionLifetimeSystem[source]¶
Bases:
Generic[TCtx]Tick active explosion cells until they expire.
- name: str = 'common_explosion_lifetime'¶
- phase: int¶
- order: int = 38¶
- bindings: tuple[ExplosionLifetimeBinding[TCtx], Ellipsis] = ()¶
- class mini_arcade_core.scenes.systems.builtins.bomberman.ChainReactionBinding[source]¶
Bases:
Generic[TCtx]Declarative bomb chain-reaction rule.
- explosions_getter: Callable[[TCtx], ExplosionField]¶
- class mini_arcade_core.scenes.systems.builtins.bomberman.ChainReactionSystem[source]¶
Bases:
Generic[TCtx]Trigger bombs early when an active explosion reaches them.
- name: str = 'common_chain_reaction'¶
- phase: int¶
- order: int = 34¶
- bindings: tuple[ChainReactionBinding[TCtx], Ellipsis] = ()¶
- class mini_arcade_core.scenes.systems.builtins.bomberman.DestructibleTileBinding[source]¶
Bases:
Generic[TCtx]Declarative breakable-tile destruction rule.
- tile_map_getter: Callable[[TCtx], mini_arcade_core.scenes.systems.builtins.maze.TileMap[ArenaTile]]¶
- explosions_getter: Callable[[TCtx], ExplosionField]¶
- on_destroyed: Callable[[TCtx, mini_arcade_core.scenes.systems.builtins.grid.GridCoord], None] | None = None¶
- class mini_arcade_core.scenes.systems.builtins.bomberman.DestructibleTileSystem[source]¶
Bases:
Generic[TCtx]Destroy breakable tiles touched by active explosion cells.
- name: str = 'common_destructible_tiles'¶
- phase: int¶
- order: int = 36¶
- bindings: tuple[DestructibleTileBinding[TCtx], Ellipsis] = ()¶
- class mini_arcade_core.scenes.systems.builtins.bomberman.HazardCollisionBinding[source]¶
Bases:
Generic[TCtx]Declarative explosion hazard collision rule.
- hazard_cells_getter: Callable[[TCtx], Iterable[mini_arcade_core.scenes.systems.builtins.grid.GridCoord]]¶
- target_cell_getter: Callable[[TCtx, object], mini_arcade_core.scenes.systems.builtins.grid.GridCoord]¶
- on_hit: Callable[[TCtx, object, mini_arcade_core.scenes.systems.builtins.grid.GridCoord], None]¶