Purification Bomb v1.1.1x

This bundle is marked as pending. It has not been reviewed by a staff member yet.
  • Like
Reactions: Mythic and JAKEZINC
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 the PB Config trigger

MEDIA SHOWCASE:

CHANGELOG:
1.1.1x:
Just updating the description, no changes to the spellwork
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



If you like this work and wish to support me financially, you can support me via Ko-fi.
Contents

Purification Bomb v1.1 (Map)

Level 17
Joined
Aug 13, 2013
Messages
1,680
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.
 
Level 32
Joined
Jan 30, 2013
Messages
11,408
Thanks for the feedback!

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.

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:
Level 32
Joined
Jan 30, 2013
Messages
11,408
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 ^^
 
Top