GerterGetGameVar возвращает строковое значение, т.е. '0', чтобы корректно сравнить это значение с числом следует написать так:
if (GetGameVar("morale_bonus") + 0) == 0 then...
Спасибо большое, помогло. Чёртово динамическое задание типов)
Кстати, поздравляю с призёрством в конкурсе, награда заслуженная!