# RaceBannerRun

> Talos next · Since 0.7

The banner controller `banner` hands back.

## Signature

```ts
export class RaceBannerRun {
  constructor(ctx: Ctx<any, any>, options: { id?: string } = {})
  get shown(): boolean
  get kind(): string | null
  show(kind: string, options: BannerShow = {}): void
  hide(): void
  update(dt: number): void
}
```

Import: `import { RaceBannerRun } from "@argus/gameplay"`

## Members

| Member | Signature | Description |
|---|---|---|
| `constructor` | `constructor(ctx: Ctx<any, any>, options: { id?: string } = {})` | A banner controller for the `RaceBanner` node `id` (default `banner`); `banner(ctx, options)` is the same. |
| `shown` | `get shown(): boolean` | Is it up. |
| `kind` | `get kind(): string \| null` | The kind up now, or `null`. |
| `show` | `show(kind: string, options: BannerShow = {}): void` | Put a banner up: `"final-lap"`, `"wrong-way"`, `"new-record"`, or any kind with a `titleKey`. Showing the kind already up only resets its time; it does not slam in again. |
| `hide` | `hide(): void` | Take it down now. |
| `update` | `update(dt: number): void` | One tick: a timed banner comes down when its time is up. |
