Title: Rain of X System jass (gui friendly)
Description:
This system allows you to create rain of fire style spells with any model and any impact effects you choose instead of just damaging the targets
I noticed some issues with the rain of x system found here:
Rain of [X] System, Version 1.1a
Namely it lags online and lacks the ability to include secondary effects in addition to damage so I created my own Rain of X system.
Requirements:
Any unit indexer (One is included in the map file)
Usage:
To call down a single wave of a rain of x:
call RoX_Jass caster,targetx,targety,radius,fx,shardcount,startheight,fallspeed,impacttrig
unit caster: The variable udg_Rox_Jass_Caster is set to this unit when the wave hits
real target x: x coordinate of the center of the rain
real target y: y coordinate of the center of the rain
real radius: Radius of the rain
string fx: Model for the rain of x shards e.g. a farseer missile
integer shardcount: Number of shards in the wave, purely visual
real start height: Starting height of each shard
real fallspeed: Speed at which the shards fall
trigger impacttrig: trigger that is run once for each unit in the radius when the wave hits. Each instance of the trigger will have RoX_Jass_Caster set to the caster and RoX_Jass_Target set to the current unit being enumerated. e.g. You could have Rox_Jass_Caster damage Rox_Jass_Target by calling UnitDamageTarget. If you want your Rain of X spell to not affect certain units you must specify that in conditions in the trigger or if/then/else statements.
To call down x waves of a rain of x:
call RoX_Jass_Loop caster,targetx,targety,radius,fx,shardcount,startheight,fallspeed,impacttrig,count,delay
The parameters with the same names as above are the same as above
integer count: The number of waves
real delay: Delay between waves, must be greater then or equal to 0.27 or it will lag.
How to Import:
1. If you don't already have a unit indexer, install one in your map. You can copy the included Unit Indexer trigger into your map if you don't want to search for a unit indexer.
2. Copy the Shard_Dummy unit into your map
3. Copy the trigger category Rain of X System JASS into your map
4. Set the variable RoX_Jass_Dummy_ID to the ID of the shard dummy
5. Export dummy.mdx from this map and import it into yourmap.
credits:
Vexorain for dummy.mdx
Bribe for the unit indexer I used
lolrepoted for the concept, test map terrain and dummy unit object editor data