Trigger API Reference DCEI Events Unit0 - funovus/editor-wiki GitHub Wiki
Table of Contents
- [Trigger API Reference\DCEI Events\Unit](#trigger-api-referencedcei-eventsunit)
* [void TriggerAddUnitSelectedEvent(unit unit, TypedCallback trigger)](#void-triggeraddunitselectedeventunit-unit-typedcallback-trigger)
* [void TriggerAddUnitDeselectedEvent(unit unit, TypedCallback trigger)](#void-triggeraddunitdeselectedeventunit-unit-typedcallback-trigger)
* [void TriggerAddUnitDamageEvent(unit unit, TypedCallback trigger, CriticalFilter filter)](#void-triggeraddunitdamageeventunit-unit-typedcallbackfloat-unit-trigger-criticalfilter-filter)
* [void TriggerAddUnitCriticalDamageEvent(unit unit, TypedCallback trigger)](#void-triggeraddunitcriticaldamageeventunit-unit-typedcallbackfloat-unit-trigger)
* [void TriggerAddUnitHealEvent(unit unit, TypedCallback trigger)](#void-triggeraddunithealeventunit-unit-typedcallbackfloat-unit-trigger)
* [void TriggerAddUnitSpawnEvent(unit unit, TypedCallback trigger, bool simple)](#void-triggeraddunitspawneventunit-unit-typedcallback-trigger-bool-simple)
* [void TriggerAddUnitDiedEvent(unit unit, TypedCallback trigger, bool simple)](#void-triggeraddunitdiedeventunit-unit-typedcallbackunit-trigger-bool-simple)
* [void TriggerAddUnitMoveCommandEvent(unit unit, TypedCallback trigger)](#void-triggeraddunitmovecommandeventunit-unit-typedcallbackfloat2-trigger)
* [void TriggerAddOnUnitIdleEvent(unit unit, TypedCallback trigger)](#void-triggeraddonunitidleeventunit-unit-typedcallback-trigger)
* [void TriggerAddUnitRemovedEvent(unit unit, TypedCallback trigger, bool simple)](#void-triggeraddunitremovedeventunit-unit-typedcallback-trigger-bool-simple)
|
Trigger API Reference\DCEI Events\Unit {Trigger-API-ReferenceDCEI-EventsUnit}
void TriggerAddUnitSelectedEvent(unit unit, TypedCallback trigger) {void-TriggerAddUnitSelectedEventunit-unit-TypedCallback-trigger}
void TriggerAddUnitSelectedEvent(unit unit, TypedCallback trigger)
This event is triggered when a unit is selected.
-
unit
unit
the unit that triggers this event. Use DCEI.UnitAny to trigger this event for any unit. -
object
trigger
the callback function that is run when the event is triggered.
local function OnUnitSelected()
local unit = DCEI.TriggeringUnit
local unit_name = DCEI.UnitName(unit)
DCEI.LogMessage(unit_name .. " has been selected.")
end
DCEI.TriggerAddUnitSelectedEvent(DCEI.UnitAny, OnUnitSelected)
void TriggerAddUnitDeselectedEvent(unit unit, TypedCallback trigger) {void-TriggerAddUnitDeselectedEventunit-unit-TypedCallback-trigger}
void TriggerAddUnitDeselectedEvent(unit unit, TypedCallback trigger)
This event is triggered when a unit is deselected.
-
unit
unit
the unit that triggers this event. Use DCEI.UnitAny to trigger this event for any unit. -
object
trigger
the callback function that is run when the event is triggered.
local function OnUnitDeselected()
local unit = DCEI.TriggeringUnit
local unit_name = DCEI.UnitName(unit)
DCEI.LogMessage(unit_name .. " has been deselected.")
end
DCEI.TriggerAddUnitDeselectedEvent(DCEI.UnitAny, OnUnitDeselected)
void TriggerAddUnitDamageEvent(unit unit, TypedCallback<float, unit> trigger, CriticalFilter filter) {void-TriggerAddUnitDamageEventunit-unit-TypedCallbackfloat-unit-trigger-CriticalFilter-filter}
void TriggerAddUnitDamageEvent(unit unit, TypedCallback<float, unit> trigger, CriticalFilter filter)
This event is triggered when a unit is damaged. Inputs the damage done to the unit into the trigger as the first parameter, and passes the target unit to the second parameter.
Note: DCEI.Wait is explicitly disabled in callbacks for TriggerAddUnitDamageEvent, TriggerAddUnitCriticalDamageEvent, TriggerAddUnitHealEvent as these triggers may each fire multiple times per second and DCEI.Wait is relatively costly. To circumvent this, you should wrap trigger into a DCEI.TriggerAddTimerEventElapsed (or core.GameTimer).
-
unit
unit
the unit that triggers this event. Use DCEI.UnitAny to trigger this event for any unit. -
object
trigger
the callback function that is run when the event is triggered. -
CriticalFilter
filter
whether this event is triggered on all damage event, or just critical ones, or just non-critical ones.
-
Single
amount
-
Unit
target_unit
local function OnUnitDamaged(damage, target_unit)
local context = DCEI.TriggeringEffectContext
local effect = DCEI.TriggeringEffectName
local caster_name = DCEI.UnitName(context.caster)
local source_name = DCEI.UnitName(context.source)
local target_name = DCEI.UnitName(context.target)
-- Alternatively;
-- local target_name = DCEI.UnitName(target_unit)
DCEI.LogMessage(target_name .. " was damaged for " .. damage .. " by " .. caster_name .. " via " .. source_name .. " through the use of " .. effect .. ".")
end
DCEI.TriggerAddUnitDamageEvent(DCEI.UnitAny, OnUnitDamaged, {critical_only = true})
void TriggerAddUnitCriticalDamageEvent(unit unit, TypedCallback<float, unit> trigger) {void-TriggerAddUnitCriticalDamageEventunit-unit-TypedCallbackfloat-unit-trigger}
void TriggerAddUnitCriticalDamageEvent(unit unit, TypedCallback<float, unit> trigger)
This event is triggered when a unit is damaged by a critical hit from a weapon. Inputs the damage done to the unit into the trigger as the first parameter, and passes the target unit to the second parameter.
Note: DCEI.Wait is explicitly disabled in callbacks for TriggerAddUnitDamageEvent, TriggerAddUnitCriticalDamageEvent, TriggerAddUnitHealEvent as these triggers may each fire multiple times per second and DCEI.Wait is relatively costly. To circumvent this, you should wrap trigger into a DCEI.TriggerAddTimerEventElapsed (or core.GameTimer).
-
unit
unit
the unit that triggers this event. Use DCEI.UnitAny to trigger this event for any unit. -
object
trigger
the callback function that is run when the event is triggered.
-
Single
amount
-
Unit
target_unit
local function OnUnitCriticalDamaged(damage, target_unit)
local context = DCEI.TriggeringEffectContext
local effect = DCEI.TriggeringEffectName
local caster_name = DCEI.UnitName(context.caster)
local source_name = DCEI.UnitName(context.source)
local target_name = DCEI.UnitName(context.target)
-- Alternatively;
-- local target_name = DCEI.UnitName(target_unit)
DCEI.LogMessage(target_name .. " was damaged for " .. damage .. " by " .. caster_name .. " via " .. source_name .. " through the use of " .. effect .. ".")
end
DCEI.TriggerAddUnitCriticalDamageEvent(DCEI.UnitAny, OnUnitCriticalDamaged)
void TriggerAddUnitHealEvent(unit unit, TypedCallback<float, unit> trigger) {void-TriggerAddUnitHealEventunit-unit-TypedCallbackfloat-unit-trigger}
void TriggerAddUnitHealEvent(unit unit, TypedCallback<float, unit> trigger)
This event is triggered when a unit is healed. Inputs the amount healed by the unit into the trigger as the first parameter, and passes the target unit to the second parameter.
Note: DCEI.Wait is explicitly disabled in callbacks for TriggerAddUnitDamageEvent, TriggerAddUnitCriticalDamageEvent, TriggerAddUnitHealEvent as these triggers may each fire multiple times per second and DCEI.Wait is relatively costly. To circumvent this, you should wrap trigger into a DCEI.TriggerAddTimerEventElapsed (or core.GameTimer).
-
unit
unit
the unit that triggers this event. Use DCEI.UnitAny to trigger this event for any unit. -
object
trigger
the callback function that is run when the event is triggered.
-
Single
amount
-
Unit
target_unit
local function OnUnitHealed(amount, target_unit)
local context = DCEI.TriggeringEffectContext
local effect = DCEI.TriggeringEffectName
local caster_name = DCEI.UnitName(context.caster)
local source_name = DCEI.UnitName(context.source)
local target_name = DCEI.UnitName(context.target)
-- Alternatively;
-- local target_name = DCEI.UnitName(target_unit)
DCEI.LogMessage(target_name .. " was healed for " .. amount .. " by " .. caster_name .. " via " .. source_name .. " through the use of " .. effect .. ".")
end
DCEI.TriggerAddUnitHealEvent(DCEI.UnitAny, OnUnitHealed)
void TriggerAddUnitSpawnEvent(unit unit, TypedCallback trigger, bool simple) {void-TriggerAddUnitSpawnEventunit-unit-TypedCallback-trigger-bool-simple}
void TriggerAddUnitSpawnEvent(unit unit, TypedCallback trigger, bool simple)
This event is triggered when a unit is spawned.
-
unit
unit
the unit that triggers this event. Use DCEI.UnitAny to trigger this event for any unit. -
object
trigger
the callback function that is run when the event is triggered. -
bool
simple
this flag reduces overhead by preventing the usage of DCEI.Wait() within the trigger. You should only set this to true if the trigger does not utilize DCEI.Wait() at all.
local function OnUnitSpawned()
local unit = DCEI.TriggeringUnit
local name = DCEI.UnitName(unit)
DCEI.LogMessage(name .. " was spawned.")
end
DCEI.TriggerAddUnitSpawnEvent(DCEI.UnitAny, OnUnitSpawned)
void TriggerAddUnitDiedEvent(unit unit, TypedCallback<unit> trigger, bool simple) {void-TriggerAddUnitDiedEventunit-unit-TypedCallbackunit-trigger-bool-simple}
void TriggerAddUnitDiedEvent(unit unit, TypedCallback<unit> trigger, bool simple)
This event is triggered when a unit dies.
-
unit
unit
the unit that triggers this event. Use DCEI.UnitAny to trigger this event for any unit. -
object
trigger
the callback function that is run when the event is triggered. This function can also pass the killing unit as a parameter to the callback function.
-
Unit
killing_unit
local function OnUnitDeath(killing_unit)
local unit = DCEI.TriggeringUnit
local name = DCEI.UnitName(unit)
local killing_unit_name = DCEI.UnitName(killing_unit)
DCEI.LogMessage(killing_unit_name .. " has killed " .. name)
end
DCEI.TriggerAddUnitDiedEvent(DCEI.UnitAny, OnUnitDeath)
void TriggerAddUnitMoveCommandEvent(unit unit, TypedCallback<Float2> trigger) {void-TriggerAddUnitMoveCommandEventunit-unit-TypedCallbackFloat2-trigger}
void TriggerAddUnitMoveCommandEvent(unit unit, TypedCallback<Float2> trigger)
This event is triggered when a unit starts moving. Inputs the destination into the first parameter of the trigger as a float2 value.
-
unit
unit
the unit that triggers this event. Use DCEI.UnitAny to trigger this event for any unit. -
object
trigger
the callback function that is run when the event is triggered.
-
Float2
target_position
local 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.TriggerAddUnitMoveCommandEvent(DCEI.UnitAny, OnUnitMoveCommand)
void TriggerAddOnUnitIdleEvent(unit unit, TypedCallback trigger) {void-TriggerAddOnUnitIdleEventunit-unit-TypedCallback-trigger}
void TriggerAddOnUnitIdleEvent(unit unit, TypedCallback trigger)
This event is triggered when a unit goes into the idle state (no commands queued).
Note: The unit must be set, DCEI.UnitAny does not work for this event.
-
unit
unit
the unit that triggers this event. -
object
trigger
the callback function that is run when the event is triggered.
local team_id = 1
local player_id = 1
local unit_type = "Standard MeleeUnit"
local x, y = 16, 16
local test_subject = DCEI.CreateUnitAsync(team_id, player_id, unit_type, x, y)
local function OnUnitIdle()
local unit = DCEI.TriggeringUnit
local unit_name = DCEI.UnitName(unit)
DCEI.LogMessage(unit_name .. " has become idle.")
end
DCEI.TriggerAddOnUnitIdleEvent(test_subject, OnUnitIdle)
void TriggerAddUnitRemovedEvent(unit unit, TypedCallback trigger, bool simple) {void-TriggerAddUnitRemovedEventunit-unit-TypedCallback-trigger-bool-simple}
void TriggerAddUnitRemovedEvent(unit unit, TypedCallback trigger, bool simple)
This event is triggered when a unit is removed.
-
unit
unit
the unit that triggers this event. Use DCEI.UnitAny to trigger this event for any unit. -
object
trigger
the callback function that is run when the event is triggered. -
bool
simple
this flag reduces overhead by preventing the usage of DCEI.Wait() within the trigger. You should only set this to true if the trigger does not utilize DCEI.Wait() at all.
local function OnUnitRemoved()
local unit = DCEI.TriggeringUnit
local unit_name = DCEI.UnitName(unit)
DCEI.LogMessage(unit_name .. " has been removed.")
end
DCEI.TriggerAddUnitRemovedEvent(DCEI.UnitAny, OnUnitRemoved)