// requires Unit Event by Bribe
// use boolean isBuildingUnderConstruction[UnitUserData] to check
globals
boolean array isBuildingUnderConstruction
endglobals
function OnConstruct_Start_Cond takes nothing returns boolean
set isBuildingUnderConstruction[GetUnitUserData(GetConstructingStructure())]=true
return false
endfunction
function OnConstruct_Finish_Cond takes nothing returns boolean
set isBuildingUnderConstruction[GetUnitUserData(GetConstructedStructure())]=false
return false
endfunction
function OnBuilding_Enters_Cond takes nothing returns boolean
if IsUnitType(udg_UDexUnits[udg_UDex], UNIT_TYPE_STRUCTURE) then
set isBuildingUnderConstruction[udg_UDex]=false
endif
return false
endfunction
//===================================================================
function InitTrig_IsBuildingUnderConstruction takes nothing returns nothing
local trigger t = CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_CONSTRUCT_START)
call TriggerAddCondition(t, Condition(function OnConstruct_Start_Cond))
set t = CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_CONSTRUCT_FINISH)
call TriggerAddCondition(t, Condition(function OnConstruct_Finish_Cond))
set t = CreateTrigger()
call TriggerRegisterVariableEvent(t, "udg_UnitIndexEvent", EQUAL, 1.00)
call TriggerAddCondition(t, Condition(function OnBuilding_Enters_Cond))
set t=null
endfunction