Agora é a terceira vez que respondo a uma pergunta sobre esse roteiro exato.
Provavelmente, quem quer que tenha escrito o original, apenas copie / cole partes de outros roteiros e meio que o tenha feito funcionar.
Parece que
moveAmount := (moveAmount = 2) ? 1 : 0
é a tentativa de fazer algo assim.
o que isso faz é isto:
if (moveAmount == 2) {moveAmount: = 1} else {moveAmount: = 0}
Como o moveAmount não está definido em outro lugar, nunca pode ser 2 portanto, nunca pode ser 1, assim será sempre 0. conseqüentemente; sem movimento horizontal.
Se você quiser alternar entre olhar para a direita e para a esquerda, faça algo assim:
moveAmount := (moveAmount == 2 ? -2 : 2)
Isso definiria como 2 a primeira iteração, -2 a segunda, depois 2 novamente a terceira e assim por diante.
Qual moveria para a esquerda, depois para a direita e depois para a esquerda etc
Mas ainda estou percebendo que o moveAmount deve ser declarado em alguma parte do script que não está mais lá.
Talvez alguém simplesmente tenha desistido de tentar detectar o quanto a arma foi movida para a esquerda ou para a direita.