Trigger API Reference DCEI Functions Unit0 - funovus/editor-wiki GitHub Wiki
Table of Contents
- [Trigger API Reference\DCEI Functions\Unit (1/3)](#trigger-api-referencedcei-functionsunit-13)
* [unit CreateUnitFilter(UnitFilter filter)](#unit-createunitfilterunitfilter-filter)
* [unit CreateUnit(int teamId, int playerId, string unitType, float x, float z, float dx, float dz)](#unit-createunitint-teamid-int-playerid-string-unittype-float-x-float-z-float-dx-float-dz)
* [void KillUnit(unit unit)](#void-killunitunit-unit)
* [void RemoveUnit(unit unit)](#void-removeunitunit-unit)
* [void RemoveUnitSync(unit unit)](#void-removeunitsyncunit-unit)
* [string GetUnitType(unit unit)](#string-getunittypeunit-unit)
* [double GetUnitTypeHealth(string unitType)](#double-getunittypehealthstring-unittype)
* [string GetUnitDisplayName(unit unit)](#string-getunitdisplaynameunit-unit)
* [string GetUnitCategory(unit unit)](#string-getunitcategoryunit-unit)
* [void Move(unit unit, float x, float z)](#void-moveunit-unit-float-x-float-z)
* [void Attack(unit unit, unit target)](#void-attackunit-unit-unit-target)
* [void DirectionalMove(unit target, float right, float up)](#void-directionalmoveunit-target-float-right-float-up)
* [void TurnUnitTowards(unit unit, float dx, float dz, float duration)](#void-turnunittowardsunit-unit-float-dx-float-dz-float-duration)
* [float GetHealth(unit unit)](#float-gethealthunit-unit)
* [void AddHealth(unit unit, float value)](#void-addhealthunit-unit-float-value)
* [void SetHealth(unit unit, float value)](#void-sethealthunit-unit-float-value)
* [void SetUnitOwner(unit unit, int playerId)](#void-setunitownerunit-unit-int-playerid)
* [void SetUnitTeamId(unit unit, int teamId)](#void-setunitteamidunit-unit-int-teamid)
* [float GetMana(unit unit)](#float-getmanaunit-unit)
* [void AddMana(unit unit, float value)](#void-addmanaunit-unit-float-value)
* [void SetMana(unit unit, float value)](#void-setmanaunit-unit-float-value)
* [Float2 GetUnitFacing2D(unit unit)](#float2-getunitfacing2dunit-unit)
* [float GetUnitBounty(unit unit)](#float-getunitbountyunit-unit)
* [object GetUnitBehaviorList(unit unit)](#object-getunitbehaviorlistunit-unit)
* [object GetUnitWeaponList(unit unit)](#object-getunitweaponlistunit-unit)
* [object GetUnitAbilityList(unit unit)](#object-getunitabilitylistunit-unit)
* [void ApplyTag(unit unit, string tagName, float duration, int stackCount)](#void-applytagunit-unit-string-tagname-float-duration-int-stackcount)
* [void RemoveTag(unit unit, string tagName, int stackCount)](#void-removetagunit-unit-string-tagname-int-stackcount)
* [int GetUnitTagCount(unit unit, string tagName)](#int-getunittagcountunit-unit-string-tagname)
* [object GetUnitTagList(unit unit)](#object-getunittaglistunit-unit)
|
Trigger API Reference\DCEI Functions\Unit (1/3) {Trigger-API-ReferenceDCEI-FunctionsUnit-13}
unit CreateUnitFilter(UnitFilter filter)
Create a unit with the unit filter.
local unit_filter = DCEI.CreateUnitFilter({team = 1, name = "Standard MeleeUnit"})
unit CreateUnit(int teamId, int playerId, string unitType, float x, float z, float dx, float dz) {unit-CreateUnitint-teamId-int-playerId-string-unitType-float-x-float-z-float-dx-float-dz}
unit CreateUnit(int teamId, int playerId, string unitType, float x, float z, float dx, float dz)
Creates a unit at the specified location using default facing.
-
int
teamId
which team to create the unit for. Use1
for local player and-1
for enemy. -
int
playerId
which player to create the unit for. Use1
for local player and-1
for enemy. -
string
unitTypeName
the unit type to create. -
float
x
the x coordinate of where to create the unit. -
float
z
the y coordinate of where to create the unit.
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, z = 16, 16
DCEI.CreateUnit(team_id, player_id, unit_type, x, z)
void KillUnit(unit unit)
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, y = 16, 16
local unit = DCEI.CreateUnit(team_id, player_id, unit_type, x, y)
DCEI.KillUnitAsync(unit)
void RemoveUnit(unit unit)
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, z = 16, 16
local unit = DCEI.CreateUnit(team_id, player_id, unit_type, x, z)
DCEI.RemoveUnit(unit)
void RemoveUnitSync(unit unit)
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, z = 16, 16
local unit = DCEI.CreateUnit(team_id, player_id, unit_type, x, z)
DCEI.RemoveUnitSync(unit)
string GetUnitType(unit unit)
Returns the unit name as a string.
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, y = 16, 16
local unit = DCEI.CreateUnit(team_id, player_id, unit_type, x, y)
local unit_name = DCEI.UnitName(unit)
-- prints "Standard MeleeUnit
DCEI.LogMessage(unit_name)
double GetUnitTypeHealth(string unitType)
Returns the maximum health for a unit type.
local unit_type = "Standard MeleeUnit"
local health = DCEI.GetUnitTypeHealth(unit_type)
DCEI.LogMessage(health)
string GetUnitDisplayName(unit unit)
Returns the Display Name of a unit as a string.
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, y = 16, 16
local unit = DCEI.CreateUnit(team_id, player_id, unit_type, x, y)
local display_name = DCEI.UnitDisplayName(unit)
DCEI.LogMessage(display_name)
string GetUnitCategory(unit unit)
Returns the unit category of a unit as a string (Unit, Missile, or Structure).
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, y = 16, 16
local unit = DCEI.CreateUnit(team_id, player_id, unit_type, x, y)
local unit_category = DCEI.UnitType(unit)
-- prints "Unit"
DCEI.LogMessage(unit_category)
void Move(unit unit, float x, float z)
Issues an order for a unit to move to a target point.
-
unit
target
the unit to issue the order to. -
float
x
the x-axis coordinate to move towards. -
float
z
the z-axis coordinate to move towards.
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, y = 16, 16
local unit = DCEI.CreateUnit(team_id, player_id, unit_type, x, y)
DCEI.TriggerAddUnitMoveCommandEvent(unit, OnUnitMoveCommand)
function OnUnitMoveCommand(destination)
local unit = DCEI.TriggeringUnit
local unit_name = DCEI.UnitName(unit)
local position = DCEI.GetUnitPosition2D(unit)
local message = string.format("%q is moving to (%.2f, %.2f) from (%.2f, %.2f).", unit_name, destination.x, destination.y, position.x, position.y)
DCEI.LogMessage(message)
end
DCEI.Move(unit, 15, 15)
void Attack(unit unit, unit target)
Issues an order for a unit to attack another unit, causing it to move to get in range if necessary.
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, y = 16, 16
local unit = DCEI.CreateUnit(team_id, player_id, unit_type, x, y)
local target = DCEI.CreateUnit(team_id, player_id, unit_type, x + 1, y + 1)
DCEI.Attack(unit, target)
void DirectionalMove(unit target, float right, float up) {void-DirectionalMoveunit-target-float-right-float-up}
void DirectionalMove(unit target, float right, float up)
Issues an order for the unit to move in a specified direction.
Notes: The unit will not attempt to navigate around units or obstacles when using Directional Move. This function only runs for a single frame. To have the unit continue to move in a specific direction, this function must be run each frame. This useful for games with that use WASD or joystick movement to control units.
-
unit
unit
the unit to issue the move order to. -
float
right
a value between -1.0 and 1.0 that indicates the relative speed and direction to move along the x-axis. -
float
up
a value between -1.0 and 1.0 that indicates the relative speed and direction to move along the y-axis.
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, y = 16, 16
local unit = DCEI.CreateUnit(team_id, player_id, unit_type, x, y)
function OnJoystickMove()
local axes = DCEI.TriggeringJoystickAxes
-- order unit to move in direction of joystick axes
DCEI.LogMessage("(" .. axes.x .. ", " .. axes.y .. ")")
DCEI.DirectionalMove(unit, axes.x, axes.y)
end
DCEI.TriggerAddJoystickEvent(OnJoystickMove)
void TurnUnitTowards(unit unit, float dx, float dz, float duration) {void-TurnUnitTowardsunit-unit-float-dx-float-dz-float-duration}
void TurnUnitTowards(unit unit, float dx, float dz, float duration)
Turns a unit to face towards a specified direction.
-
unit
unit
the unit to turn. -
float
right
a value between -1.0 and 1.0 that indicates the relative direction to face along the x-axis. -
float
up
a value between -1.0 and 1.0 that indicates the relative direction at to face along y-axis.
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, y = 16, 16
local unit = DCEI.CreateUnit(team_id, player_id, unit_type, x, y)
-- Make the unit face southwest
DCEI.TurnUnitTowards(unit, -1.0,-1.0, 3.0)
float GetHealth(unit unit)
Returns the current health of a unit.
DCEI.TriggerAddTimerEventElapsed(function()
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, y = 16, 16
local unit = DCEI.CreateUnit(team_id, player_id, unit_type, x, y)
DCEI.Wait(1)
DCEI.SetHealth(unit, 5)
DCEI.SetMaxHealth(unit, 30)
local hp = DCEI.GetHealth(unit)
local max_hp = DCEI.GetMaxHealth(unit)
DCEI.LogMessage(unit_type .. " has " .. hp .. "/" .. max_hp .. " hp currently.")
DCEI.AddHealth(unit, 10)
hp = DCEI.GetHealth(unit)
DCEI.LogMessage(unit_type .. " has " .. hp .. "/" .. max_hp .. " hp currently.")
end,
0)
void AddHealth(unit unit, float value)
Increases the current health of a unit.
DCEI.TriggerAddTimerEventElapsed(function()
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, y = 16, 16
local unit = DCEI.CreateUnit(team_id, player_id, unit_type, x, y)
DCEI.Wait(1)
DCEI.SetHealth(unit, 5)
DCEI.SetMaxHealth(unit, 30)
local hp = DCEI.GetHealth(unit)
DCEI.LogMessage(unit_type .. " has " .. hp .. " hp currently.")
DCEI.AddHealth(unit, 10)
hp = DCEI.GetHealth(unit)
DCEI.LogMessage(unit_type .. " has " .. hp .. " hp currently.")
end,
0)
void SetHealth(unit unit, float value)
Sets the current health of a unit.
DCEI.TriggerAddTimerEventElapsed(function()
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, y = 16, 16
local unit = DCEI.CreateUnit(team_id, player_id, unit_type, x, y)
DCEI.Wait(1)
DCEI.SetHealth(unit, 5)
DCEI.SetMaxHealth(unit, 30)
local hp = DCEI.GetHealth(unit)
local max_hp = DCEI.GetMaxHealth(unit)
DCEI.LogMessage(unit_type .. " has " .. hp .. "/" .. max_hp .. " hp currently.")
DCEI.AddHealth(unit, 10)
hp = DCEI.GetHealth(unit)
DCEI.LogMessage(unit_type .. " has " .. hp .. "/" .. max_hp .. " hp currently.")
end,
0)
void SetUnitOwner(unit unit, int playerId)
function OnRegionEnter()
DCEI.SetUnitOwner(DCEI.TriggeringUnit, 2)
DCEI.LogMessage(DCEI.UnitPlayerId(DCEI.TriggeringUnit))
end
DCEI.TriggerAddUnitEnterRegionEvent(DCEI.UnitAny, DCEI.RegionAny, OnRegionEnter)
void SetUnitTeamId(unit unit, int teamId)
function OnRegionEnter()
DCEI.SetUnitTeamId(DCEI.TriggeringUnit, 2)
DCEI.LogMessage(DCEI.UnitTeamId(DCEI.TriggeringUnit))
end
DCEI.TriggerAddUnitEnterRegionEvent(DCEI.UnitAny, DCEI.RegionAny, OnRegionEnter)
float GetMana(unit unit)
Returns the current mana of a unit.
DCEI.TriggerAddTimerEventElapsed(function()
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, y = 16, 16
local unit = DCEI.CreateUnit(team_id, player_id, unit_type, x, y)
DCEI.Wait(1)
DCEI.SetMaxMana(unit, 20)
DCEI.SetMana(unit, 5)
local mana = DCEI.GetMana(unit)
local max_mana = DCEI.GetMaxMana(unit)
DCEI.LogMessage(unit_type .. " has " .. mana .. "/" .. max_mana .. " mana currently.")
DCEI.AddMana(unit, 10)
mana = DCEI.GetMana(unit)
DCEI.LogMessage(unit_type .. " has " .. mana .. "/" .. max_mana .. " mana currently.")
end,
0)
void AddMana(unit unit, float value)
Increases the current mana of a unit.
DCEI.TriggerAddTimerEventElapsed(function()
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, y = 16, 16
local unit = DCEI.CreateUnit(team_id, player_id, unit_type, x, y)
DCEI.Wait(1)
DCEI.SetMaxMana(unit, 20)
DCEI.SetMana(unit, 5)
local mana = DCEI.GetMana(unit)
local max_mana = DCEI.GetMaxMana(unit)
DCEI.LogMessage(unit_type .. " has " .. mana .. "/" .. max_mana .. " mana currently.")
DCEI.AddMana(unit, 10)
mana = DCEI.GetMana(unit)
DCEI.LogMessage(unit_type .. " has " .. mana .. "/" .. max_mana .. " mana currently.")
end,
0)
void SetMana(unit unit, float value)
Sets the current mana of a unit.
DCEI.TriggerAddTimerEventElapsed(function()
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, y = 16, 16
local unit = DCEI.CreateUnit(team_id, player_id, unit_type, x, y)
DCEI.Wait(1)
DCEI.SetMaxMana(unit, 20)
DCEI.SetMana(unit, 5)
local mana = DCEI.GetMana(unit)
local max_mana = DCEI.GetMaxMana(unit)
DCEI.LogMessage(unit_type .. " has " .. mana .. "/" .. max_mana .. " mana currently.")
DCEI.AddMana(unit, 10)
mana = DCEI.GetMana(unit)
DCEI.LogMessage(unit_type .. " has " .. mana .. "/" .. max_mana .. " mana currently.")
end,
0)
Float2 GetUnitFacing2D(unit unit)
Returns the facing of a unit as a vector with X and Y coordinates.
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, y = 16, 16
local unit = DCEI.CreateUnit(team_id, player_id, unit_type, x, y)
local facing = DCEI.GetUnitFacing2D(unit)
DCEI.LogMessage(unit_type .. " is facing " .. facing.x .. ", " .. facing.y)
float GetUnitBounty(unit unit)
Returns the bounty of a unit.
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, y = 16, 16
local unit = DCEI.CreateUnit(team_id, player_id, unit_type, x, y)
DCEI.SetGoldBounty(unit, 5.0)
local bounty = DCEI.GetUnitBounty(unit)
DCEI.LogMessage(unit_type .. " has a bounty of " .. bounty .. " gold.")
object GetUnitBehaviorList(unit unit)
Returns a list of behaviors on a unit along with their stack count.
local behaviors = DCEI.GetUnitBehaviorList(unit)
for _, behavior in ipairs(behaviors) do
DCEI.LogMessage(behavior.name .. ": " .. behavior.stack_count)
end
object GetUnitWeaponList(unit unit)
Returns a list of weapons on a unit.
local weapons = DCEI.GetUnitWeaponList(unit)
for _, weapon in ipairs(weapons) do
DCEI.LogMessage(weapon)
end
object GetUnitAbilityList(unit unit)
Returns a list of abilities on a unit.
local abilities = DCEI.GetUnitAbilityList(unit)
for _, ability in ipairs(abilities) do
DCEI.LogMessage(ability)
end
void ApplyTag(unit unit, string tagName, float duration, int stackCount) {void-ApplyTagunit-unit-string-tagName-float-duration-int-stackCount}
void ApplyTag(unit unit, string tagName, float duration, int stackCount)
Applies a set number of tags to a unit for a set duration.
-
unit
unit
the unit to apply the tags to. -
string
tagName
the name of the tag to apply. -
float
duration
the length of time to apply the tag for. A value of-1
applies it permanently. -
int
stackCount
the number of tags to apply.
-- Requires "Banana" added as a used tag in Trigger Settings
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, y = 16, 16
local unit = DCEI.CreateUnit(team_id, player_id, unit_type, x, y)
DCEI.ApplyTag(unit, "Banana", -1, 5)
local tag_count = DCEI.GetUnitTagCount(unit, "Banana")
DCEI.LogMessage(tag_count)
DCEI.RemoveTag(unit, "Banana", 2)
tag_count = DCEI.GetUnitTagCount(unit, "Banana")
DCEI.LogMessage(tag_count)
void RemoveTag(unit unit, string tagName, int stackCount) {void-RemoveTagunit-unit-string-tagName-int-stackCount}
void RemoveTag(unit unit, string tagName, int stackCount)
Removes a set number of tags from a unit.
-
unit
unit
the unit to remove the tags from. -
string
tagName
the name of the tag to remove. -
int
stackCount
the number of tags to remove.
-- Requires "Banana" added as a used tag in Trigger Settings
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, y = 16, 16
local unit = DCEI.CreateUnit(team_id, player_id, unit_type, x, y)
DCEI.ApplyTag(unit, "Banana", -1, 5)
local tag_count = DCEI.GetUnitTagCount(unit, "Banana")
DCEI.LogMessage(tag_count)
DCEI.RemoveTag(unit, "Banana", 2)
tag_count = DCEI.GetUnitTagCount(unit, "Banana")
DCEI.LogMessage(tag_count)
int GetUnitTagCount(unit unit, string tagName)
Returns the tag count of a given tag on a unit.
-- Requires "Banana" added as a used tag in Trigger Settings
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, y = 16, 16
local unit = DCEI.CreateUnit(team_id, player_id, unit_type, x, y)
DCEI.ApplyTag(unit, "Banana", -1, 5)
local tag_count = DCEI.GetUnitTagCount(unit, "Banana")
DCEI.LogMessage(tag_count)
DCEI.RemoveTag(unit, "Banana", 2)
tag_count = DCEI.GetUnitTagCount(unit, "Banana")
DCEI.LogMessage(tag_count)
object GetUnitTagList(unit unit)
Returns a list of tags on a unit
local tags = DCEI.GetUnitTagList(unit)
for _, tag in ipairs(tags) do
DCEI.LogMessage(tag)
end