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:
opened 05:28AM - 20 Dec 22 UTC
closed 09:49PM - 03 Feb 23 UTC
fix available
impacts esport
### 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.
[Feardragon's Useless Facts #75 video](https://www.youtube.com/watch?v=oBIoU11HITY) shows how this is done and how it can be exploited.
### 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.
``` xml
<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>
<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](https://youtu.be/J8Q0SjpQZIk)
[Test Map with above fix](https://www.dropbox.com/s/nepu9vierj5vhte/recallDisplacementTest.SC2Map?dl=1)
[bug report at Blizzard's forums](https://us.forums.blizzard.com/en/sc2/t/double-recall-teleports-units-to-displaced-position/26068)
system
(system)
Closed
January 19, 2023, 5:32am
2
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.