-
Notifications
You must be signed in to change notification settings - Fork 1
/
action.lua
46 lines (36 loc) · 903 Bytes
/
action.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
local Object = require "object"
local Action = Object:extend()
Action.time = 100
function Action:__new(owner, targets)
if targets and not targets[1] then
targets = {targets}
end
self.owner = owner
self.name = self.name or "ERROR"
self.targets = self.targets or {}
self.targetActors = targets
end
function Action:getTarget(n)
if self.targetActors[n] then
return self.targetActors[n]
end
end
function Action:getNumTargets()
if not self.targets then return 0 end
return #self.targets
end
function Action:getTargets()
return self.targetActors
end
function Action:getTargetObject(index)
return self.targets[index]
end
function Action:hasTarget(actor)
for _, a in pairs(self.targetActors) do
if a == actor then return true end
end
end
function Action:validateTarget(n, owner, toValidate)
return self.targets[n]:validate(owner, toValidate)
end
return Action