ElixirDoom.Specials.Doors (elixir_doom v0.1.0)

Copy Markdown View Source

Starting doors: the ones a player opens by hand — the sector behind the line used, some locked to a key — and the ones a line opens or shuts by tag.

Door kinds are :normal (opens, waits, closes), :open, :close, :close_30_then_open, :raise_in_5_mins, and the fast :blaze_raise, :blaze_open and :blaze_close.

Summary

Functions

Thing id opens by hand the door behind line index, which has special special.

Start door type in every sector tagged tag that no mover has taken: {world, started?}.

Whether line special special is a door opened by hand.

A door of type waiting in sector index from the level's start, countdown tics.

Functions

by_hand(world, id, index, special)

Thing id opens by hand the door behind line index, which has special special.

by_tag(world, tag, type)

@spec by_tag(ElixirDoom.World.t(), integer(), atom()) ::
  {ElixirDoom.World.t(), boolean()}

Start door type in every sector tagged tag that no mover has taken: {world, started?}.

manual?(special)

@spec manual?(integer()) :: boolean()

Whether line special special is a door opened by hand.

timed(world, index, atom, countdown)

@spec timed(
  ElixirDoom.World.t(),
  non_neg_integer(),
  :normal | :raise_in_5_mins,
  pos_integer()
) ::
  ElixirDoom.World.t()

A door of type waiting in sector index from the level's start, countdown tics.