Функции, определенные с помощью оператора двоеточия, скрывают дополнительный первый аргумент self
. function Consider:Move(mons)
является синтаксическим сахаром для function Consider.Move(self, mons)
.
Вызов функции, подобной considerAction(mons)
, устанавливает скрытый аргумент self
вместо желаемого.
Возможно, вы захотите передать таблицу Consider
как self
:
considerAction(Consider, mons)
Или, альтернативно, определите функцию, используя оператор точки, если вам не нужно self
:
function Consider.Move(mons)
print('Mons ' .. mons.type .. ' considering Move...')
end