shrike/enemies/__init__.pyΒΆ
Part of SHRIKE.
1"""SHRIKE's hostiles: shared steering, the enemy base, and the archetypes.
2
3``steering`` holds the flow field every enemy navigates with and the
4:class:`~shrike.enemies.steering.Enemy` base that owns hull points, the elite
5tag and the universal white telegraph flash. ``basic`` holds the four common
6archetypes; the support and stand-off ones live in ``advanced``.
7
8The telegraph is the rule the whole roster obeys: an enemy flashes white for
9``balance.ENEMY_FIRE_TELEGRAPH_S`` before every attack, so white on screen
10always means "something is about to happen here" and never anything else.
11"""
12
13from .advanced import Bombardier, Herald, HeraldFlight, HuskTurret, Screamer, Welder, apply_elite, spawn_herald_flight
14from .basic import Lancer, MagMine, MiteShoal, Skimmer
15from .steering import (
16 DEFAULT_FIELD_BOUNDS,
17 FLOW_CELL_SIZE,
18 FLOW_FIELD_GROUP,
19 TELEGRAPH_COLOUR,
20 Enemy,
21 FlowField,
22 FlowFieldDirector,
23 limit,
24 seek,
25 separation,
26 shared_flow_field,
27)
28
29__all__ = [
30 "DEFAULT_FIELD_BOUNDS",
31 "FLOW_CELL_SIZE",
32 "FLOW_FIELD_GROUP",
33 "TELEGRAPH_COLOUR",
34 "Bombardier",
35 "Enemy",
36 "FlowField",
37 "FlowFieldDirector",
38 "Herald",
39 "HeraldFlight",
40 "HuskTurret",
41 "Lancer",
42 "MagMine",
43 "MiteShoal",
44 "Screamer",
45 "Skimmer",
46 "Welder",
47 "apply_elite",
48 "limit",
49 "seek",
50 "separation",
51 "shared_flow_field",
52 "spawn_herald_flight",
53]