Name | Type | is_array | initial_value |
AfterDestination | integer | Yes | |
AlreadyHit | group | Yes | |
Angle | real | Yes | |
AttackType | attacktype | Yes | |
CollisionRadius | real | Yes | |
Damage | real | Yes | |
DamageMethod | integer | Yes | |
DamageSource | unit | Yes | |
DamageSpecialEffect | string | Yes | |
DamageSpecialEffectLocation | string | Yes | |
Distance | real | Yes | |
Drag | boolean | Yes | |
ExplodeRadius | real | Yes | |
HorizontalArc | real | Yes | |
Index | integer | No | |
IndexReseter | integer | No | |
IntegerC | integer | Yes | |
Jump | boolean | Yes | |
LoopIndex | integer | No | |
Missile | unit | Yes | |
MissileEffect | effect | Yes | |
MissileEffectString | string | Yes | |
MissileSize | real | Yes | |
Speed | real | Yes | |
StartPoint | location | Yes | |
TargetsAllies | boolean | Yes | |
TempGroup | group | No | |
TempGroup2 | group | No | |
TempPoint | location | No | |
TempPoint2 | location | No | |
TempPoint3 | location | No | |
TerrainandBoundaryReaction | integer | Yes | |
VerticalArc | real | Yes |
Missile and Jump System
By: Madhatters
To import into your map, import the dummy model and missile unit then simply copy the system folder, after making sure that
'File>Preferences>Create Unknown Variables etc.' is checked(and if you are worried about overwriting variables on your map,
change the variables names before copying to your map).
The variables are pretty self explanatory, and are explained individually in the 'Example 1' trigger(some are also explained below).
====================================================================================================================================
Some explanation on how it works: (Below is really unnecessary, almost a page long, and reading is overrated so I'd skip
this part unless you are confused by something)
====================================================================================================================================
====================================================================================================================================
The damage system not only allows you to set the damage done by the missile and the radius of that damage, but also change the way
the damage is dealt.
Set <DamageMethod> = 1 if you want the missile to explode when any unit comes within <CollisionRadius> range, dealing <Damage> damage to
all units within <ExplodeRadius> range.
Set <DamageMethod> = 2 if you want the missile to deal <Damage> damage to all units in <CollisionRadius> range every .03 seconds.
Set <DamageMethod> = 3 if you want the missile to deal <Damage> damage to all units in <CollisionRadius> range once as it first
passes through them.
Any other value will cause the missile to explode upon reaching the target destination, and deal <Damage> damage in
<ExplodeRadius> range.
If you want to have two damage methods, you can make an identical missile, then change the damage method, and remove the model
effect attached to the missile. This would make it so two missiles are traveling the same speed and distance, each dealing damage
a different way. This will not work for collision explosion missiles though.
====================================================================================================================================
====================================================================================================================================
The after destination system allows you to make your missiles travel in a preset pattern based on the values after reaching the
target location.Values 1-6 = <Damage Method> value must be 2 or 3.
1 = The missile will repeat the initial movement in the same direction, then track back to the casting unit.
2 = The missile will reverse the initial movement, then track back to the casting unit.
3 = The missile will do step 1 minus the tracking, then do a double step 2(to return all the way to the casting point).
4 = The missile will do a double step 2.
5 = The missile will track back.
6 = The missile will do step 5, but also change the target it hits to ally, and flip the <Damage> variable(50 damage becomes 50
healing).
Values 7-13 = <Damage Method> value must be 1.
7 = The missile will bounce once, with half height and distance.
8 = The missile will do step 7, but also half the damage.
9 = Step 7 twice, cutting the height and distance to 1/4 for the second bounce
10 = Step 8 twice, cutting the height, distance, and damage to 1/4 for the second bounce
11 = Fragments into 3 shards, each 1/3 the size and deal 1/3 damage in 1/2 aoe and land 300 distance away.
12 = Step 7, then 11
13 = Step 8, then 12
====================================================================================================================================
====================================================================================================================================
The arc system works by setting the mana of the missile unit to a value between 0-180 based on percent of the total distance
traveled(aka 50% of the way to the target destination would be 90 mana). Then, this mana value is used as an X value in a normal
sine wave(in degrees not radians of course) to calculate a Y value, which is used for both the height and horizontal arc.
====================================================================================================================================
====================================================================================================================================
The jump system simply moves the casting unit with the missile, so it allows you to make use of the 4 damage methods, arc values,
and AfterDestination functions.
====================================================================================================================================
====================================================================================================================================
The bounce system works by checking the 4(I tried 8, it looked awful) main axis(top bottom left right) for pathability, and then
changing the units angle accordingly. I apologize for the buggy looking arc after bouncing, but it was either that or
cancel vertical arc,which isn't realistic.
====================================================================================================================================
Thanks to Vexorian for the model file that I exported from his XE system.
Thanks to Paladon for his index recycler idea.