[NEW] Triggers per event
This commit is contained in:
@@ -21,6 +21,7 @@ require "bar_meter"
|
|||||||
require "stage1"
|
require "stage1"
|
||||||
require "remote_view"
|
require "remote_view"
|
||||||
require "dialeg"
|
require "dialeg"
|
||||||
|
require "trigger_event"
|
||||||
|
|
||||||
local DEBUG = false
|
local DEBUG = false
|
||||||
|
|
||||||
@@ -217,6 +218,7 @@ function world_update()
|
|||||||
-- switches.update()
|
-- switches.update()
|
||||||
warp.update_all()
|
warp.update_all()
|
||||||
|
|
||||||
|
trigger_event.update()
|
||||||
dialeg.update()
|
dialeg.update()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -223,40 +223,40 @@ function premiere.update_falling()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function premiere.healer_init()
|
-- function premiere.healer_init()
|
||||||
if premiere.update==premiere.update_healer then return true end
|
-- if premiere.update==premiere.update_healer then return true end
|
||||||
premiere.hab = 54
|
-- premiere.hab = 54
|
||||||
premiere.x = 2
|
-- premiere.x = 2
|
||||||
premiere.y = 3
|
-- premiere.y = 3
|
||||||
local world_x, world_y = coords.room_to_world(premiere.hab,premiere.x,premiere.y)
|
-- local world_x, world_y = coords.room_to_world(premiere.hab,premiere.x,premiere.y)
|
||||||
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 = premiere.update_healer
|
||||||
end
|
-- end
|
||||||
|
--
|
||||||
function premiere.update_healer()
|
-- function premiere.update_healer()
|
||||||
-- 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
|
||||||
else
|
-- else
|
||||||
premiere.x = premiere.x+1
|
-- premiere.x = premiere.x+1
|
||||||
end
|
-- end
|
||||||
|
--
|
||||||
-- Lloc de pausa
|
-- -- Lloc de pausa
|
||||||
local hab, tx, ty = coords.world_to_tile(premiere.x, premiere.y)
|
-- local hab, tx, ty = coords.world_to_tile(premiere.x, premiere.y)
|
||||||
if hab == 55 and tx==0 and ty==3 and premiere.health_wait==100 then
|
-- if hab == 55 and tx==0 and ty==3 and premiere.health_wait==100 then
|
||||||
-- 55 (0,3)
|
-- -- 55 (0,3)
|
||||||
table.insert(
|
-- table.insert(
|
||||||
dialegs,
|
-- dialegs,
|
||||||
{ actor1=premiere,
|
-- { actor1=premiere,
|
||||||
actor2=abad,
|
-- actor2=abad,
|
||||||
distancia=500,
|
-- distancia=500,
|
||||||
direccio = "",
|
-- direccio = "",
|
||||||
enabled=true,
|
-- enabled=true,
|
||||||
text="Tenne! Io t'achudo. Figo!"
|
-- text="Tenne! Io t'achudo. Figo!"
|
||||||
}
|
-- }
|
||||||
)
|
-- )
|
||||||
premiere.health_wait = premiere.health_wait - 1
|
-- premiere.health_wait = premiere.health_wait - 1
|
||||||
end
|
-- end
|
||||||
end
|
-- end
|
||||||
@@ -173,10 +173,10 @@ end
|
|||||||
function stages.stage1_update()
|
function stages.stage1_update()
|
||||||
-- print("stage1_update")
|
-- print("stage1_update")
|
||||||
fireball.update()
|
fireball.update()
|
||||||
if (abad.energia<=abad.max_energia/2) then
|
-- if (abad.energia<=abad.max_energia/2) then
|
||||||
-- Requeriment: tindre mitja clau
|
-- -- Requeriment: tindre mitja clau
|
||||||
premiere.healer_init()
|
-- premiere.healer_init()
|
||||||
end
|
-- end
|
||||||
end
|
end
|
||||||
|
|
||||||
function stages.stage1_draw_back()
|
function stages.stage1_draw_back()
|
||||||
@@ -212,6 +212,7 @@ 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)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
93
data/trigger_event.lua
Normal file
93
data/trigger_event.lua
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
trigger_event = {
|
||||||
|
list = {},
|
||||||
|
}
|
||||||
|
|
||||||
|
function trigger_event.new ( _name, _trigger_func )
|
||||||
|
table.insert( trigger_event.list, {
|
||||||
|
name = _name,
|
||||||
|
trigger = _trigger_func,
|
||||||
|
enabled = true,
|
||||||
|
running = false
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger_event.update ()
|
||||||
|
for _,t in ipairs(trigger_event.list) do
|
||||||
|
if t.enabled and not t.running then
|
||||||
|
t.running = t.trigger()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger_event.disable(_name)
|
||||||
|
for _,t in ipairs(trigger_event.list) do
|
||||||
|
if t.name == _name then
|
||||||
|
print("Disabled trigger ".._name)
|
||||||
|
t.running = false
|
||||||
|
t.enabled = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- PREMIERE HEALER - BOSS 1 TRIGGER
|
||||||
|
function premiere_boss1_trigger()
|
||||||
|
print(abad.objects.clau_premiere)
|
||||||
|
if stages.boss_loaded and
|
||||||
|
abad.objects.clau_premiere~=nil and
|
||||||
|
abad.energia<=abad.max_energia/2
|
||||||
|
then
|
||||||
|
premiere_healer_init()
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
function premiere_healer_init()
|
||||||
|
if premiere.update==premiere_update_healer then return true end
|
||||||
|
premiere.from_hab = premiere.hab
|
||||||
|
premiere.from_x = premiere.x
|
||||||
|
premiere.from_y = premiere.y
|
||||||
|
premiere.from_update = premiere.update
|
||||||
|
-- Moure a premiere al Boss stage
|
||||||
|
premiere.hab = 54
|
||||||
|
premiere.x = 2
|
||||||
|
premiere.y = 3
|
||||||
|
local world_x, world_y = coords.room_to_world(premiere.hab,premiere.x,premiere.y)
|
||||||
|
premiere.x=world_x
|
||||||
|
premiere.y=world_y
|
||||||
|
premiere.health_wait = 100
|
||||||
|
premiere.update = premiere_update_healer
|
||||||
|
end
|
||||||
|
|
||||||
|
function premiere_update_healer()
|
||||||
|
-- Esperar mentres dona la vida
|
||||||
|
if premiere.health_wait>0 and premiere.health_wait<100 then
|
||||||
|
premiere.health_wait = premiere.health_wait - 1
|
||||||
|
else
|
||||||
|
premiere.x = premiere.x+1
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Lloc de pausa
|
||||||
|
local hab, tx, ty = coords.world_to_tile(premiere.x, premiere.y)
|
||||||
|
if hab == 55 and tx==0 and ty==3 and premiere.health_wait==100 then
|
||||||
|
-- 55 (0,3)
|
||||||
|
table.insert(
|
||||||
|
dialegs,
|
||||||
|
{ actor1=premiere,
|
||||||
|
actor2=abad,
|
||||||
|
distancia=500,
|
||||||
|
direccio = "",
|
||||||
|
enabled=true,
|
||||||
|
text="Tenne! Io t'achudo. Figo!"
|
||||||
|
}
|
||||||
|
)
|
||||||
|
premiere.health_wait = premiere.health_wait - 1
|
||||||
|
elseif hab >= 56 then
|
||||||
|
-- Restaurar a Premiere
|
||||||
|
trigger_event.disable("Premiere Boss 1")
|
||||||
|
premiere.hab = premiere.from_hab
|
||||||
|
premiere.x = premiere.from_x
|
||||||
|
premiere.y = premiere.from_y
|
||||||
|
premiere.update = premiere.from_update
|
||||||
|
end
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user