Ability Stops Working if Used Through Trigger?

wingdnosring

New Member
Reaction score
16
I know that title was rather vague, but I'm having a very strange problem here, which I'm hoping somebody can guide me through. I have a fairly large triggered ability (Dummy Cast Effect, all actions performed through behaviors and triggers) with two Wait actions in it.

I have another ability which orders all units in a unit group to use the first ability. In theory, that should work...as each unit is issued the order, it SHOULD run through the first trigger for each of them, the same as if they'd each used it on their own.

Here's the weird part: This ability works absolutely flawlessly if I order the units to use it directly in-game. If I use this 'proxy ability' (for lack of a better term) it either a) works, b) performs the actions before the first Wait and then stops, or c) performs the actions before the second Wait and then stops. There doesn't seem to be any pattern to whether it works or not. I'd say the three options happen rather evenly (roughly 33% of the time).

Why would the Waits be messing up the ability? I thought about trying to make the ability a custom action instead with the Create Thread option enabled, but that's a real pain to do at this point. Anybody else had this problem? If so, what was your solution?

Here's the ability:

Code:
Fall Back/Advance
    Events
        Unit - Any Unit uses  Fall Back at Effect3 - Cast stage (Ignore shared abilities)
        Unit - Any Unit uses  Advance at Effect3 - Cast stage (Ignore shared abilities)
    Local Variables
        Unit = No Unit <Unit>
        Destination Point = No Point <Point>
    Conditions
    Actions
        Variable - Set Unit = (Triggering unit)
        General - If (Conditions) then do (Actions) else do (Actions)
            If
                (Triggering ability) ==  Fall Back
            Then
                General - If (Conditions) then do (Actions) else do (Actions)
                    If
                        (Unit has Advance Status) == true
                    Then
                        Variable - Set Destination Point = ((Position of Unit) offset by 6.0 towards 0.0 degrees)
                        Unit - Add 1 Fall/Advance Pos Long to Unit from Unit
                        Unit - Remove 1 Advance Status from Unit
                    Else
                        Variable - Set Destination Point = ((Position of Unit) offset by 3.0 towards 0.0 degrees)
                        Unit - Add 1 Fall/Advance Pos to Unit from Unit
                Unit - Add 1 Fall Back Status to Unit from Unit
                General - Wait for (Conditions), checking every 0.1 Game Time seconds
                    Conditions
                        Or
                            Conditions
                                (Unit has Fall/Advance Pos) == true
                                (Unit has Fall/Advance Pos Long) == true
                General - If (Conditions) then do (Actions) else do (Actions)
                    If
                        (Spider Bot - Blink count for player (Owner of Unit), counting Complete) >= 1
                        (Unit type of Unit) == Spider Bot
                    Then
                        Unit - Order Unit to (Spider Bot - Blink targeting Destination Point) (Replace Existing Orders)
                    Else
                        Unit - Order Unit to ( Move targeting Destination Point) (Replace Existing Orders)
                General - Wait for (Conditions), checking every 0.2 Game Time seconds
                    Conditions
                        (Position of Unit) == Destination Point
                General - If (Conditions) then do (Actions) else do (Actions)
                    If
                        (Unit has Fall/Advance Pos) == true
                    Then
                        Unit - Remove 1 Fall/Advance Pos from Unit
                    Else
                        Unit - Remove 1 Fall/Advance Pos Long from Unit
                Unit - Disable the Fall Back ability for Unit
                Unit - Enable the Advance ability for Unit
                Unit - Enable the Regroup ability for Unit
            Else
                General - If (Conditions) then do (Actions) else do (Actions)
                    If
                        (Unit has Fall Back Status) == true
                    Then
                        Variable - Set Destination Point = ((Position of Unit) offset by 6.0 towards 180.0 degrees)
                        Unit - Add 1 Fall/Advance Pos Long to Unit from Unit
                        Unit - Remove 1 Fall Back Status from Unit
                    Else
                        Variable - Set Destination Point = ((Position of Unit) offset by 3.0 towards 180.0 degrees)
                        Unit - Add 1 Fall/Advance Pos to Unit from Unit
                Unit - Add 1 Advance Status to Unit from Unit
                General - Wait for (Conditions), checking every 0.1 Game Time seconds
                    Conditions
                        Or
                            Conditions
                                (Unit has Fall/Advance Pos) == true
                                (Unit has Fall/Advance Pos Long) == true
                General - If (Conditions) then do (Actions) else do (Actions)
                    If
                        (Spider Bot - Blink count for player (Owner of Unit), counting Complete) >= 1
                        (Unit type of Unit) == Spider Bot
                    Then
                        Unit - Order Unit to (Spider Bot - Blink targeting Destination Point) (Replace Existing Orders)
                    Else
                        Unit - Order Unit to ( Move targeting Destination Point) (Replace Existing Orders)
                General - Wait for (Conditions), checking every 0.2 Game Time seconds
                    Conditions
                        (Position of Unit) == Destination Point
                General - If (Conditions) then do (Actions) else do (Actions)
                    If
                        (Unit has Fall/Advance Pos) == true
                    Then
                        Unit - Remove 1 Fall/Advance Pos from Unit
                    Else
                        Unit - Remove 1 Fall/Advance Pos Long from Unit
                Unit - Disable the Advance ability for Unit
                Unit - Enable the Fall Back ability for Unit
                Unit - Enable the Regroup ability for Unit

and here's the 'proxy ability':

Code:
Ranger Group
    Events
        Unit - Any Unit uses  Rangers Advance at Effect3 - Cast stage (Ignore shared abilities)
        Unit - Any Unit uses  Rangers Regroup at Effect3 - Cast stage (Ignore shared abilities)
        Unit - Any Unit uses  Rangers Retreat at Effect3 - Cast stage (Ignore shared abilities)
    Local Variables
        TempGroup = (Empty unit group) <Unit Group>
        RangerGroup = (Empty unit group) <Unit Group>
    Conditions
    Actions
        (I have many, many lines of adding specific unit types to RangerGroup here, which I've edited out for you)
        Unit Group - Pick each unit in RangerGroup and do (Actions)
            Actions
                General - If (Conditions) then do (Actions) else do (Actions)
                    If
                        (Triggering ability) ==  Rangers Retreat
                    Then
                        Unit - Order (Picked unit) to ( Fall Back) (Replace Existing Orders)
                    Else
                General - If (Conditions) then do (Actions) else do (Actions)
                    If
                        (Triggering ability) ==  Rangers Regroup
                    Then
                        Unit - Order (Picked unit) to ( Regroup) (Replace Existing Orders)
                    Else
                General - If (Conditions) then do (Actions) else do (Actions)
                    If
                        (Triggering ability) ==  Rangers Advance
                    Then
                        Unit - Order (Picked unit) to ( Advance) (Replace Existing Orders)
                    Else

This ability is absolutely essential to my game, so a speedy response would be appreciated :).
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top