• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece! 🔗 Click here to enter!

[Spell] Purge/Chastity

Status
Not open for further replies.
Level 3
Joined
Sep 7, 2013
Messages
40
So, I'm at it again, trying to make spells beyond my mediocre limits.

Currently, I'm trying to make an advanced, Hero-worthy Purge called Chastity. Ideally, it works as such:

Blasts the target and all their allies within 150/200/250 with holy energy, dispelling magic effects and immobilising them for 1/1.5/2 seconds. They are then slowed a large/large/large amount for 10/12/14 seconds, but moderately/slowly/very slowly regain their movement speed over time.

That's what it's supposed to do, but I can't figure out a) how to make it AoE, b) how to change the speed factor and recovery rate, and c) if I need to use triggers. Any help would be appreciated :wink:
 
Level 26
Joined
Sep 26, 2009
Messages
2,427
I would do it this way:
First, you will need 3 abilities:
The first ability is the ability hero will have. I would base this ability off Channel ability, as it has easy to set-up fields and you can give it random spell ID.

The second ability is Ensnare and it will represent the immobilizing effect. This is a non-hero ability, but has 3 levels - each level has different duration.

The third ability is ability places debuff on enemy unit, however whatever that ability's effect is has no meaning and the ability's effect should be nulled.
This third ability should be just a placeholder for the move-speed slowing effect (this is just so unit sees the debuff on itself, the buff serves no other purpose than to tell players that a unit is affected by movement speed slowing effect).

Since you didn't say more to it, the "large" slowing effect will be -50% of default movment speed.

I would use this steps to realize the ability:
1 - Hero uses ability
2 - Pick all units within range of target point of ability being cast and save them inside unit group
3 - Through triggers remove all buffs on every unit inside unit group
4 - Create 1 dummy unit, give it the ensnare ability, set the ability level to the same level as hero's ability. Make the dummy unit cast ensnare on every unit in unit group.
5 - Remove dummy unit, start timer
6 - Once timer is up, pick all units in unit group and create new dummy unit, give it the third ability, make the dummy cast the third ability on every unit inside unit group
7 - Set movement speed of each unit inside group to max(current speed - 0,5*default speed; 0,5*default speed) - this will slow unit down if it has some movement speed increasing buff, but won't slow the unit for more than 50% of its default speed.
8 - Make periodic trigger, which picks all units inside group, check if unit has this spell's debuff.
9 - If it does have the debuff, increase current movement speed by a % of default movement speed.
10 - If it does not have the debuff (e.g. the debuff got dispelled), increment current speed by [% * remaining duration of the debuff] of defualt movement speed. Then remove this unit from unit group

I would suggest you play a bit with the numbers of the "slowed" effect and its duration so you get nice numbers (e.g. 50%_slow/14_duration does not make a nice number)
 
Status
Not open for further replies.
Top