mirror of
https://github.com/wesnoth/wesnoth
synced 2025-04-27 17:02:56 +00:00
34 lines
921 B
Lua
34 lines
921 B
Lua
function patrol_gen(n, wp) -- n is the name of the unit, like Kiressh
|
|
-- wp - a table of waypoint tables of form {x,y}
|
|
|
|
local unit = wesnoth.get_units({name=n})[1]
|
|
|
|
local x, y = unit.x, unit.y
|
|
local wpn = 1 --WayPoint Number - we have to remember which waypoint we are heading to
|
|
|
|
if (x == wp[1].x and y == wp[1].y) then
|
|
wpn = wpn + 1
|
|
--w1, w2 = w2, w2 -- if we are standing on the first waypoint, swap them
|
|
end
|
|
|
|
--local waypoints = {w1, w2} -- this form might be just received from the args
|
|
local wpcount = # wp
|
|
|
|
|
|
local patrol = {}
|
|
|
|
patrol.exec = function()
|
|
x, y = unit.x, unit.y
|
|
if (x == wp[wpn].x and y == wp[wpn].y) then
|
|
wpn = wpn % wpcount + 1 -- advance by one waypoint(this construct loops in range [1, wpcount])
|
|
end
|
|
ai.move_full(unit, wp[wpn].x, wp[wpn].y) -- @note: should we change this to ai.move()?
|
|
end
|
|
|
|
patrol.eval = function()
|
|
return 300000
|
|
end
|
|
|
|
return patrol
|
|
end
|