Battler

┗> Object > Class


The base class for participants in battles. This class defines shared logic between types of Battler, but is not used on its own.
See EnemyBattler or PartyBattler depending on which you are working with, as well as this object.


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:healEffect(r: number?, g: number?, b: number?)

Creates a standard "healing effect" (flash, sparkles).

Arguments:

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


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?, delay: number?)

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.

@param delay — The number of frames before this message first appears

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.

delay: number?

The number of frames before this message first appears

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().