Trigger API Reference DCEI Events Unit0 - BLKTower/TestWiki 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 TriggerAddUnitSelectedEvent(unit unit, TypedCallback trigger)

Description

This event is triggered when a unit is selected.

Parameters

  • 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.

Example Usage

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)

Related

void TriggerAddUnitDeselectedEvent(unit unit, TypedCallback trigger) {void-TriggerAddUnitDeselectedEventunit-unit-TypedCallback-trigger}

void TriggerAddUnitDeselectedEvent(unit unit, TypedCallback trigger)

Description

This event is triggered when a unit is deselected.

Parameters

  • 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.

Example Usage

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)

Related

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)

Description

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

Parameters

  • 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.

Callback Parameters

  • Single amount
  • Unit target_unit

Example Usage

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})

Related

void TriggerAddUnitCriticalDamageEvent(unit unit, TypedCallback<float, unit> trigger) {void-TriggerAddUnitCriticalDamageEventunit-unit-TypedCallbackfloat-unit-trigger}

void TriggerAddUnitCriticalDamageEvent(unit unit, TypedCallback<float, unit> trigger)

Description

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

Parameters

  • 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.

Callback Parameters

  • Single amount
  • Unit target_unit

Example Usage

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)

Related

void TriggerAddUnitHealEvent(unit unit, TypedCallback<float, unit> trigger) {void-TriggerAddUnitHealEventunit-unit-TypedCallbackfloat-unit-trigger}

void TriggerAddUnitHealEvent(unit unit, TypedCallback<float, unit> trigger)

Description

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

Parameters

  • 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.

Callback Parameters

  • Single amount
  • Unit target_unit

Example Usage

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)

Related

void TriggerAddUnitSpawnEvent(unit unit, TypedCallback trigger, bool simple) {void-TriggerAddUnitSpawnEventunit-unit-TypedCallback-trigger-bool-simple}

void TriggerAddUnitSpawnEvent(unit unit, TypedCallback trigger, bool simple)

Description

This event is triggered when a unit is spawned.

Parameters

  • 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.

Example Usage

local function OnUnitSpawned()
    local unit = DCEI.TriggeringUnit
    local name = DCEI.UnitName(unit)
    DCEI.LogMessage(name .. " was spawned.")
end

DCEI.TriggerAddUnitSpawnEvent(DCEI.UnitAny, OnUnitSpawned)

Related

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)

Description

This event is triggered when a unit dies.

Parameters

  • 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.

Callback Parameters

  • Unit killing_unit

Example Usage

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)

Related

void TriggerAddUnitMoveCommandEvent(unit unit, TypedCallback<Float2> trigger) {void-TriggerAddUnitMoveCommandEventunit-unit-TypedCallbackFloat2-trigger}

void TriggerAddUnitMoveCommandEvent(unit unit, TypedCallback<Float2> trigger)

Description

This event is triggered when a unit starts moving. Inputs the destination into the first parameter of the trigger as a float2 value.

Parameters

  • 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.

Callback Parameters

  • Float2 target_position

Example Usage

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)

Related

void TriggerAddOnUnitIdleEvent(unit unit, TypedCallback trigger) {void-TriggerAddOnUnitIdleEventunit-unit-TypedCallback-trigger}

void TriggerAddOnUnitIdleEvent(unit unit, TypedCallback trigger)

Description

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.

Parameters

  • unit unit the unit that triggers this event.
  • object trigger the callback function that is run when the event is triggered.

Example Usage

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)

Related

void TriggerAddUnitRemovedEvent(unit unit, TypedCallback trigger, bool simple) {void-TriggerAddUnitRemovedEventunit-unit-TypedCallback-trigger-bool-simple}

void TriggerAddUnitRemovedEvent(unit unit, TypedCallback trigger, bool simple)

Description

This event is triggered when a unit is removed.

Parameters

  • 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.

Example Usage

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)

Related

⚠️ **GitHub.com Fallback** ⚠️