Name | Type | is_array | initial_value |
BlizzardStackIndex | integer | No | 1 |
PlayerHasTownHall | boolean | Yes | |
tmp_armor | integer | No | |
tmp_int | integer | No | |
tmp_int2 | integer | No | |
tmp_real | real | No | |
tmp_real2 | real | No | |
tmp_research | integer | No |
function Trig_Start_DD_Conditions takes nothing returns boolean
if ( not ( GetUnitStateSwap(UNIT_STATE_MANA, GetSpellAbilityUnit()) >= 25.00 ) ) then
return false
endif
if ( not ( GetSpellAbilityId() == 'A00O' ) ) then
return false
endif
if ( not ( GetUnitTypeId(GetTriggerUnit()) == 'u000' ) ) then
return false
endif
return true
endfunction
function Trig_Start_DD_Actions takes nothing returns nothing
local unit casterDummy
local unit mySelf
local integer stackVal
local location targetLoc
set stackVal = udg_BlizzardStackIndex
set mySelf = GetSpellAbilityUnit()
set targetLoc = GetSpellTargetLoc()
call SetUnitUserData( GetSpellAbilityUnit(), udg_BlizzardStackIndex )
set udg_BlizzardStackIndex = ( udg_BlizzardStackIndex + 1 )
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = 10
loop
exitwhen (GetUnitStateSwap(UNIT_STATE_MANA, mySelf) < 25.00 or GetUnitUserData(mySelf) == 0)
call PolledWait( 2.00 )
if ( GetUnitStateSwap(UNIT_STATE_MANA, mySelf) >= 25.00 and GetUnitUserData(mySelf) != 0) then
call SetUnitManaBJ( mySelf , ( GetUnitStateSwap(UNIT_STATE_MANA, mySelf) - 25.00 ) )
call CreateNUnitsAtLoc( 1, 'o00H', GetOwningPlayer(mySelf), GetUnitLoc(mySelf), bj_UNIT_FACING )
call SetUnitUserData( GetLastCreatedUnit(), stackVal )
call UnitApplyTimedLifeBJ( 60, 'BTLF', GetLastCreatedUnit() )
call ShowUnitHide( GetLastCreatedUnit())
call IssuePointOrderLocBJ( GetLastCreatedUnit(), "blizzard", targetLoc )
else
return
endif
endloop
endfunction
//===========================================================================
function InitTrig_Start_DD takes nothing returns nothing
set gg_trg_Start_DD = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Start_DD, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Start_DD, Condition( function Trig_Start_DD_Conditions ) )
call TriggerAddAction( gg_trg_Start_DD, function Trig_Start_DD_Actions )
endfunction
function Trig_Haste_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A00M' ) ) then
return false
endif
return true
endfunction
function Trig_Haste_Actions takes nothing returns nothing
local unit myTarget
local effect myEffect
local unit myHelper
local integer dragonFlag
set myTarget = GetSpellTargetUnit()
set dragonFlag = 0
if ( GetUnitTypeId(myTarget) == 'u000' ) then
call SetUnitMoveSpeed( myTarget, 460.00 )
elseif ( GetUnitDefaultMoveSpeed(myTarget) == 270.00 and IsUnitType(GetTriggerUnit(), UNIT_TYPE_GROUND)) then
call SetUnitMoveSpeed( myTarget, 350.00 )
elseif ( GetUnitDefaultMoveSpeed(myTarget) == 297.00 ) then
call SetUnitMoveSpeed( myTarget, 460.00 )
elseif ( GetUnitDefaultMoveSpeed(myTarget) == 216.00 ) then
call SetUnitMoveSpeed( myTarget, 270.00 )
elseif ( GetUnitDefaultMoveSpeed(myTarget) == 135.00 ) then
call SetUnitMoveSpeed( myTarget, 243.00 )
elseif ( GetUnitDefaultMoveSpeed(myTarget) == 378.00 ) then
// Dragons/Griffons also get attack speed bonus
call SetUnitMoveSpeed( myTarget, 600.00 )
// call CreateNUnitsAtLoc( 1, 'o00H', GetOwningPlayer(myTarget), PolarProjectionBJ(GetSpellTargetLoc(), 50.00, 45.00), bj_UNIT_FACING )
// set myHelper = GetLastCreatedUnit()
// call IssueTargetOrderBJ(myHelper , "bloodlust", myTarget )
// call UnitApplyTimedLifeBJ( 3.50, 'BTLF', myHelper)
// call ShowUnitHide( myHelper )
call UnitAddAbilityBJ( 'A00Y', myTarget)
set dragonFlag = 1
else
return
endif
set myEffect = AddSpecialEffectTargetUnitBJ( "overhead", myTarget, "Abilities\\Spells\\Items\\AIsp\\SpeedTarget.mdl" )
call PolledWait( 25.00 )
if (dragonFlag == 1) then
call UnitRemoveAbilityBJ( 'A00Y', myTarget)
call SetUnitMoveSpeed( myTarget, GetUnitDefaultMoveSpeed(myTarget) )
endif
call DestroyEffect(myEffect)
endfunction
//===========================================================================
function InitTrig_Haste takes nothing returns nothing
set gg_trg_Haste = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Haste, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_Haste, Condition( function Trig_Haste_Conditions ) )
call TriggerAddAction( gg_trg_Haste, function Trig_Haste_Actions )
endfunction
function Trig_Unholy_Armor_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A00N' ) ) then
return false
endif
return true
endfunction
function Trig_Unholy_Armor_Actions takes nothing returns nothing
local unit myTarget
local effect myEffect
set myTarget = GetSpellTargetUnit()
if ( GetUnitTypeId(myTarget) == 'h006' or GetUnitTypeId(myTarget) == 'n003') then
call KillUnit( myTarget )
return
else
endif
//wierd for some reason this spell isn't consuming 200 mana as stated in the object editor. ??
call SetUnitManaBJ( GetSpellAbilityUnit(), ( GetUnitStateSwap(UNIT_STATE_MANA, GetSpellAbilityUnit()) - 200 ) )
call SetUnitLifeBJ( myTarget, ( GetUnitStateSwap(UNIT_STATE_LIFE, myTarget) / 2.00 ) )
call SetUnitInvulnerable( myTarget, true )
set myEffect = AddSpecialEffectTargetUnitBJ( "overhead", myTarget, "Abilities\\Spells\\Undead\\FrostArmor\\FrostArmorTarget.mdl" )
call TriggerSleepAction(13.00)
call DestroyEffect (myEffect)
call SetUnitInvulnerable( myTarget, false)
endfunction
//===========================================================================
function InitTrig_Unholy_Armor takes nothing returns nothing
set gg_trg_Unholy_Armor = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Unholy_Armor, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_Unholy_Armor, Condition( function Trig_Unholy_Armor_Conditions ) )
call TriggerAddAction( gg_trg_Unholy_Armor, function Trig_Unholy_Armor_Actions )
endfunction
function Trig_Start_Blizzard_Conditions takes nothing returns boolean
if ( not ( GetUnitStateSwap(UNIT_STATE_MANA, GetSpellAbilityUnit()) >= 25.00 ) ) then
return false
endif
if ( not ( GetSpellAbilityId() == 'A002' ) ) then
return false
endif
if ( not ( GetUnitTypeId(GetTriggerUnit()) == 'h003' ) ) then
return false
endif
return true
endfunction
function Trig_Start_Blizzard_Actions takes nothing returns nothing
local unit casterDummy
local unit mySelf
local integer stackVal
local location targetLoc
set stackVal = udg_BlizzardStackIndex
set mySelf = GetSpellAbilityUnit()
set targetLoc = GetSpellTargetLoc()
call SetUnitUserData( GetSpellAbilityUnit(), udg_BlizzardStackIndex )
set udg_BlizzardStackIndex = ( udg_BlizzardStackIndex + 1 )
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = 10
loop
exitwhen (GetUnitStateSwap(UNIT_STATE_MANA, mySelf) < 25.00 or GetUnitUserData(mySelf) == 0)
call PolledWait( 2.00 )
if ( GetUnitStateSwap(UNIT_STATE_MANA, mySelf) >= 25.00 and GetUnitUserData(mySelf) != 0) then
call SetUnitManaBJ( mySelf , ( GetUnitStateSwap(UNIT_STATE_MANA, mySelf) - 25.00 ) )
call CreateNUnitsAtLoc( 1, 'o00J', GetOwningPlayer(mySelf), GetUnitLoc(mySelf), bj_UNIT_FACING )
call SetUnitUserData( GetLastCreatedUnit(), stackVal )
call UnitApplyTimedLifeBJ( 60, 'BTLF', GetLastCreatedUnit() )
// call ShowUnitHide( GetLastCreatedUnit())
call IssuePointOrderLocBJ( GetLastCreatedUnit(), "blizzard", targetLoc )
else
return
endif
endloop
endfunction
//===========================================================================
function InitTrig_Start_Blizzard takes nothing returns nothing
set gg_trg_Start_Blizzard = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Start_Blizzard, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Start_Blizzard, Condition( function Trig_Start_Blizzard_Conditions ) )
call TriggerAddAction( gg_trg_Start_Blizzard, function Trig_Start_Blizzard_Actions )
endfunction
function Trig_Fireball_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A00Z' ) ) then
return false
endif
return true
endfunction
function Trig_Fireball_Actions takes nothing returns nothing
local unit myTarget
local unit mySelf
set myTarget = GetSpellTargetUnit()
call SetUnitManaBJ( GetSpellAbilityUnit(), ( GetUnitStateSwap(UNIT_STATE_MANA, GetSpellAbilityUnit()) - 100.00 ) )
call ReplaceUnitBJ( GetSpellAbilityUnit(), 'h00V', bj_UNIT_STATE_METHOD_RELATIVE )
set mySelf = GetLastReplacedUnitBJ()
call IssueTargetOrderBJ( mySelf , "attack", myTarget )
call PolledWait( 3 )
call ReplaceUnitBJ( mySelf , 'h003', bj_UNIT_STATE_METHOD_RELATIVE )
endfunction
//===========================================================================
function InitTrig_Fireball takes nothing returns nothing
set gg_trg_Fireball = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Fireball, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Fireball, Condition( function Trig_Fireball_Conditions ) )
call TriggerAddAction( gg_trg_Fireball, function Trig_Fireball_Actions )
endfunction
function Trig_TownHallHelp_Func005C takes nothing returns boolean
if ( ( GetUnitTypeId(GetConstructingStructure()) == 'h008' ) ) then
return true
endif
if ( ( GetUnitTypeId(GetConstructingStructure()) == 'o005' ) ) then
return true
endif
return false
endfunction
function Trig_TownHallHelp_Conditions takes nothing returns boolean
if ( not Trig_TownHallHelp_Func005C() ) then
return false
endif
if ( not ( udg_PlayerHasTownHall[GetConvertedPlayerId(GetOwningPlayer(GetConstructingStructure()))] == false ) ) then
return false
endif
return true
endfunction
function Trig_TownHallHelp_Actions takes nothing returns nothing
local unit myTarget
set myTarget = GetConstructingStructure()
call PolledWait( 2 )
call UnitSetConstructionProgress( myTarget, 80 )
set udg_PlayerHasTownHall[GetConvertedPlayerId(GetOwningPlayer(myTarget))] = true
endfunction
//===========================================================================
function InitTrig_TownHallHelp takes nothing returns nothing
set gg_trg_TownHallHelp = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_TownHallHelp, EVENT_PLAYER_UNIT_CONSTRUCT_START )
call TriggerAddCondition( gg_trg_TownHallHelp, Condition( function Trig_TownHallHelp_Conditions ) )
call TriggerAddAction( gg_trg_TownHallHelp, function Trig_TownHallHelp_Actions )
endfunction