1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. Seek unity between the elements in the 22nd Terraining Contest Poll.
    Dismiss Notice
  3. Seize the moment! The 18th Mini Mapping Contest has commenced.
    Dismiss Notice
  4. The heavens smile on the old faithful. The 16th Techtree Contest has begun.
    Dismiss Notice
  5. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Purification Bomb v1.1.1

Submitted by Daffa
This bundle is marked as pending. It has not been reviewed by a staff member yet.
PURIFICATION BOMB
"LAST M.A.D.M.A.N STANDING."

REQUIRES 1.31 PATCH OR ABOVE

ABILITY INFORMATION:
Channels destructive energy for 5 seconds from self. Afterward, detonates a destructive pure energy to a huge radius dealing pure damage to all units within radius. The damage increases as distance increases, capped at 2000 range. Canceled if killed before explosion.
Level 1 - 100 base damage at the center. 10 damage increase per circle. Total of 3 explosion directions
Level 2 - 200 base damage at the center. 20 damage increase per circle. Total of 5 explosion directions
Level 3 - 300 base damage at the center. 30 damage increase per circle. Total of 18 explosion directions

INSTALLATION GUIDE:
0. Enable 'Automatically Create Variables while Pasting Trigger Data' in Fil > Preference > General
1. Install Unit Indexer on your map
2. Copy the Purification Bomb ability in Object Editor
3. Paste the ability to your map's Object Editor
4. Copy the Purification Bomb folder in Trigger Editor
5. Paste the folder in your map's Trigger Editor
6. DONE! If you want to configure things, just modify MCF Config trigger

MEDIA SHOWCASE:


CHANGELOG:
1.1.1:
Added the forgotten credit section
1.1:
Added counter to replace unit count from group
Added timer for channel effect loop
Changed point effect to attachment effect for initial explosion and channeling effect
Changed PB_Timeout to cast variable
Changed angle calculation to an init trigger
Separate config and initialization to make them clear
1.0:
First Release

CREDIT:
Mentalmeisters - Original Idea
Bribe - Unit Indexer
Contents

Purification Bomb v1.1 (Map)

  1. Daffa

    Daffa

    Joined:
    Jan 30, 2013
    Messages:
    8,201
    Resources:
    31
    Packs:
    1
    Maps:
    9
    Spells:
    18
    Tutorials:
    3
    Resources:
    31
    Have fun exploding everything to dust :p

    Anyway, this ability can be modified to do some interesting patterns using some angular math (degree, not radian). I might create another spell to explore it further.
     
  2. JAKEZINC

    JAKEZINC

    Joined:
    Aug 13, 2013
    Messages:
    1,615
    Resources:
    9
    Spells:
    9
    Resources:
    9
    By just previewing triggers, (I don't use 1.31+ yet)

    Why time out is on a custom script and seperated on those configs? for precision?
    You might want to include this as the user must configure the number of iterations.

    • Set VariableSet PB_Point = (Position of PB_Unit)
    • Special Effect - Create a special effect at PB_Point using PB_ChannelExpSFX
    • Special Effect - Destroy (Last created special effect)
    • Custom script: call RemoveLocation(udg_PB_Point)

    ^You can discard point here and use on unit's origin instead.
    (the caster doesn't move unless it's forced to by the way,
    you must also consider flying casters to not spawn the effect on ground or else it may look weird.
    plus you have no location to deal with this)

    • Set VariableSet PB_AngleDistance = (360.00 / (Real(PB_Splitter[PB_Level[PB_Index]])))

    ^Can be calculated once on initialization.

    • Trigger - Run PB_FilterTrigger (checking conditions)

    ^Why filtering is seperated just to make it configurable? you can just directly refer the conditions inside the unit group and make use of boolean config variables instead, it's much faster for the user to configure the filtration this way. Also exclude dead units by default.

    I suggest to make a configuration of rate for that spamming caster effect.
    Also make use of integers for enabling and disabling triggers instead of count units function per loop.

    Overall, the spell concept is pretty much used I think ('channels then boom' mechanic)
    the only notable here is the configurations for its spawned effects which is good by the way.
     
  3. Daffa

    Daffa

    Joined:
    Jan 30, 2013
    Messages:
    8,201
    Resources:
    31
    Packs:
    1
    Maps:
    9
    Spells:
    18
    Tutorials:
    3
    Resources:
    31
    Thanks for the feedback!

    It's technically the timer used for the loop and I prefer users to not touch that. Any better variable naming I can use so I can be more specific? I can consider shifting it to be user-change-able. Also, yes, I need that precision.

    Good point there. It must be the laziness that I go with that route.

    Technically true, but then I have to make said variable an index so it can be used in the loop. I doubt it's that operation heavy, though I'll consider it.

    Pretty much a practice I have done recently for newer entries. I find having a separate trigger where configs are located help users configure without getting through all the main code. Oh yeah, I will exclude those.

    Yeah, pretty overused concept to be honest. I just find this fun to code and allows me to improve my coding skills. Just learned to use channeling spells properly without Bribe's SpellEvent, so this is mostly for me to train my coding skills.
     
    Last edited: Mar 5, 2020
  4. Directive255

    Directive255

    Joined:
    Nov 4, 2010
    Messages:
    2,431
    Resources:
    2
    Models:
    1
    Maps:
    1
    Resources:
    2
    M.A.D.M.A.N.

    Destruction, mutually assured.

    The first and the only.

    Interesting :3
     
  5. Daffa

    Daffa

    Joined:
    Jan 30, 2013
    Messages:
    8,201
    Resources:
    31
    Packs:
    1
    Maps:
    9
    Spells:
    18
    Tutorials:
    3
    Resources:
    31
    Updated.

    1.1:
    Added counter to replace unit count from group
    Added timer for channel effect loop
    Changed point effect to attachment effect for initial explosion and channeling effect
    Changed PB_Timeout to cast variable
    Changed angle calculation to an init trigger
    Separate config and initialization to make them clear

    @Directive255 yeah, pretty much looted from that. The fact using numbers can make some interesting patterns allows me to create some interesting different ones though ^^