Name | Type | is_array | initial_value |
Timer | timer | No | |
Timer_window | timerdialog | No |
function Trig_Darkgrasskill1_Actions takes nothing returns nothing
local location p
local location p1
local group g
local unit u
set p1 = GetRectCenter(gg_rct_Darkgrass1)
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = 11
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set g = GetUnitsOfPlayerAndTypeId(ConvertedPlayer(GetForLoopIndexA()), 'even')
set u = GroupPickRandomUnit(g)
set p = GetUnitLoc( u )
call DestroyGroup( g )
if ( GetTerrainTypeBJ(p) == GetTerrainTypeBJ(p1) ) then
call KillUnit( u )
else
call DoNothing( )
endif
call RemoveLocation( p )
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
call RemoveLocation( p1 )
endfunction
function InitTrig_Darkgrasskill1 takes nothing returns nothing
set gg_trg_Darkgrasskill1 = CreateTrigger( )
call TriggerRegisterTimerEventPeriodic( gg_trg_Darkgrasskill1, 0.05 )
call TriggerAddAction( gg_trg_Darkgrasskill1, function Trig_Darkgrasskill1_Actions )
endfunction
function Trig_Lavakill_Actions takes nothing returns nothing
local location p
local location p1
local group g
local unit u
set p1 = GetRectCenter(gg_rct_Lava)
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = 11
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set g = GetUnitsOfPlayerAndTypeId(ConvertedPlayer(GetForLoopIndexA()), 'even')
set u = GroupPickRandomUnit(g)
set p = GetUnitLoc( u )
call DestroyGroup( g )
if ( GetTerrainTypeBJ(p) == GetTerrainTypeBJ(p1) ) then
call KillUnit( u )
else
call DoNothing( )
endif
call RemoveLocation( p )
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
call RemoveLocation( p1 )
endfunction
function InitTrig_Lavakill takes nothing returns nothing
set gg_trg_Lavakill = CreateTrigger( )
call TriggerRegisterTimerEventPeriodic( gg_trg_Lavakill, 0.05 )
call TriggerAddAction( gg_trg_Lavakill, function Trig_Lavakill_Actions )
endfunction
function Trig_Icekill_Actions takes nothing returns nothing
local location p
local location p1
local group g
local unit u
set p1 = GetRectCenter(gg_rct_Deadlyice)
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = 11
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set g = GetUnitsOfPlayerAndTypeId(ConvertedPlayer(GetForLoopIndexA()), 'even')
set u = GroupPickRandomUnit(g)
set p = GetUnitLoc( u )
call DestroyGroup( g )
if ( GetTerrainTypeBJ(p) == GetTerrainTypeBJ(p1) ) then
call KillUnit( u )
else
call DoNothing( )
endif
call RemoveLocation( p )
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
call RemoveLocation( p1 )
endfunction
function InitTrig_Icekill takes nothing returns nothing
set gg_trg_Icekill = CreateTrigger( )
call TriggerRegisterTimerEventPeriodic( gg_trg_Icekill, 0.05 )
call TriggerAddAction( gg_trg_Icekill, function Trig_Icekill_Actions )
endfunction
function Trig_Slide_Actions takes nothing returns nothing
local group g1
local group g2
local location p
local location p2
local unit u
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = 11
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set g1 = GetUnitsOfPlayerAndTypeId(ConvertedPlayer(GetForLoopIndexA()), 'even')
set u = GroupPickRandomUnit(g1)
set p = GetUnitLoc(u)
if ( IsUnitAliveBJ(u) == true ) then
if ( GetTerrainTypeBJ(p) == 'Nice' ) then
set p2 = PolarProjectionBJ(p,11, GetUnitFacing(u))
call SetUnitPositionLoc( u, p2 )
call RemoveLocation( p2 )
endif
endif
call RemoveLocation( p )
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
endfunction
function InitTrig_Slide takes nothing returns nothing
set gg_trg_Slide = CreateTrigger( )
call TriggerRegisterTimerEventPeriodic( gg_trg_Slide, 0.02 )
call TriggerAddAction( gg_trg_Slide, function Trig_Slide_Actions )
endfunction
function Trig_Skate_Conditions takes nothing returns boolean
if ( GetBooleanOr( GetIssuedOrderIdBJ() == String2OrderIdBJ("smart") , GetIssuedOrderIdBJ() == String2OrderIdBJ("move") ) ) then
return true
endif
return false
endfunction
function Trig_Skate_Actions takes nothing returns nothing
local location p
local location p2
set p = GetUnitLoc(GetOrderedUnit())
if ( GetTerrainTypeBJ(p) == 'Glva' ) then
set p2 = GetOrderPointLoc()
call SetUnitPositionLocFacingBJ( GetTriggerUnit(), PolarProjectionBJ(p, 1.00, DistanceBetweenPoints(p, p2)), AngleBetweenPoints(p, p2) )
call RemoveLocation( p2 )
endif
call RemoveLocation( p )
endfunction
function InitTrig_Skate takes nothing returns nothing
set gg_trg_Skate = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Skate, EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER )
call TriggerAddCondition( gg_trg_Skate, Condition( function Trig_Skate_Conditions ) )
call TriggerAddAction( gg_trg_Skate, function Trig_Skate_Actions )
endfunction