edit: sorry, spoiler tags don't seem to work.
Kinda long time since I've last used the world editor, but it's great to mess around with if you're bored or come up with a new idea. Do note that I suck at fixing leaks, so... yeah.
Basically the map design is an open RPG, where almost everything is randomized: monsters, drops, spells, etc.
Several very rare artifacts that drop are meant to boost the power of each spell the hero has, whilst the artifact is being carried. The increase in spell-power is meant to be rather large, at least 2x, and at most 30x. The easiest way I've found to do this is to create a loop, where a variable controls the number of time the loop is run, and thus the spell's total power. Inside the loop I have a dummy unit re-casting the spell however many times as necessary. The strange thing (to me) is that it is only working with some spells. Others, such as starfall, seem to be working because when multiplied 30x, the animation becomes rather intense, however total damage output does not reflect on that.
Now most of these spells work fine when the output is doubled, ie 2x - but on 30x output, the total effect is still only doubled.
Here are some of the spells' triggers that aren't working: The variable ToviacMultiplier is currently set to 30.
Explosive Potion:
Starfall:
Fireblast:
Healing Ward: here you can see I modified it, somewhat randomizing placement, in the hope that the problem would be solved by preventing unit stacking in the same location.
Kinda long time since I've last used the world editor, but it's great to mess around with if you're bored or come up with a new idea. Do note that I suck at fixing leaks, so... yeah.
Basically the map design is an open RPG, where almost everything is randomized: monsters, drops, spells, etc.
Several very rare artifacts that drop are meant to boost the power of each spell the hero has, whilst the artifact is being carried. The increase in spell-power is meant to be rather large, at least 2x, and at most 30x. The easiest way I've found to do this is to create a loop, where a variable controls the number of time the loop is run, and thus the spell's total power. Inside the loop I have a dummy unit re-casting the spell however many times as necessary. The strange thing (to me) is that it is only working with some spells. Others, such as starfall, seem to be working because when multiplied 30x, the animation becomes rather intense, however total damage output does not reflect on that.
Now most of these spells work fine when the output is doubled, ie 2x - but on 30x output, the total effect is still only doubled.
Here are some of the spells' triggers that aren't working: The variable ToviacMultiplier is currently set to 30.
Explosive Potion:
Trigger:
- Explosive Potion
- Events
- Unit - A unit Starts the effect of an ability
- Conditions
- Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- ((Item carried by (Triggering unit) of type |cff66cc00Toviac|r) is owned) Equal to True
- Then - Actions
- Set SpellMultiplier = ToviacMultiplier
- Else - Actions
- Set SpellMultiplier = 1
- Skip remaining actions
- If - Conditions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Ability being cast) Equal to Explosive Potion lvl 1
- Then - Actions
- For each (Integer A) from 1 to (SpellMultiplier - 1), do (Actions)
- Loop - Actions
- Unit - Create 1 Sheep (Dummy Unit) for (Owner of (Triggering unit)) at (Position of (Triggering unit)) facing Default building facing degrees
- Unit - Add a 4.00 second Generic expiration timer to (Last created unit)
- Unit - Add Explosive Potion lvl 1 to (Last created unit)
- Unit - Order (Last created unit) to Neutral Tinker - Cluster Rockets (Target point of ability being cast)
- Loop - Actions
- For each (Integer A) from 1 to (SpellMultiplier - 1), do (Actions)
- Else - Actions
- If - Conditions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Events
Starfall:
Trigger:
- Starfall
- Events
- Unit - A unit Starts the effect of an ability
- Conditions
- Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- ((Item carried by (Triggering unit) of type |cff66cc00Toviac|r) is owned) Equal to True
- Then - Actions
- Set SpellMultiplier = ToviacMultiplier
- Else - Actions
- Set SpellMultiplier = 1
- Skip remaining actions
- If - Conditions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Ability being cast) Equal to Starfall lvl 1
- Then - Actions
- For each (Integer A) from 1 to (SpellMultiplier - 1), do (Actions)
- Loop - Actions
- Unit - Create 1 Sheep (Dummy Unit) for (Owner of (Triggering unit)) at (Position of (Triggering unit)) facing Default building facing degrees
- Unit - Add a 4.00 second Generic expiration timer to (Last created unit)
- Unit - Add Starfall lvl 1 to (Last created unit)
- Unit - Order (Last created unit) to Night Elf Priestess Of The Moon - Starfall
- Loop - Actions
- For each (Integer A) from 1 to (SpellMultiplier - 1), do (Actions)
- Else - Actions
- If - Conditions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Events
Fireblast:
Trigger:
- Fireblast
- Events
- Unit - A unit Starts the effect of an ability
- Conditions
- Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- ((Item carried by (Triggering unit) of type |cff66cc00Toviac|r) is owned) Equal to True
- Then - Actions
- Set SpellMultiplier = ToviacMultiplier
- Else - Actions
- Set SpellMultiplier = 1
- Skip remaining actions
- If - Conditions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Ability being cast) Equal to Fireblast lvl 1
- Then - Actions
- For each (Integer A) from 1 to (SpellMultiplier - 1), do (Actions)
- Loop - Actions
- Unit - Create 1 Sheep (Dummy Unit) for (Owner of (Triggering unit)) at (Position of (Triggering unit)) facing Default building facing degrees
- Unit - Add a 4.00 second Generic expiration timer to (Last created unit)
- Unit - Add Fireblast lvl 1 to (Last created unit)
- Unit - Order (Last created unit) to Neutral Pandaren Brewmaster - Breath Of Fire (Target point of ability being cast)
- Loop - Actions
- For each (Integer A) from 1 to (SpellMultiplier - 1), do (Actions)
- Else - Actions
- If - Conditions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Events
Healing Ward: here you can see I modified it, somewhat randomizing placement, in the hope that the problem would be solved by preventing unit stacking in the same location.
Trigger:
- Healing Ward
- Events
- Unit - A unit Starts the effect of an ability
- Conditions
- Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- ((Item carried by (Triggering unit) of type |cff66cc00Toviac|r) is owned) Equal to True
- Then - Actions
- Set SpellMultiplier = ToviacMultiplier
- Else - Actions
- Set SpellMultiplier = 1
- Skip remaining actions
- If - Conditions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Ability being cast) Equal to Healing Ward lvl 1
- Then - Actions
- For each (Integer A) from 1 to (SpellMultiplier - 1), do (Actions)
- Loop - Actions
- Unit - Create 1 Sheep (Dummy Unit) for (Owner of (Triggering unit)) at (Position of (Triggering unit)) facing Default building facing degrees
- Unit - Add a 4.00 second Generic expiration timer to (Last created unit)
- Unit - Add Healing Ward lvl 1 to (Last created unit)
- Unit - Order (Last created unit) to Orc Witch Doctor - Healing Ward ((Target point of ability being cast) offset by (Random real number between 5.00 and 256.00) towards (Random real number between 1.00 and 359.00) degrees)
- Loop - Actions
- For each (Integer A) from 1 to (SpellMultiplier - 1), do (Actions)
- Else - Actions
- If - Conditions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Events