Name | Type | is_array | initial_value |
Caster | unit | No | |
Effect | effect | Yes | |
Group | group | No | |
i | integer | No | |
Pos1 | location | No | |
r | real | No | |
real1 | real | No |
//TESH.scrollpos=63
//TESH.alwaysfold=0
// W W W A T T T T T E E E E R R R F F F F I E E E E L D D D
// W W W W A A T E R R F I E L D D
// W W W W A A T E E E R R F F F I E E E L D D
// W W W W A A A T E R R R F I E L D D
// W W A A T E E E E R R F I E E E E L L L L D D D
//
// V V 2 2 2 2 2 2 0 0
// V V 2 2 0 0
// V V 2 2 0 0
// V V 2 2 0 0
// V 2 2 2 2 O 2 2 2 2 0 0
//
//######################################################################################################
constant function WATER_FIELD_DUMMY1 takes nothing returns integer
return 'h002'
endfunction
constant function WATER_FIELD_DUMMY2 takes nothing returns integer
return 'h003'
endfunction
function spell_filter takes nothing returns boolean
return GetUnitTypeId(GetFilterUnit()) == WATER_FIELD_DUMMY1()
endfunction
function spell_filter2 takes nothing returns boolean
return GetUnitTypeId(GetFilterUnit()) == WATER_FIELD_DUMMY2()
endfunction
function Trig_damage_conditions takes nothing returns boolean
return IsUnitEnemy(GetFilterUnit(),GetOwningPlayer(GetTriggerUnit()) )
endfunction
function Trig_killunit takes nothing returns nothing
call RemoveUnit( GetEnumUnit() )
endfunction
function Trig_Spell_Init_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A002'
endfunction
function Trig_Spell_Init_Actions takes nothing returns nothing
local location Pos = GetSpellTargetLoc()
local unit Caster = GetTriggerUnit()
local real Real
local integer i = (GetUnitAbilityLevel(Caster, 'A002' ) )
local real x
local real y
local group g = CreateGroup()
local unit u
local real r = (GetUnitAbilityLevel(Caster, 'A002' ) )*200
set i = 0
loop
exitwhen i == 6
set x = GetSpellTargetX() + 100 * Cos(60.00 * I2R(i) * bj_DEGTORAD)
set y = GetSpellTargetY() + 100 * Sin(60.00 * I2R(i) * bj_DEGTORAD)
call CreateUnit(GetOwningPlayer(Caster), WATER_FIELD_DUMMY1(), x, y, 270)
set i = i + 1
endloop
set i = 0
loop
exitwhen i == 6
set x = GetSpellTargetX() + 200 * Cos(60.00 * I2R(i) * bj_DEGTORAD)
set y = GetSpellTargetY() + 200 * Sin(60.00 * I2R(i) * bj_DEGTORAD)
call CreateUnit(GetOwningPlayer(Caster), WATER_FIELD_DUMMY1(), x, y, 270)
set i = i + 1
endloop
set i = 0
loop
exitwhen i == 12
set x = GetSpellTargetX() + 300 * Cos(30.00 * I2R(i) * bj_DEGTORAD)
set y = GetSpellTargetY() + 300 * Sin(30.00 * I2R(i) * bj_DEGTORAD)
call CreateUnit(GetOwningPlayer(Caster), WATER_FIELD_DUMMY1(), x, y, 270)
set i = i + 1
endloop
call TriggerSleepAction(2.00)
call GroupEnumUnitsInRect(g, bj_mapInitialPlayableArea, Filter(function spell_filter))
call ForGroup( (g), function Trig_killunit)
set i = 0
loop
exitwhen i == 6
set x = GetSpellTargetX() + 100 * Cos(60.00 * I2R(i) * bj_DEGTORAD)
set y = GetSpellTargetY() + 100 * Sin(60.00 * I2R(i) * bj_DEGTORAD)
call CreateUnit(GetOwningPlayer(Caster), WATER_FIELD_DUMMY2(), x, y, 270)
set i = i + 1
endloop
set i = 0
loop
exitwhen i == 6
set x = GetSpellTargetX() + 200 * Cos(60.00 * I2R(i) * bj_DEGTORAD)
set y = GetSpellTargetY() + 200 * Sin(60.00 * I2R(i) * bj_DEGTORAD)
call CreateUnit(GetOwningPlayer(Caster), WATER_FIELD_DUMMY2(), x, y, 270)
set i = i + 1
endloop
set i = 0
loop
exitwhen i == 12
set x = GetSpellTargetX() + 300 * Cos(30.00 * I2R(i) * bj_DEGTORAD)
set y = GetSpellTargetY() + 300 * Sin(30.00 * I2R(i) * bj_DEGTORAD)
call CreateUnit(GetOwningPlayer(Caster), WATER_FIELD_DUMMY2(), x, y, 270)
set i = i + 1
endloop
call GroupEnumUnitsInRange(g, GetSpellTargetX(), GetSpellTargetY(), 300, Condition(function Trig_damage_conditions))
loop
set u = FirstOfGroup(g)
exitwhen u == null
call UnitDamageTarget(Caster, u ,r ,TRUE ,TRUE, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_MAGIC, null )
endloop
call TriggerSleepAction (1.50)
call GroupEnumUnitsInRect(g, bj_mapInitialPlayableArea, Filter(function spell_filter2))
call ForGroup( (g), function Trig_killunit)
call RemoveLocation(Pos)
call DestroyGroup(g)
set Pos=null
set Caster=null
set g=null
endfunction
//===========================================================================
function InitTrig_Spell_Inita takes nothing returns nothing
set gg_trg_Spell_Inita = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Spell_Inita, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Spell_Inita, Condition( function Trig_Spell_Init_Conditions ) )
call TriggerAddAction( gg_trg_Spell_Inita, function Trig_Spell_Init_Actions )
endfunction