Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
Spell Name: Obscuration (my entry for ZephyrContest#9)
Description:
The hero will be invisible but can't attack and use other spells. In this state, he has a sub ability to teleport an enemy ground unit to the caster's position.
The target is invulnerable and can't move when teleported state and stuns nearby enemy units for 5 seconds. After teleporting, 6 firebolts will hit the target, dealing damage and stun.
|cffffcc00Teleport timer:|r 14 seconds or you can use the Obscuration ability to teleport prematurely and disables the Teleport ability.
Instructions:
- Be sure to check the Automatically create unknown variables while passing trigger data, via File>Preferences>General tab.
- In the object editor, copy all the custom Unit and Abilities to your map.
- Copy all that is written from the Obscuration folder to your map.
- Be sure to input the right configutation from the Setup trigger
Triggers:
Setup
Events
Map initialization
Conditions
Actions
-------- The invisibility cast --------
Set OB_CastInvisibility = Obscuration
-------- The teleport cast to target --------
Set OB_CastTeleport = Teleport
-------- The invisibility ability, NEVER TOUCH THIS coz this is not a custom abiity --------
Set OB_InvisibilityAbil = Ghost
-------- The invisibility base duration multiplier --------
Set OB_InvisibilityBaseDuration = 5.00
-------- The effect of the teleport --------
Set OB_SfxTeleport = Abilities\Spells\Human\MassTeleport\MassTeleportCaster.mdl
-------- The dummy SFX of the teleport, this is a unit --------
Set OB_TeleporterType = MDX [Teleporter]
-------- This will stun ONLY the enemies in the StunUnitsAoE --------
Set OBT_StunAbil = Stun
-------- This will stun and damage the target after being teleported --------
Set OBT_StunAndDamAbil = Stun and Damage
-------- Disables the attack of the caster once he is invisible --------
Set OB_DisableAttackAbil = Cargo Hold (Orc Burrow)
-------- The dummy caster, in the object editor, the CAST BACKSWING and CAST POINT MUST be 0 --------
-------- Only 1 dummy is created per cast --------
Set OBT_DummyCasterType = DUMMY_CASTER
-------- The stunning AOE of all enemies around the target, this should be less than the CAST RANGE of the STUN ability --------
Set OBT_StunUnitsAoE = 500.00
-------- Preloadings, NEVER TOUCH THIS --------
Set OB_Loc1 = (Random point in (Playable map area))
Unit - Create 1 OB_TeleporterType for Neutral Passive at OB_Loc1 facing Default building facing degrees
Unit - Kill (Last created unit)
Unit - Create 1 OBT_DummyCasterType for Neutral Passive at OB_Loc1 facing Default building facing degrees
Unit - Add OBT_StunAbil to (Last created unit)
Unit - Add OBT_StunAndDamAbil to (Last created unit)
Unit - Add OB_CastTeleport to (Last created unit)
Unit - Add OB_DisableAttackAbil to (Last created unit)
Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
Custom script: function OB_TeleportingLoop takes nothing returns nothing
For each (Integer OBT_IndexLOOP) from 1 to OBT_Index1, do (Actions)
Loop - Actions
Set OBT_Index2 = OBT_IndexARRAY[OBT_IndexLOOP]
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(OBT_Caster[OBT_Index2] is alive) Equal to True
(OBT_Target[OBT_Index2] is alive) Equal to True
(Level of OB_InvisibilityAbil for OBT_Caster[OBT_Index2]) Greater than 0
Then - Actions
Set OBT_Waiting[OBT_Index2] = (OBT_Waiting[OBT_Index2] + 0.20)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
OBT_Waiting[OBT_Index2] Equal to 1.00
Then - Actions
Animation - Play OBT_Portal[OBT_Index2]'s stand animation
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
OBT_Waiting[OBT_Index2] Equal to 4.00
Then - Actions
Set OB_Loc1 = (Position of OBT_Portal[OBT_Index2])
Set OBT_GroupStun = (Units within OBT_StunUnitsAoE of OB_Loc1 matching ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an enemy of (Owner of OBT_Portal[OBT_Index2])) Equal to True) and (True Equal to True))))
Unit Group - Pick every unit in OBT_GroupStun and do (Actions)
Loop - Actions
Unit - Order OBT_Portal[OBT_Index2] to Neutral - Firebolt (Picked unit)
12th Dec 2015
IcemanBo: Too long as NeedsFix. Rejected.
11:06, 27th Jul 2012
Magtheridon96:
Contest Results:
Concept (7.5/10)
Creative (2.5/5)
Unique (5/5)
Okay, I have to be honest, it's quite unique, which is great...
12th Dec 2015
IcemanBo: Too long as NeedsFix. Rejected.
11:06, 27th Jul 2012
Magtheridon96:
Contest Results:
mckill2009
Concept (7.5/10)
Creative (2.5/5)
Unique (5/5)
Okay, I have to be honest, it's quite unique, which is great, but it's pretty boring. Still, there are some creative effects put in there, so I can't give you a very low score. I only deducted points because of irrelevancy. If it was more relevant, it would get a 9 or a 10.
Coding (17/20)
MUI & Leakless (8/8)
Bugless (4.5/5)
Efficient (4.5/5)
Documentation & Comments (0/2)
Dude, I really wish you could've done this in JASS. GUI hurts my eyes ._.
It's MUI, and there are no leaks. Okay, well done.
As for bugs, there are none that I could produce.
It would be a bit more efficient if you would cache the triggering player into an array variable instead of repeating it inside the loop (you aren't actually repeating it, but you're getting the owner of the portal unit :/
The number of projectiles and the effect should be configurable.
Currently, it's not very readable, and since the "Documentation & Comments" field is only there to take into account readability, I'll have to deduct points there.
You don't need to preload the effect currently because it's in the MPQ file, but if you make it configurable, then leave the preload line there since the effect may or may not be in the MPQ.
There is only one small error. Your enemies would have vision on you when you cast the sub-ability on an enemy unit for a fraction of a second. I don't know how to fix, so I'll only deduct 0.5 here.
Visuals (7/10)
Relevant-to-Theme Effects (1/4)
Quality of Tooltips (3/3)
Quantity of Effects (3/3)
The effects were not really relevant to the theme of assassination (Fire-balls, beacons, etc..). The tooltips are well done. The spell is not too hogged with special effects.
I really don't like this new 'function/endfunction inside GUI triggers' trend o-o
It's only fine when you place a series of comments in between the functions to make it more readable D:
( -------- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -------- is not very neat :/)
well I wanted something in different arrangement Mags, I'm sure I did not break any rules regarding the arrangements ...and I'm exercising my rusty GUI skill, so this will complicate things in my head a bit...
OK, I dont think I need to do this coz the triggering player has only 2 instances and Target has 1 instance..., maybe the last created unit, it has 3 instances...
BTW, this is the first and last time Ima make a spell in this format coz it's really complicated ...
BIG EDIT:
I changed my mind coz I'm gonna transform this in vJass...
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.