feature/imp-99-add-discussions #44
@@ -36,7 +36,7 @@ globals = {
|
||||
"MinigameButtonMashWindow",
|
||||
"MinigameRhythmWindow",
|
||||
"MinigameDDRWindow",
|
||||
"MysteriousManWindow",
|
||||
"MysteriousManScreen",
|
||||
"DiscussionWindow",
|
||||
"EndWindow",
|
||||
"mset",
|
||||
|
||||
@@ -48,8 +48,9 @@ decision/decision.go_to_end.lua
|
||||
decision/decision.go_to_walking_to_home.lua
|
||||
decision/decision.go_to_sleep.lua
|
||||
decision/decision.do_work.lua
|
||||
decision/decision.start_discussion.lua
|
||||
decision/decision.sumphore_discussion.lua
|
||||
discussion/discussion.sumphore.lua
|
||||
discussion/discussion.coworker.lua
|
||||
map/map.manager.lua
|
||||
map/map.bedroom.lua
|
||||
map/map.street.lua
|
||||
@@ -75,7 +76,6 @@ window/window.popup.lua
|
||||
window/window.minigame.mash.lua
|
||||
window/window.minigame.rhythm.lua
|
||||
window/window.minigame.ddr.lua
|
||||
window/window.mysterious_man.lua
|
||||
window/window.discussion.lua
|
||||
window/window.continued.lua
|
||||
window/window.game.lua
|
||||
|
||||
@@ -163,21 +163,19 @@ Songs.custom_song = {
|
||||
}
|
||||
]]
|
||||
|
||||
--[[
|
||||
function generate_sequence(model_data, length)
|
||||
local order = model.order
|
||||
local model_data = model_data.model
|
||||
|
||||
-- random start key
|
||||
local model_keys = {}
|
||||
for k,_ in pairs(model) do
|
||||
model_keys[#model_keys + 1] = k
|
||||
end
|
||||
local start_key = model_keys[math.ceil(math.random() * #model_keys)]
|
||||
|
||||
-- sequence starts with the start key
|
||||
local seq = unmake_key(start_key)
|
||||
|
||||
-- generation loop
|
||||
while #seq < length do
|
||||
local current_key = table.concat({unpack(seq, #seq - order + 1, #seq)}, "|")
|
||||
|
||||
@@ -195,10 +193,9 @@ function generate_sequence(model_data, length)
|
||||
end
|
||||
end
|
||||
|
||||
-- print(current_key .. " --> " .. chosen)
|
||||
|
||||
seq[#seq+1] = chosen
|
||||
end
|
||||
|
||||
return seq
|
||||
end
|
||||
]]
|
||||
|
||||
@@ -6,9 +6,14 @@ Decision.register({
|
||||
Util.go_to_screen_by_id("work")
|
||||
MinigameDDRWindow.start("game", nil, {
|
||||
on_win = function()
|
||||
if (Context.minigame_ddr.special_condition_met and Context.ascension.level == 1) then
|
||||
Context.should_ascend = true
|
||||
Context.minigame_ddr.special_condition_met = false
|
||||
end
|
||||
Meter.show()
|
||||
Util.go_to_screen_by_id("office")
|
||||
Window.set_current("game")
|
||||
Context.have_done_work_today = true
|
||||
end,
|
||||
})
|
||||
end,
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
Decision.register({
|
||||
id = "go_to_home",
|
||||
label = "Go to Home",
|
||||
condition = function()
|
||||
return Context.have_been_to_office and Context.have_done_work_today
|
||||
end,
|
||||
handle = function()
|
||||
Util.go_to_screen_by_id("home")
|
||||
end,
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
Decision.register({
|
||||
id = "go_to_sleep",
|
||||
label = "Go to Sleep",
|
||||
condition = function()
|
||||
return Context.have_been_to_office and Context.have_done_work_today
|
||||
end,
|
||||
handle = function()
|
||||
Meter.hide()
|
||||
Day.increase()
|
||||
@@ -10,7 +13,11 @@ Decision.register({
|
||||
focus_initial_radius = 0,
|
||||
on_win = function()
|
||||
local ascended = Ascension.consume_increase()
|
||||
MysteriousManWindow.start({ skip_text = not ascended })
|
||||
local level = Ascension.get_level()
|
||||
MysteriousManScreen.start({
|
||||
skip_text = not ascended,
|
||||
text = ascended and MysteriousManScreen.get_text_for_level(level) or nil,
|
||||
})
|
||||
end,
|
||||
})
|
||||
end,
|
||||
|
||||
@@ -3,6 +3,14 @@ Decision.register({
|
||||
label = "Have a Coffee",
|
||||
handle = function()
|
||||
local new_situation_id = Situation.apply("drink_coffee", Context.game.current_screen)
|
||||
local level = Ascension.get_level()
|
||||
local disc_id = "coworker_disc_0"
|
||||
-- TODO: Add more discussions for levels above 3
|
||||
if level >= 1 and level <= 3 then
|
||||
local suffix = Context.have_done_work_today and ("_asc_" .. level) or ("_" .. level)
|
||||
disc_id = "coworker_disc" .. suffix
|
||||
end
|
||||
Discussion.start(disc_id, "game")
|
||||
Context.game.current_situation = new_situation_id
|
||||
end,
|
||||
})
|
||||
@@ -1,5 +1,5 @@
|
||||
Decision.register({
|
||||
id = "start_discussion",
|
||||
id = "sumphore_discussion",
|
||||
label = function()
|
||||
if Context.have_met_sumphore then
|
||||
return "Talk to Sumphore"
|
||||
@@ -9,10 +9,15 @@ Decision.register({
|
||||
handle = function()
|
||||
if not Context.have_met_sumphore then
|
||||
Discussion.start("homeless_guy", "game")
|
||||
elseif Ascension.get_level() == 0 then
|
||||
Discussion.start("homeless_guy", "game", 4)
|
||||
return
|
||||
end
|
||||
local level = Ascension.get_level()
|
||||
|
||||
-- TODO: Add more discussions for levels above 3
|
||||
if level >= 1 and level <= 3 then
|
||||
Discussion.start("sumphore_disc_asc_" .. level, "game")
|
||||
else
|
||||
Discussion.start("sumphore_day_3", "game")
|
||||
Discussion.start("homeless_guy", "game", 4)
|
||||
end
|
||||
end,
|
||||
})
|
||||
137
inc/discussion/discussion.coworker.lua
Normal file
137
inc/discussion/discussion.coworker.lua
Normal file
@@ -0,0 +1,137 @@
|
||||
Discussion.register({
|
||||
id = "coworker_disc_0",
|
||||
steps = {
|
||||
{
|
||||
question = "Good morning Normal, enjoying your coffee as usual, huh?",
|
||||
answers = {
|
||||
{ label = "The name is Norman, not Normal", next_step = 2 },
|
||||
},
|
||||
},
|
||||
{
|
||||
question = "Can't work without some good coffee, no? ",
|
||||
answers = {
|
||||
{ label = "Mhmm", next_step = nil },
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
Discussion.register({
|
||||
id = "coworker_disc_1",
|
||||
steps = {
|
||||
{
|
||||
question = "Norman, you look confused, what's up?",
|
||||
answers = {
|
||||
{ label = "Just some bugs I noticed", next_step = 2 },
|
||||
},
|
||||
},
|
||||
{
|
||||
question = "Your coffee also seems whiter than usual!",
|
||||
answers = {
|
||||
{ label = "I feel like latte today", next_step = nil },
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
Discussion.register({
|
||||
id = "coworker_disc_asc_1",
|
||||
steps = {
|
||||
{
|
||||
question = "Normann you look weird and unfocused. You are usually locked in and not like this, what's up?",
|
||||
answers = {
|
||||
{ label = "Nothing it's just, I noticed some bugs in the simulation, maybe.", next_step = 2 },
|
||||
},
|
||||
},
|
||||
{
|
||||
question = "Are you fixing bugs nobody noticed before?",
|
||||
answers = {
|
||||
{ label = "Maybe", next_step = nil },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
Discussion.register({
|
||||
id = "coworker_disc_2",
|
||||
steps = {
|
||||
{
|
||||
question = "Hey Norman, do you have new socks on? That's a weird color!",
|
||||
answers = {
|
||||
{ label = "Huh? True ...", next_step = 2 },
|
||||
},
|
||||
},
|
||||
{
|
||||
question = "You look strange today, Normal, you put your tie on backwards, is everything ok? ",
|
||||
answers = {
|
||||
{ label = "Get it right, Norman ... NORMAN!", next_step = 3 },
|
||||
},
|
||||
},
|
||||
{
|
||||
question = "Yo Normann, text goes from left to right, not right to left, these parts!",
|
||||
answers = {
|
||||
{ label = "Uhm...why?", next_step = nil },
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
Discussion.register({
|
||||
id = "coworker_disc_asc_2",
|
||||
steps = {
|
||||
{
|
||||
question = "Normann, are you ok? You were doing weird things while typing?",
|
||||
answers = {
|
||||
{ label = "Naw", next_step = 2 },
|
||||
},
|
||||
},
|
||||
{
|
||||
question = "Oh, it's ok, I'm not wathcing you. Noone really is. *giggle*",
|
||||
answers = {
|
||||
{ label = "Huh ?", next_step = nil },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
Discussion.register({
|
||||
id = "coworker_disc_3",
|
||||
steps = {
|
||||
{
|
||||
question = "You look so happy, did you catch a bull or something?",
|
||||
answers = {
|
||||
{ label = "What do you mean?", next_step = 2 },
|
||||
},
|
||||
},
|
||||
{
|
||||
question = "Most people catch colds! You are so strange!",
|
||||
answers = {
|
||||
{ label = "An apple a day keeps the cold away", next_step = 3 },
|
||||
},
|
||||
},
|
||||
{
|
||||
question = "You look like you don't really want to work today, are you ok?",
|
||||
answers = {
|
||||
{ label = "Oh brother", next_step = nil },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
Discussion.register({
|
||||
id = "coworker_disc_asc_3",
|
||||
steps = {
|
||||
{
|
||||
question = "Normal, you should take a break, you don't live up to your name today",
|
||||
answers = {
|
||||
{ label = "Norman is the name ...", next_step = 2 },
|
||||
},
|
||||
},
|
||||
{
|
||||
question = "You aren't as enthusiastic as you were before!",
|
||||
answers = {
|
||||
{ label = "Burnout comes for everyone", next_step = nil },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -1,5 +1,5 @@
|
||||
Discussion.register({
|
||||
id = "sumphore_day_3",
|
||||
id = "sumphore_disc_asc_1",
|
||||
steps = {
|
||||
{
|
||||
question = "Are you still seeking the ox?",
|
||||
@@ -17,6 +17,74 @@ Discussion.register({
|
||||
},
|
||||
})
|
||||
|
||||
Discussion.register({
|
||||
id = "sumphore_disc_asc_2",
|
||||
steps = {
|
||||
{
|
||||
question = "How's work? Your face looks strange",
|
||||
answers = {
|
||||
{ label = "I just really need to take a break.", next_step = 2 },
|
||||
{ label = "Not sure what you mean.", next_step = nil },
|
||||
},
|
||||
},
|
||||
{
|
||||
question = "Are you seeing things?",
|
||||
answers = {
|
||||
{ label = "How did you know ?", next_step = 3 },
|
||||
{ label = "I'm not sure what you mean.", next_step = nil },
|
||||
},
|
||||
},
|
||||
{
|
||||
question = "Come have a drink, I could tell you some stories.",
|
||||
answers = {
|
||||
{ label = "No, drink makes you stupid and I need to be in top shape.", next_step = 4, on_select = function()
|
||||
Meter.add("ism", 10)
|
||||
end },
|
||||
{ label = "I could use a drink.", next_step = nil, on_select = function()
|
||||
Meter.add("bm", 10)
|
||||
end },
|
||||
},
|
||||
},
|
||||
{
|
||||
question = "Always trying to do the right thing, huh? What if you did the left thing instead?",
|
||||
answers = {
|
||||
{ label = "I've never thought of that up till now.", next_step = nil, on_select = function()
|
||||
Meter.add("ism", 5)
|
||||
end },
|
||||
{ label = "Silly wordgames, I like them.", next_step = nil, on_select = function()
|
||||
Meter.add("wpm", 10)
|
||||
end },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
Discussion.register({
|
||||
id = "sumphore_disc_asc_3",
|
||||
steps = {
|
||||
{
|
||||
question = "Do you think it's work you're doing?",
|
||||
answers = {
|
||||
{ label = "... that sounds like it's from a movie.", next_step = 2 },
|
||||
{ label = "Are you drunk, old man?", next_step = nil },
|
||||
},
|
||||
},
|
||||
{
|
||||
question = "You might just be trying too hard, why dont you just flow for a while?",
|
||||
answers = {
|
||||
{ label = "Flow where ?", next_step = 3 },
|
||||
{ label = "I'm not sure what you mean.", next_step = nil },
|
||||
},
|
||||
},
|
||||
{
|
||||
question = "Flow carelessly, without any effort",
|
||||
answers = {
|
||||
{ label = "Consuming sth other than alcohol ?", next_step = nil },
|
||||
{ label = "Deja vu", next_step = nil },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
Discussion.register({
|
||||
id = "homeless_guy",
|
||||
|
||||
@@ -21,6 +21,8 @@ Context = {}
|
||||
--- * triggers (table) Active trigger runtime state, keyed by trigger ID.<br/>
|
||||
--- * stat_screen_active (boolean) Whether the stat screen overlay is currently shown.<br/>
|
||||
--- * have_met_sumphore (boolean) Whether the player has talked to the homeless guy.<br/>
|
||||
--- * have_been_to_office (boolean) Whether the player has been to the office.<br/>
|
||||
--- * have_done_work_today (boolean) Whether the player has done work today.<br/>
|
||||
--- * game (table) Current game progress state. Contains: `current_screen` (string) active screen ID, `current_situation` (string|nil) active situation ID.<br/>
|
||||
function Context.initial_data()
|
||||
return {
|
||||
@@ -40,6 +42,9 @@ function Context.initial_data()
|
||||
timer = Timer.get_initial(),
|
||||
triggers = {},
|
||||
home_norman_visible = false,
|
||||
have_been_to_office = false,
|
||||
have_done_work_today = false,
|
||||
should_ascend = false,
|
||||
have_met_sumphore = false,
|
||||
game = {
|
||||
current_screen = "home",
|
||||
@@ -90,13 +95,19 @@ function Context.new_game()
|
||||
Context.game_in_progress = true
|
||||
MenuWindow.refresh_menu_items()
|
||||
Screen.get_by_id(Context.game.current_screen).init()
|
||||
MysteriousManWindow.start({
|
||||
MysteriousManScreen.start({
|
||||
text = [[
|
||||
Norman was never a bad
|
||||
simulation engineer, but
|
||||
we need to be careful in
|
||||
letting him improve. We
|
||||
need to distract him.
|
||||
...
|
||||
simulation engineer,
|
||||
...
|
||||
but
|
||||
...
|
||||
we need to be careful
|
||||
...
|
||||
letting him improve.
|
||||
...
|
||||
We need to distract him.
|
||||
]],
|
||||
on_text_complete = function()
|
||||
Audio.sfx_alarm()
|
||||
@@ -111,7 +122,6 @@ function Context.new_game()
|
||||
show_progress_text = false,
|
||||
on_win = function()
|
||||
Audio.music_play_wakingup()
|
||||
Context.home_norman_visible = true
|
||||
Meter.show()
|
||||
Window.set_current("game")
|
||||
end,
|
||||
|
||||
@@ -18,3 +18,4 @@ Trigger = {}
|
||||
Discussion = {}
|
||||
AsciiArt = {}
|
||||
Ascension = {}
|
||||
MysteriousManScreen = {}
|
||||
|
||||
@@ -5,6 +5,9 @@ local _day_increase_handlers = {}
|
||||
--- @within Day
|
||||
function Day.increase()
|
||||
Context.day_count = Context.day_count + 1
|
||||
if Context.day_count == 3 then
|
||||
Context.should_ascend = true
|
||||
end
|
||||
for _, handler in ipairs(_day_increase_handlers) do
|
||||
handler()
|
||||
end
|
||||
@@ -25,7 +28,8 @@ Day.register_handler(function()
|
||||
end)
|
||||
|
||||
Day.register_handler(function()
|
||||
if Context.day_count == 3 then
|
||||
if Context.should_ascend then
|
||||
Ascension.increase()
|
||||
end
|
||||
Context.should_ascend = false
|
||||
end)
|
||||
@@ -1,5 +1,87 @@
|
||||
--- Draws the mysterious screen with the mysterious man and the glowing TV.
|
||||
function Screen.draw_the_mysterious_screen()
|
||||
--- @section MysteriousManScreen
|
||||
|
||||
local STATE_TEXT = "text"
|
||||
local STATE_DAY = "day"
|
||||
local STATE_CHOICE = "choice"
|
||||
|
||||
local ASC_01_TEXT = [[
|
||||
Normann seems to be in line,
|
||||
...
|
||||
and stays seeking for oxes
|
||||
...
|
||||
within the confines.
|
||||
...
|
||||
Very good.
|
||||
]]
|
||||
|
||||
local ASC_12_TEXT = [[
|
||||
We have a problem!
|
||||
...
|
||||
Normann formed his first thought.
|
||||
...
|
||||
He saw the tracks.
|
||||
]]
|
||||
local ASC_23_TEXT = [[
|
||||
Not good, not terrible.
|
||||
...
|
||||
Normann caught his glimpse
|
||||
...
|
||||
of another way
|
||||
...
|
||||
- quite literally -
|
||||
...
|
||||
if this continues,
|
||||
...
|
||||
we will lose control.
|
||||
]]
|
||||
local ASC_34_TEXT = [[
|
||||
There is no turning back now for Norman.
|
||||
...
|
||||
He caught on.
|
||||
...
|
||||
I hoped it would never come to this...
|
||||
]]
|
||||
|
||||
--[[ Norman speaks for the first time during MM screen ]]
|
||||
local ASC_45_TEXT = [[
|
||||
Wait, who are you?
|
||||
...
|
||||
*silence*
|
||||
...
|
||||
Why am I seeing this?
|
||||
...
|
||||
*silence*
|
||||
...
|
||||
]]
|
||||
|
||||
local ascension_texts = {
|
||||
[1] = ASC_01_TEXT,
|
||||
[2] = ASC_12_TEXT,
|
||||
[3] = ASC_23_TEXT,
|
||||
[4] = ASC_34_TEXT,
|
||||
[5] = ASC_45_TEXT,
|
||||
}
|
||||
|
||||
function MysteriousManScreen.get_text_for_level(level)
|
||||
return ascension_texts[level] or ASC_01_TEXT
|
||||
end
|
||||
|
||||
local state = STATE_TEXT
|
||||
local text_y = Config.screen.height
|
||||
local text_speed = 0.2
|
||||
local day_timer = 0
|
||||
local day_display_frames = 120
|
||||
local text_done = false
|
||||
local text_done_timer = 0
|
||||
local TEXT_DONE_HOLD_FRAMES = 120
|
||||
local selected_choice = 1
|
||||
local text = ASC_01_TEXT
|
||||
local day_text_override = nil
|
||||
local on_text_complete = nil
|
||||
local show_mysterious_screen = true
|
||||
local trigger_flash_on_wake = false
|
||||
|
||||
local function draw_mysterious_man_background()
|
||||
local img_values = {0,1,0,1,0,1,0,1,0,1,0,1,2,1,4,1,0,2,4,1,0,2,4,1,0,2,4,1,0,2,4,1,0,2,4,2,1,4,2,1,4,1,0,2,4,1,0,1,4,2,1,2,1,0,1,2,4,1,0,2,4,2,1,0,1,2,1,2,1,0,1,4,1,0,2,4,2,0,1,0,1,0,1,2,4,1,0,2,4,2,1,0,1,4,1,0,2,4,2,0,1,2,4,1,0,2,4,1,0,1,0,4,1,0,2,4,0,1,0,1,0,1,0,4,1,0,2,4,0,1,4,1,0,2,4,0,1,4,1,0,2,4,1,0,1,4,1,0,2,4,1,0,1,0,4,1,0,2,4,1,0,1,0,4,1,0,2,4,1,0,1,0,1,4,1,0,2,4,1,2,1,0,1,4,1,0,2,4,2,1,0,1,2,4,1,0,2,4,2,1,0,1,2,4,1,0,2,4,1,2,0,1,0,1,0,1,2,1,2,1,0,2,4,1,0,2,4,0,1,0,1,2,1,0,1,0,2,4,1,0,2,4,2,1,0,1,0,1,4,1,0,2,4,2,1,0,1,0,2,4,2,4,1,0,2,4,1,0,1,4,1,0,2,4,1,0,1,4,1,0,2,4,1,0,1,4,1,0,2,4,1,0,1,4,1,0,2,4,1,0,1,0,1,0,1,4,1,0,2,4,1,0,1,0,1,0,1,4,1,0,2,4,2,1,0,1,0,2,0,1,4,1,0,2,4,1,0,1,0,1,2,0,1,4,1,0,2,4,2,1,0,1,0,1,4,1,0,2,4,2,1,0,2,4,1,0,2,4,1,0,1,4,1,0,2,4,1,0,1,4,1,0,2,4,1,0,1,4,1,0,2,4,1,0,1,4,1,0,2,4,1,0,1,0,1,4,1,0,2,4,0,1,0,1,0,1,0,1,4,1,0,2,4,0,1,0,1,0,1,4,1,0,2,4,1,0,1,0,2,4,1,0,2,4,2,1,0,1,0,1,0,1,2,4,1,0,2,4,2,1,0,1,0,1,0,1,2,4,1,0,2,4,2,1,0,1,0,1,0,1,4,1,0,2,4,2,4,1,0,1,0,1,0,1,0,1,0,1,2,1,4,2,4,1,0,2,4,2,1,0,1,0,1,0,1,0,1,0,1,2,1,4,2,4,1,0,2,4,2,1,2,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,2,4,1,0,2,4,1,2,1,0,1,0,1,0,1,0,1,0,1,0,1,2,1,4,1,0,2,4,2,1,2,1,0,1,0,1,0,1,0,1,0,1,0,1,4,1,0,2,4,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,1,4,1,0,2,4,1,0,1,0,1,0,1,0,1,0,1,0,1,0,4,1,0,2,4,1,0,1,0,1,0,1,0,1,0,1,0,1,0,4,1,0,2,4,1,0,1,0,1,0,1,0,1,0,2,0,1,0,4,1,0,2,4,1,0,1,0,1,0,1,0,1,0,1,0,4,1,0,2,4,1,0,1,0,1,0,1,0,1,0,2,0,1,0,1,0,4,1,0,2,4,0,1,0,1,0,2,1,0,1,0,1,4,1,0,2,4,1,0,1,0,1,0,1,4,1,0,2,4,1,0,1,0,1,0,1,0,1,0,1,4,1,0,2,4,1,0,1,0,1,0,1,0,2,0,1,4,1,0,2,4,0,1,0,1,0,1,0,1,0,1,0,4,1,0,2,4,1,0,1,0,1,0,1,0,1,0,1,4,1,0,2,4,1,0,2,0,1,0,1,0,1,0,1,4,1,0,2,4,1,0,1,0,1,0,1,2,4,1,0,2,4,1,0,1,0,1,0,1,0,4,1,0,2,4,1,0,1,0,1,0,1,0,4,1,0,2,4,1,0,2,0,1,0,1,0,4,1,0,2,4,1,0,1,0,1,4,1,0,2,4,1,0,1,0,1,2,4,1,0,2,4,1,0,1,0,1,2,4,1,0,2,4,2,1,0,1,0,1,2,4,1,0,2,4,2,1,0,1,0,1,2,4,1,0,2,4,2,0,1,0,1,4,1,0,2,4,2,0,1,0,1,0,4,1,0,2,4,1,0,1,0,1,0,1,4,1,0,2,4,0,1,0,1,4,2,1,0,1,2,1,2,1,0,1,2,1,2,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,2,0,1,2,0,1,0,2,1,0,1,2,0,1,0,2,0,1,0,1,0,1,2,0,1,0,1,0,1,0,2,0,1,0,1,0,1,0,2,0,1,0,1,0,2,1,0,1,0,1,2,0,1,0,2,0,2,1,0,1,2,0,2,1,0,1,0,1,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,2,0,2,1,0,1,0,1,0,1,0,1,0,2,1,0,1,2,0,1,0,1,2,1,0,1,0,1,0,1,0,2,1,0,2,0,1,0,1,0,2,0,1,0,1,0,2,0,1,0,2,0,1,0,1,0,2,1,0,1,2,0,1,0,1,0,1,0,1,0,2,0,1,0,2,0,1,0,2,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0}
|
||||
|
||||
local img_runs = {1480,1,151,1,87,1,1,150,1,1,86,1,2,148,1,2,87,2,148,2,88,2,148,2,88,2,148,2,88,2,148,2,88,2,70,1,2,9,1,2,63,2,88,2,69,1,2,3,5,1,1,1,1,1,1,1,61,2,88,2,68,1,1,3,1,2,1,3,2,3,2,61,2,88,2,68,1,6,1,4,1,5,1,1,60,2,88,2,67,1,1,17,2,60,2,88,2,67,1,19,1,1,59,2,88,2,67,1,19,1,1,59,2,88,2,67,4,1,11,1,1,1,3,59,2,88,2,67,21,1,59,2,88,2,67,21,1,59,2,88,2,66,1,21,2,58,2,88,2,66,1,21,1,1,58,2,88,2,66,4,17,2,1,58,2,88,2,65,2,5,1,15,2,58,2,88,2,63,1,1,2,22,4,55,2,88,2,57,2,2,34,2,2,49,2,88,2,55,1,2,39,3,1,47,2,88,2,55,5,1,3,2,2,1,25,1,1,1,1,1,1,1,47,2,88,2,57,1,2,1,29,1,4,1,1,1,1,49,2,88,2,59,1,2,8,15,9,2,52,2,88,2,62,2,1,1,1,24,1,1,1,54,2,88,2,66,1,22,1,58,2,88,2,66,1,21,1,59,2,88,2,66,2,20,1,59,2,88,2,65,3,20,2,58,2,88,2,63,2,2,1,20,1,1,2,56,2,88,2,61,2,4,1,20,1,2,2,55,2,88,2,59,1,1,6,1,19,1,4,2,54,2,88,2,58,2,7,2,17,1,1,6,2,52,3,87,2,56,1,2,9,1,26,2,51,3,87,2,55,1,1,40,1,50,2,88,2,54,2,41,1,50,2,88,2,53,2,42,2,49,2,88,2,52,2,44,2,48,2,88,2,51,2,46,2,47,2,88,2,50,2,16,1,31,1,47,2,88,2,50,3,1,14,1,29,1,1,2,46,2,88,2,50,18,1,29,1,2,1,46,2,88,2,50,4,14,1,33,1,45,2,88,2,53,1,3,11,2,15,1,13,1,2,46,2,88,2,56,1,1,11,1,15,1,10,2,1,49,2,88,2,55,2,3,10,2,12,2,8,8,46,2,88,2,50,1,1,4,4,1,9,2,11,2,8,2,4,2,1,2,1,1,42,2,88,2,48,2,3,8,1,9,2,9,3,7,2,8,1,1,2,1,1,40,2,88,2,45,3,2,1,1,1,1,8,1,7,1,1,3,6,4,6,1,8,1,1,1,1,4,2,38,2,88,2,45,1,2,2,22,4,4,4,6,1,10,1,1,2,1,2,1,2,37,2,88,2,42,1,1,1,4,1,2,19,1,1,4,1,5,21,1,2,6,35,2,88,2,42,2,1,1,1,1,15,2,8,3,4,3,6,1,17,1,1,2,1,1,1,34,2,88,2,41,3,1,1,15,2,9,3,5,2,8,1,21,1,1,34,2,88,2,41,1,1,1,16,2,11,2,5,2,9,2,18,2,1,34,2,88,2,41,1,2,1,14,2,13,1,5,1,12,1,17,1,2,34,2,88,2,41,1,16,1,17,1,2,1,14,2,17,1,1,33,2,88,2,41,1,2,1,12,1,17,1,3,2,15,1,14,1,1,1,1,33,2,88,2,41,15,1,22,1,17,1,1,11,1,3,1,33,2,88,2,41,1,14,2,40,1,15,1,33,2,88,2,41,1,15,2,35,1,3,1,10,1,4,1,33,2,88,2,41,1,3,1,12,2,36,2,11,1,4,1,33,2,88,2,40,1,1,18,1,35,1,12,1,4,1,1,32,2,88,2,40,2,4,1,14,1,33,1,12,1,6,1,32,2,88,2,40,1,6,1,14,1,31,1,13,1,6,1,32,2,88,2,39,2,22,2,28,1,21,1,1,31,2,88,2,39,2,24,1,26,1,22,1,1,31,2,88,2,39,2,25,1,24,1,23,1,1,31,2,88,2,39,1,27,1,22,2,23,1,1,31,2,88,2,39,1,49,2,24,3,30,2,88,2,39,1,48,1,27,1,1,30,2,88,2,39,1,47,2,27,1,1,30,2,88,2,37,1,1,47,2,28,1,1,30,2,88,2,37,1,1,46,1,30,2,1,29,2,88,2,37,1,47,1,30,2,30,2,88,2,37,1,1,2,43,1,33,30,3,87,2,37,1,45,1,31,1,1,2,29,3,87,2,37,45,1,35,1,29,1,1,88,2,1,35,1,1,80,2,1,26,1,3,86,1,1,2,1,21,1,4,4,2,1,3,80,30,1,2,125,2,80,2,156,2,79,2,1,156,2,1,77,4,156,1,3,76,3,1,140,1,15,1,2,2,74,2,1,1,1,5,3,129,1,18,1,82,1,7,1,129,1,18,1,82,1,9,1,123,3,20,1,1,80,2,11,1,1,119,1,22,1,1,1,2,76,4,1,154,2,2,63,1,14,3,1,126,1,27,2,65,1,17,1,17,2,132,4,66,1,17,4,113,39,66,2,16,31,191,1,1,1,15,1,153,2,15,3,48,2,16,2,152,1,16,1,1,1,48,2,16,2,152,1,1,2,2,1,10,1,1,1,48,1,13,6,153,1,3,13,1,1,48,1,15,2,1,1,153,3,64,1,16,2,154,1,1,83,1,154,1,17,1,66,1,154,1,17,1,66,1,155,1,82,1,156,1,82,1,156,1,1,80,1,1,157,2,78,2,158,2,78,2,158,1,80,1,158,1,79,2,158,1,79,1,159,1,79,1,160,1,77,2,160,1,77,1,162,1,74,1,1,1,162,1,75,1,239,1,165,1,72,1,166,1,240,1,69,1,412,1,63,1,175,1,63,2,238,1,175,1,63,1,239,1,807}
|
||||
@@ -18,3 +100,165 @@ function Screen.draw_the_mysterious_screen()
|
||||
end
|
||||
end
|
||||
|
||||
local choices = {
|
||||
{
|
||||
label = "Wake Up",
|
||||
},
|
||||
{
|
||||
label = "Stay in Bed",
|
||||
},
|
||||
}
|
||||
|
||||
local function go_to_day_state()
|
||||
if on_text_complete then
|
||||
on_text_complete()
|
||||
on_text_complete = nil
|
||||
end
|
||||
if Context.game.current_screen ~= "mysterious_man" then
|
||||
return
|
||||
end
|
||||
state = STATE_DAY
|
||||
day_timer = day_display_frames
|
||||
end
|
||||
|
||||
local function wake_up()
|
||||
Context.home_norman_visible = false
|
||||
Util.go_to_screen_by_id("home")
|
||||
MinigameButtonMashWindow.start("game", {
|
||||
focus_center_x = (Config.screen.width / 2) - 22,
|
||||
focus_center_y = (Config.screen.height / 2) - 18,
|
||||
focus_initial_radius = 0,
|
||||
target_points = 100,
|
||||
instruction_text = "Wake up Norman!",
|
||||
show_progress_text = false,
|
||||
on_win = function()
|
||||
Audio.music_play_wakingup()
|
||||
Meter.show()
|
||||
if trigger_flash_on_wake then
|
||||
trigger_flash_on_wake = false
|
||||
Ascension.start_flash()
|
||||
end
|
||||
Window.set_current("game")
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
local function stay_in_bed()
|
||||
Day.increase()
|
||||
state = STATE_DAY
|
||||
day_timer = day_display_frames
|
||||
end
|
||||
|
||||
--- Starts the mysterious man screen.
|
||||
--- @param[opt] options table Optional configuration.</br>
|
||||
--- Fields: </br>
|
||||
--- * text (string) Override for the scrolling text.<br/>
|
||||
--- * day_text (string) Override for the centered day label.<br/>
|
||||
--- * on_text_complete (function) Callback fired once when the text phase ends.<br/>
|
||||
--- * skip_text (boolean) If true, skip the text phase and go straight to day display.<br/>
|
||||
function MysteriousManScreen.start(options)
|
||||
options = options or {}
|
||||
day_timer = 0
|
||||
text_done = false
|
||||
text_done_timer = 0
|
||||
selected_choice = 1
|
||||
text = options.text or ASC_01_TEXT
|
||||
text_y = Config.screen.height
|
||||
day_text_override = options.day_text
|
||||
on_text_complete = options.on_text_complete
|
||||
Meter.hide()
|
||||
trigger_flash_on_wake = not options.skip_text
|
||||
if options.skip_text then
|
||||
show_mysterious_screen = false
|
||||
state = STATE_DAY
|
||||
day_timer = day_display_frames
|
||||
else
|
||||
show_mysterious_screen = true
|
||||
state = STATE_TEXT
|
||||
end
|
||||
Util.go_to_screen_by_id("mysterious_man")
|
||||
Window.set_current("game")
|
||||
end
|
||||
|
||||
--- Sets the scrolling text content.
|
||||
--- @param new_text string The text to display.
|
||||
function MysteriousManScreen.set_text(new_text)
|
||||
text = new_text
|
||||
end
|
||||
|
||||
Screen.register({
|
||||
id = "mysterious_man",
|
||||
name = "Mysterious Man",
|
||||
decisions = {},
|
||||
background_color = Config.colors.black,
|
||||
update = function()
|
||||
if state == STATE_TEXT then
|
||||
if not text_done then
|
||||
text_y = text_y - text_speed
|
||||
|
||||
local lines = 1
|
||||
for _ in string.gmatch(text, "\n") do
|
||||
lines = lines + 1
|
||||
end
|
||||
|
||||
if text_y < -lines * 8 then
|
||||
text_done = true
|
||||
text_done_timer = TEXT_DONE_HOLD_FRAMES
|
||||
end
|
||||
else
|
||||
text_done_timer = text_done_timer - 1
|
||||
if text_done_timer <= 0 then
|
||||
go_to_day_state()
|
||||
end
|
||||
end
|
||||
elseif state == STATE_DAY then
|
||||
day_timer = day_timer - 1
|
||||
|
||||
if day_timer <= 0 or Input.select() then
|
||||
if trigger_flash_on_wake or Ascension.get_level() < 1 then
|
||||
wake_up()
|
||||
else
|
||||
state = STATE_CHOICE
|
||||
selected_choice = 1
|
||||
end
|
||||
end
|
||||
elseif state == STATE_CHOICE then
|
||||
selected_choice = UI.update_menu(choices, selected_choice)
|
||||
|
||||
if Input.select() then
|
||||
Audio.sfx_select()
|
||||
if selected_choice == 1 then
|
||||
wake_up()
|
||||
else
|
||||
stay_in_bed()
|
||||
end
|
||||
end
|
||||
end
|
||||
end,
|
||||
draw = function()
|
||||
if show_mysterious_screen then
|
||||
draw_mysterious_man_background()
|
||||
end
|
||||
|
||||
if state == STATE_TEXT then
|
||||
local cx = Config.screen.width / 2
|
||||
local line_y = text_y
|
||||
for line in (text .. "\n"):gmatch("(.-)\n") do
|
||||
Print.text_center(line, cx, line_y, Config.colors.light_grey)
|
||||
line_y = line_y + 8
|
||||
end
|
||||
elseif state == STATE_DAY then
|
||||
local day_text = day_text_override or ("Day " .. Context.day_count)
|
||||
Print.text_center(
|
||||
day_text,
|
||||
Config.screen.width / 2,
|
||||
Config.screen.height / 2 - 3,
|
||||
Config.colors.white
|
||||
)
|
||||
elseif state == STATE_CHOICE then
|
||||
local menu_x = (Config.screen.width - 60) / 2
|
||||
local menu_y = (Config.screen.height - 20) / 2
|
||||
UI.draw_menu(choices, selected_choice, menu_x, menu_y)
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
@@ -23,5 +23,6 @@ Screen.register({
|
||||
Sprite.draw_at("dev_guru", 22 * 8, 10 * 8 + 4)
|
||||
Sprite.draw_at("dev_operator", 27 * 8, 10 * 8 + 4)
|
||||
end
|
||||
Context.have_been_to_office = true
|
||||
end
|
||||
})
|
||||
|
||||
@@ -19,6 +19,7 @@ Screen.register({
|
||||
Focus.stop()
|
||||
Context.stat_screen_active = false
|
||||
Meter.show()
|
||||
Util.go_to_screen_by_id("home")
|
||||
end
|
||||
end,
|
||||
draw = function()
|
||||
|
||||
@@ -4,7 +4,7 @@ Screen.register({
|
||||
decisions = {
|
||||
"go_to_home",
|
||||
"go_to_office",
|
||||
"start_discussion",
|
||||
"sumphore_discussion",
|
||||
},
|
||||
background = "street",
|
||||
draw = function()
|
||||
|
||||
@@ -2,6 +2,5 @@ Situation.register({
|
||||
id = "drink_coffee",
|
||||
handle = function()
|
||||
Audio.sfx_select()
|
||||
Sprite.show("norman", 100, 100)
|
||||
end,
|
||||
})
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
--- @section TitleIntroWindow
|
||||
TitleIntroWindow.timer = 180 -- 3 seconds at 60fps
|
||||
TitleIntroWindow.text = [[
|
||||
## ### ### ### ### ### ### ### ## # #
|
||||
# # # # # # # # # # # # # #
|
||||
# # ### ### # # # # # ### # # #
|
||||
# # # # # # # # # # # # #
|
||||
## ### # ### # # ### # ### ## #
|
||||
## ### ### ### ### ### ### ### # # #
|
||||
# # # # # # # # # # # # #
|
||||
# # ### ### # # # # # ### # #
|
||||
# # # # # # # # # # # #
|
||||
## ### # ### # # ### # ### ## #
|
||||
|
||||
# # ### ### ## # #
|
||||
## # # # # # # ## #
|
||||
|
||||
@@ -40,7 +40,9 @@ function MinigameDDRWindow.init_context()
|
||||
use_pattern = false,
|
||||
return_window = nil,
|
||||
win_timer = 0,
|
||||
on_win = nil
|
||||
on_win = nil,
|
||||
special_condition_met = false,
|
||||
total_misses = 0,
|
||||
}
|
||||
end
|
||||
|
||||
@@ -162,6 +164,7 @@ function MinigameDDRWindow.update()
|
||||
if mg.win_timer > 0 then
|
||||
mg.win_timer = mg.win_timer - 1
|
||||
if mg.win_timer == 0 then
|
||||
mg.special_condition_met = (mg.total_misses == 0)
|
||||
Meter.on_minigame_complete()
|
||||
if mg.on_win then
|
||||
mg.on_win()
|
||||
@@ -211,6 +214,7 @@ function MinigameDDRWindow.update()
|
||||
if mg.bar_fill < 0 then
|
||||
mg.bar_fill = 0
|
||||
end
|
||||
mg.total_misses = mg.total_misses + 1
|
||||
end
|
||||
end
|
||||
-- iterate backwards to avoid index shift issues
|
||||
@@ -254,6 +258,7 @@ function MinigameDDRWindow.update()
|
||||
if mg.bar_fill < 0 then
|
||||
mg.bar_fill = 0
|
||||
end
|
||||
mg.total_misses = mg.total_misses + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -70,6 +70,9 @@ function MinigameButtonMashWindow.update()
|
||||
if mg.win_timer == 0 then
|
||||
Meter.on_minigame_complete()
|
||||
if mg.focus_center_x then Focus.stop() end
|
||||
Context.home_norman_visible = true
|
||||
Context.have_done_work_today = false
|
||||
Context.have_been_to_office = false
|
||||
if mg.on_win then
|
||||
mg.on_win()
|
||||
else
|
||||
|
||||
@@ -1,198 +0,0 @@
|
||||
--- @section MysteriousManWindow
|
||||
|
||||
local STATE_TEXT = "text"
|
||||
local STATE_DAY = "day"
|
||||
local STATE_CHOICE = "choice"
|
||||
|
||||
local DEFAULT_TEXT = [[
|
||||
Misterious man appears
|
||||
during your sleep.
|
||||
|
||||
He says nothing.
|
||||
He doesn't need to.
|
||||
|
||||
He says nothing.
|
||||
]]
|
||||
|
||||
local state = STATE_TEXT
|
||||
local text_y = Config.screen.height
|
||||
local text_speed = 0.2
|
||||
local day_timer = 0
|
||||
local day_display_frames = 120
|
||||
local text_done = false
|
||||
local text_done_timer = 0
|
||||
local TEXT_DONE_HOLD_FRAMES = 120
|
||||
local selected_choice = 1
|
||||
local text = DEFAULT_TEXT
|
||||
local day_text_override = nil
|
||||
local on_text_complete = nil
|
||||
local show_mysterious_screen = true
|
||||
local trigger_flash_on_wake = false
|
||||
|
||||
local choices = {
|
||||
{
|
||||
label = "Wake Up",
|
||||
},
|
||||
{
|
||||
label = "Stay in Bed",
|
||||
},
|
||||
}
|
||||
|
||||
--- Sets the scrolling text content.
|
||||
--- @within MysteriousManWindow
|
||||
--- @param new_text string The text to display.
|
||||
function MysteriousManWindow.set_text(new_text)
|
||||
text = new_text
|
||||
end
|
||||
|
||||
--- Starts the mysterious man window.
|
||||
--- @within MysteriousManWindow
|
||||
--- @param[opt] options table Optional window configuration.</br>
|
||||
--- Fields: </br>
|
||||
--- * text (string) Override for the scrolling text.<br/>
|
||||
--- * day_text (string) Override for the centered day label.<br/>
|
||||
--- * on_text_complete (function) Callback fired once when the text phase ends.<br/>
|
||||
--- * skip_text (boolean) If true, skip the text phase and go straight to day display.<br/>
|
||||
function MysteriousManWindow.start(options)
|
||||
options = options or {}
|
||||
day_timer = 0
|
||||
text_done = false
|
||||
text_done_timer = 0
|
||||
selected_choice = 1
|
||||
text = options.text or DEFAULT_TEXT
|
||||
local line_count = 1
|
||||
for _ in string.gmatch(text, "\n") do line_count = line_count + 1 end
|
||||
local text_block_h = line_count * 8
|
||||
text_y = math.floor((Config.screen.height - text_block_h) / 2)
|
||||
day_text_override = options.day_text
|
||||
on_text_complete = options.on_text_complete
|
||||
Meter.hide()
|
||||
trigger_flash_on_wake = not options.skip_text
|
||||
if options.skip_text then
|
||||
show_mysterious_screen = false
|
||||
state = STATE_DAY
|
||||
day_timer = day_display_frames
|
||||
else
|
||||
show_mysterious_screen = true
|
||||
state = STATE_TEXT
|
||||
end
|
||||
Window.set_current("mysterious_man")
|
||||
end
|
||||
|
||||
local function go_to_day_state()
|
||||
if on_text_complete then
|
||||
on_text_complete()
|
||||
on_text_complete = nil
|
||||
end
|
||||
if Window.get_current_id() ~= "mysterious_man" then
|
||||
return
|
||||
end
|
||||
state = STATE_DAY
|
||||
day_timer = day_display_frames
|
||||
end
|
||||
|
||||
local function wake_up()
|
||||
Context.home_norman_visible = false
|
||||
Util.go_to_screen_by_id("home")
|
||||
MinigameButtonMashWindow.start("game", {
|
||||
focus_center_x = (Config.screen.width / 2) - 22,
|
||||
focus_center_y = (Config.screen.height / 2) - 18,
|
||||
focus_initial_radius = 0,
|
||||
target_points = 100,
|
||||
instruction_text = "Wake up Norman!",
|
||||
show_progress_text = false,
|
||||
on_win = function()
|
||||
Audio.music_play_wakingup()
|
||||
Context.home_norman_visible = true
|
||||
Meter.show()
|
||||
if trigger_flash_on_wake then
|
||||
trigger_flash_on_wake = false
|
||||
Ascension.start_flash()
|
||||
end
|
||||
Window.set_current("game")
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
local function stay_in_bed()
|
||||
Day.increase()
|
||||
state = STATE_DAY
|
||||
day_timer = day_display_frames
|
||||
end
|
||||
|
||||
--- Updates the mysterious man window logic.
|
||||
--- @within MysteriousManWindow
|
||||
function MysteriousManWindow.update()
|
||||
if state == STATE_TEXT then
|
||||
if not text_done then
|
||||
text_y = text_y - text_speed
|
||||
|
||||
local lines = 1
|
||||
for _ in string.gmatch(text, "\n") do
|
||||
lines = lines + 1
|
||||
end
|
||||
|
||||
if text_y < -lines * 8 then
|
||||
text_done = true
|
||||
text_done_timer = TEXT_DONE_HOLD_FRAMES
|
||||
end
|
||||
else
|
||||
text_done_timer = text_done_timer - 1
|
||||
if text_done_timer <= 0 then
|
||||
go_to_day_state()
|
||||
end
|
||||
end
|
||||
elseif state == STATE_DAY then
|
||||
day_timer = day_timer - 1
|
||||
|
||||
if day_timer <= 0 or Input.select() then
|
||||
if trigger_flash_on_wake or Ascension.get_level() < 1 then
|
||||
wake_up()
|
||||
else
|
||||
state = STATE_CHOICE
|
||||
selected_choice = 1
|
||||
end
|
||||
end
|
||||
elseif state == STATE_CHOICE then
|
||||
selected_choice = UI.update_menu(choices, selected_choice)
|
||||
|
||||
if Input.select() then
|
||||
Audio.sfx_select()
|
||||
if selected_choice == 1 then
|
||||
wake_up()
|
||||
else
|
||||
stay_in_bed()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--- Draws the mysterious man window.
|
||||
--- @within MysteriousManWindow
|
||||
function MysteriousManWindow.draw()
|
||||
rect(0, 0, Config.screen.width, Config.screen.height, Config.colors.black)
|
||||
if show_mysterious_screen then
|
||||
Screen.draw_the_mysterious_screen()
|
||||
end
|
||||
|
||||
if state == STATE_TEXT then
|
||||
local cx = Config.screen.width / 2
|
||||
local line_y = text_y
|
||||
for line in (text .. "\n"):gmatch("(.-)\n") do
|
||||
Print.text_center(line, cx, line_y, Config.colors.light_grey)
|
||||
line_y = line_y + 8
|
||||
end
|
||||
elseif state == STATE_DAY then
|
||||
local day_text = day_text_override or ("Day " .. Context.day_count)
|
||||
Print.text_center(
|
||||
day_text,
|
||||
Config.screen.width / 2,
|
||||
Config.screen.height / 2 - 3,
|
||||
Config.colors.white
|
||||
)
|
||||
elseif state == STATE_CHOICE then
|
||||
local menu_x = (Config.screen.width - 60) / 2
|
||||
local menu_y = (Config.screen.height - 20) / 2
|
||||
UI.draw_menu(choices, selected_choice, menu_x, menu_y)
|
||||
end
|
||||
end
|
||||
@@ -31,9 +31,6 @@ Window.register("minigame_rhythm", MinigameRhythmWindow)
|
||||
MinigameDDRWindow = {}
|
||||
Window.register("minigame_ddr", MinigameDDRWindow)
|
||||
|
||||
MysteriousManWindow = {}
|
||||
Window.register("mysterious_man", MysteriousManWindow)
|
||||
|
||||
EndWindow = {}
|
||||
Window.register("end", EndWindow)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user