| 1234567891011121314151617181920212223242526 |
- -- Development controller for the opening landing. The remaining mission is not wired yet.
- local missions = require("missions")
- local mission = require(assert(missions.MISSION_EMBER, "mission_ember SDK module is absent"))
- local landing = require("mission_ember.landing")(mission)
- local opening = require("mission_ember.opening")(mission, landing)
- return {
- initial_state = opening.initial_state,
- on_event_cinematic_terminated = opening.terminated,
- on_event_client_state_changed = function(context, state, event)
- opening.client_state(context, state, event)
- local region = event.held_region_index or event.current_region_index
- -- A settle-only delta omits region fields; it does not mean that the player left.
- if region ~= nil then context:set_variable("ember.region", region) end
- region = state:variable("ember.region")
- if region == landing.region and opening.playable(state) then
- landing.enter(context, state)
- landing.client_state(context, state, event)
- end
- end,
- on_event_squad_state = function(context, state, event)
- if state:variable("ember.region") == landing.region then
- landing.on_squad_state(context, state, event)
- end
- end,
- }
|