Ну да, получение значения в первых двух командах должно быть, а не установка. Не говоря о том, что условие проверяется только для непосредственно получения и установки снаряда, а значит в остальных случаях там творится чёрти-что. Заключи код феанора в условную конструкцию (if/en) и уже к ней применяй условие. Вот так:
Ну и почему, кстати, во время передачи хода? Снаряд будет меняться по сто раз за бой, значит будет загружаться и выгружаться деф (а это тормоза, хоть и незначительные). Если ты не собираешься каждый раз разный деф ставить, то найди более подходящий триггер, который выполняется только один раз.