1. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  2. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  3. The Lich King demands your service! We've reached the 19th edition of the Icon Contest. Come along and make some chilling servants for the one true king.
    Dismiss Notice
  4. The 4th SFX Contest has started. Be sure to participate and have a fun factor in it.
    Dismiss Notice
  5. The poll for the 21st Terraining Contest is LIVE. Be sure to check out the entries and vote for one.
    Dismiss Notice
  6. The results are out! Check them out.
    Dismiss Notice
  7. Don’t forget to sign up for the Hive Cup. There’s a 555 EUR prize pool. Sign up now!
    Dismiss Notice
  8. The Hive Workshop Cup contest results have been announced! See the maps that'll be featured in the Hive Workshop Cup tournament!
    Dismiss Notice
  9. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Zephyr Contest #11 - My aura, Your aura

Discussion in 'Contest Archive' started by Pharaoh_, Jul 1, 2014.

Thread Status:
Not open for further replies.
  1. Mythic

    Mythic

    Joined:
    Apr 24, 2012
    Messages:
    7,757
    Resources:
    106
    Models:
    90
    Icons:
    5
    Maps:
    3
    Spells:
    6
    Tutorials:
    2
    Resources:
    106
    Oh right. Feedback is forbidden. :goblin_cry:
     
  2. IcemanBo

    IcemanBo

    Joined:
    Sep 6, 2013
    Messages:
    6,166
    Resources:
    22
    Maps:
    3
    Spells:
    11
    Template:
    1
    Tutorials:
    4
    JASS:
    3
    Resources:
    22
  3. Zeatherann

    Zeatherann

    Joined:
    Nov 25, 2008
    Messages:
    1,303
    Resources:
    6
    Skins:
    1
    Tools:
    1
    Maps:
    4
    Resources:
    6

    Well, the inaccuracy of floating point numbers in Warcraft III is the exact same inaccuracy of any IEEE 32-bit floating point number.

     
  4. BPower

    BPower

    Joined:
    Mar 18, 2012
    Messages:
    1,715
    Resources:
    21
    Spells:
    15
    Tutorials:
    1
    JASS:
    5
    Resources:
    21
    Nice to see the contest is going well. Good luck to all competitors.
     
  5. Zeatherann

    Zeatherann

    Joined:
    Nov 25, 2008
    Messages:
    1,303
    Resources:
    6
    Skins:
    1
    Tools:
    1
    Maps:
    4
    Resources:
    6

    I need to just sit down, and finish this stupid aura. Man is it requiring more side systems than I thought.

     
  6. Kyrbi0

    Kyrbi0

    Joined:
    Jul 29, 2008
    Messages:
    7,897
    Resources:
    1
    Models:
    1
    Resources:
    1
    QFT.

    Minus the 'systems' part. Lol, the only system mine needs is a SYSTEM OF A DOWN.
     
  7. Zeatherann

    Zeatherann

    Joined:
    Nov 25, 2008
    Messages:
    1,303
    Resources:
    6
    Skins:
    1
    Tools:
    1
    Maps:
    4
    Resources:
    6

    What does QFT mean? Half my problem is picking my battles for coding. I can't have perfect code from the start.

     
  8. Kyrbi0

    Kyrbi0

    Joined:
    Jul 29, 2008
    Messages:
    7,897
    Resources:
    1
    Models:
    1
    Resources:
    1
    "Quoted For Truth". I am essentially agreeing to what you said, indicating it applies to me (or in general) as well.

    Don't say that, of course you can have perfect coding!! :p

    /nefariously continues undermining his opponents
     
  9. Zeatherann

    Zeatherann

    Joined:
    Nov 25, 2008
    Messages:
    1,303
    Resources:
    6
    Skins:
    1
    Tools:
    1
    Maps:
    4
    Resources:
    6

    I except to have perfect coding with each keystroke. Or, I try to account for all the possibilities.

     
  10. GywGod133

    GywGod133

    Joined:
    Jul 16, 2012
    Messages:
    633
    Resources:
    3
    Maps:
    1
    Spells:
    1
    Tutorials:
    1
    Resources:
    3
    o_O its july 24

    maybe next day I will post my FINAL ENTRY
     
  11. Almia

    Almia

    Joined:
    Apr 24, 2012
    Messages:
    4,842
    Resources:
    35
    Spells:
    30
    Tutorials:
    4
    JASS:
    1
    Resources:
    35
    PFT..
    Waiting for HC 7 XD

    Can't wait to see the competitors' spells
     
  12. Tank-Commander

    Tank-Commander

    Spell Reviewer

    Joined:
    May 26, 2009
    Messages:
    1,540
    Resources:
    44
    Packs:
    1
    Spells:
    41
    Tutorials:
    2
    Resources:
    44
    One week remaining, time to double check and triple check code
     
  13. Bannar

    Bannar

    Joined:
    Mar 19, 2008
    Messages:
    3,087
    Resources:
    20
    Spells:
    5
    Tutorials:
    1
    JASS:
    14
    Resources:
    20
    After you double check, and then triple check - thats a total of 5 checks!
     
  14. Kyrbi0

    Kyrbi0

    Joined:
    Jul 29, 2008
    Messages:
    7,897
    Resources:
    1
    Models:
    1
    Resources:
    1
    Quoted For Truth.

    We'd be having it sooner, but Pharaoh seems to be the only one approving these things, and feels it was 'too much at once'. *sigh* Don't worry, I'm working on the write-up. : )
     
  15. Zeatherann

    Zeatherann

    Joined:
    Nov 25, 2008
    Messages:
    1,303
    Resources:
    6
    Skins:
    1
    Tools:
    1
    Maps:
    4
    Resources:
    6
    Another Update

    HC 7? Hero Contest #7?

    Edit:

    Fleshed out the aura system for my aura. Hopefully it's good enough! Here is the current snapshot of my aura.

    Edit:

    Added a second snapshot of my aura. Most of the work is done, just need to solve a little bug and optimize/clean the code.

    Edit:

    Well, time for a list of bugs for my spell that I'll have to address.

    1. The aura sometimes targets a null unit.
    2. Targets are only added to the unit group, not removed. Once you are tagged by the aura, you're stuck with it forever.
    3. My dummy casters don't like listening to me, and won't cast my spells.
    4. Unit filtering is on the fritz
    5. The radius of the aura can't be changed.
    6. Getting access to the aura instance is rather difficult and inconsistent from within the associated triggers for my aura spell.
    7. The code looks ugly, and probably needs optimization.
     

    Attached Files:

    Last edited: Jul 25, 2014
  16. Empirean

    Empirean

    Joined:
    Jun 20, 2014
    Messages:
    390
    Resources:
    8
    Spells:
    8
    Resources:
    8
    Savior's Aura (Entry)

    Hi, this is my entry for the contest. Nothing has changed since the last update of the spell. The active spell is based on Taunt, the aura is based on devotion aura and the container is from spellbook

    Tooltip

    Emits an aura that heals nearby allied units whenever the bearer of the aura is attacked. Also allows you to force enemy units within 250 radius to attack you.

    Level 1 - Heals nearby units based on 30% of the bearer's strength.
    Level 2 - Heals nearby units based on 60% of the bearer's strength.
    Level 3 - Heals nearby units based on 90% of the bearer's strength.
    Level 4 - Heals nearby units based on 120% of the bearer's strength.

    Area of Effect: 500
    Units that has this ability will not be healed by this aura.


    The code

    • SaviorAuraTriggerConfiguration
      • Events
        • Map initialization
      • Conditions
      • Actions
        • -------- set the ability that will be the basis for the aura --------
        • -------- - --------
        • Set SA_A_PassiveAbility = Savior's Aura (Container)
        • Set SA_A_ActiveAbility = Savior's Aura (Active)
        • -------- - --------
        • -------- set the buff that the ability will emit --------
        • -------- - --------
        • Set SA_BF_Buff = Savior's Aura
        • -------- - --------
        • -------- if set to true, the amount healed will be based on the percentage of strength of the hero --------
        • -------- if set to false, the number will directly heal units --------
        • -------- please note that 20% is 20.00 and not 0.2 --------
        • -------- - --------
        • Set SA_B_UseStat = True
        • -------- - --------
        • Set SA_R_Heal[1] = 30.00
        • Set SA_R_Heal[2] = 60.00
        • Set SA_R_Heal[3] = 90.00
        • Set SA_R_Heal[4] = 120.00
        • -------- - --------
        • -------- special effects configurables --------
        • -------- attachment point --------
        • -------- - --------
        • Set SA_S_Attach = origin
        • -------- - --------
        • -------- special effects attached to unit --------
        • -------- - --------
        • Set SA_S_SFX = Abilities\Spells\Undead\VampiricAura\VampiricAuraTarget.mdl
        • -------- - --------
        • -------- if true, it will heal structures only if they have the buff from the aura --------
        • -------- - --------
        • Set SA_B_HealStructures = False
        • -------- - --------
        • -------- if true, it will heal magic immunes only if they have the buff from the aura --------
        • -------- - --------
        • Set SA_B_HealImmune = False
        • -------- - --------
        • -------- Area of effect of the aura --------
        • -------- - --------
        • Set SA_R_AoE[1] = 500.00
        • Set SA_R_AoE[2] = 500.00
        • Set SA_R_AoE[3] = 500.00
        • Set SA_R_AoE[4] = 500.00
        • -------- - --------
        • -------- list abilities that unlearns all hero skills --------
        • -------- SA_A_Total is the total number of abilities that can unlearn the spell --------
        • -------- - --------
        • Set SA_I_Total = 1
        • -------- - --------
        • Set SA_A_Unlearn[1] = Tome of Retraining
        • -------- - --------
        • -------- Disable spellbook --------
        • -------- - --------
        • For each (Integer SA_I_TempInt) from 1 to 12, do (Actions)
          • Loop - Actions
            • -------- - --------
            • -------- Disable the spellbook --------
            • -------- - --------
            • Player - Disable SA_A_PassiveAbility for (Player(SA_I_TempInt))
        • Custom script: set bj_wantDestroyGroup=true
        • -------- - --------
        • -------- Check if any there are units that already learnt the ability --------
        • -------- - --------
        • Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
          • Loop - Actions
            • -------- - --------
            • -------- add the picked unit into a variable --------
            • -------- - --------
            • Set SA_U_Picked = (Picked unit)
            • -------- - --------
            • -------- Check if the unit has leveled the ability --------
            • -------- - --------
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • (Level of SA_A_ActiveAbility for SA_U_Picked) Greater than 0
              • Then - Actions
                • -------- - --------
                • -------- add the actual aura to the picked unit --------
                • -------- - --------
                • Unit - Add SA_A_PassiveAbility to SA_U_Picked
              • Else - Actions

    • SaviorAuraEffect
      • Events
        • Unit - A unit Is attacked
      • Conditions
        • (Level of SA_A_ActiveAbility for (Attacked unit)) Greater than 0
        • ((Attacking unit) belongs to an enemy of (Owner of (Attacked unit))) Equal to True
      • Actions
        • -------- - --------
        • -------- Set the attacked unit --------
        • -------- - --------
        • Set SA_U_AtkUnit = (Attacked unit)
        • -------- - --------
        • -------- Determine the owner of the unit --------
        • -------- - --------
        • Set SA_PL_Player = (Owner of SA_U_AtkUnit)
        • -------- - --------
        • -------- set the level of the ability into a variable --------
        • -------- - --------
        • Set SA_I_Level = (Level of SA_A_ActiveAbility for SA_U_AtkUnit)
        • -------- - --------
        • -------- Checks on what value should be applied on the aura's healing effect --------
        • -------- - --------
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • SA_B_UseStat Equal to True
          • Then - Actions
            • -------- - --------
            • -------- if this is applied then the heal value is equal to a certain percentage of the attacked unit's strength --------
            • -------- - --------
            • Set SA_R_HealAmt = ((Real((Strength of SA_U_AtkUnit (Include bonuses)))) x (SA_R_Heal[SA_I_Level] x 0.01))
          • Else - Actions
            • -------- - --------
            • -------- if this is applied, then the heal amount is equal to the predefined value in the trigger configuration --------
            • -------- - --------
            • Set SA_R_HealAmt = SA_R_Heal[SA_I_Level]
        • -------- - --------
        • -------- sets the position of the attacked units into a variable --------
        • -------- - --------
        • Set SA_P_AtkPos = (Position of SA_U_AtkUnit)
        • -------- - --------
        • -------- selects the valid units that can be healed --------
        • -------- - --------
        • Set SA_UG_UnitGroup = (Units within SA_R_AoE[SA_I_Level] of SA_P_AtkPos matching ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an ally of SA_PL_Player) Equal to True) and ((((Matching unit) is A structure) Equal to SA_B_HealStructures) and ((((Match
        • -------- - --------
        • -------- heals the picked units --------
        • -------- - --------
        • Unit Group - Pick every unit in SA_UG_UnitGroup and do (Actions)
          • Loop - Actions
            • -------- - --------
            • -------- sets the picked unit into a variable --------
            • -------- its ok to recycle this variable isn't it? --------
            • -------- - --------
            • Set SA_U_Picked = (Picked unit)
            • -------- - --------
            • -------- Heals the picked unit --------
            • -------- - --------
            • Unit - Set life of SA_U_Picked to ((Life of SA_U_Picked) + SA_R_HealAmt)
            • -------- - --------
            • -------- Add some visuals --------
            • -------- - --------
            • Special Effect - Create a special effect attached to the SA_S_Attach of SA_U_Picked using SA_S_SFX
            • -------- - --------
            • -------- destroy visuals to prevent leaks --------
            • -------- - --------
            • Special Effect - Destroy (Last created special effect)
        • -------- - --------
        • -------- Clean up --------
        • -------- - --------
        • -------- SA_UG_UnitGroup.Clear(); --------
        • -------- Clear the unit group --------
        • -------- - --------
        • Unit Group - Remove all units from SA_UG_UnitGroup
        • -------- - --------
        • -------- Destroy the instance of the unit group --------
        • -------- - --------
        • Custom script: call DestroyGroup(udg_SA_UG_UnitGroup)
        • -------- - --------
        • -------- Destroy the point --------
        • -------- - --------
        • Custom script: call RemoveLocation(udg_SA_P_AtkPos)



    EDIT: Ta da! thanks for noticing cakemaster
     

    Attached Files:

    Last edited: Jul 25, 2014
  17. Mythic

    Mythic

    Joined:
    Apr 24, 2012
    Messages:
    7,757
    Resources:
    106
    Models:
    90
    Icons:
    5
    Maps:
    3
    Spells:
    6
    Tutorials:
    2
    Resources:
    106
    You missed a few [/color] closing tags. Also separate triggers with [/trigger]. Nice job.
     
  18. Dat-C3

    Dat-C3

    Joined:
    Mar 15, 2012
    Messages:
    2,469
    Resources:
    10
    Models:
    1
    Maps:
    5
    Spells:
    3
    Tutorials:
    1
    Resources:
    10
    Don't feel like getting into any problems to waiting too long for a WiP so here is my entry currently. This is my WiP.


    I usually like coming into contests at last minute to surprise people however I think I will pass on doing that for this contest.

    Oh, and I hope that the dummy ability to show aura's in the status bar don't count as your sub? My aura stacks with any aura in-game standard/custom. :thumbs_up:

    Sadly only half of it is complete however that is not just sad but good because this is meant to be the WiP. :grin:

    Enjoy the preview, I am hoping to be at least equal with everyone else on awesomely made cool aura's. :wink:


    Edit: Be warned, nothing is documented yet.
     

    Attached Files:

    Last edited: Aug 1, 2014
  19. GunSlinger

    GunSlinger

    Joined:
    Oct 17, 2009
    Messages:
    1,441
    Resources:
    0
    Resources:
    0
  20. GywGod133

    GywGod133

    Joined:
    Jul 16, 2012
    Messages:
    633
    Resources:
    3
    Maps:
    1
    Spells:
    1
    Tutorials:
    1
    Resources:
    3
    My Final Entry v1.01

    Dark Circle
    By GywGod133


    DESCRIPTION
    • The Death Knight wields his dark sword that can devise a dark circle which summons a mysterious energy at an enemy. The energy reduces 1 to 10 armor for 5 seconds that deals random damage. The circle can increases the hit point regeneration in Death Knight by (Current Maximum Health) hit points per second.
      If a marked unit dies, restores hit points to nearby friendly units.
      The circle lasts 15 seconds.

      Level 1 - Deals 50 - 80 damage, Heals for 150 hit points.
      Level 2 - Deals 60 - 90 damage, Heals for 200 hit points.
      Level 3 - Deals 70 - 100 damage, Heals for 250 hit points.
      Level 4 - Deals 80 - 110 damage, Heals for 300 hit points.

      Manacost: 75
      Cooldown: 35


    TRIGGERS

    • DrkC_Setup
      • DrkC Setup
        • Events
          • Map initialization
        • Conditions
        • Actions
          • -------- ======================== -------- ======================== --------
          • -------- D A R K C I R C L E --------
          • -------- By GywGod133 --------
          • -------- ======================== -------- ======================== --------
          • -------- P E R I O D I C T I M E --------
          • -------- ======================== --------
          • -------- > Loop --------
          • Custom script: set udg_DrkC_Loop = 0.03125000
          • -------- > Trigger Event --------
          • Trigger - Add to DrkC Loop Main <gen> the event (Time - Every DrkC_Loop seconds of game time)
          • Trigger - Add to DrkC Loop Sub <gen> the event (Time - Every DrkC_Loop seconds of game time)
          • -------- ======================== --------
          • -------- A B I L I T Y --------
          • -------- ======================== --------
          • -------- > Ability ID (Main) --------
          • Set DrkC_Ability = Dark Circle
          • -------- > Ability ID (Armor Reduce) --------
          • Set DrkC_ArmorReduce = DrkC_Armor
          • -------- ======================== --------
          • -------- N E G A T I V E A R M O R ( A B I L I T Y ) --------
          • -------- ======================== --------
          • -------- > Maximum Level of Negative Armor --------
          • Set DrkC_ArmorReduce_MaxLvl = 10
          • -------- > Duration --------
          • Set DrkC_ArmorReduce_Duration[1] = 5.00
          • Set DrkC_ArmorReduce_Duration[2] = 5.00
          • Set DrkC_ArmorReduce_Duration[3] = 5.00
          • Set DrkC_ArmorReduce_Duration[4] = 5.00
          • -------- ======================== --------
          • -------- D P S M I N / M A X --------
          • -------- ======================== --------
          • -------- > Min --------
          • Set DrkC_DPSMin[1] = 50.00
          • Set DrkC_DPSMin[2] = 60.00
          • Set DrkC_DPSMin[3] = 70.00
          • Set DrkC_DPSMin[4] = 80.00
          • -------- > Max --------
          • Set DrkC_DPSMax[1] = 80.00
          • Set DrkC_DPSMax[2] = 90.00
          • Set DrkC_DPSMax[3] = 100.00
          • Set DrkC_DPSMax[4] = 110.00
          • -------- ======================== --------
          • -------- H E A L --------
          • -------- ======================== --------
          • -------- > Heal Dmg --------
          • Set DrkC_Heal[1] = 150.00
          • Set DrkC_Heal[2] = 200.00
          • Set DrkC_Heal[3] = 250.00
          • Set DrkC_Heal[4] = 300.00
          • -------- > Heal AoE --------
          • Set DrkC_HealAoE[1] = 300.00
          • Set DrkC_HealAoE[2] = 300.00
          • Set DrkC_HealAoE[3] = 300.00
          • Set DrkC_HealAoE[4] = 300.00
          • -------- ======================== --------
          • -------- A R E A O F E F F E C T --------
          • -------- ======================== --------
          • Set DrkC_AoE[1] = 300.00
          • Set DrkC_AoE[2] = 300.00
          • Set DrkC_AoE[3] = 300.00
          • Set DrkC_AoE[4] = 300.00
          • -------- ======================== --------
          • -------- S P E L L D U R A T I O N --------
          • -------- ======================== --------
          • Set DrkC_Duration[1] = 15.00
          • Set DrkC_Duration[2] = 15.00
          • Set DrkC_Duration[3] = 15.00
          • Set DrkC_Duration[4] = 15.00
          • -------- ======================== --------
          • -------- A T T A C K / D A M A G E T Y P E --------
          • -------- ======================== --------
          • -------- > Attack --------
          • Set DrkC_AttackType = Spells
          • -------- > Damage --------
          • Set DrkC_DamageType = Normal
          • -------- ======================== --------
          • -------- S P E C I A L E F F E C T --------
          • -------- ======================== --------
          • -------- > Damage --------
          • Set DrkC_SFX[1] = Abilities\Spells\Undead\AnimateDead\AnimateDeadTarget.mdl
          • -------- > Healed --------
          • Set DrkC_SFX[2] = Abilities\Spells\Undead\DeathCoil\DeathCoilSpecialArt.mdl
          • Set DrkC_SFX_Attachment = chest
          • -------- ======================== --------
          • -------- S O U N D E F F E C T --------
          • -------- ======================== --------
          • Set DrkC_Sound = GateEpicBash <gen>
          • -------- ======================== --------
          • -------- T R A N S P A R E N C Y ( I N / O U T ) S P E E D --------
          • -------- ======================== --------
          • -------- > Transparency In --------
          • Set DrkC_TransparentIn_Speed = 5.00
          • -------- > Transparency Out --------
          • Set DrkC_TransparentOut_Speed = 5.00
          • -------- ======================== --------
          • -------- V I S I B I L I T Y M O D I F I E R --------
          • -------- ======================== --------
          • Set DrkC_VM_AoE[1] = 400.00
          • Set DrkC_VM_AoE[2] = 400.00
          • Set DrkC_VM_AoE[3] = 400.00
          • Set DrkC_VM_AoE[4] = 400.00
          • -------- ======================== --------
          • -------- D U M M I E S F U N C T I O N --------
          • -------- ======================== --------
          • -------- > Circle Main / Sub --------
          • Set DrkC_DummyTypes[1] = DrkC_Circle (Black - Main)
          • Set DrkC_DummyTypes[2] = DrkC_Circle (Black - Sub)
          • -------- > Rune --------
          • Set DrkC_DummyTypes[3] = DrkC_Circle (Red - 1)
          • Set DrkC_DummyTypes[4] = DrkC_Circle (Red - 2)
          • Set DrkC_DummyTypes[5] = DrkC_Circle (Red - 3)
          • Set DrkC_DummyTypes[6] = DrkC_Circle (Red - 4)
          • Set DrkC_RuneCount = 4
          • -------- > Circle Sub Offset --------
          • Set DrkC_CCircle_Offset = 200.00
          • -------- > Circle Sub Spin Speed (Angle) --------
          • Set DrkC_CCircle_Speed_Angle = 4.00
          • -------- > Circle Sub Spin Speed (Facing) --------
          • Set DrkC_CCircle_Speed_Facing = 3.00
          • -------- > Black Circle Spin Speed --------
          • Set DrkC_Spin_CCircle = 2.00
          • -------- > Rune Spin Speed --------
          • Set DrkC_Spin_CRune = 3.00
          • -------- > Tree Chopper (Destroy Trees) --------
          • Set DrkC_TempPoint[1] = (Center of (Playable map area))
          • Unit - Create 1 Peasant for Neutral Passive at DrkC_TempPoint[1] facing Default building facing degrees
          • Set DrkC_TreeChopper = (Last created unit)
          • Custom script: call UnitAddAbilityBJ( 'Aloc', udg_DrkC_TreeChopper )
          • Unit - Hide DrkC_TreeChopper
          • -------- ======================== --------
          • -------- Remove / Destroy --------
          • Custom script: call DestroyTrigger( GetTriggeringTrigger())
          • Custom script: call RemoveLocation( udg_DrkC_TempPoint[1])
          • -------- ======================== --------
    • DrkC_Start
      • DrkC Start
        • Events
          • Unit - A unit Starts the effect of an ability
        • Conditions
          • (Ability being cast) Equal to DrkC_Ability
        • Actions
          • -------- ======================== -------- ======================== --------
          • -------- T U R N O N T H E T R I G G E R L O O P ( M A I N ) --------
          • -------- ======================== -------- ======================== --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • DrkC_Y Equal to 0
            • Then - Actions
              • Trigger - Turn on DrkC Loop Main <gen>
            • Else - Actions
          • -------- ======================== -------- ======================== --------
          • -------- I N D E X I N G ( M U I ) F U N C T I O N --------
          • -------- ======================== -------- ======================== --------
          • Set DrkC_Y = (DrkC_Y + 1)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • DrkC_Y Greater than DrkC_Y_maxSize
            • Then - Actions
              • Set DrkC_Y_Index[DrkC_Y] = DrkC_Y
              • Set DrkC_Y_maxSize = DrkC_Y
            • Else - Actions
          • Set DrkC_XY_TempInt = DrkC_Y_Index[DrkC_Y]
          • -------- ======================== -------- ======================== --------
          • -------- S A V E T H E I M P O R T A N T D A T A --------
          • -------- ======================== -------- ======================== --------
          • -------- Caster --------
          • Set DrkC_Caster[DrkC_XY_TempInt] = (Triggering unit)
          • -------- Player --------
          • Set DrkC_Player[DrkC_XY_TempInt] = (Triggering player)
          • -------- Current Level of Ability --------
          • Set DrkC_Level[DrkC_XY_TempInt] = (Level of DrkC_Ability for DrkC_Caster[DrkC_XY_TempInt])
          • -------- Spell Duration Function --------
          • Set DrkC_Duration_Real[DrkC_XY_TempInt] = DrkC_Duration[DrkC_Level[DrkC_XY_TempInt]]
          • -------- DPS Duration --------
          • Set DrkC_PerSec[DrkC_XY_TempInt] = 0.00
          • -------- ======================== -------- ======================== --------
          • -------- D U M M I E S F U N C T I O N --------
          • -------- ======================== -------- ======================== --------
          • -------- Create Black Circle (Main) --------
          • Set DrkC_TempPoint[1] = (Target point of ability being cast)
          • Unit - Create 1 DrkC_DummyTypes[1] for Neutral Passive at DrkC_TempPoint[1] facing (Random angle) degrees
          • Set DrkC_CCircle[DrkC_XY_TempInt] = (Last created unit)
          • -------- ======================== --------
          • -------- Circle (Sub) --------
          • -------- > Save Angle --------
          • Set DrkC_CCircle_Sub1_Angle[DrkC_XY_TempInt] = (Random angle)
          • Set DrkC_CCircle_Sub2_Angle[DrkC_XY_TempInt] = (DrkC_CCircle_Sub1_Angle[DrkC_XY_TempInt] + 90.00)
          • Set DrkC_CCircle_Sub3_Angle[DrkC_XY_TempInt] = (DrkC_CCircle_Sub1_Angle[DrkC_XY_TempInt] + 180.00)
          • Set DrkC_CCircle_Sub4_Angle[DrkC_XY_TempInt] = (DrkC_CCircle_Sub1_Angle[DrkC_XY_TempInt] + 270.00)
          • -------- > Check Point --------
          • Set DrkC_TempPoint[2] = ((Target point of ability being cast) offset by DrkC_CCircle_Offset towards DrkC_CCircle_Sub1_Angle[DrkC_XY_TempInt] degrees)
          • Set DrkC_TempPoint[3] = ((Target point of ability being cast) offset by DrkC_CCircle_Offset towards DrkC_CCircle_Sub2_Angle[DrkC_XY_TempInt] degrees)
          • Set DrkC_TempPoint[4] = ((Target point of ability being cast) offset by DrkC_CCircle_Offset towards DrkC_CCircle_Sub3_Angle[DrkC_XY_TempInt] degrees)
          • Set DrkC_TempPoint[5] = ((Target point of ability being cast) offset by DrkC_CCircle_Offset towards DrkC_CCircle_Sub4_Angle[DrkC_XY_TempInt] degrees)
          • -------- > Create / Save Dummy Sub --------
          • Unit - Create 1 DrkC_DummyTypes[2] for Neutral Passive at DrkC_TempPoint[2] facing (Random angle) degrees
          • Set DrkC_CCircle_Sub1[DrkC_XY_TempInt] = (Last created unit)
          • Unit - Create 1 DrkC_DummyTypes[2] for Neutral Passive at DrkC_TempPoint[3] facing (Random angle) degrees
          • Set DrkC_CCircle_Sub2[DrkC_XY_TempInt] = (Last created unit)
          • Unit - Create 1 DrkC_DummyTypes[2] for Neutral Passive at DrkC_TempPoint[4] facing (Random angle) degrees
          • Set DrkC_CCircle_Sub3[DrkC_XY_TempInt] = (Last created unit)
          • Unit - Create 1 DrkC_DummyTypes[2] for Neutral Passive at DrkC_TempPoint[5] facing (Random angle) degrees
          • Set DrkC_CCircle_Sub4[DrkC_XY_TempInt] = (Last created unit)
          • -------- > Save Facing --------
          • Set DrkC_CCircle_Sub1_Facing[DrkC_XY_TempInt] = (Facing of DrkC_CCircle_Sub1[DrkC_XY_TempInt])
          • Set DrkC_CCircle_Sub2_Facing[DrkC_XY_TempInt] = (Facing of DrkC_CCircle_Sub2[DrkC_XY_TempInt])
          • Set DrkC_CCircle_Sub3_Facing[DrkC_XY_TempInt] = (Facing of DrkC_CCircle_Sub3[DrkC_XY_TempInt])
          • Set DrkC_CCircle_Sub4_Facing[DrkC_XY_TempInt] = (Facing of DrkC_CCircle_Sub4[DrkC_XY_TempInt])
          • -------- > Transparency --------
          • Set DrkC_Transparent[DrkC_XY_TempInt] = 100.00
          • Set DrkC_Boolean_TransparentIn[DrkC_XY_TempInt] = True
          • Set DrkC_Boolean_TransparentOut[DrkC_XY_TempInt] = True
          • Animation - Change DrkC_CCircle[DrkC_XY_TempInt]'s vertex coloring to (100.00%, 100.00%, 100.00%) with DrkC_Transparent[DrkC_XY_TempInt]% transparency
          • Animation - Change DrkC_CCircle_Sub1[DrkC_XY_TempInt]'s vertex coloring to (100.00%, 100.00%, 100.00%) with DrkC_Transparent[DrkC_XY_TempInt]% transparency
          • Animation - Change DrkC_CCircle_Sub2[DrkC_XY_TempInt]'s vertex coloring to (100.00%, 100.00%, 100.00%) with DrkC_Transparent[DrkC_XY_TempInt]% transparency
          • Animation - Change DrkC_CCircle_Sub3[DrkC_XY_TempInt]'s vertex coloring to (100.00%, 100.00%, 100.00%) with DrkC_Transparent[DrkC_XY_TempInt]% transparency
          • Animation - Change DrkC_CCircle_Sub4[DrkC_XY_TempInt]'s vertex coloring to (100.00%, 100.00%, 100.00%) with DrkC_Transparent[DrkC_XY_TempInt]% transparency
          • Animation - Change DrkC_CRune[DrkC_XY_TempInt]'s vertex coloring to (100.00%, 100.00%, 100.00%) with DrkC_Transparent[DrkC_XY_TempInt]% transparency
          • -------- ======================== --------
          • -------- Rune --------
          • -------- > Check Point --------
          • Set DrkC_TempPoint[6] = (Target point of ability being cast)
          • Set DrkC_TempPoint[7] = (Target point of ability being cast)
          • -------- > Create / Save Rune --------
          • Unit - Create 1 DrkC_DummyTypes[(Random integer number between 3 and (DrkC_RuneCount + 2))] for Neutral Passive at DrkC_TempPoint[6] facing (Random angle) degrees
          • Set DrkC_CRune[DrkC_XY_TempInt] = (Last created unit)
          • -------- > Sound Effect --------
          • Sound - Play DrkC_Sound at 100.00% volume, located at DrkC_TempPoint[7] with Z offset 0.00
          • -------- ======================== --------
          • -------- Visibility Modifier --------
          • -------- > Check Point --------
          • Set DrkC_TempPoint[8] = (Target point of ability being cast)
          • -------- > Create / Save Visibility Modifier --------
          • Visibility - Create an initially Enabled visibility modifier for DrkC_Player[DrkC_XY_TempInt] emitting Visibility from DrkC_TempPoint[8] to a radius of DrkC_VM_AoE[DrkC_Level[DrkC_XY_TempInt]]
          • Set DrkC_VisibilityModifier[DrkC_XY_TempInt] = (Last created visibility modifier)
          • -------- ======================== -------- ======================== --------
          • -------- R E M O V E L E A K S --------
          • -------- ======================== -------- ======================== --------
          • Custom script: call RemoveLocation( udg_DrkC_TempPoint[1])
          • Custom script: call RemoveLocation( udg_DrkC_TempPoint[2])
          • Custom script: call RemoveLocation( udg_DrkC_TempPoint[3])
          • Custom script: call RemoveLocation( udg_DrkC_TempPoint[4])
          • Custom script: call RemoveLocation( udg_DrkC_TempPoint[5])
          • Custom script: call RemoveLocation( udg_DrkC_TempPoint[6])
          • Custom script: call RemoveLocation( udg_DrkC_TempPoint[7])
          • Custom script: call RemoveLocation( udg_DrkC_TempPoint[8])
          • -------- ======================== --------
    • DrkC_Loop_Main
      • DrkC Loop Main
        • Events
        • Conditions
        • Actions
          • -------- ======================== -------- ======================== --------
          • -------- PLEASE DO NOT MODIFY UNLESS YOU KNOW WHAT YOU ARE DOING!! --------
          • -------- ======================== -------- ======================== --------
          • For each (Integer DrkC_X) from 1 to DrkC_Y, do (Actions)
            • Loop - Actions
              • Set DrkC_XY_TempInt = DrkC_Y_Index[DrkC_X]
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DrkC_Boolean_TransparentOut[DrkC_XY_TempInt] Equal to False
                • Then - Actions
                  • -------- ======================== --------
                  • -------- Destroy / Remove --------
                  • Visibility - Destroy DrkC_VisibilityModifier[DrkC_XY_TempInt]
                  • Unit - Remove DrkC_CCircle[DrkC_XY_TempInt] from the game
                  • Unit - Remove DrkC_CRune[DrkC_XY_TempInt] from the game
                  • Unit - Remove DrkC_CCircle_Sub1[DrkC_XY_TempInt] from the game
                  • Unit - Remove DrkC_CCircle_Sub2[DrkC_XY_TempInt] from the game
                  • Unit - Remove DrkC_CCircle_Sub3[DrkC_XY_TempInt] from the game
                  • Unit - Remove DrkC_CCircle_Sub4[DrkC_XY_TempInt] from the game
                  • -------- ======================== --------
                  • -------- Recycle Index --------
                  • Set DrkC_PerSec[DrkC_XY_TempInt] = 0.00
                  • Set DrkC_Duration_Real[DrkC_XY_TempInt] = 0.00
                  • Set DrkC_DPS_Real[DrkC_XY_TempInt] = 0.00
                  • Set DrkC_CRune[DrkC_XY_TempInt] = No unit
                  • Set DrkC_CCircle[DrkC_XY_TempInt] = No unit
                  • Set DrkC_CCircle_Sub1[DrkC_XY_TempInt] = No unit
                  • Set DrkC_CCircle_Sub2[DrkC_XY_TempInt] = No unit
                  • Set DrkC_CCircle_Sub3[DrkC_XY_TempInt] = No unit
                  • Set DrkC_CCircle_Sub4[DrkC_XY_TempInt] = No unit
                  • Set DrkC_CCircle_Sub1_Angle[DrkC_XY_TempInt] = 0.00
                  • Set DrkC_CCircle_Sub2_Angle[DrkC_XY_TempInt] = 0.00
                  • Set DrkC_CCircle_Sub3_Angle[DrkC_XY_TempInt] = 0.00
                  • Set DrkC_CCircle_Sub4_Angle[DrkC_XY_TempInt] = 0.00
                  • Set DrkC_CCircle_Sub1_Facing[DrkC_XY_TempInt] = 0.00
                  • Set DrkC_CCircle_Sub2_Facing[DrkC_XY_TempInt] = 0.00
                  • Set DrkC_CCircle_Sub3_Facing[DrkC_XY_TempInt] = 0.00
                  • Set DrkC_CCircle_Sub4_Facing[DrkC_XY_TempInt] = 0.00
                  • Set DrkC_Y_Index[DrkC_X] = DrkC_Y_Index[DrkC_Y]
                  • Set DrkC_Y_Index[DrkC_Y] = DrkC_XY_TempInt
                  • Set DrkC_X = (DrkC_X - 1)
                  • Set DrkC_Y = (DrkC_Y - 1)
                  • -------- ======================== --------
                  • -------- > When the value of Y is 0, you must turn off this Trigger --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • DrkC_Y Equal to 0
                    • Then - Actions
                      • Trigger - Turn off (This trigger)
                      • Skip remaining actions
                    • Else - Actions
                  • -------- ======================== --------
                • Else - Actions
                  • -------- ======================== --------
                  • -------- Transparent Function ( I N ) --------
                  • -------- > When the Dark Circle has been summoned --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • DrkC_Boolean_TransparentIn[DrkC_XY_TempInt] Equal to True
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • DrkC_Transparent[DrkC_XY_TempInt] Less than or equal to 0.00
                        • Then - Actions
                          • -------- ======================== --------
                          • -------- When the value of DrkC_TransparentIn[DrkC_XY_TempInt] is equal to 0 --------
                          • Set DrkC_Boolean_TransparentIn[DrkC_XY_TempInt] = False
                          • -------- ======================== --------
                          • -------- > Change the color of CCircle into Black --------
                          • Animation - Change DrkC_CCircle[DrkC_XY_TempInt]'s vertex coloring to (0.00%, 0.00%, 0.00%) with DrkC_Transparent[DrkC_XY_TempInt]% transparency
                          • -------- ======================== --------
                        • Else - Actions
                          • -------- ======================== --------
                          • -------- > Decreases DrkC_TransparentIn[DrkC_XY_TempInt] --------
                          • Set DrkC_Transparent[DrkC_XY_TempInt] = (DrkC_Transparent[DrkC_XY_TempInt] - DrkC_TransparentIn_Speed)
                          • Animation - Change DrkC_CCircle[DrkC_XY_TempInt]'s vertex coloring to (100.00%, 100.00%, 100.00%) with DrkC_Transparent[DrkC_XY_TempInt]% transparency
                          • Animation - Change DrkC_CRune[DrkC_XY_TempInt]'s vertex coloring to (100.00%, 100.00%, 100.00%) with DrkC_Transparent[DrkC_XY_TempInt]% transparency
                          • Animation - Change DrkC_CCircle_Sub1[DrkC_XY_TempInt]'s vertex coloring to (100.00%, 100.00%, 100.00%) with DrkC_Transparent[DrkC_XY_TempInt]% transparency
                          • Animation - Change DrkC_CCircle_Sub2[DrkC_XY_TempInt]'s vertex coloring to (100.00%, 100.00%, 100.00%) with DrkC_Transparent[DrkC_XY_TempInt]% transparency
                          • Animation - Change DrkC_CCircle_Sub3[DrkC_XY_TempInt]'s vertex coloring to (100.00%, 100.00%, 100.00%) with DrkC_Transparent[DrkC_XY_TempInt]% transparency
                          • Animation - Change DrkC_CCircle_Sub4[DrkC_XY_TempInt]'s vertex coloring to (100.00%, 100.00%, 100.00%) with DrkC_Transparent[DrkC_XY_TempInt]% transparency
                          • -------- ======================== --------
                      • -------- ======================== --------
                    • Else - Actions
                      • -------- ======================== --------
                      • -------- Transparent Function ( O U T ) --------
                      • -------- > When the value of DrkC_Duration_Real[DrkC_XY_TempInt] is equal to -0.000 --------
                      • -------- > DrkC_Duration_Real[DrkC_XY_TempInt] is a SPELL DURATION --------
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • DrkC_Boolean_TransparentOut[DrkC_XY_TempInt] Equal to True
                          • DrkC_Duration_Real[DrkC_XY_TempInt] Less than or equal to 0.00
                        • Then - Actions
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • DrkC_Transparent[DrkC_XY_TempInt] Greater than or equal to 100.00
                            • Then - Actions
                              • -------- ======================== --------
                              • -------- When the value of DrkC_TransparentOut[DrkC_XY_TempInt] is equal to 0 --------
                              • Set DrkC_Boolean_TransparentOut[DrkC_XY_TempInt] = False
                              • -------- ======================== --------
                            • Else - Actions
                              • -------- ======================== --------
                              • -------- > Increases DrkC_TransparentOut[DrkC_XY_TempInt] --------
                              • Set DrkC_Transparent[DrkC_XY_TempInt] = (DrkC_Transparent[DrkC_XY_TempInt] + DrkC_TransparentOut_Speed)
                              • Animation - Change DrkC_CCircle[DrkC_XY_TempInt]'s vertex coloring to (100.00%, 100.00%, 100.00%) with DrkC_Transparent[DrkC_XY_TempInt]% transparency
                              • Animation - Change DrkC_CRune[DrkC_XY_TempInt]'s vertex coloring to (100.00%, 100.00%, 100.00%) with DrkC_Transparent[DrkC_XY_TempInt]% transparency
                              • Animation - Change DrkC_CCircle_Sub1[DrkC_XY_TempInt]'s vertex coloring to (100.00%, 100.00%, 100.00%) with DrkC_Transparent[DrkC_XY_TempInt]% transparency
                              • Animation - Change DrkC_CCircle_Sub2[DrkC_XY_TempInt]'s vertex coloring to (100.00%, 100.00%, 100.00%) with DrkC_Transparent[DrkC_XY_TempInt]% transparency
                              • Animation - Change DrkC_CCircle_Sub3[DrkC_XY_TempInt]'s vertex coloring to (100.00%, 100.00%, 100.00%) with DrkC_Transparent[DrkC_XY_TempInt]% transparency
                              • Animation - Change DrkC_CCircle_Sub4[DrkC_XY_TempInt]'s vertex coloring to (100.00%, 100.00%, 100.00%) with DrkC_Transparent[DrkC_XY_TempInt]% transparency
                              • -------- ======================== --------
                          • -------- ======================== --------
                        • Else - Actions
                          • -------- ======================== --------
                          • -------- Spell Duration Function --------
                          • -------- > Decreases 0.0312500 in DrkC_Duration_Real[DrkC_XY_TempInt] --------
                          • Set DrkC_Duration_Real[DrkC_XY_TempInt] = (DrkC_Duration_Real[DrkC_XY_TempInt] - DrkC_Loop)
                          • -------- ======================== --------
                          • -------- Damage Per Sec Function --------
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • DrkC_PerSec[DrkC_XY_TempInt] Less than or equal to 0.00
                            • Then - Actions
                              • Set DrkC_UnitGroup[DrkC_XY_TempInt] = (Units within DrkC_AoE[DrkC_Level[DrkC_XY_TempInt]] of (Position of DrkC_CCircle[DrkC_XY_TempInt]))
                              • Unit Group - Pick every unit in DrkC_UnitGroup[DrkC_XY_TempInt] and do (Actions)
                                • Loop - Actions
                                  • Set DrkC_TempUnit = (Picked unit)
                                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                    • If - Conditions
                                      • (DrkC_TempUnit is alive) Equal to True
                                      • (DrkC_TempUnit is Magic Immune) Equal to False
                                      • (DrkC_TempUnit belongs to an enemy of DrkC_Player[DrkC_XY_TempInt]) Equal to True
                                    • Then - Actions
                                      • -------- ======================== --------
                                      • -------- > Special Effect --------
                                      • Set DrkC_TempPoint[1] = (Position of DrkC_TempUnit)
                                      • Special Effect - Create a special effect at DrkC_TempPoint[1] using DrkC_SFX[1]
                                      • Special Effect - Destroy (Last created special effect)
                                      • -------- ======================== --------
                                      • -------- > Do Damage --------
                                      • Set DrkC_DPS_Real[DrkC_XY_TempInt] = (Random real number between DrkC_DPSMin[DrkC_Level[DrkC_XY_TempInt]] and DrkC_DPSMax[DrkC_Level[DrkC_XY_TempInt]])
                                      • Unit - Cause DrkC_Caster[DrkC_XY_TempInt] to damage DrkC_TempUnit, dealing DrkC_DPS_Real[DrkC_XY_TempInt] damage of attack type DrkC_AttackType and damage type DrkC_DamageType
                                      • -------- ======================== --------
                                      • -------- > Armor Reduce --------
                                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        • If - Conditions
                                          • (DrkC_TempUnit is in DrkC_ArmorReduce_UnitGroup) Equal to False
                                        • Then - Actions
                                          • -------- ======================== --------
                                          • -------- > Turn On Trigger Loop --------
                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            • If - Conditions
                                              • DrkC_Yr Equal to 0
                                            • Then - Actions
                                              • Trigger - Turn on DrkC Loop Sub <gen>
                                            • Else - Actions
                                          • -------- ======================== --------
                                          • -------- Indexing Function --------
                                          • Set DrkC_Yr = (DrkC_Yr + 1)
                                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                            • If - Conditions
                                              • DrkC_Yr Greater than DrkC_Yr_maxSize
                                            • Then - Actions
                                              • Set DrkC_Yr_Index[DrkC_Yr] = DrkC_Yr
                                              • Set DrkC_Yr_maxSize = DrkC_Yr
                                            • Else - Actions
                                          • Set DrkC_XYr_TempInt = DrkC_Yr_Index[DrkC_Yr]
                                          • -------- ======================== --------
                                          • -------- Save All Data --------
                                          • -------- > Save Enemy Unit --------
                                          • Set DrkC_rUnit[DrkC_XYr_TempInt] = DrkC_TempUnit
                                          • -------- > Save Player --------
                                          • Set DrkC_rPlayer[DrkC_XYr_TempInt] = DrkC_Player[DrkC_XY_TempInt]
                                          • -------- > Save Level --------
                                          • Set DrkC_rLevel[DrkC_XYr_TempInt] = DrkC_Level[DrkC_XY_TempInt]
                                          • -------- > Save Armor Reduce Duration --------
                                          • Set DrkC_rDuration_Real[DrkC_XYr_TempInt] = DrkC_ArmorReduce_Duration[DrkC_Level[DrkC_XY_TempInt]]
                                          • -------- ======================== --------
                                          • -------- > Add Armor Reduce in saved unit --------
                                          • Unit - Add DrkC_ArmorReduce to DrkC_rUnit[DrkC_XYr_TempInt]
                                          • -------- > Add the saved unit in Unit Group --------
                                          • Unit Group - Add DrkC_rUnit[DrkC_XYr_TempInt] to DrkC_ArmorReduce_UnitGroup
                                          • -------- ======================== --------
                                        • Else - Actions
                                          • -------- ======================== --------
                                          • -------- Stacking Negative Armor --------
                                          • -------- > When the unit stay in Dark Circle, his armor decreases until the Dark Circle disappear --------
                                          • -------- So, longer stay in Dark Circle, more armor decreases --------
                                          • For each (Integer DrkC_Xr) from 1 to DrkC_Yr, do (Actions)
                                            • Loop - Actions
                                              • Set DrkC_XYr_TempInt = DrkC_Yr_Index[DrkC_Xr]
                                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                                • If - Conditions
                                                  • DrkC_rUnit[DrkC_XYr_TempInt] Equal to DrkC_TempUnit
                                                  • (DrkC_rUnit[DrkC_XYr_TempInt] is in DrkC_ArmorReduce_UnitGroup) Equal to True
                                                  • (Level of DrkC_ArmorReduce for DrkC_rUnit[DrkC_XYr_TempInt]) Not equal to DrkC_ArmorReduce_MaxLvl
                                                • Then - Actions
                                                  • Set DrkC_rDuration_Real[DrkC_XYr_TempInt] = DrkC_ArmorReduce_Duration[DrkC_Level[DrkC_XY_TempInt]]
                                                  • Unit - Set level of DrkC_ArmorReduce for DrkC_rUnit[DrkC_XYr_TempInt] to ((Level of DrkC_ArmorReduce for DrkC_rUnit[DrkC_XYr_TempInt]) + 1)
                                                • Else - Actions
                                          • -------- ======================== --------
                                      • -------- ======================== --------
                                      • -------- > Remove Leak --------
                                      • Custom script: call RemoveLocation( udg_DrkC_TempPoint[1])
                                      • -------- ======================== --------
                                    • Else - Actions
                              • -------- ======================== --------
                              • -------- HP Regen --------
                              • -------- > Maximum Health% Hp Regen --------
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (Distance between (Position of DrkC_CCircle[DrkC_XY_TempInt]) and (Position of DrkC_Caster[DrkC_XY_TempInt])) Less than or equal to DrkC_AoE[DrkC_Level[DrkC_XY_TempInt]]
                                • Then - Actions
                                  • Unit - Set life of DrkC_Caster[DrkC_XY_TempInt] to ((Life of DrkC_Caster[DrkC_XY_TempInt]) + ((Max life of DrkC_Caster[DrkC_XY_TempInt]) / 100.00))
                                • Else - Actions
                              • -------- ======================== --------
                              • -------- > DPS Real Refill --------
                              • Set DrkC_PerSec[DrkC_XY_TempInt] = 1.00
                              • -------- ======================== --------
                              • -------- > Remove Leak --------
                              • Custom script: call DestroyGroup( udg_DrkC_UnitGroup[ udg_DrkC_XY_TempInt])
                              • -------- ======================== --------
                            • Else - Actions
                              • -------- ======================== --------
                              • -------- > DPS Duration --------
                              • Set DrkC_PerSec[DrkC_XY_TempInt] = (DrkC_PerSec[DrkC_XY_TempInt] - DrkC_Loop)
                              • -------- ======================== --------
                  • -------- ======================== --------
                  • -------- Dummy Spin Function --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • DrkC_Duration_Real[DrkC_XY_TempInt] Greater than 0.00
                      • DrkC_Boolean_TransparentIn[DrkC_XY_TempInt] Equal to False
                    • Then - Actions
                      • -------- ======================== --------
                      • -------- > Dont Spin the CCircle in Trans In and Trans Out --------
                      • Set DrkC_TempPoint[2] = (Position of DrkC_CCircle[DrkC_XY_TempInt])
                      • Unit - Make DrkC_CCircle[DrkC_XY_TempInt] face ((Facing of DrkC_CCircle[DrkC_XY_TempInt]) + DrkC_Spin_CCircle) over 0.00 seconds
                      • -------- ======================== --------
                      • -------- Tree Chopper (Destroy Trees) --------
                      • Destructible - Pick every destructible within DrkC_AoE[DrkC_Level[DrkC_XY_TempInt]] of DrkC_TempPoint[2] and do (Actions)
                        • Loop - Actions
                          • Set DrkC_TempDest = (Picked destructible)
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (DrkC_TempDest is alive) Equal to True
                              • (DrkC_TempDest is invulnerable) Equal to False
                            • Then - Actions
                              • Unit - Order DrkC_TreeChopper to Harvest DrkC_TempDest
                              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                • If - Conditions
                                  • (Current order of DrkC_TreeChopper) Equal to (Order(harvest))
                                • Then - Actions
                                  • Destructible - Kill DrkC_TempDest
                                • Else - Actions
                              • Unit - Order DrkC_TreeChopper to Stop
                            • Else - Actions
                      • -------- ======================== --------
                      • -------- Remove Leak --------
                      • Custom script: call RemoveLocation( udg_DrkC_TempPoint[2])
                      • -------- ======================== --------
                    • Else - Actions
                  • -------- ======================== --------
                  • -------- > The CRune spin always until the SPELL DURATION reach -0.000 --------
                  • Unit - Make DrkC_CRune[DrkC_XY_TempInt] face ((Facing of DrkC_CRune[DrkC_XY_TempInt]) - DrkC_Spin_CRune) over 0.00 seconds
                  • -------- ======================== --------
                  • -------- Dummy Sub Function --------
                  • -------- > Check Point --------
                  • Set DrkC_TempPoint[3] = ((Position of DrkC_CCircle[DrkC_XY_TempInt]) offset by DrkC_CCircle_Offset towards DrkC_CCircle_Sub1_Angle[DrkC_XY_TempInt] degrees)
                  • Set DrkC_TempPoint[4] = ((Position of DrkC_CCircle[DrkC_XY_TempInt]) offset by DrkC_CCircle_Offset towards DrkC_CCircle_Sub2_Angle[DrkC_XY_TempInt] degrees)
                  • Set DrkC_TempPoint[5] = ((Position of DrkC_CCircle[DrkC_XY_TempInt]) offset by DrkC_CCircle_Offset towards DrkC_CCircle_Sub3_Angle[DrkC_XY_TempInt] degrees)
                  • Set DrkC_TempPoint[6] = ((Position of DrkC_CCircle[DrkC_XY_TempInt]) offset by DrkC_CCircle_Offset towards DrkC_CCircle_Sub4_Angle[DrkC_XY_TempInt] degrees)
                  • -------- > Move Instant --------
                  • Unit - Move DrkC_CCircle_Sub1[DrkC_XY_TempInt] instantly to DrkC_TempPoint[3], facing DrkC_CCircle_Sub1_Facing[DrkC_XY_TempInt] degrees
                  • Unit - Move DrkC_CCircle_Sub2[DrkC_XY_TempInt] instantly to DrkC_TempPoint[4], facing DrkC_CCircle_Sub2_Facing[DrkC_XY_TempInt] degrees
                  • Unit - Move DrkC_CCircle_Sub3[DrkC_XY_TempInt] instantly to DrkC_TempPoint[5], facing DrkC_CCircle_Sub3_Facing[DrkC_XY_TempInt] degrees
                  • Unit - Move DrkC_CCircle_Sub4[DrkC_XY_TempInt] instantly to DrkC_TempPoint[6], facing DrkC_CCircle_Sub4_Facing[DrkC_XY_TempInt] degrees
                  • -------- > Decreases DrkC_CCircle_Sub_Facing / Angle --------
                  • Set DrkC_CCircle_Sub1_Angle[DrkC_XY_TempInt] = (DrkC_CCircle_Sub1_Angle[DrkC_XY_TempInt] - DrkC_CCircle_Speed_Angle)
                  • Set DrkC_CCircle_Sub2_Angle[DrkC_XY_TempInt] = (DrkC_CCircle_Sub2_Angle[DrkC_XY_TempInt] - DrkC_CCircle_Speed_Angle)
                  • Set DrkC_CCircle_Sub3_Angle[DrkC_XY_TempInt] = (DrkC_CCircle_Sub3_Angle[DrkC_XY_TempInt] - DrkC_CCircle_Speed_Angle)
                  • Set DrkC_CCircle_Sub4_Angle[DrkC_XY_TempInt] = (DrkC_CCircle_Sub4_Angle[DrkC_XY_TempInt] - DrkC_CCircle_Speed_Angle)
                  • Set DrkC_CCircle_Sub1_Facing[DrkC_XY_TempInt] = (DrkC_CCircle_Sub1_Facing[DrkC_XY_TempInt] - DrkC_CCircle_Speed_Facing)
                  • Set DrkC_CCircle_Sub2_Facing[DrkC_XY_TempInt] = (DrkC_CCircle_Sub2_Facing[DrkC_XY_TempInt] - DrkC_CCircle_Speed_Facing)
                  • Set DrkC_CCircle_Sub3_Facing[DrkC_XY_TempInt] = (DrkC_CCircle_Sub3_Facing[DrkC_XY_TempInt] - DrkC_CCircle_Speed_Facing)
                  • Set DrkC_CCircle_Sub4_Facing[DrkC_XY_TempInt] = (DrkC_CCircle_Sub4_Facing[DrkC_XY_TempInt] - DrkC_CCircle_Speed_Facing)
                  • -------- ======================== --------
                  • -------- Remove Leaks --------
                  • Custom script: call RemoveLocation( udg_DrkC_TempPoint[3])
                  • Custom script: call RemoveLocation( udg_DrkC_TempPoint[4])
                  • Custom script: call RemoveLocation( udg_DrkC_TempPoint[5])
                  • Custom script: call RemoveLocation( udg_DrkC_TempPoint[6])
                  • -------- ======================== --------
    • DrkC_Loop_Sub
      • DrkC Loop Sub
        • Events
        • Conditions
        • Actions
          • -------- ======================== -------- ======================== --------
          • -------- PLEASE DO NOT MODIFY UNLESS YOU KNOW WHAT YOU ARE DOING!! --------
          • -------- ======================== -------- ======================== --------
          • For each (Integer DrkC_Xr) from 1 to DrkC_Yr, do (Actions)
            • Loop - Actions
              • Set DrkC_XYr_TempInt = DrkC_Yr_Index[DrkC_Xr]
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • DrkC_rDuration_Real[DrkC_XYr_TempInt] Less than or equal to 0.00
                • Then - Actions
                  • -------- ======================== --------
                  • -------- Destroy / Remove --------
                  • Unit Group - Remove DrkC_rUnit[DrkC_XYr_TempInt] from DrkC_ArmorReduce_UnitGroup
                  • Unit - Remove DrkC_ArmorReduce from DrkC_rUnit[DrkC_XYr_TempInt]
                  • -------- ======================== --------
                  • -------- Recycle Index --------
                  • Set DrkC_rUnit[DrkC_XYr_TempInt] = No unit
                  • Set DrkC_rDuration_Real[DrkC_XYr_TempInt] = 0.00
                  • Set DrkC_Yr_Index[DrkC_Xr] = DrkC_Yr_Index[DrkC_Yr]
                  • Set DrkC_Yr_Index[DrkC_Yr] = DrkC_XYr_TempInt
                  • Set DrkC_Xr = (DrkC_Xr - 1)
                  • Set DrkC_Yr = (DrkC_Yr - 1)
                  • -------- ======================== --------
                  • -------- > When the value of Yr is 0, you must turn off this Trigger --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • DrkC_Yr Equal to 0
                    • Then - Actions
                      • Trigger - Turn off (This trigger)
                      • Skip remaining actions
                    • Else - Actions
                  • -------- ======================== --------
                • Else - Actions
                  • -------- ======================== --------
                  • -------- Unit Died --------
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (DrkC_rUnit[DrkC_XYr_TempInt] is alive) Equal to False
                    • Then - Actions
                      • -------- ======================== --------
                      • -------- Heal those nearby allied units --------
                      • Set DrkC_HealedGroup[DrkC_XYr_TempInt] = (Units within DrkC_HealAoE[DrkC_rLevel[DrkC_XYr_TempInt]] of (Position of DrkC_rUnit[DrkC_XYr_TempInt]))
                      • Unit Group - Pick every unit in DrkC_HealedGroup[DrkC_XYr_TempInt] and do (Actions)
                        • Loop - Actions
                          • Set DrkC_TempUnit = (Picked unit)
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (DrkC_TempUnit is alive) Equal to True
                              • (DrkC_TempUnit is A structure) Equal to False
                              • (DrkC_TempUnit is Mechanical) Equal to False
                              • (DrkC_TempUnit is Magic Immune) Equal to False
                              • (DrkC_TempUnit belongs to an ally of DrkC_rPlayer[DrkC_XYr_TempInt]) Equal to True
                              • (Percentage life of DrkC_TempUnit) Not equal to 100.00
                            • Then - Actions
                              • Special Effect - Create a special effect attached to the DrkC_SFX_Attachment of DrkC_TempUnit using DrkC_SFX[2]
                              • Special Effect - Destroy (Last created special effect)
                              • Unit - Set life of DrkC_TempUnit to ((Life of DrkC_TempUnit) + DrkC_Heal[DrkC_rLevel[DrkC_XYr_TempInt]])
                            • Else - Actions
                      • -------- ======================== --------
                      • -------- Remove Leak --------
                      • Custom script: call DestroyGroup( udg_DrkC_HealedGroup[ udg_DrkC_XYr_TempInt])
                      • -------- ======================== --------
                      • -------- Duration --------
                      • Set DrkC_rDuration_Real[DrkC_XYr_TempInt] = 0.00
                      • -------- ======================== --------
                    • Else - Actions
                      • -------- ======================== --------
                      • -------- Duration Function --------
                      • Set DrkC_rDuration_Real[DrkC_XYr_TempInt] = (DrkC_rDuration_Real[DrkC_XYr_TempInt] - DrkC_Loop)
                      • -------- ======================== --------




    CREDITS
     

    Attached Files:

    Last edited: Aug 1, 2014
Thread Status:
Not open for further replies.