Double Recall teleports units to displaced position

Issue

When units are recalled by the Nexus and the Mothership at the same time, the second recall can teleport to a displaced position.
In the end, the units are teleported far from the 2nd recaller.

This video shows how this is done and how it can be exploited (Feardragon’s Useless Facts #75):

Fix

The issue occurs when units are teleported twice. To fix this, the potential second recall can be aborted for units that teleported in the first recall. If the first recall fails, it would still be nice for the units to be teleported to the second location.

I’ve implemented that here:

    <!--  Effects-->
    <CEffectSet id="MothershipStrategicRecallSet">
        <EffectArray value="MothershipStrategicRecallSetPrevent2ndRecall"/>
    </CEffectSet>
    <CEffectSet id="NexusMassRecallSet">
        <EffectArray value="NexusMassRecallSetPrevent2ndRecall"/>
    </CEffectSet>
    <CEffectRemoveBehavior id="NexusMassRecallSetPrevent2ndRecall">
        <ValidatorArray index="0" value="NexusRecallSucceeded"/>
        <EditorCategories value=""/>
        <BehaviorLink value="MothershipStrategicWarpOut"/>
        <Count value="1"/>
    </CEffectRemoveBehavior>
    <CEffectRemoveBehavior id="MothershipStrategicRecallSetPrevent2ndRecall">
        <ValidatorArray index="0" value="MothershipRecallSucceeded"/>
        <EditorCategories value=""/>
        <BehaviorLink value="NexusMassRecallWarpOut"/>
        <Count value="1"/>
    </CEffectRemoveBehavior>



   <!--  Validators-->
    <CValidatorLocationCompareRange id="NexusRecallSucceeded">
        <WhichLocation Value="TargetUnit"/>
        <Compare value="GT"/>
        <Value Effect="NexusMassRecallSet" Value="TargetPoint"/>
    </CValidatorLocationCompareRange>
    <CValidatorLocationCompareRange id="MothershipRecallSucceeded">
        <WhichLocation Value="TargetUnit"/>
        <Compare value="GT"/>
        <Value Effect="MothershipStrategicRecallSet" Value="TargetPoint"/>
    </CValidatorLocationCompareRange>

Video of the fix in action:

Test Map with above fix and more info:

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.