[FIX] Modificada l'estructura de trigger_event per a incorporar funcions init i update
This commit is contained in:
@@ -212,7 +212,10 @@ function stages.stage1_boss()
|
|||||||
boss.reason=""
|
boss.reason=""
|
||||||
boss.enabled=true
|
boss.enabled=true
|
||||||
boss:fight()
|
boss:fight()
|
||||||
trigger_event.new("Premiere Boss 1",premiere_boss1_trigger)
|
trigger_event.new("Premiere Boss 1",
|
||||||
|
trigger_ev.premiere_boss1_trigger,
|
||||||
|
trigger_ev.premiere_healer_init,
|
||||||
|
trigger_ev.premiere_healer_update)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -2,24 +2,29 @@ trigger_event = {
|
|||||||
list = {},
|
list = {},
|
||||||
}
|
}
|
||||||
|
|
||||||
function trigger_event.new ( _name, _trigger_func )
|
trigger_ev = {}
|
||||||
|
|
||||||
|
function trigger_event.new ( _name, _tr_func, _tr_init, _tr_update )
|
||||||
table.insert( trigger_event.list, {
|
table.insert( trigger_event.list, {
|
||||||
name = _name,
|
name = _name,
|
||||||
trigger = _trigger_func,
|
trigger = _tr_func,
|
||||||
|
init = _tr_init,
|
||||||
|
update = _tr_update,
|
||||||
enabled = true,
|
enabled = true,
|
||||||
running = false
|
running = false,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
function trigger_event.update ()
|
function trigger_event.update ()
|
||||||
for _,t in ipairs(trigger_event.list) do
|
for _,t in ipairs(trigger_event.list) do
|
||||||
if t.enabled and not t.running then
|
if t.enabled and not t.running then
|
||||||
t.running = t.trigger()
|
t.running = t:trigger()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function trigger_event.disable(_name)
|
function trigger_event.disable(_name)
|
||||||
|
print("Disabling ".._name)
|
||||||
for _,t in ipairs(trigger_event.list) do
|
for _,t in ipairs(trigger_event.list) do
|
||||||
if t.name == _name then
|
if t.name == _name then
|
||||||
print("Disabled trigger ".._name)
|
print("Disabled trigger ".._name)
|
||||||
@@ -30,20 +35,20 @@ function trigger_event.disable(_name)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- PREMIERE HEALER - BOSS 1 TRIGGER
|
-- PREMIERE HEALER - BOSS 1 TRIGGER
|
||||||
function premiere_boss1_trigger()
|
function trigger_ev:premiere_boss1_trigger( )
|
||||||
print(abad.objects.clau_premiere)
|
|
||||||
if stages.boss_loaded and
|
if stages.boss_loaded and
|
||||||
abad.objects.clau_premiere~=nil and
|
--abad.objects.clau_premiere~=nil and
|
||||||
abad.energia<=abad.max_energia/2
|
abad.energia<=abad.max_energia/2
|
||||||
then
|
then
|
||||||
premiere_healer_init()
|
self:init()
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
function premiere_healer_init()
|
function trigger_ev:premiere_healer_init()
|
||||||
if premiere.update==premiere_update_healer then return true end
|
-- if premiere.update==premiere_update_healer then return true end
|
||||||
|
-- Guardar l'estat de Premiere
|
||||||
premiere.from_hab = premiere.hab
|
premiere.from_hab = premiere.hab
|
||||||
premiere.from_x = premiere.x
|
premiere.from_x = premiere.x
|
||||||
premiere.from_y = premiere.y
|
premiere.from_y = premiere.y
|
||||||
@@ -56,10 +61,15 @@ function premiere_healer_init()
|
|||||||
premiere.x=world_x
|
premiere.x=world_x
|
||||||
premiere.y=world_y
|
premiere.y=world_y
|
||||||
premiere.health_wait = 100
|
premiere.health_wait = 100
|
||||||
premiere.update = premiere_update_healer
|
premiere.update = self.update
|
||||||
|
-- El trigger el deshabilitaria al acabar el update
|
||||||
|
-- pero en estos moments no se com fer-ho
|
||||||
|
-- perque l'update s'executa dins de premiere i no
|
||||||
|
-- dins del trigger
|
||||||
|
trigger_event.disable(self.name)
|
||||||
end
|
end
|
||||||
|
|
||||||
function premiere_update_healer()
|
function trigger_ev:premiere_healer_update()
|
||||||
-- Esperar mentres dona la vida
|
-- Esperar mentres dona la vida
|
||||||
if premiere.health_wait>0 and premiere.health_wait<100 then
|
if premiere.health_wait>0 and premiere.health_wait<100 then
|
||||||
premiere.health_wait = premiere.health_wait - 1
|
premiere.health_wait = premiere.health_wait - 1
|
||||||
@@ -84,10 +94,18 @@ function premiere_update_healer()
|
|||||||
premiere.health_wait = premiere.health_wait - 1
|
premiere.health_wait = premiere.health_wait - 1
|
||||||
elseif hab >= 56 then
|
elseif hab >= 56 then
|
||||||
-- Restaurar a Premiere
|
-- Restaurar a Premiere
|
||||||
trigger_event.disable("Premiere Boss 1")
|
|
||||||
premiere.hab = premiere.from_hab
|
premiere.hab = premiere.from_hab
|
||||||
premiere.x = premiere.from_x
|
premiere.x = premiere.from_x
|
||||||
premiere.y = premiere.from_y
|
premiere.y = premiere.from_y
|
||||||
premiere.update = premiere.from_update
|
premiere.update = premiere.from_update
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function premiere_dialeg1_trigger ()
|
||||||
|
if h_collision( premiere, abad) and
|
||||||
|
distancia ( premiere, abad )<=150
|
||||||
|
then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user