Import difficulty: nearly none.
GUI/JASS: GUI
MUI: Yes, one of them, as far as I know. (The spell called "Sea Movement")
MPI: All of them should be MPI.
Massive Wave Tooltip:
Type: Active.
Buff: None.
Cooldown: 20s.
Creates waves random points in a area of 400, which creates small explosions of water, dealing tiny/small/medium/huge/incredible amounts of damage to enemies in a range of 400 from the caster.
Sea Movement Tooltip:
Type: Beam.
Buff: None.
Cooldown: 8s.
The Waterbourne shoots a ball of water from the targeted place, hides himself in water, and moves, invisible, to the targeted place. When he reach the targeted place, he unhides himself, dealing damage around the targeted place.
Waveskin tooltip:
Type: Active.
Buff: None.
Cooldown: 30s.
When low on health, the Waterbourne has a trick: Waterskin. the Waterbourne turns himself into water, hiding for 5/7,5/10/12,5/150 seconds and healing.
Tsunami tooltip:
Type: Active.
Buff: None.
Cooldown: 90s.
The Waterbourne channels through 30 seconds, and thereafter, all the Waterbourne's wrath is unleashed into a deadly explosion of water, which paralyses all hit opponents.
Screenies:
A pic of Massive Wave.
A pic of Sea Movement.
A pic of Waveskin (looks much better ingame)
2 pics of Tsunami (looks much better ingame)
How to implement: (GUI)
Codes: (GUI)
Massive Wave:
Waveskin:
Sea Movement:
Tsunami:
Okay guys, it tells me to shorten the thread, so I post the GUI codes in the next post.
Enjoy.
GUI/JASS: GUI
MUI: Yes, one of them, as far as I know. (The spell called "Sea Movement")
MPI: All of them should be MPI.
Massive Wave Tooltip:
Type: Active.
Buff: None.
Cooldown: 20s.
Creates waves random points in a area of 400, which creates small explosions of water, dealing tiny/small/medium/huge/incredible amounts of damage to enemies in a range of 400 from the caster.
Sea Movement Tooltip:
Type: Beam.
Buff: None.
Cooldown: 8s.
The Waterbourne shoots a ball of water from the targeted place, hides himself in water, and moves, invisible, to the targeted place. When he reach the targeted place, he unhides himself, dealing damage around the targeted place.
Waveskin tooltip:
Type: Active.
Buff: None.
Cooldown: 30s.
When low on health, the Waterbourne has a trick: Waterskin. the Waterbourne turns himself into water, hiding for 5/7,5/10/12,5/150 seconds and healing.
Tsunami tooltip:
Type: Active.
Buff: None.
Cooldown: 90s.
The Waterbourne channels through 30 seconds, and thereafter, all the Waterbourne's wrath is unleashed into a deadly explosion of water, which paralyses all hit opponents.
Screenies:
A pic of Massive Wave.
A pic of Sea Movement.
A pic of Waveskin (looks much better ingame)
2 pics of Tsunami (looks much better ingame)
How to implement: (GUI)
JASS:
Copy the triggers and paste them into your map. Also remember the abilities.
Codes: (GUI)
Massive Wave:
Code:
Massive Wave Cast
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Massive Wave
Actions
Set MW_PlayerNumber = (Player number of (Owner of (Triggering unit)))
Set MW_Caster[MW_PlayerNumber] = (Casting unit)
Set MW_CasterLoc[MW_PlayerNumber] = (Position of MW_Caster[MW_PlayerNumber])
Set MW_Region[MW_PlayerNumber] = (Region centered at MW_CasterLoc[MW_PlayerNumber] with size (400.00, 400.00))
Set MW_Units[MW_PlayerNumber] = (Units within 400.00 of MW_CasterLoc[MW_PlayerNumber] matching (((Owner of (Matching unit)) is an enemy of (Owner of MW_Caster[MW_PlayerNumber])) Equal to True))
If ((Level of Massive Wave for MW_Caster[MW_PlayerNumber]) Equal to 1) then do (Set MW_Damage = ((Real((Level of Massive Wave for MW_Caster[MW_PlayerNumber]))) x 2.00)) else do (Do nothing)
If ((Level of Massive Wave for MW_Caster[MW_PlayerNumber]) Equal to 2) then do (Set MW_Damage = ((Real((Level of Massive Wave for MW_Caster[MW_PlayerNumber]))) x 3.00)) else do (Do nothing)
If ((Level of Massive Wave for MW_Caster[MW_PlayerNumber]) Equal to 3) then do (Set MW_Damage = ((Real((Level of Massive Wave for MW_Caster[MW_PlayerNumber]))) x 4.00)) else do (Do nothing)
If ((Level of Massive Wave for MW_Caster[MW_PlayerNumber]) Equal to 4) then do (Set MW_Damage = ((Real((Level of Massive Wave for MW_Caster[MW_PlayerNumber]))) x 5.00)) else do (Do nothing)
If ((Level of Massive Wave for MW_Caster[MW_PlayerNumber]) Equal to 5) then do (Set MW_Damage = ((Real((Level of Massive Wave for MW_Caster[MW_PlayerNumber]))) x 6.00)) else do (Do nothing)
Countdown Timer - Start MW_Timer[MW_PlayerNumber] as a Repeating timer that will expire in 0.30 seconds
Unit - Pause MW_Caster[MW_PlayerNumber]
Wait 3.00 seconds
Countdown Timer - Pause MW_Timer[MW_PlayerNumber]
Unit - Unpause MW_Caster[MW_PlayerNumber]
Custom script: call DestroyGroup(udg_MW_Units[udg_MW_PlayerNumber])
Custom script: call RemoveRect(udg_MW_Region[udg_MW_PlayerNumber])
Custom script: call RemoveLocation(udg_MW_CasterLoc[udg_MW_PlayerNumber])
Custom script: set udg_MW_Damage = 0
Code:
Massive Wave Periodic
Events
Time - MW_Timer[1] expires
Time - MW_Timer[2] expires
Time - MW_Timer[3] expires
Time - MW_Timer[4] expires
Time - MW_Timer[5] expires
Time - MW_Timer[6] expires
Time - MW_Timer[7] expires
Time - MW_Timer[8] expires
Time - MW_Timer[9] expires
Time - MW_Timer[10] expires
Time - MW_Timer[11] expires
Time - MW_Timer[12] expires
Conditions
Actions
Set MW_RandomPoint1 = (Random point in MW_Region[(Integer A)])
Set MW_RandomPoint2 = (Random point in MW_Region[(Integer A)])
For each (Integer A) from 0 to 12, do (Actions)
Loop - Actions
Custom script: exitwhen GetExpiredTimer() == udg_MW_Timer[GetForLoopIndexA()]
Unit Group - Pick every unit in MW_Units[(Integer A)] and do (Actions)
Loop - Actions
Unit - Pause (Picked unit)
Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Other\Drain\ManaDrainCaster.mdl
Special Effect - Destroy (Last created special effect)
Unit - Cause MW_Caster[(Integer A)] to damage (Picked unit), dealing MW_Damage damage of attack type Spells and damage type Normal
Special Effect - Create a special effect attached to the origin of MW_Caster[(Integer A)] using Abilities\Spells\Other\Drain\ManaDrainTarget.mdl
Special Effect - Destroy (Last created special effect)
Unit - Set life of MW_Caster[(Integer A)] to ((Life of MW_Caster[(Integer A)]) + 5.00)
Special Effect - Create a special effect attached to the origin of MW_Caster[(Integer A)] using Abilities\Spells\Undead\FrostArmor\FrostArmorTarget.mdl
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect at MW_RandomPoint1 using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
Special Effect - Destroy (Last created special effect)
Unit Group - Pick every unit in MW_Units[(Integer A)] and do (Actions)
Loop - Actions
Unit - Cause MW_Caster[(Integer A)] to damage (Picked unit), dealing MW_Damage damage of attack type Spells and damage type Normal
Special Effect - Create a special effect at MW_RandomPoint2 using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
Special Effect - Destroy (Last created special effect)
Unit Group - Pick every unit in MW_Units[(Integer A)] and do (Actions)
Loop - Actions
Unit - Cause MW_Caster[(Integer A)] to damage (Picked unit), dealing MW_Damage damage of attack type Spells and damage type Normal
Waveskin:
Code:
Waveskin
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Waveskin
Actions
Set WS_PlayerNumber = (Player number of (Owner of (Triggering unit)))
Set WS_Caster[WS_PlayerNumber] = (Casting unit)
Set WS_CasterLoc[WS_PlayerNumber] = (Position of WS_Caster[WS_PlayerNumber])
Set WS_Units[WS_PlayerNumber] = (Units within 325.00 of (Position of WS_Caster[WS_PlayerNumber]) matching (((Owner of (Matching unit)) is an enemy of (Owner of WS_Caster[WS_PlayerNumber])) Equal to True))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Level of Waveskin for WS_Caster[WS_PlayerNumber]) Equal to 1
Then - Actions
Set WS_Seconds[WS_PlayerNumber] = 5
Set WS_Life[WS_PlayerNumber] = 30.00
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Level of Waveskin for WS_Caster[WS_PlayerNumber]) Equal to 2
Then - Actions
Set WS_Seconds[WS_PlayerNumber] = 7
Set WS_Life[WS_PlayerNumber] = 50.00
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Level of Waveskin for WS_Caster[WS_PlayerNumber]) Equal to 3
Then - Actions
Set WS_Seconds[WS_PlayerNumber] = 10
Set WS_Life[WS_PlayerNumber] = 75.00
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Level of Waveskin for WS_Caster[WS_PlayerNumber]) Equal to 4
Then - Actions
Set WS_Seconds[WS_PlayerNumber] = 12
Set WS_Life[WS_PlayerNumber] = 100.00
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Level of Waveskin for WS_Caster[WS_PlayerNumber]) Equal to 5
Then - Actions
Set WS_Seconds[WS_PlayerNumber] = 15
Set WS_Life[WS_PlayerNumber] = 125.00
Else - Actions
Do nothing
Unit - Hide WS_Caster[WS_PlayerNumber]
Unit - Pause WS_Caster[WS_PlayerNumber]
Special Effect - Create a special effect at WS_CasterLoc[WS_PlayerNumber] using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
Special Effect - Destroy (Last created special effect)
Unit - Set life of WS_Caster[WS_PlayerNumber] to ((Life of WS_Caster[WS_PlayerNumber]) + WS_Life[WS_PlayerNumber])
Custom script: call RemoveLocation(udg_WS_CasterLoc[udg_WS_PlayerNumber])
Wait (Real(WS_Seconds[WS_PlayerNumber])) seconds
Unit - Unhide WS_Caster[WS_PlayerNumber]
Set WS_CasterLoc[WS_PlayerNumber] = (Position of WS_Caster[WS_PlayerNumber])
Special Effect - Create a special effect at MW_CasterLoc[WS_PlayerNumber] using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
Special Effect - Destroy (Last created special effect)
Unit - Unpause WS_Caster[WS_PlayerNumber]
Selection - Select WS_Caster[WS_PlayerNumber] for (Owner of WS_Caster[WS_PlayerNumber])
Unit Group - Pick every unit in WS_Units[WS_PlayerNumber] and do (Actions)
Loop - Actions
Unit - Pause (Picked unit)
Unit - Cause WS_Caster[WS_PlayerNumber] to damage (Picked unit), dealing WS_Life[WS_PlayerNumber] damage of attack type Spells and damage type Normal
Special Effect - Create a special effect attached to the origin of (Picked unit) using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
Special Effect - Destroy (Last created special effect)
Unit - Unpause (Picked unit)
Custom script: call DestroyGroup(udg_WS_Units[udg_WS_PlayerNumber])
Custom script: set udg_WS_Seconds[udg_WS_PlayerNumber] = 0
Custom script: set udg_WS_Life[udg_WS_PlayerNumber] = 0
Custom script: call RemoveLocation(udg_WS_CasterLoc[udg_WS_PlayerNumber])
Sea Movement:
Code:
Sea Movement
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Sea Movement
Actions
Set SM_PlayerNumber = (Player number of (Owner of (Triggering unit)))
Set SM_Caster[SM_PlayerNumber] = (Casting unit)
Set SM_CasterLoc[SM_PlayerNumber] = (Position of SM_Caster[SM_PlayerNumber])
Set SM_TargetPoint[SM_PlayerNumber] = (Target point of ability being cast)
Set SM_Units[SM_PlayerNumber] = (Units within 200.00 of SM_TargetPoint[SM_PlayerNumber] matching (((Owner of (Matching unit)) is an enemy of (Owner of SM_Caster[SM_PlayerNumber])) Equal to True))
If ((Level of Sea Movement for SM_Caster[SM_PlayerNumber]) Equal to 1) then do (Set SM_Damage[SM_PlayerNumber] = 25.00) else do (Do nothing)
If ((Level of Sea Movement for SM_Caster[SM_PlayerNumber]) Equal to 2) then do (Set SM_Damage[SM_PlayerNumber] = 50.00) else do (Do nothing)
If ((Level of Sea Movement for SM_Caster[SM_PlayerNumber]) Equal to 3) then do (Set SM_Damage[SM_PlayerNumber] = 75.00) else do (Do nothing)
If ((Level of Sea Movement for SM_Caster[SM_PlayerNumber]) Equal to 4) then do (Set SM_Damage[SM_PlayerNumber] = 100.00) else do (Do nothing)
If ((Level of Sea Movement for SM_Caster[SM_PlayerNumber]) Equal to 5) then do (Set SM_Damage[SM_PlayerNumber] = 125.00) else do (Do nothing)
Unit - Hide SM_Caster[SM_PlayerNumber]
Unit - Pause SM_Caster[SM_PlayerNumber]
Special Effect - Create a special effect attached to the origin of SM_Caster[SM_PlayerNumber] using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
Special Effect - Destroy (Last created special effect)
Unit - Move SM_Caster[SM_PlayerNumber] instantly to SM_TargetPoint[SM_PlayerNumber]
Unit - Unhide SM_Caster[SM_PlayerNumber]
Special Effect - Create a special effect attached to the origin of SM_Caster[SM_PlayerNumber] using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
Special Effect - Destroy (Last created special effect)
Unit - Unpause SM_Caster[SM_PlayerNumber]
Selection - Select SM_Caster[SM_PlayerNumber] for (Owner of SM_Caster[SM_PlayerNumber])
Unit Group - Pick every unit in SM_Units[SM_PlayerNumber] and do (Actions)
Loop - Actions
Special Effect - Create a special effect attached to the origin of (Picked unit) using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
Special Effect - Destroy (Last created special effect)
Unit - Cause SM_Caster[SM_PlayerNumber] to damage (Picked unit), dealing SM_Damage[SM_PlayerNumber] damage of attack type Spells and damage type Normal
Custom script: call DestroyGroup(udg_SM_Units[udg_SM_PlayerNumber])
Custom script: call RemoveLocation(udg_SM_CasterLoc[udg_SM_PlayerNumber])
Custom script: call RemoveLocation(udg_SM_TargetPoint[udg_SM_PlayerNumber])
Custom script: set udg_SM_Caster[udg_SM_PlayerNumber] = null
Custom script: set udg_SM_PlayerNumber = 0
Tsunami:
Code:
Tsunami Cast
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Tsunami
Actions
Set T_PlayerNumber = (Player number of (Owner of (Triggering unit)))
Set T_Caster[T_PlayerNumber] = (Casting unit)
Set T_CasterLoc[T_PlayerNumber] = (Position of T_Caster[T_PlayerNumber])
Set T_Region[T_PlayerNumber] = (Region centered at T_CasterLoc[T_PlayerNumber] with size (1200.00, 1200.00))
Set T_Units[T_PlayerNumber] = (Units within 1200.00 of T_CasterLoc[T_PlayerNumber] matching (((Owner of (Matching unit)) is an enemy of (Owner of T_Caster[T_PlayerNumber])) Equal to True))
If ((Level of Tsunami for T_Caster[T_PlayerNumber]) Equal to 1) then do (Set T_Damage[T_PlayerNumber] = 75.00) else do (Do nothing)
If ((Level of Tsunami for T_Caster[T_PlayerNumber]) Equal to 2) then do (Set T_Damage[T_PlayerNumber] = 150.00) else do (Do nothing)
If ((Level of Tsunami for T_Caster[T_PlayerNumber]) Equal to 3) then do (Set T_Damage[T_PlayerNumber] = 225.00) else do (Do nothing)
Countdown Timer - Start T_Timer[T_PlayerNumber] as a Repeating timer that will expire in 0.50 seconds
Unit - Pause T_Caster[T_PlayerNumber]
Unit - Make T_Caster[T_PlayerNumber] Invulnerable
Wait 40.00 seconds
Countdown Timer - Pause T_Timer[T_PlayerNumber]
Countdown Timer - Pause T_Seconds[T_PlayerNumber]
Countdown Timer - Start T_TimerRun[T_PlayerNumber] as a Repeating timer that will expire in 0.30 seconds
Wait 5.00 seconds
Countdown Timer - Pause T_TimerRun[T_PlayerNumber]
Unit - Unpause T_Caster[T_PlayerNumber]
Unit - Make T_Caster[T_PlayerNumber] Vulnerable
Custom script: call DestroyGroup(udg_T_Units[udg_T_PlayerNumber])
Custom script: set udg_T_Damage[udg_T_PlayerNumber] = 0
Custom script: call RemoveRect(udg_T_Region[udg_T_PlayerNumber])
Custom script: call RemoveLocation(udg_T_CasterLoc[udg_T_PlayerNumber])
Custom script: set udg_T_PlayerNumber = 0
Code:
Tsunami Channel Periodic
Events
Time - T_Timer[1] expires
Time - T_Timer[2] expires
Time - T_Timer[3] expires
Time - T_Timer[4] expires
Time - T_Timer[5] expires
Time - T_Timer[6] expires
Time - T_Timer[7] expires
Time - T_Timer[8] expires
Time - T_Timer[9] expires
Time - T_Timer[10] expires
Time - T_Timer[11] expires
Time - T_Timer[12] expires
Conditions
Actions
Countdown Timer - Start T_Seconds[T_PlayerNumber] as a Repeating timer that will expire in (Random real number between 0.10 and 1.00) seconds
Animation - Play T_Caster[T_PlayerNumber]'s birth animation
Code:
Tsunami Random Waves
Events
Time - T_Seconds[1] expires
Time - T_Seconds[2] expires
Time - T_Seconds[3] expires
Time - T_Seconds[4] expires
Time - T_Seconds[5] expires
Time - T_Seconds[6] expires
Time - T_Seconds[7] expires
Time - T_Seconds[8] expires
Time - T_Seconds[9] expires
Time - T_Seconds[10] expires
Time - T_Seconds[11] expires
Time - T_Seconds[12] expires
Conditions
Actions
Set T_RandomSecondsRandomPoint[T_PlayerNumber] = (Random point in T_Region[T_PlayerNumber])
Special Effect - Create a special effect at T_RandomSecondsRandomPoint[T_PlayerNumber] using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
Special Effect - Destroy (Last created special effect)
Unit - Cause T_Caster[T_PlayerNumber] to damage circular area after 0.00 seconds of radius 150.00 at T_RandomSecondsRandomPoint[T_PlayerNumber], dealing T_Damage[T_PlayerNumber] damage of attack type Spells and damage type Normal
Custom script: call RemoveLocation(udg_T_RandomSecondsRandomPoint[udg_T_PlayerNumber])
Code:
Tsunami Explode
Events
Time - T_TimerRun[1] expires
Time - T_TimerRun[2] expires
Time - T_TimerRun[3] expires
Time - T_TimerRun[4] expires
Time - T_TimerRun[5] expires
Time - T_TimerRun[6] expires
Time - T_TimerRun[7] expires
Time - T_TimerRun[8] expires
Time - T_TimerRun[9] expires
Time - T_TimerRun[10] expires
Time - T_TimerRun[11] expires
Time - T_TimerRun[12] expires
Conditions
Actions
For each (Integer A) from 0 to 12, do (Actions)
Loop - Actions
Custom script: exitwhen GetExpiredTimer() == udg_T_TimerRun[GetForLoopIndexA()]
Set T_RandomPoint1 = (Random point in T_Region[(Integer A)])
Set T_RandomPoint2 = (Random point in T_Region[(Integer A)])
Unit Group - Pick every unit in T_Units[(Integer A)] and do (Actions)
Loop - Actions
Unit - Pause (Picked unit)
Unit - Cause T_Caster[(Integer A)] to damage (Picked unit), dealing T_Damage[(Integer A)] damage of attack type Spells and damage type Normal
Special Effect - Create a special effect attached to the origin of (Picked unit) using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect at T_RandomPoint1 using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
Unit - Cause T_Caster[(Integer A)] to damage circular area after 0.00 seconds of radius 150.00 at T_RandomPoint1, dealing T_Damage[(Integer A)] damage of attack type Spells and damage type Normal
Unit - Move T_Caster[(Integer A)] instantly to T_RandomPoint1
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect at T_RandomPoint2 using Objects\Spawnmodels\Naga\NagaDeath\NagaDeath.mdl
Unit - Cause T_Caster[(Integer A)] to damage circular area after 0.00 seconds of radius 150.00 at T_RandomPoint2, dealing T_Damage[(Integer A)] damage of attack type Spells and damage type Normal
Unit - Move T_Caster[(Integer A)] instantly to T_RandomPoint2
Special Effect - Destroy (Last created special effect)
Custom script: call RemoveLocation(udg_T_RandomPoint1)
Custom script: call RemoveLocation(udg_T_RandomPoint2)
Okay guys, it tells me to shorten the thread, so I post the GUI codes in the next post.
Enjoy.