Ahli / sc2xml

11 stars 1 forks source link

A-moving when adept shades are the subselection causes all units in selection to move command #145

Open Joshua-Leibold opened 5 months ago

Joshua-Leibold commented 5 months ago

Apparently protoss players will just sometimes sacrifice their units because they attempt an attack move and their whole army/probe line just move commands in

OUTDATED: I simply removed the attack ability and replaced it with a "selection attack" variant on the command card and gave it first priority on the command card to make sure other units always attack move first if possible. Only then will the adept attempt a real scan move.

<CUnit id="AdeptPhaseShift">
    <AbilArray index="1" Link="move"/>
    <AbilArray index="2" Link="Warpable"/>
    <AbilArray index="3" Link="ProgressRally"/>
    <AbilArray index="4" Link="AdeptShadePhaseShiftCancel"/>
    <AbilArray index="5" removed="1"/>
    <CardLayouts index="0">
        <LayoutButtons index="4" Face="Rally" AbilCmd="ProgressRally,Rally1" Row="2"/>
        <LayoutButtons index="5" Face="Cancel" AbilCmd="AdeptShadePhaseShiftCancel,Execute" Row="2"/>
        <LayoutButtons index="6" Face="Attack" AbilCmd="attack,Execute" Row="0"/>
        <LayoutButtons index="7" Face="AcquireMove" AbilCmd="move,AcquireMove" Row="0"/>
    </CardLayouts>
</CUnit>
Joshua-Leibold commented 4 months ago

Apparently the Adept Shade is supposed to be able to target fire units that it will continue to track once the shade is completed. This is news. In the live game the adept can target fire but only if using a smart command, not by attack moving. This should be rectifiable by adding a dummy weapon to the adept shade, which makes the above fix redundant.

Final Solution:

<!-- Weapons-->
<CWeaponLegacy id="AdeptShadeWeaponDummy">
    <Options index="Hidden" value="1"/>
    <TargetFilters value="Visible;Missile,Stasis,Dead,Hidden,Invulnerable"/>
    <MinScanRange value="0"/>
    <Range value="0"/>
    <Period value="1"/>
    <Effect value="AdeptShadeFakeWeaponDamage"/>
</CWeaponLegacy>

<!-- Effects -->
<CEffectDamage id="AdeptShadeFakeWeaponDamage">
</CEffectDamage>

<!-- Units -->
<CUnit id="AdeptPhaseShift">
    <WeaponArray Link="AdeptShadeWeaponDummy"/>
    <CardLayouts index="0">
        <LayoutButtons index="4" Face="Cancel" AbilCmd="AdeptShadePhaseShiftCancel,Execute" Row="2"/>
        <LayoutButtons index="5" Face="Rally" AbilCmd="ProgressRally,Rally1" Row="2"/>
        <LayoutButtons index="6" Face="MothershipCoreAttack" AbilCmd="attack,Execute" Row="0"/>
        <LayoutButtons index="7" removed="1"/>
    </CardLayouts>
</CUnit>
Ahli commented 3 months ago

This can even affect the Adept itself: https://twitter.com/RayReign88/status/1792073293820006816 (for this, the targeting mode probably needs to be entered via the Shade and the command executed via the Adept after it replaced its Shade)