You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
989 B
Lua

-- Cmp
local bret = require 'behavior3.behavior_ret'
local M = {
name = 'Cmp',
type = 'Condition',
desc = '比较值大小',
args = {
{'value', 'lua?', ''},
{'gt', 'int?', '>'},
{'ge', 'int?', '>='},
{'eq', 'int?', '=='},
{'le', 'int?', '<='},
{'lt', 'int?', '<'}
},
input = {'值(int)'},
doc = [[
+ 若值为空,返回失败
+ 非整数类型可能会报错
]]
}
local function ret(r)
return r and bret.SUCCESS or bret.FAIL
end
function M.run(node, _, value)
assert(type(value) == 'number')
local args = node.args
if args.gt then
return ret(value > args.gt)
elseif args.ge then
return ret(value >= args.ge)
elseif args.eq then
return ret(value == args.eq)
elseif args.lt then
return ret(value < args.lt)
elseif args.le then
return ret(value <= args.le)
else
error('args error')
end
end
return M