-
Notifications
You must be signed in to change notification settings - Fork 17
Pawn
This page describes functions of Pawn
that have been added or changed as part of modding API.
- For a page about the
Pawn
class as defined in vanilla version of the game, see [Vanilla] Pawn - For a page about the
Pawn
class functions added by the memedit, see Pawn.
-
Board Pawn:
- ApplyDamage
- ClearUndoMove
- GetAbility
- GetMutation
- GetPilotSkill
- GetEquippedWeapons
- GetPoweredWeapons
- GetArmedWeapon
- GetQueued
- GetQueuedWeaponId
- GetQueuedWeapon
- IsArmor
- IsHighlighted
- IsIgnoreFire
- IsIgnoreSmoke
- IsIgnoreWeb
- IsMutation
- IsNeutral
- IsPilotSkill
- IsPowered
- IsWeaponEquipped
- IsWeaponPowered
- IsQueued
- MoveToBottom
- SetFire
- SetNeutral
- SetPowered
- Pawn Type
These functions are relevant to a pawn instance within the game, such as the one returned by Board:GetPawn
.
Signature: void ApplyDamage(SpaceDamage)
Applies a SpaceDamage
event directly to the pawn, without affecting the Board. This function uses SkillEffect:AddSafeDamage
under the hood.
Signature: void ClearUndoMove()
Clears the pawn's undoable flag, so that its most recent move cannot be undone by the player. Useful to prevent undo abuse with some modded weapons / move skills.
Example:
local pawn = Game:GetPawn(1) -- grab some pawn userdata reference
pawn:ClearUndoMove()
Signature: string GetAbility()
Returns the pilot skill of the pawn's pilot, or an empty string if the pawn has no pilot or the pilot has no pilot skill.
Signature: int GetMutation()
Returns the current mutation (Psion buff) of the pawn, or nil
if it has none. See: SetMutation
for more info about mutations.
Returns nil
if called while not in a mission.
Signature: string GetPilotSkill()
This function is the same as Pawn.GetAbility.
Signature: table Pawn:GetEquippedWeapons()
Returns a 2-size list containing the base ids of the pawn's primary and secondary weapons.
Example:
local pawn = Board:GetPawn(0)
local weapons = pawn:GetEquippedWeapons()
local primary = weapons[1]
local secondary = weapons[2]
LOGF("Pawn %s's equipped base weapons are %s and %s",
pawn:GetMechName(),
tostring(primary),
tostring(secondary)
)
Signature: table Pawn:GetPoweredWeapons()
Returns a list containing the upgraded ids of the pawn's powered primary and secondary weapons.
Example:
local pawn = Board:GetPawn(0)
local weapons = pawn:GetPoweredWeapons()
local weapon1 = weapons[1]
local weapon2 = weapons[2]
LOGF("Pawn %s's powered weapons are %s and %s",
pawn:GetMechName(),
tostring(weapon1),
tostring(weapon2)
)
Signature: string Pawn:GetArmedWeapon()
Returns the base skill id of the pawn's armed weapon, or nil
if no weapon is armed.
Example:
local pawn = Board:GetPawn(0)
LOGF("Pawn %s is currently arming %s",
pawn:GetMechName(),
tostring(pawn:GetArmedWeapon())
)
Signature: table GetQueued()
Returns a table
of data containing information about the pawn's current queued attack.
Returns nil
if the pawn has not queued an attack.
Returns nil
if called while not in a mission.
Returned table:
Table field | Type | Description |
---|---|---|
piOrigin | Point | Origin of pawn |
piTarget | Point | Unknown. More testing needed |
piQueuedShot | Point | Target tile of attack |
iQueuedSkill | int | index of Skill being queued |
Signature: string Pawn:GetQueuedWeapon()
Returns the internal name of the pawn's queued weapon, or nil
if it has no weapon queued.
Example:
local pawn = Board:GetPawn(0)
local weapon = pawn:GetQueuedWeapon()
LOGF("Pawn %s has weapon %s queued",
pawn:GetMechName(),
tostring(weapon)
)
Signature: string Pawn:GetQueuedWeaponId()
Returns the weapon index (generally 1
or 2
) of a pawn's queued weapon, or -1
if it has no weapon queued.
index | skill |
---|---|
-1 | None |
0 | Move |
1 | Primary Weapon |
2 | Secondary Weapon |
50 | Repair Skill |
Example:
local pawn = Board:GetPawn(0)
local weaponIndex = pawn:GetQueuedWeaponId()
LOGF("Pawn %s has weapon index %s queued",
pawn:GetMechName(),
tostring(weaponIndex)
)
Signature: boolean IsArmor()
Returns true
if a pawn has armor. false
otherwise.
Signature: boolean IsHighlighted()
Returns true
if the pawn is highlighted, otherwise false
.
Returns nil
if called while not in a mission.
Signature: boolean IsIgnoreFire()
Returns true
if the pawn is immune to fire, otherwise false
.
Signature: boolean IsIgnoreSmoke()
Returns true
if the pawn ignores smoke, otherwise false
.
Signature: boolean IsIgnoreWeb()
Returns true
if the pawn is immune to being webbed, otherwise false
.
Signature: boolean IsMutation(int)
Returns true
if a pawn has the specific mutation (Psion buff). false
otherwise. See: SetMutation
for more info about mutations.
Returns nil
if called while not in a mission.
Signature: boolean IsNeutral()
Returns true
if the pawn is neutral. false
otherwise.
Returns nil
if called while not in a mission.
Signature: boolean IsPilotSkill(string)
Returns true
if the pawn has a pilot with the specified pilot skill. false
otherwise.
This function is the same as Pawn.IsAbility
.
Signature: boolean IsPowered()
Returns true
if the pawn is powered and able to act. false
otherwise.
Returns nil
if called while not in a mission.
Signature: boolean IsQueued()
Returns true
if a pawn has queued up an attack. false
otherwise.
Signature: boolean Pawn:IsWeaponEquipped(baseWeapon)
Argument name | Type | Description |
---|---|---|
baseWeapon | string | The base skill to check |
Returns true
if the pawn is equipped with a weapon with base type baseWeapon. false
otherwise.
Example:
local pawn = Board:GetPawn(0)
local skill = "Prime_Punchmech"
LOGF("Pawn %s is equipped with %s is %s",
pawn:GetMechName(),
skill,
tostring(pawn:IsWeaponEquipped(skill)),
)
Signature: boolean Pawn:IsWeaponPowered(weapon)
Argument name | Type | Description |
---|---|---|
weapon | string | The skill to check |
Returns true
if the pawn has powered a weapon of type weapon or a less powered variant of it. false
otherwise.
Example:
If a pawn has powered Prime_Punchmech_A
, the following table shows the results of this method based on the input weapon
:
weapon | result |
---|---|
Prime_Punchmech | true |
Prime_Punchmech_A | true |
Prime_Punchmech_B | false |
Prime_Punchmech_AB | false |
Signature: void Pawn:MoveToBottom()
Tiles can contain multiple units (if you spawn a pawn on an occupied tile or use SetSpace to move a pawn to an occupied space). This moves a unit to the "bottom" of a tile, which makes it the unit that ets affected by anything that only affects a single unit on a tile.
Signature: void SetFire(boolean)
Setting this to true
applies fire to the pawn. Setting to false
removes it.
Signature: void SetNeutral(boolean)
Behaves the same way as vanilla SetNeutral
, except saves the game immediately if the operation succeeds.
Signature: void SetPowered(boolean)
Behaves the same way as vanilla SetPowered
, except saves the game immediately if the operation succeeds.
These functions and fields are relevant to a pawn type class created on initialization, such as the mech pawn classes.
Field containing a move Skill
object to use for this pawn. Whenever the pawn moves, this skill will be called instead of the default logic.
The skill can contain a GetTargetArea
and a GetSkillEffect
function, which will be called at the relevant times. Note that due to a modding limitation, GetTargetArea
is not called on hovering over the pawn, but will be properly called once the pawn is selected.
Also note that this does not work for enemy pawns; the MoveSkill field is completely ignored. One possible workaround, depending on your intent, is to use GetWeapon; it returns the index of the weapon the pawn will use (always 1, except for the Bot Leader, who can heal itself). GetWeapon is ran before movement exactly once, so you can use it to trigger effects as long as you make it return 1.