1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. Find your way through the deepest dungeon in the 18th Mini Mapping Contest Poll.
    Dismiss Notice
  3. A brave new world lies beyond the seven seas. Join the 34th Modeling Contest today!
    Dismiss Notice
  4. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
Hive 3 Remoosed BETA - NOW LIVE. Go check it out at BETA Hive Workshop! Post your feedback in this new forum BETA Feedback.
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Icestrike Ver Empathetic Emu

Submitted by Devalut
This bundle is marked as pending. It has not been reviewed by a staff member yet.

  • [​IMG]
    [​IMG]

  • [​IMG]
    [​IMG]

  • PATCH 1.3.1 or higher
    At least that's what I used to make it.




  • FrBi Config
    • FrBi Config
      • Events
        • Map initialization
      • Conditions
      • Actions
        • -------- --------
        • -------- Periodic Timer --------
        • Set FrBi_Config_Periodic = 0.02
        • Trigger - Add to FrBi Periodic <gen> the event (Time - Every FrBi_Config_Periodic seconds of game time)
        • -------- Periodic Advanced Values --------
        • -------- --------
        • -------- What percentage of the missiles speed will factor into the initial delay movement reduction? --------
        • Set FrBi_Config_Real[0] = 0.55
        • -------- --------
        • -------- Initial Height Detriment during delay movement --------
        • Set FrBi_Config_Real[1] = -5.00
        • -------- --------
        • -------- Height Base during delay movement --------
        • Set FrBi_Config_Real[2] = 8.00
        • -------- --------
        • -------- Abilities to be used by this spell --------
        • Set FrBi_SPELL[1] = Icestrike
        • -------- --------
        • -------- What will be used for all the special effects in this spell --------
        • -------- --------
        • -------- Initial Projectile --------
        • Set FrBi_Config_Spef_Path[0] = Abilities\Weapons\SpiritOfVengeanceMissile\SpiritOfVengeanceMissile.mdl
        • -------- Transition Effect --------
        • Set FrBi_Config_Spef_Path[1] = Abilities\Weapons\ZigguratFrostMissile\ZigguratFrostMissile.mdl
        • -------- Final Missile --------
        • Set FrBi_Config_Spef_Path[2] = Abilities\Weapons\LichMissile\LichMissile.mdl
        • -------- On hit Effect --------
        • Set FrBi_Config_Spef_Path[3] = Abilities\Spells\Items\AIob\AIobSpecialArt.mdl
        • -------- --------
        • -------- What will be used for all the special effects in this spell --------
        • -------- --------
        • -------- Number of Projectiles --------
        • Set FrBi_Config_Proj_Count[0] = 7
        • -------- --------
        • -------- Damage per projectile --------
        • -------- Base damage --------
        • Set FrBi_Config_Damage_Base = 5.00
        • -------- Level Bonus --------
        • Set FrBi_Config_Damage_LVL_Bonus[1] = 10.00
        • Set FrBi_Config_Damage_LVL_Bonus[2] = 40.00
        • Set FrBi_Config_Damage_LVL_Bonus[3] = 70.00
        • -------- Intelligence(Charisma?) Ratio --------
        • Set FrBi_Config_Damage_INT_Ratio[1] = 0.15
        • Set FrBi_Config_Damage_INT_Ratio[2] = 0.25
        • Set FrBi_Config_Damage_INT_Ratio[3] = 0.35
        • -------- --------
        • -------- Colision Distance --------
        • Set FrBi_Config_Collision = 25.00
        • -------- --------
        • -------- Angle for initial Cast --------
        • Set FrBi_Config_Angle[0] = 180.00
        • -------- --------
        • -------- No Target search radius --------
        • Set FrBi_Config_AOE[0] = 450.00
        • -------- --------
        • -------- Delay before projectile fires --------
        • -------- its a random value between these two. --------
        • Set FrBi_Config_Delay[0] = 0.80
        • Set FrBi_Config_Delay[1] = 1.20
        • -------- --------
        • -------- Secondary delay --------
        • Set FrBi_Config_Delay[2] = 0.50
        • -------- --------
        • -------- How long the projectile will chase before expiring --------
        • Set FrBi_Config_Exp[0] = 5.00
        • -------- --------
        • -------- Initial Cast Height --------
        • Set FrBi_Config_Height[0] = 80.00
        • -------- --------
        • -------- Missile Hit Offset (This essentially raises the height, manipulate it to get a sweet spot of where you want it to hit.) --------
        • Set FrBi_Config_Height[1] = 180.00
        • -------- --------
        • -------- Intial Cast Offset --------
        • Set FrBi_Config_Offset[0] = 70.00
        • -------- --------
        • -------- Scale of Projectile --------
        • Set FrBi_Config_Spef_Scale[0] = 0.60
        • -------- --------
        • -------- Initial Projectile Speed --------
        • Set FrBi_Config_Speed[0] = 6.00
        • -------- Secondary (i.e. the one the strikes the unit.) --------
        • Set FrBi_Config_Speed[1] = 15.00
        • -------- --------
        • -------- Preload --------
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
          • Then - Actions
            • Set FrBi_Point[0] = (Center of (Playable map area))
            • Unit - Create 1 Albatross for Neutral Passive at FrBi_Point[1] facing Default building facing degrees
            • Set FrBi_Unit_Variable[0] = (Last created unit)
            • Unit - Add FrBi_SPELL[1] to FrBi_Unit_Variable[0]
            • Unit - Add a 0.03 second Generic expiration timer to FrBi_Unit_Variable[0]
            • Custom script: call RemoveLocation(udg_FrBi_Point[0])
          • Else - Actions
        • -------- Preload --------

    FrBi Cast
    • FrBi Cast
      • Events
        • Unit - A unit Starts the effect of an ability
      • Conditions
        • (Ability being cast) Equal to FrBi_SPELL[1]
      • Actions
        • Set FrBi_Unit_Variable[3] = (Triggering unit)
        • -------- Special Effect --------
        • Set FrBi_Point[3] = (Position of FrBi_Unit_Variable[3])
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • (Target unit of ability being cast) Not equal to No unit
          • Then - Actions
            • Set FrBi_Unit_Variable[4] = (Target unit of ability being cast)
            • Set FrBi_Point[4] = (Position of FrBi_Unit_Variable[4])
          • Else - Actions
            • Set FrBi_Point[4] = (Target point of ability being cast)
            • Custom script: set bj_wantDestroyGroup = true
            • Unit Group - Pick every unit in (Units within FrBi_Config_AOE[0] of FrBi_Point[4]) and do (Actions)
              • Loop - Actions
                • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  • If - Conditions
                    • ((Picked unit) is A structure) Equal to False
                    • ((Picked unit) is Magic Immune) Equal to False
                    • ((Picked unit) is dead) Equal to False
                    • ((Picked unit) belongs to an enemy of (Triggering player)) Equal to True
                    • ((Picked unit) is in FrBi_NotargetGroup) Equal to False
                  • Then - Actions
                    • Unit Group - Add (Picked unit) to FrBi_NotargetGroup
                  • Else - Actions
        • -------- --------
        • For each (Integer FrBi_Loop_Cast) from 1 to FrBi_Config_Proj_Count[0], do (Actions)
          • Loop - Actions
            • -------- ============================= --------
            • -------- Store the necessary values --------
            • -------- ============================= --------
            • Set FrBi_Index = (FrBi_Index + 1)
            • Set FrBi_Caster[FrBi_Index] = FrBi_Unit_Variable[3]
            • Set FrBi_Damage[FrBi_Index] = ((FrBi_Config_Damage_Base + FrBi_Config_Damage_LVL_Bonus[(Level of FrBi_SPELL[1] for FrBi_Unit_Variable[3])]) + ((Real((Intelligence of FrBi_Caster[FrBi_Index] (Include bonuses)))) x FrBi_Config_Damage_INT_Ratio[(Level of FrBi_SPELL[1] for FrBi_Unit_Variable[3)
            • Set FrBi_Point[5] = (FrBi_Point[3] offset by ((FrBi_Config_Angle[0] x 0.50) - ((FrBi_Config_Angle[0] / (Real((FrBi_Config_Proj_Count[0] + 1)))) x (Real(FrBi_Loop_Cast)))) towards ((Angle from FrBi_Point[4] to FrBi_Point[3]) - 90.00) degrees)
            • Set FrBi_Point[6] = (FrBi_Point[5] offset by FrBi_Config_Offset[0] towards (Angle from FrBi_Point[4] to FrBi_Point[3]) degrees)
            • -------- ============================= --------
            • -------- Create the dummy --------
            • -------- ============================= --------
            • Special Effect - Create a special effect at FrBi_Point[6] using FrBi_Config_Spef_Path[0]
            • Special Effect - Set Orientation of (Last created special effect) to yaw: (Radians((Angle from FrBi_Point[6] to FrBi_Point[4]))), pitch: 0.00, roll: 0.00
            • Special Effect - Set Scale of (Last created special effect) to FrBi_Config_Spef_Scale[0]
            • Custom script: set udg_FrBi_C_Height[0] = GetLocationZ(udg_FrBi_Point[6])
            • Set FrBi_Effect[FrBi_Index] = (Last created special effect)
            • Set FrBi_Height[FrBi_Index] = (FrBi_Config_Height[0] + FrBi_C_Height[0])
            • Set FrBi_Delay[FrBi_Index] = (Random real number between FrBi_Config_Delay[0] and FrBi_Config_Delay[1])
            • Set FrBi_Delay_Secondary[FrBi_Index] = FrBi_Config_Delay[2]
            • Set FrBi_Facing[FrBi_Index] = (Angle from FrBi_Point[6] to FrBi_Point[3])
            • Set FrBi_Delay_State[FrBi_Index] = True
            • Set FrBi_Expiration[FrBi_Index] = (FrBi_Config_Exp[0] + FrBi_Delay[FrBi_Index])
            • Set FrBi_Scale[FrBi_Index] = FrBi_Config_Spef_Scale[0]
            • Set FrBi_Speed[FrBi_Index] = FrBi_Config_Speed[0]
            • Set FrBi_Spef_Transition_Eff[FrBi_Index] = FrBi_Config_Spef_Path[1]
            • Set FrBi_Spef_Final_Missile[FrBi_Index] = FrBi_Config_Spef_Path[2]
            • Set FrBi_Spef_On_Hit[FrBi_Index] = FrBi_Config_Spef_Path[3]
            • Custom script: call RemoveLocation(udg_FrBi_Point[5])
            • Custom script: call RemoveLocation(udg_FrBi_Point[6])
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • (Target unit of ability being cast) Equal to No unit
              • Then - Actions
                • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  • If - Conditions
                    • (Number of units in FrBi_NotargetGroup) Greater than 0
                  • Then - Actions
                    • Set FrBi_Target[FrBi_Index] = (Random unit from FrBi_NotargetGroup)
                    • Unit Group - Add FrBi_Target[FrBi_Index] to FrBi_NoTargetGroup2
                    • Unit Group - Remove FrBi_Target[FrBi_Index] from FrBi_NotargetGroup
                  • Else - Actions
                    • Set FrBi_Target[FrBi_Index] = (Random unit from FrBi_NoTargetGroup2)
              • Else - Actions
                • Set FrBi_Target[FrBi_Index] = FrBi_Unit_Variable[4]
            • -------- ============================= --------
            • -------- Move on to the looping part --------
            • -------- ============================= --------
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • FrBi_Index Equal to 1
              • Then - Actions
                • Trigger - Turn on FrBi Periodic <gen>
              • Else - Actions
            • -------- ============================= --------
            • -------- Clean up the leaks --------
            • -------- ============================= --------
        • Unit Group - Remove all units from FrBi_NotargetGroup
        • Unit Group - Remove all units from FrBi_NoTargetGroup2
        • Custom script: call RemoveLocation(udg_FrBi_Point[3])
        • Custom script: call RemoveLocation(udg_FrBi_Point[4])

    FrBi Loop
    • FrBi Periodic
      • Events
      • Conditions
      • Actions
        • For each (Integer FrBi_Loop) from 1 to FrBi_Index, do (Actions)
          • Loop - Actions
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • FrBi_Expiration[FrBi_Loop] Greater than 0.00
              • Then - Actions
                • Set FrBi_Expiration[FrBi_Loop] = (FrBi_Expiration[FrBi_Loop] - FrBi_Config_Periodic)
                • Set FrBi_Point[7] = (Point((Position - X of FrBi_Effect[FrBi_Loop]), (Position - Y of FrBi_Effect[FrBi_Loop])))
                • Set FrBi_Point[8] = (Position of FrBi_Target[FrBi_Loop])
                • Set FrBi_Point[9] = (Position of FrBi_Caster[FrBi_Loop])
                • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  • If - Conditions
                    • FrBi_Delay[FrBi_Loop] Greater than 0.00
                  • Then - Actions
                    • -------- ============================= --------
                    • -------- Initial Missile movement --------
                    • -------- ============================= --------
                    • Custom script: set udg_FrBi_C_Height[1] = GetLocationZ(udg_FrBi_Point[7])
                    • Set FrBi_Point[10] = (FrBi_Point[7] offset by (((FrBi_Speed[FrBi_Loop] x FrBi_Config_Real[0]) x -1.00) + (FrBi_Delay[FrBi_Loop] / (FrBi_Delay_Secondary[FrBi_Loop] / FrBi_Speed[FrBi_Loop]))) towards (Angle from FrBi_Point[9] to FrBi_Point[7]) degrees)
                    • Set FrBi_Height[FrBi_Loop] = (FrBi_Height[FrBi_Loop] + (FrBi_Config_Real[1] + (FrBi_Delay_Secondary[FrBi_Loop] / (FrBi_Delay_Secondary[FrBi_Loop] / FrBi_Config_Real[2]))))
                    • Special Effect - Set Position of FrBi_Effect[FrBi_Loop] to x: (X of FrBi_Point[10]), y: (Y of FrBi_Point[10]), z: FrBi_Height[FrBi_Loop]
                    • Special Effect - Set Orientation of FrBi_Effect[FrBi_Loop] to yaw: (Radians((Facing of FrBi_Caster[FrBi_Loop]))), pitch: 0.00, roll: 0.00
                    • Set FrBi_Delay[FrBi_Loop] = (FrBi_Delay[FrBi_Loop] - FrBi_Config_Periodic)
                    • -------- ============================= --------
                    • -------- Initial Missile movement --------
                    • -------- ============================= --------
                  • Else - Actions
                    • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      • If - Conditions
                        • Or - Any (Conditions) are true
                          • Conditions
                            • (FrBi_Target[FrBi_Loop] is alive) Equal to True
                            • FrBi_Target[FrBi_Loop] Not equal to No unit
                      • Then - Actions
                        • Set FrBi_Distance[FrBi_Loop] = (Distance between FrBi_Point[7] and FrBi_Point[8])
                        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          • If - Conditions
                            • FrBi_Delay_State[FrBi_Loop] Equal to True
                          • Then - Actions
                            • -------- ============================= --------
                            • -------- Delay over, Fire missile! --------
                            • -------- ============================= --------
                            • Special Effect - Create a special effect at FrBi_Point[7] using FrBi_Spef_Transition_Eff[FrBi_Loop]
                            • Special Effect - Set Yaw of (Last created special effect) to: (Radians((Angle from FrBi_Point[7] to FrBi_Point[8])))
                            • Special Effect - Set Scale of (Last created special effect) to FrBi_Scale[FrBi_Loop]
                            • Special Effect - Set Position - Z of (Last created special effect) to (Position - Z of FrBi_Effect[FrBi_Loop])
                            • Special Effect - Destroy (Last created special effect)
                            • Special Effect - Create a special effect at FrBi_Point[7] using FrBi_Spef_Final_Missile[FrBi_Loop]
                            • Special Effect - Set Scale of (Last created special effect) to FrBi_Scale[FrBi_Loop]
                            • Special Effect - Set Position - Z of (Last created special effect) to (Position - Z of FrBi_Effect[FrBi_Loop])
                            • Special Effect - Destroy FrBi_Effect[FrBi_Loop]
                            • Set FrBi_Effect[FrBi_Loop] = (Last created special effect)
                            • Set FrBi_Speed[FrBi_Loop] = FrBi_Config_Speed[1]
                            • Set FrBi_Delay_State[FrBi_Loop] = False
                            • -------- ============================= --------
                            • -------- Delay over, Fire missile! --------
                            • -------- ============================= --------
                          • Else - Actions
                        • -------- ============================= --------
                        • -------- Move the missile dummy --------
                        • -------- ============================= --------
                        • Set FrBi_Point[10] = (FrBi_Point[7] offset by FrBi_Speed[FrBi_Loop] towards (Angle from FrBi_Point[7] to FrBi_Point[8]) degrees)
                        • Set FrBi_Height[FrBi_Loop] = ((Position - Z of FrBi_Effect[FrBi_Loop]) + ((((Position - Z of FrBi_Target[FrBi_Loop]) + (Current flying height of FrBi_Target[FrBi_Loop])) - (Position - Z of FrBi_Effect[FrBi_Loop])) / ((FrBi_Distance[FrBi_Loop] + FrBi_Config_Height[1]) / FrBi_Speed[FrBi_Loo)
                        • Special Effect - Set Position of FrBi_Effect[FrBi_Loop] to x: (X of FrBi_Point[10]), y: (Y of FrBi_Point[10]), z: FrBi_Height[FrBi_Loop]
                        • Special Effect - Set Orientation of FrBi_Effect[FrBi_Loop] to yaw: (Radians((Angle from FrBi_Point[7] to FrBi_Point[8]))), pitch: (Radians((Atan2(((Position - Z of FrBi_Effect[FrBi_Loop]) - ((Position - Z of FrBi_Target[FrBi_Loop]) + (Current flying height of FrBi_Target[FrBi_Loop]))), FrBi_Distance[FrBi_Loop])))), roll: 0.00
                        • -------- ============================= --------
                        • -------- Move the missile dummy --------
                        • -------- ============================= --------
                        • -------- --------
                        • -------- ============================= --------
                        • -------- Keep track of distance between dummy and target --------
                        • -------- ============================= --------
                        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          • If - Conditions
                            • (Distance between FrBi_Point[7] and FrBi_Point[8]) Less than or equal to FrBi_Config_Collision
                          • Then - Actions
                            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                              • If - Conditions
                                • (FrBi_Target[FrBi_Loop] is alive) Equal to True
                              • Then - Actions
                                • -------- ============================= --------
                                • -------- Deals damage --------
                                • -------- ============================= --------
                                • Unit - Cause FrBi_Caster[FrBi_Loop] to damage FrBi_Target[FrBi_Loop], dealing FrBi_Damage[FrBi_Loop] damage of attack type Spells and damage type Universal
                                • Special Effect - Create a special effect at FrBi_Point[10] using FrBi_Spef_On_Hit[FrBi_Loop]
                                • Special Effect - Set Position of (Last created special effect) to x: (X of FrBi_Point[10]), y: (Y of FrBi_Point[10]), z: FrBi_Height[FrBi_Loop]
                                • Special Effect - Set Orientation of (Last created special effect) to yaw: (Radians((Angle from FrBi_Point[7] to FrBi_Point[8]))), pitch: 0.00, roll: 0.00
                                • Special Effect - Destroy (Last created special effect)
                                • -------- ============================= --------
                                • -------- Deals damage --------
                                • -------- ============================= --------
                              • Else - Actions
                            • Set FrBi_Expiration[FrBi_Loop] = 0.00
                          • Else - Actions
                      • Else - Actions
                        • Set FrBi_Expiration[FrBi_Loop] = 0.00
                        • Special Effect - Create a special effect at FrBi_Point[7] using FrBi_Spef_Transition_Eff[FrBi_Loop]
                        • Special Effect - Set Yaw of (Last created special effect) to: (Radians((Angle from FrBi_Point[7] to FrBi_Point[8])))
                        • Special Effect - Set Scale of (Last created special effect) to FrBi_Scale[FrBi_Loop]
                        • Special Effect - Set Position - Z of (Last created special effect) to (Position - Z of FrBi_Effect[FrBi_Loop])
                        • Special Effect - Destroy (Last created special effect)
              • Else - Actions
                • -------- - --------
                • -------- ============================= --------
                • -------- Kill Missile --------
                • -------- ============================= --------
                • Set FrBi_Expiration[FrBi_Loop] = 0.00
                • Special Effect - Destroy FrBi_Effect[FrBi_Loop]
                • -------- ============================= --------
                • -------- Kill Missile --------
                • -------- ============================= --------
                • -------- - --------
                • -------- ============================= --------
                • -------- De-Indexing --------
                • -------- ============================= --------
                • Set FrBi_Caster[FrBi_Loop] = FrBi_Caster[FrBi_Index]
                • Set FrBi_Effect[FrBi_Loop] = FrBi_Effect[FrBi_Index]
                • Set FrBi_Target[FrBi_Loop] = FrBi_Target[FrBi_Index]
                • Set FrBi_Height[FrBi_Loop] = FrBi_Height[FrBi_Index]
                • Set FrBi_Facing[FrBi_Loop] = FrBi_Facing[FrBi_Index]
                • Set FrBi_Damage[FrBi_Loop] = FrBi_Damage[FrBi_Index]
                • Set FrBi_Delay[FrBi_Loop] = FrBi_Delay[FrBi_Index]
                • Set FrBi_Delay_Secondary[FrBi_Loop] = FrBi_Delay_Secondary[FrBi_Index]
                • Set FrBi_Delay_State[FrBi_Loop] = FrBi_Delay_State[FrBi_Index]
                • Set FrBi_Distance[FrBi_Loop] = FrBi_Distance[FrBi_Index]
                • Set FrBi_Expiration[FrBi_Loop] = FrBi_Expiration[FrBi_Index]
                • Set FrBi_Scale[FrBi_Loop] = FrBi_Scale[FrBi_Index]
                • Set FrBi_Speed[FrBi_Loop] = FrBi_Speed[FrBi_Index]
                • Set FrBi_Spef_Transition_Eff[FrBi_Loop] = FrBi_Spef_Transition_Eff[FrBi_Index]
                • Set FrBi_Spef_Final_Missile[FrBi_Loop] = FrBi_Spef_Final_Missile[FrBi_Index]
                • Set FrBi_Spef_On_Hit[FrBi_Loop] = FrBi_Spef_On_Hit[FrBi_Index]
                • Set FrBi_Loop = (FrBi_Loop - 1)
                • Set FrBi_Index = (FrBi_Index - 1)
                • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  • If - Conditions
                    • FrBi_Index Equal to 0
                  • Then - Actions
                    • Trigger - Turn off (This trigger)
                  • Else - Actions
                • -------- ============================= --------
                • -------- De-Indexing --------
                • -------- ============================= --------
                • -------- - --------
            • -------- ============================= --------
            • -------- Clean up the leaks --------
            • -------- ============================= --------
            • Custom script: call RemoveLocation(udg_FrBi_Point[7])
            • Custom script: call RemoveLocation(udg_FrBi_Point[8])
            • Custom script: call RemoveLocation(udg_FrBi_Point[9])
            • Custom script: call RemoveLocation(udg_FrBi_Point[10])


  • Import Icestrike in your map!

    Step 0 REQUIRED - Under Preferences, make sure you have "Automatically create unknown variables while pasting trigger data" checked

    Step 1 - Copy over the ability "Icestrike"

    Step 2 - Copy & paste the Icestrike folder into your map


  • Without these folks this wouldn't be possible.

    Pyrogasm - Helped me fine tune correct pitch for missiles to hit their targets, struggled with this for so long, thank you so much!

    Welt (Not on the hive) - Counsel and grumbled about GUI being ugly compared to JASS, still helped me greatly, thank you crazy bastard!

    Mypad - Helped me trim off excess stuff I didn't need when I first presented this to him

    DnD - Originally was going to go with Magic missile, then Eldritch Blast, landed on Ice theme because I need something that isn't green... All the same inspiration started with DND.

  • Icestrike - [Empathetic Emu] : 2020-02-24 - 9:52PM PST
    - Made changes to the cast trigger
    *Point[3] was not being removed!
    *Point[5] & [6] were not being removed inside the loop!
    *Yaw modifcations were being overwritten by the orientation changes
    - Shame

    Previous changelog
    ================================================
    Icestrike - [Detrimental Dolphin] : 2020-02-18 - 5:01PM PST
    - Corrected height & Pitch angle for final missle
    - Changed theme from Green to blue after much crying
    - Renamed to Icestrike from frostbite to avoid duplicate name entry
    - Removed Error message when no targets are found on initial cast
    instead the spell plays out normally and dies instead of forming the final missile
    My line of thinking here is how flamestrike or other 3d space spells are cast,
    there is no error message
    - added random delayed between two values instead of one universal delay
    - added a secondary delay for the initial movement calculation for initial missiles
    - added two speed settings, one for initial and final missile, final missiles is changed on transformation

    ================================================
    Eldritch Blast - [Cautious Cantelope] : unreleased
    - still haven't fixed height & pitch issue
    - dropped remaining spellls and focused on Eldritch Blast (now Icestrike)

    ================================================
    Dnd Spellpack - [Bashful Bullfrog] : unreleased
    - Added health regen reduction for icy touch
    - changed orb from booming blade to follow the afflicted unit

    Dnd Spellpack - [Anonymous Acorn] : unreleased
    Spells included:
    -Blade ward (Target Buff that grants % towards non-spell damage with bone armor styled on hit effects.)
    - Booming blade (Conditional Damage if the afflicted target moves.)
    - Chill Touch (Debuff, stops healing & debilitates if undead.)
    - Eldritch Blast & Magic Missile (Delayed Missiles that Auto Target & Home in)


Please let me know your thoughts, I will take any feedback on to improve Icestrike.
Contents

Icestrike (Map)

  1. Devalut

    Devalut

    Joined:
    Feb 9, 2009
    Messages:
    1,491
    Resources:
    3
    Spells:
    2
    Tutorials:
    1
    Resources:
    3
    Inb4 "Why is there no range indication for AOE?"
    The spell is both AOE & Single Target, I find it clunky to have the range indicator IMO, but I will add it if you sissies wanna wrassle about it.
     
  2. Pyrogasm

    Pyrogasm

    Joined:
    Feb 27, 2007
    Messages:
    3,788
    Resources:
    1
    Spells:
    1
    Resources:
    1
    IMO the impact point for ground targets should be higher.
     
  3. Devalut

    Devalut

    Joined:
    Feb 9, 2009
    Messages:
    1,491
    Resources:
    3
    Spells:
    2
    Tutorials:
    1
    Resources:
    3
    From your observations of the gif or from playtest?

    Also what did you think of the removal of the Error message when no targets are found?
     
  4. Pyrogasm

    Pyrogasm

    Joined:
    Feb 27, 2007
    Messages:
    3,788
    Resources:
    1
    Spells:
    1
    Resources:
    1
    .gif, I didn't download the map. I think it's fine not to have an error message as long as mana and cooldown are refunded for failed casts.
     
  5. Diegoit

    Diegoit

    Joined:
    Apr 8, 2017
    Messages:
    1,345
    Resources:
    2
    Models:
    2
    Resources:
    2
    Hells this idea is OP, gj!
     
  6. Devalut

    Devalut

    Joined:
    Feb 9, 2009
    Messages:
    1,491
    Resources:
    3
    Spells:
    2
    Tutorials:
    1
    Resources:
    3
    @Pyrogasm
    >.gif
    Gif is unfortunately misleading as the target frames models are originally doodads so they're maybe 50 units off to the left in the first gif, second gif is without the height fixed.

    >I didn't download the map.
    Forshame! I made this map last year(late september?), I was hoping to hear your reaction on the "Spell pages" I made for options, I based it on Risk of Rain's artifacts.

    >I think it's fine not to have an error message as long as mana and cooldown are refunded for failed casts.
    Nope, I based my logic on vanilla 2D space abilities, you miss, you pay the price, which reminds me I don't think I filtered invisible units...

    Lastly, what are your thoughts on the initial cast trigger's filtering for a no target cast?
    I used one initial unit group to catch units, and then a named group to finish to job.

    ============================================

    @Diegoit
    Did you try any of the "Up-shins?"
     
  7. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    15,076
    Resources:
    1
    Maps:
    1
    Resources:
    1
    What's a detrimental dolphin?

    The .gif is fake. Things happen in another dimension angle.

    Tooltip missing. Unacceptable. A book of lousy nothings.

    Love it that it has auto-random attack/attack ground option.
    Great that it can be cast immediately after being cast.

    Women villagers were not left impressed. No stains have been made on them.

    One thing moved me though... Two golems were gangbanging a turtle in the southeast. One of the golems couldn't take it anymore and fell but not without giving birth to two littler ones that then together with the turtle continued the intense action on the remaining bigger golem.

    From here on you could do all sorts of derivative spells.

    wrastle.png
     
    Last edited: Feb 19, 2020
  8. Devalut

    Devalut

    Joined:
    Feb 9, 2009
    Messages:
    1,491
    Resources:
    3
    Spells:
    2
    Tutorials:
    1
    Resources:
    3
    @deepstrasz
    >What's a detrimental dolphin?
    Alternative to Numbers

    >The .gif is fake. Things happen in another dimension angle.
    Go to triggers and turn on Camera, press Esc

    >Tooltip missing. Unacceptable. A book of lousy nothings.
    My deepest apologies my lord, It shall not happen again

    >Love it that it has auto-random attack/attack ground option.
    upload_2020-2-19_8-20-42.png

    >Great that it can be cast immediately after being cast.
    Cooldowns and mana cost are set for testing, balance is up to the discretion of the user.

    >Women villagers were not left impressed. No stains have been made on them.
    >One thing moved me though... Two golems were gangbanging a turtle in the southeast. One of the golems couldn't take it anymore and fell but not without giving birth to two littler ones that then together with the turtle continued the intense action on the remaining bigger golem.

    [​IMG]

    >From here on you could do all sorts of derivative spells.
    Be sure to keep me updated on that, I'd love to hear more.
     
  9. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    15,076
    Resources:
    1
    Maps:
    1
    Resources:
    1
    What's with the green martians? You brainwashed by H.G. Wells or something?

    Anyhoes, here goes:
    • The blue balls could upon impact release a nova of blue balls going about in all directions. This, either for each initial blue ball hitting a target or for all (initial) blue balls hitting one target.
    • The blues could bounce from target to close-by target for a while. This could be a trait of them ballies going from air to ground units or the other way around.
    • You could have those clouds be following drones that photoshoot your enemies as you approach them. After a while the clouds disappear. The idea is that the clouds can be ordered to attack whichever target(s) you want by recasting the spell. Another spell will not be started unless the cloud timer(s) expire(s).
    • With the idea above in mind, the clouds quickly pour their blueness around the caster in a circle fashion and whoever gets into those takes damage and could be slowed or something.
    • Another thing you could do with ^ is to shift the zone of cloud interest by the point you cast the spell on. If you cast on the hero, the effect will be as mentioned above, if you cast somewhere in front of the hero or somewhat far in any direction, the clouds will shift their leaking towards there in a sort of V, U, whatnot fashion, meaning the damage will be more due to the projectiles being more localized/grouped.
     
  10. Daffa

    Daffa

    Joined:
    Jan 30, 2013
    Messages:
    8,215
    Resources:
    31
    Packs:
    1
    Maps:
    9
    Spells:
    18
    Tutorials:
    3
    Resources:
    31
    What's up with the filesize?
     
  11. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    15,076
    Resources:
    1
    Maps:
    1
    Resources:
    1
    Well, how do you think big golems and turtles would be getting their juice with low file size, eh?
     
  12. Devalut

    Devalut

    Joined:
    Feb 9, 2009
    Messages:
    1,491
    Resources:
    3
    Spells:
    2
    Tutorials:
    1
    Resources:
    3
    @Daffa
    There is an mp3 in there for an unrelated trigger.
     
  13. JAKEZINC

    JAKEZINC

    Joined:
    Aug 13, 2013
    Messages:
    1,615
    Resources:
    9
    Spells:
    9
    Resources:
    9
    Good spell concept. Didn't test the spell on actual in-game for performance yet. By judging the looks of your triggers... you may want to improve your variable prefixes and names for readability.

    Also why's the periodic interval is defaulted to 0.02? It's not that big deal but in terms of performance you may want to set it to 0.03 for the standard but it's on you. You can also include preloading those sfx paths.

    You may also want to make the filtered units to be configurable though, one must like to target structures or even magic immune units. (allies too) opening for more spell variations. Same goes to attack type and damage type. A user may want the strength attribute to be used on damage instead of intelligence... You may also consider this.

    In cast, constant values don't need to be part of the indexing, you can directly refer the config constants inside the loop unless if they're depending on the caster's levels just like the damage.

    In loop, I just skipped some projectile's trajectory maths here as I'm not aiming for in-depth look for those things as long as they're definitely working as it should be. However, you can familiarise yourself using get x and y instead of using points so that you wouldn't need such leaks removal and points conversion to x and y. This may require you to use a lot of custom scripts though it is performance-wise and efficient.

    Aside from that, I like the simplicity of your spell in terms of visuals. Also a very big improvement that we can now manipulate special effects instead of dummies :vw_love:
     
  14. FeelsGoodMan

    FeelsGoodMan

    Joined:
    Dec 13, 2018
    Messages:
    1,682
    Resources:
    6
    Maps:
    3
    Template:
    1
    Ported Models:
    2
    Resources:
    6
    Why is there no range indication for AOE?
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    Nice spell
     
  15. Devalut

    Devalut

    Joined:
    Feb 9, 2009
    Messages:
    1,491
    Resources:
    3
    Spells:
    2
    Tutorials:
    1
    Resources:
    3
    @jakeZinc
    >You may want to improve your variable prefixes and names for readability.
    Ah, Prefix being "FrBi" right? What should be changed?

    >You can also include pre-loading those sfx paths.
    Just create all four and destroy them? Sounds marvelous, I can manage that.

    >You may also want to make the filtered units to be configurable though, one must like to target structures or even magic immune units. (allies too) opening for more spell variations.
    What would a configuration for filtered units look like?

    >In cast, constant values don't need to be part of the indexing, you can directly refer the config constants inside the loop unless if they're depending on the caster's levels just like the damage.
    Ah, my intention was to allow for customized cast triggers, seems i've forgot take that out. thank you!

    >However, you can familiarise yourself using get x and y instead of using points so that you wouldn't need such leaks removal and points conversion to x and y. This may require you to use a lot of custom scripts though it is performance-wise and efficient.
    I'd love to hear more on this if you ever do take the time, improving it's performance would be cherry.

    >Also a very big improvement that we can now manipulate special effects instead of dummies
    Huge! I love that I don't need to import units or models!
    Thanks for the Hearty feedback, this is stuff I need to hear!

    @FeelsGoodMan
    It's both a single target, and point target ability, I find it clunky to try and hit a single target so I removed it. Also thank you for the lovely comment!


    @deepstrasz
    upload_2020-2-20_7-14-11.png
    [​IMG]
     
    Last edited: Feb 20, 2020
  16. FeelsGoodMan

    FeelsGoodMan

    Joined:
    Dec 13, 2018
    Messages:
    1,682
    Resources:
    6
    Maps:
    3
    Template:
    1
    Ported Models:
    2
    Resources:
    6
    Haha I was merely joking, but yeah I wanna wrassle about it. I prefer mud wrassling.
     
  17. Devalut

    Devalut

    Joined:
    Feb 9, 2009
    Messages:
    1,491
    Resources:
    3
    Spells:
    2
    Tutorials:
    1
    Resources:
    3