Я не знаток скриптов, но посмотрев стрим Ремикса, поглядел на скрипт данного сценария. Условие победы:
if GetObjectiveState("prim1", PLAYER_1)==OBJECTIVE_COMPLETED
and GetObjectiveState("prim2", PLAYER_1)==OBJECTIVE_COMPLETED
and GetObjectiveState("prim3", PLAYER_1)==OBJECTIVE_COMPLETED then
Win();
При этом присвоение значения SetObjectiveState("prim2", OBJECTIVE_COMPLETED) есть только для prim2.
Может, поэтому игра не заканчивается взятием щита?