Constructor


Battler(x: number?, y: number?, width: number?, height: number?)

Arguments:

x: number?
y: number?
width: number?
height: number?




Methods


Battler:alert(duration: number?, options: (table|"callback"|"layer"|"offset_x"|"offset_y"...(+2))?)

Creates an alert bubble (tiny !) above this battler.

@param duration — The number of frames to show the bubble for. (Defaults to 20)

@param options — A table defining additional properties to control the bubble.

options:
    | "play_sound" -- Whether the alert sound will be played. (Defaults to `true`)
    | "sprite" -- The sprite to use for the alert bubble. (Defaults to `"effects/alert"`)
    | "offset_x" -- The x-offset of the icon.
    | "offset_y" -- The y-offset of the icon.
    | "layer" -- The layer to put the icon on. (Defaults to `100`)
    | "callback" -- A callback that is run when the alert finishes.

Arguments:

duration: number?

The number of frames to show the bubble for. (Defaults to 20)

options: (table|"callback"|"layer"|"offset_x"|"offset_y"...(+2))?

A table defining additional properties to control the bubble.

Returns:

1: Sprite


Battler:flash(sprite: Sprite?, offset_x: number?, offset_y: number?, layer: number?)

Makes the battler flash once.

@param sprite — An optional sprite to use for the flash instead of the battler's default sprite.

Arguments:

sprite: Sprite?

An optional sprite to use for the flash instead of the battler's default sprite.

offset_x: number?
offset_y: number?
layer: number?

Returns:

1: FlashFade


Battler:getActiveSprite()

Returns the active sprite, out of the battler's main and overlay sprite.

Returns:

1: ActorSprite?


Battler:onBubbleRemove(bubble: SpeechBubble)

(Override) Called whenever a speech bubble is removed for this battler.

Arguments:

bubble: SpeechBubble


Battler:onBubbleSpawn(bubble: SpeechBubble)

(Override) Called whenever a speech bubble is created for this battler.

Arguments:

bubble: SpeechBubble


Battler:recruitMessage(x: number, y: number, type: string)

(Called internally) Creates a RECRUIT message for when an enemy is spared and recruit progression advances

Arguments:

x: number
y: number
type: string

Returns:

1: RecruitMessage


Battler:setActor(actor: string|Actor, use_overlay: boolean?)

Sets the actor used for this battler.

@param actor — The id or instance of the Actor to set on this battler.

@param use_overlay — Whether to use the overlay sprite system (Defaults to true)

Arguments:

actor: string|Actor

The id or instance of the Actor to set on this battler.

use_overlay: boolean?

Whether to use the overlay sprite system (Defaults to true)



Battler:setAnimation(animation: string|table, callback: fun( any)?)

Arguments:

animation: string|table
callback: fun( any)?

Returns:

1: boolean


Battler:setCustomSprite(sprite: string?, ox: number?, oy: number?, speed: number?, loop: boolean?, after: fun( any)?)

Shorthand for calling ActorSprite:setCustomSprite() and then ActorSprite:play()

Arguments:

sprite: string?
ox: number?
oy: number?
speed: number?
loop: boolean?
after: fun( any)?


Battler:sparkle(r: number?, g: number?, b: number?)

Creates sparkles around the battler (these appear by default when the battler receives healing)

Arguments:

r: number?
g: number?
b: number?


Battler:spawnSpeechBubble(text: string|string[], options: (table|"actor"|"after"|"font"|"line_callback"...(+2))?)

Creates a speech bubble for this battler.

@param text — The text to display in the speech bubble. Can be a table defining multiple lines.

@param options — A table defining additional properties to control the speech bubble:

options:
    | "style" -- The dialogue bubble style to use (Defaults to [`Battler.dialogue_bubble`](file:///vercel/path0/tmp/kristal/src/engine/game/battle/battler.lua#19))
    | "right" -- Whether the dialogue bubble should appear to the right of the battler (Defaults to `false`)
    | "font" -- The font to use for the speech bubble
    | "actor" -- The actor to use for the speech bubble
    | "after" -- A callback that will be run after the dialogue is finished
    | "line_callback" -- A callback that will be run after each line of dialogue is advanced

Arguments:

text: string|string[]

The text to display in the speech bubble. Can be a table defining multiple lines.

options: (table|"actor"|"after"|"font"|"line_callback"...(+2))?

A table defining additional properties to control the speech bubble:

Returns:

1: SpeechBubble


Battler:statusMessage(x: number?, y: number?, type: (string|"damage"|"mercy"|"msg")?, arg: any, color: table?, kill: boolean?)

Creates a status text on the battler.
Used for information such as damage numbers, being downed, or missing a hit

@param x — The x-coordinate the message should appear at, relative to the battler.

@param y — The y-coordinate the message should appear at, relative to the battler.

@param type — The type of message to display:

@param arg — An additional argument which depends on what type is set to:

@param color — The color used to draw the status message, defaulting to white

@param kill — Whether this status should cause all other statuses to disappear.

type:
    | "mercy" -- Indicates that the message will be a mercy number
    | "damage" -- Indicates that the message will be a damage number
    | "msg" -- Indicates that the message will use a unique sprite, such as MISS or DOWN text

arg:
    | "mercy" -- The amount of mercy added
    | "damage" -- The amount of damage dealt
    | "msg" -- The path to the sprite, relative to `ui/battle/message`, to use

Arguments:

x: number?

The x-coordinate the message should appear at, relative to the battler.

y: number?

The y-coordinate the message should appear at, relative to the battler.

type: (string|"damage"|"mercy"|"msg")?

The type of message to display:

arg: any

An additional argument which depends on what type is set to:

color: table?

The color used to draw the status message, defaulting to white

kill: boolean?

Whether this status should cause all other statuses to disappear.

Returns:

1: DamageNumber


Battler:toggleOverlay(overlay: boolean?)

Toggles the visibility of the overlay sprite versus main sprite.

@param overlay — Whether the overlay should be visible. If unset, will invert whatever the current visibility state is.

Arguments:

overlay: boolean?

Whether the overlay should be visible. If unset, will invert whatever the current visibility state is.






Fields



Battler.alert_callback: fun()?

Internal variable used to store a callback for after an alert, if set.


Battler.alert_icon: Sprite?

Internal variable used to store the battler's overhead alert icon.


Battler.alert_timer: number

Internal timer variable for the battler's overhead alert icon.


Battler.dialogue_bubble: string?

The bubble style used for the battler. Defaults to "round" or "cyber", depending on chapter.


Battler.dialogue_offset: [number, number]

The offset of the dialogue bubble from its default position.


Battler.flash_timer: number

Internal timer variable for the battler's selected flash.


Battler.highlight: ColorMaskFX

An instance of a white ColorMaskFX, used for the white flash when the battler is selected in a menu.


Battler.hit_count: number

The number of times the battler has been hit recently, used for the stacking effect of damage numbers.


Battler.last_highlighted: boolean

Internal variable used to determine whether the battler was highlighted last frame.


Battler.overlay_sprite: ActorSprite?

An overlay sprite being used by this battler - special animations such as being hurt or downed take place on this sprite as to preserve the main sprite's animation cycle afterwards.


Battler.sprite: ActorSprite?

The main sprite being used by this battler.



Undocumented



Battler.actor: unknown

Actors are a type of data class that represent the visuals of a character - anything that is some type of character, be it the player, an NPC, or an enemy in battle, it will require an actor.
As a data class, actors are stored in scripts/data/actors/, and extend this class. Their filepath starting from here becomes their id, unless an id is specified as an argument to Class().



Battler.actor: Actor

Actors are a type of data class that represent the visuals of a character - anything that is some type of character, be it the player, an NPC, or an enemy in battle, it will require an actor.
As a data class, actors are stored in scripts/data/actors/, and extend this class. Their filepath starting from here becomes their id, unless an id is specified as an argument to Class().