Name | Type | is_array | initial_value |
Aqua_Burst_Ability_Level | integer | No | |
Aqua_Burst_Area_of_Effect | real | No | |
Aqua_Burst_Base_Damage | real | No | |
Aqua_Burst_Caster | unit | No | |
Aqua_Burst_Damage_Group | group | No | |
Aqua_Burst_Location | location | No | |
Aqua_Burst_Total_Damage | real | No | |
Arcane_Disruption_Base_Mana | real | No | |
Arcane_Disruption_Bonus_Mana | real | No | |
Arcane_Disruption_Caster | unit | No | |
Arcane_Disruption_Damage | real | No | |
Arcane_Disruption_Level | integer | No | |
Arcane_Disruption_Target | unit | No | |
Arcane_Disruption_Total_Mana | real | No | |
Beast_Attack_Ability_Level | integer | No | |
Beast_Attack_Atribute | integer | No | |
Beast_Attack_Atribute_Damage | real | No | |
Beast_Attack_Caster | unit | No | |
Beast_Attack_Damage_Splitter | integer | No | |
Beast_Attack_Life_Damage | real | No | |
Beast_Attack_Location | location | No | |
Beast_Attack_Location2 | location | No | |
Beast_Attack_Max_Life | real | No | |
Beast_Attack_Target | unit | No | |
Beast_Attack_Total_Damage | real | No | |
CreateNewUnit | boolean | No | |
currentAbilityLevel | integer | No | |
currentCastingPlayer | player | No | |
currentCastingUnit | unit | No | |
currentHeroAbility | abilcode | No | |
currentHeroAbilityLevel | integer | No | |
CurrentHeroExperience | integer | No | |
currentHeroLevel | integer | No | |
currentLearnedAbility | abilcode | No | |
currentShiftUnit | unit | No | |
CurrentSpecialNumber | integer | No | |
CurrentUnitHPMP | real | No | |
Desecration_Ability_Level | integer | No | |
Desecration_Area_of_Effect | real | No | |
Desecration_Base_Damage | real | No | |
Desecration_Base_Heal | real | No | |
Desecration_Caster | unit | No | |
Desecration_Corpse_Counter | integer | No | |
Desecration_Corpse_Group | group | No | |
Desecration_Damage_Group | group | No | |
Desecration_Explosion_Location | location | No | |
Desecration_Level_Damage | real | No | |
Desecration_Level_Heal | real | No | |
Desecration_Location | location | No | |
Desecration_Total_Damage | real | No | |
Desecration_Total_Heal | real | No | |
Earth_Fury_Ability_Level | integer | No | |
Earth_Fury_AoE_Bouns | real | No | |
Earth_Fury_Base_Area_of_Effect | real | No | |
Earth_Fury_Base_Damage | real | No | |
Earth_Fury_Bonus_Damage | real | No | |
Earth_Fury_Caster | unit | No | |
Earth_Fury_Chance | real | No | |
Earth_Fury_Damage_Group | group | No | |
Earth_Fury_Dummy_Ability | abilcode | No | |
Earth_Fury_Dummy_Ability_2 | abilcode | No | |
Earth_Fury_Location | location | No | |
Earth_Fury_Owner | player | No | |
Earth_Fury_Total_Area_of_Effec | real | No | |
Earth_Fury_Total_Damage | real | No | |
Fire_Wall_Ability_Level | integer | No | |
Fire_Wall_Caster | unit | No | |
Fire_Wall_Distance | real | No | |
Fire_Wall_Dummy_Ability | abilcode | No | |
Fire_Wall_Duration | real | No | |
Fire_Wall_Location | location | No | |
Fire_Wall_Loop_Location | location | No | |
Fire_Wall_Loop_Location_2 | location | No | |
Fire_Wall_Owner | player | No | |
ForceFour | force | No | |
ForceOne | force | No | |
ForceThree | force | No | |
ForceTwo | force | No | |
FoV_Ability_Level | integer | No | |
FoV_Base_AoE | real | No | |
FoV_Base_Damage | real | No | |
FoV_Bonus_AoE | real | No | |
FoV_Caster | unit | No | |
FoV_Damage_Group | group | No | |
FoV_Location | location | No | |
FoV_Total_AoE | real | No | |
FoV_Total_Damage | real | No | |
GameValue | integer | No | |
Impale_Angle | real | No | |
Impale_Caster | unit | No | |
Impale_Caster_Loc | location | No | |
Impale_Dummy_AbilityI | abilcode | No | |
Impale_Dummy_AbilityII | abilcode | No | |
Impale_Dummy_Face | real | No | |
Impale_Facing_Angle | real | No | |
Impale_Level | integer | No | |
Impale_LocI | location | No | |
Impale_LocII | location | No | |
Impale_LocIII | location | No | |
Impale_Owner | player | No | |
Impale_Target_Loc | location | No | |
Ion_Canon_Ability_Level | integer | No | |
Ion_Canon_AoE | real | No | |
Ion_Canon_Base_Damage | real | No | |
Ion_Canon_Base_Mana_Burn | real | No | |
Ion_Canon_Caster | unit | No | |
Ion_Canon_Damage_Group | group | No | |
Ion_Canon_Distance | real | No | |
Ion_Canon_Location | location | No | |
Ion_Canon_Loop_Location | location | No | |
Ion_Canon_Loop_Number | integer | No | |
Ion_Canon_Total_Damage | real | No | |
Ion_Canon_Total_Mana_Burn | real | No | |
isAbility | boolean | No | |
KB_Angle | real | Yes | |
kb_angle | real | Yes | |
kb_bolean | boolean | Yes | |
kb_caster | unit | Yes | |
KB_Casters | unit | Yes | |
KB_CountBuffs | integer | No | |
KB_DestroyTrees | boolean | Yes | |
kb_distance | real | Yes | |
KB_Effects_1 | string | Yes | |
KB_Effects_2 | string | Yes | |
KB_GeneralIntegers | integervar | Yes | |
KB_KnockbackedUnits | group | No | |
KB_Levels | integer | Yes | |
kb_lighting | lightning | Yes | |
KB_MaxDistance | real | Yes | |
KB_ReachedDistance | real | Yes | |
KB_ReducedReal | real | No | |
KB_ReduceSpeedReal | real | Yes | |
KB_SpecificSpeed | real | Yes | |
KB_StartPositions | location | Yes | |
KB_TempPoint | location | Yes | |
KB_TempReal | real | No | |
KB_TotalKnockUnits | integer | No | |
KB_Units | unit | Yes | |
KBA_Caster | unit | No | |
KBA_DestroyTrees | boolean | No | |
KBA_DistancePerLevel | real | No | |
KBA_Level | integer | No | |
KBA_SpecialEffects | string | Yes | |
KBA_Speed | real | No | |
KBA_StartingPosition | location | No | |
KBA_TargetUnit | unit | No | |
KillTotals | integer | Yes | |
Knockback_Loc1 | location | No | |
Knockback_Loc2 | location | No | |
Knockback_Target | unit | No | |
KnockbackAngle | real | No | |
KnockbackDistance | real | No | |
KnockbackSpeed | real | No | |
KnockbackTable | hashtable | No | |
KnockbackUnits | group | No | |
LeaderBoard | leaderboard | No | |
LS_Dummy | unit | No | |
LS_GeneralInteger | integervar | No | |
LS_Groups | group | Yes | |
LS_TempPoint | location | Yes | |
Multi_Shot_Ability_Level | integer | No | |
Multi_Shot_Base_Arrow_Count | integer | No | |
Multi_Shot_Caster | unit | No | |
Multi_Shot_Dummy_Ability | abilcode | No | |
Multi_Shot_Facing | real | No | |
Multi_Shot_Location | location | No | |
Multi_Shot_Location_2 | location | No | |
Multi_Shot_Loop_Location | location | No | |
Multi_Shot_Loop_Location2 | location | No | |
Multi_Shot_Owner | player | No | |
Multi_Shot_Total_Arrow_Count | integer | No | |
Napalm_Strike_Ability_Level | integer | No | |
Napalm_Strike_Area_of_Effect | real | No | |
Napalm_Strike_Base_Damage | real | No | |
Napalm_Strike_Caster | unit | No | |
Napalm_Strike_Damage_Group | group | No | |
Napalm_Strike_Dummy_Ability | abilcode | No | |
Napalm_Strike_Location | location | No | |
Napalm_Strike_Owner | player | No | |
Napalm_Strike_Total_Damage | real | No | |
NUM_HEROES | integer | No | 20 |
pocSkillPointCount | integer | No | |
Power_Slam_Ability_Level | integer | No | |
Power_Slam_Base_Chance | real | No | |
Power_Slam_Caster | unit | No | |
Power_Slam_Damage | real | No | |
Power_Slam_Damage_Multiplier | real | No | |
Power_Slam_Dummy_Ability | abilcode | No | |
Power_Slam_Location | location | No | |
Power_Slam_Owner | player | No | |
Power_Slam_Strength | integer | No | |
Power_Slam_Target | unit | No | |
Power_Slam_Total_Chance | real | No | |
powerOfChaosLvl2 | boolean | No | |
PR_Ability_Level | integer | No | |
PR_Atribute | integer | No | |
PR_Caster | unit | No | |
PR_Caster_Loc | location | No | |
PR_Damage | real | No | |
PR_Damage_Factor | real | No | |
PR_Dummy_Ability | abilcode | No | |
PR_Target | unit | No | |
PR_Target_Loc | location | No | |
PR_Target_Mana | real | No | |
RANDOM_HERO_ARRAY | unitcode | Yes | |
randomType | unitcode | No | |
Razor_Edge_Ability_Level | integer | No | |
Razor_Edge_Area_of_Effect | real | No | |
Razor_Edge_Base_Damage | real | No | |
Razor_Edge_Caster | unit | No | |
Razor_Edge_Damage_Group | group | No | |
Razor_Edge_Location | location | No | |
Razor_Edge_Location2 | location | No | |
Razor_Edge_Total_Damage | real | No | |
RE_Knock_Angle | real | No | |
RE_Knock_Distance | real | No | |
RE_Knock_Group | group | No | |
RE_Knock_Loc1 | location | No | |
RE_Knock_Loc2 | location | No | |
RE_Knock_Speed | real | No | |
RE_Knocktable | hashtable | No | |
Scream_Ability_Level | integer | No | |
Scream_Area_of_Effect | real | No | |
Scream_Base_Area_of_Effect | real | No | |
Scream_Base_Damage | real | No | |
Scream_Bounus_Area_of_Effect | real | No | |
Scream_Caster | unit | No | |
Scream_Damage_Group | group | No | |
Scream_Dummy_Ability | abilcode | No | |
Scream_Location | location | No | |
Scream_Owner | player | No | |
Scream_Sound | sound | No | |
Scream_Sound_Volume | real | No | |
Scream_Total_Damage | real | No | |
shadowShifterAbilityEarthLevel | integer | Yes | |
shadowShifterAbilitySeaLevel | integer | Yes | |
shadowShifterAbilityStarLevel | integer | Yes | |
shadowShifterInUltimate | boolean | Yes | |
shadowShifterLevelsUp | integer | Yes | |
Shadowstep_Ability_Level | integer | No | |
Shadowstep_Base_Damage | real | No | |
Shadowstep_Calculation | real | No | |
Shadowstep_Caster | unit | No | |
Shadowstep_Damage_Multiplier | real | No | |
Shadowstep_Location | location | No | |
Shadowstep_Location_2 | location | No | |
Shadowstep_Loop_Location | location | No | |
Shadowstep_Loop_Number | integer | No | |
Shadowstep_Target | unit | No | |
Shadowstep_Total_Damage | real | No | |
Sinister_Strike_Ability_Level | integer | No | |
Sinister_Strike_Atribute | integer | No | |
Sinister_Strike_Base_Chance | real | No | |
Sinister_Strike_Bonus_Armor | integer | No | |
Sinister_Strike_Caster | unit | No | |
Sinister_Strike_Damage_Factor | real | No | |
Sinister_Strike_Dummy_Ability | abilcode | No | |
Sinister_Strike_Dummy_Ability2 | abilcode | No | |
Sinister_Strike_Location | location | No | |
Sinister_Strike_Normal_Armor | integer | No | |
Sinister_Strike_Owner | player | No | |
Sinister_Strike_Target | unit | No | |
Sinister_Strike_Total_Chance | real | No | |
Sinister_Strike_Total_Damage | real | No | |
TargetType | unitcode | No | |
TempGroup | group | No | |
TempLoc | location | No | |
TempPoint | location | No | |
TempPoint2 | location | No | |
TempReal | real | No | |
TempValue | integer | No | |
Termal_Eruption_Ability_Level | integer | No | |
Termal_Eruption_Area_of_Effect | real | No | |
Termal_Eruption_Base_Damage | real | No | |
Termal_Eruption_Caster | unit | No | |
Termal_Eruption_Damage_Group | group | No | |
Termal_Eruption_Dummy_Ability | abilcode | No | |
Termal_Eruption_DummyAbility2 | abilcode | No | |
Termal_Eruption_Location | location | No | |
Termal_Eruption_Loop_Location | location | No | |
Termal_Eruption_Loop_Number | integer | No | |
Termal_Eruption_Owner | player | No | |
Termal_Eruption_Total_Damage | real | No | |
Thunder_Rage_Ability_Level | integer | No | |
Thunder_Rage_Area_of_Effect | real | No | |
Thunder_Rage_Base_Mini_Damage | real | No | |
Thunder_Rage_Base_Unit_HP | real | No | |
Thunder_Rage_Caster | unit | No | |
Thunder_Rage_Damage_Factor | real | No | |
Thunder_Rage_Damage_Group | group | No | |
Thunder_Rage_Location | location | No | |
Thunder_Rage_Location2 | location | No | |
Thunder_Rage_Loop_Location | location | No | |
Thunder_Rage_Mini_AoE | real | No | |
Thunder_Rage_Mini_Damage_Group | group | No | |
Thunder_Rage_Owner | player | No | |
Thunder_Rage_Total_Damage | real | No | |
Thunder_Rage_Total_Mini_Damage | real | No | |
Thunder_Rage_Unit_HP | real | No | |
Y_Map_Point | location | Yes | |
Y_Map_Region | rect | Yes | |
Y_Map_Tip | string | Yes |
function Trig_Combine_Items_Conditions takes nothing returns boolean
if ( not ( GetItemCharges(GetManipulatedItem()) > 0 ) ) then
return false
endif
if ( not ( udg_Combine_Charged_Items == true ) ) then
return false
endif
return true
endfunction
function Trig_Combine_Items_Actions takes nothing returns nothing
local integer ITEMCOUNT
local integer ITEMLOOP
local integer CHARGES
local integer MAXIMUM
local item NEWITEM
local unit OURUNIT
set MAXIMUM = udg_Combine_Charges_Max
set ITEMCOUNT = 0
set ITEMLOOP = 0
set CHARGES = 0
set NEWITEM = GetManipulatedItem()
set OURUNIT = GetManipulatingUnit()
loop
exitwhen ITEMLOOP > 6
if ((GetItemTypeId(NEWITEM)) == (GetItemTypeId(UnitItemInSlotBJ(OURUNIT, ITEMLOOP)))) then
if ((GetItemCharges(UnitItemInSlotBJ(OURUNIT, ITEMLOOP)) + GetItemCharges(NEWITEM)) <= MAXIMUM) then
if not ( (UnitItemInSlotBJ(OURUNIT, ITEMLOOP)) == (NEWITEM)) then
set CHARGES = (GetItemCharges(UnitItemInSlotBJ(OURUNIT, ITEMLOOP))) + GetItemCharges(NEWITEM)
call SetItemCharges( UnitItemInSlotBJ(OURUNIT, ITEMLOOP), CHARGES )
call RemoveItem( NEWITEM )
set ITEMLOOP=7
endif
endif
endif
if ( ITEMLOOP < 7 ) then
set ITEMLOOP = ITEMLOOP + 1
endif
endloop
endfunction
//===========================================================================
function InitTrig_Combine_Charged_Items takes nothing returns nothing
set gg_trg_Combine_Charged_Items = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Combine_Charged_Items, EVENT_PLAYER_UNIT_PICKUP_ITEM )
call TriggerAddCondition( gg_trg_Combine_Charged_Items, Condition( function Trig_Combine_Items_Conditions ) )
call TriggerAddAction( gg_trg_Combine_Charged_Items, function Trig_Combine_Items_Actions )
endfunction
function Trig_Noms_Wisdom_Conditions takes nothing returns boolean
if ( not ( UnitHasBuffBJ(GetTriggerUnit(), 'B000') == true ) ) then
return false
endif
return true
endfunction
function Trig_Noms_Wisdom_Actions takes nothing returns nothing
local real mana
set mana = GetUnitState(GetTriggerUnit(),UNIT_STATE_MANA)
call TriggerSleepAction(0.6)
set mana=mana-GetUnitState(GetTriggerUnit(),UNIT_STATE_MANA)
call SetUnitLifeBJ(GetTriggerUnit(),GetUnitState(GetTriggerUnit(),UNIT_STATE_LIFE)+mana*0.25)
endfunction
//===========================================================================
function InitTrig_Noms_Wisdom_Heal takes nothing returns nothing
set gg_trg_Noms_Wisdom_Heal = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Noms_Wisdom_Heal, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_Noms_Wisdom_Heal, Condition( function Trig_Noms_Wisdom_Conditions ) )
call TriggerAddAction( gg_trg_Noms_Wisdom_Heal, function Trig_Noms_Wisdom_Actions )
endfunction
function Trig_Power_of_Chaos_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A00O' ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func017C takes nothing returns boolean
if ( not ( CountUnitsInGroup(GetUnitsOfPlayerAndTypeId(GetOwningPlayer(GetTriggerUnit()), 'o00C')) >= 2 ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func019C takes nothing returns boolean
if ( not ( CountUnitsInGroup(GetUnitsOfPlayerAndTypeId(GetOwningPlayer(GetTriggerUnit()), 'o00C')) >= 3 ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func021C takes nothing returns boolean
if ( not ( CountUnitsInGroup(GetUnitsOfPlayerAndTypeId(GetOwningPlayer(GetTriggerUnit()), 'o00C')) >= 4 ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func023C takes nothing returns boolean
if ( not ( CountUnitsInGroup(GetUnitsOfPlayerAndTypeId(GetOwningPlayer(GetTriggerUnit()), 'o00B')) == 1 ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func025001 takes nothing returns boolean
return ( IsUnitSelected(GetTriggerUnit(), GetOwningPlayer(GetTriggerUnit())) == true )
endfunction
function Trig_Power_of_Chaos_Func028C takes nothing returns boolean
if ( not ( udg_powerOfChaosLvl2 == true ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func030Func001C takes nothing returns boolean
if ( not ( IsUnitDeadBJ(GetEnumUnit()) == true ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func030A takes nothing returns nothing
if ( Trig_Power_of_Chaos_Func030Func001C() ) then
call ReviveHeroLoc( GetEnumUnit(), GetRectCenter(GetPlayableMapRect()), false )
else
call DoNothing( )
endif
call ShowUnitHide( GetEnumUnit() )
call SetUnitOwner( GetEnumUnit(), Player(PLAYER_NEUTRAL_PASSIVE), false )
endfunction
function Trig_Power_of_Chaos_Func031Func001C takes nothing returns boolean
if ( not ( IsUnitDeadBJ(GetEnumUnit()) == true ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func031A takes nothing returns nothing
if ( Trig_Power_of_Chaos_Func031Func001C() ) then
call ReviveHeroLoc( GetEnumUnit(), GetRectCenter(GetPlayableMapRect()), false )
else
call DoNothing( )
endif
call ShowUnitHide( GetEnumUnit() )
call SetUnitOwner( GetEnumUnit(), Player(PLAYER_NEUTRAL_PASSIVE), false )
endfunction
function Trig_Power_of_Chaos_Func032Func001C takes nothing returns boolean
if ( not ( IsUnitDeadBJ(GetEnumUnit()) == true ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func032A takes nothing returns nothing
if ( Trig_Power_of_Chaos_Func032Func001C() ) then
call ReviveHeroLoc( GetEnumUnit(), GetRectCenter(GetPlayableMapRect()), false )
else
call DoNothing( )
endif
call ShowUnitHide( GetEnumUnit() )
call SetUnitOwner( GetEnumUnit(), Player(PLAYER_NEUTRAL_PASSIVE), false )
endfunction
function Trig_Power_of_Chaos_Func039C takes nothing returns boolean
if ( not ( udg_shadowShifterAbilityStarLevel[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] > 0 ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func042C takes nothing returns boolean
if ( not ( udg_shadowShifterAbilityEarthLevel[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] > 0 ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Func045C takes nothing returns boolean
if ( not ( udg_shadowShifterAbilitySeaLevel[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] > 0 ) ) then
return false
endif
return true
endfunction
function Trig_Power_of_Chaos_Actions takes nothing returns nothing
local integer udg_pocSkillPointCount
local integer udg_currentAbilityLevel
local integer udg_currentHeroLevel
local unit udg_currentShiftUnit
set udg_powerOfChaosLvl2 = false
set udg_currentShiftUnit = GetTriggerUnit()
set udg_currentHeroLevel = GetHeroLevel(GetTriggerUnit())
set udg_shadowShifterInUltimate[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = true
set udg_pocSkillPointCount = GetHeroSkillPoints(GetTriggerUnit())
call ModifyHeroSkillPoints( GetTriggerUnit(), bj_MODIFYMETHOD_SET, 0 )
// Disable Shapeshifting
call UnitRemoveAbilityBJ( 'A00S', GetTriggerUnit() )
call UnitRemoveAbilityBJ( 'A00T', GetTriggerUnit() )
call UnitRemoveAbilityBJ( 'A00P', GetTriggerUnit() )
call ConditionalTriggerExecute( gg_trg_TriggerToVariable )
// Unhide or Create Earth Form
if ( Trig_Power_of_Chaos_Func017C() ) then
set udg_TargetType = 'N010'
call TriggerExecute( gg_trg_CreateOrUnhide )
else
endif
// Unhide or Create Sea Form
if ( Trig_Power_of_Chaos_Func019C() ) then
set udg_TargetType = 'H00K'
call TriggerExecute( gg_trg_CreateOrUnhide )
else
endif
// Unhide or Create Star Form
if ( Trig_Power_of_Chaos_Func021C() ) then
set udg_TargetType = 'U008'
call TriggerExecute( gg_trg_CreateOrUnhide )
else
endif
// Check for Power of Chaos (lvl2)
if ( Trig_Power_of_Chaos_Func023C() ) then
set udg_powerOfChaosLvl2 = true
else
endif
// Reselect the units
if ( Trig_Power_of_Chaos_Func025001() ) then
call SelectUnitForPlayerSingle( GetEnumUnit(), GetOwningPlayer(GetTriggerUnit()) )
else
call DoNothing( )
endif
call TriggerSleepAction( 31.00 )
// If level 2, then wait longer.
if ( Trig_Power_of_Chaos_Func028C() ) then
call PolledWait( 29.00 )
else
call DoNothing( )
endif
// Remove Units
call ForGroupBJ( GetUnitsOfPlayerAndTypeId(GetOwningPlayer(GetTriggerUnit()), 'U008'), function Trig_Power_of_Chaos_Func030A )
call ForGroupBJ( GetUnitsOfPlayerAndTypeId(GetOwningPlayer(GetTriggerUnit()), 'H00K'), function Trig_Power_of_Chaos_Func031A )
call ForGroupBJ( GetUnitsOfPlayerAndTypeId(GetOwningPlayer(GetTriggerUnit()), 'N010'), function Trig_Power_of_Chaos_Func032A )
// This is done to allow level-ups during the Ultimate
call ModifyHeroSkillPoints( GetTriggerUnit(), bj_MODIFYMETHOD_SET, udg_pocSkillPointCount )
call ModifyHeroSkillPoints( GetTriggerUnit(), bj_MODIFYMETHOD_ADD, udg_shadowShifterLevelsUp[GetConvertedPlayerId(udg_currentCastingPlayer)] )
set udg_shadowShifterLevelsUp[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = 0
// Re-enable Shapeshifting
set udg_currentAbilityLevel = udg_shadowShifterAbilityStarLevel[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))]
if ( Trig_Power_of_Chaos_Func039C() ) then
call UnitAddAbilityBJ( 'A00P', GetTriggerUnit() )
set udg_shadowShifterAbilityStarLevel[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = 1
else
call DoNothing( )
endif
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = ( udg_currentAbilityLevel - 1 )
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
call ModifyHeroSkillPoints( GetTriggerUnit(), bj_MODIFYMETHOD_ADD, 1 )
call SelectHeroSkill(GetTriggerUnit(), 'A00P' )
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set udg_currentAbilityLevel = udg_shadowShifterAbilityEarthLevel[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))]
if ( Trig_Power_of_Chaos_Func042C() ) then
call UnitAddAbilityBJ( 'A00S', GetTriggerUnit() )
set udg_shadowShifterAbilityEarthLevel[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = 1
else
call DoNothing( )
endif
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = ( udg_currentAbilityLevel - 1 )
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
call ModifyHeroSkillPoints( GetTriggerUnit(), bj_MODIFYMETHOD_ADD, 1 )
call SelectHeroSkill( GetTriggerUnit(), 'A00S' )
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set udg_currentAbilityLevel = udg_shadowShifterAbilitySeaLevel[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))]
if ( Trig_Power_of_Chaos_Func045C() ) then
call UnitAddAbilityBJ( 'A00T', GetTriggerUnit() )
set udg_shadowShifterAbilitySeaLevel[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = 1
else
call DoNothing( )
endif
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = ( udg_currentAbilityLevel - 1 )
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
call ModifyHeroSkillPoints( GetTriggerUnit(), bj_MODIFYMETHOD_ADD, 1 )
call SelectHeroSkill(GetTriggerUnit(), 'A00T' )
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set udg_shadowShifterInUltimate[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = false
endfunction
//===========================================================================
function InitTrig_Power_of_Chaos takes nothing returns nothing
set gg_trg_Power_of_Chaos = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Power_of_Chaos, EVENT_PLAYER_UNIT_SPELL_FINISH )
call TriggerAddCondition( gg_trg_Power_of_Chaos, Condition( function Trig_Power_of_Chaos_Conditions ) )
call TriggerAddAction( gg_trg_Power_of_Chaos, function Trig_Power_of_Chaos_Actions )
endfunction