[WIP] Treballant en el jefe. La que s'està liant...

This commit is contained in:
2026-04-15 23:31:19 +02:00
parent 0c9c31dca2
commit 1b812127e2
9 changed files with 834 additions and 48 deletions

View File

@@ -25,18 +25,22 @@ end
-- ara aleatori
function pattern:origin()
print_dbg("")
return self.node[self.path_idx]
end
function pattern:origin_num ()
print_dbg("")
return self.path_idx
end
function pattern:set_path ( num )
print_dbg("")
self.path_idx = num
end
function pattern:get_path ( num )
print_dbg("")
return self.path[num]
end
@@ -46,12 +50,11 @@ end
-- return self.path[self.path_idx][target_idx].target
-- end
function pattern:target()
print("pattern:target 1")
if not empty_table(self.manual_path) then
print("pattern:target 2 a")
print_dbg("MANUAL => "..self.manual_path.target)
return self.manual_path.target
else
print("pattern:target 2 b")
print_dbg("PATH => "..self.path[self.path_idx][self.target_idx].target)
return self.path[self.path_idx][self.target_idx].target
end
end
@@ -61,6 +64,7 @@ end
-- return self.path[self.path_idx][target_idx].actions
-- end
function pattern:actions()
print_dbg("")
if not empty_table(self.manual_path) then
return self.manual_path.actions
else
@@ -74,14 +78,17 @@ end
-- end
function pattern:action()
if not empty_table(self.manual_path) then
print_dbg("MANUAL => "..self.manual_path.actions[self.action_idx].action)
return self.manual_path.actions[self.action_idx].action
else
print_dbg("PATH => "..self.path[self.path_idx][self.target_idx].actions[self.action_idx].action)
return self.path[self.path_idx][self.target_idx].actions[self.action_idx].action
end
end
-- [OK] Torna l'event actual
function pattern:event()
print_dbg("")
if not empty_table(self.manual_path) then
return self.manual_path.actions[self.action_idx].event
else
@@ -98,7 +105,7 @@ end
-- return pattern:action()
-- end
function pattern:next_action ( )
print("pattern:next_action 1")
print_dbg("")
local num_actions = 0
-- index a la següent acció
self.action_idx = self.action_idx+1
@@ -108,45 +115,47 @@ print("pattern:next_action 1")
else
num_actions = #self.path[self.path_idx][self.target_idx].actions
end
print("pattern:next_action 2")
if self.action_idx>num_actions then
-- avançar el target
self:next_target() -- pasar per paràmetre o no
end
print("pattern:next_action 3")
-- Tornar l'acció
return self:action()
end
-- [OK] Canvia al següent target segons el path o al que se li pase
function pattern:next_target( target )
print("pattern:next_target 1")
print_dbg("")
target = target or self:target()
print("pattern:next_target 2")
-- Si hi ha una entrada manual eliminar-la
if not empty_table(self.manual_path) then
self.manual_path = {}
self.manual_target = {}
end
print("pattern:next_target 3")
-- target id
self.path_idx = target
-- tindre en compte l'estrategia per a triar el següent target des del path actual per ara aleatori
self.target_idx = math.random(#self.path[self.path_idx])
self.action_idx = 1
print("pattern:next_target 4")
end
-- [OK] Torna el node del target actual
function pattern:target_node()
print_dbg(self.node[self:target()])
return self.node[self:target()]
end
-- Comprova si point ha arribat al target (Afegir precissio per si volem que estiga nomes tocar, dins o abans d'eixir?)
function pattern:in_target( area )
if collision( area, self:target_node() ) then
print_dbg("COLLISION")
else
print_dbg("-")
end
return collision( area, self:target_node() )
end
function pattern:recovery( point, target)
print_dbg("")
end