From b8d5bd23687e142834a989a524f4c6698a5994ca Mon Sep 17 00:00:00 2001 From: cyberarm Date: Tue, 5 Jan 2021 20:32:56 -0600 Subject: [PATCH] replaced use of label with banner for menu titles, updated solo lobby to show preview on load --- lib/states/boot.rb | 6 +++--- lib/states/game.rb | 2 +- lib/states/menus/credits_menu.rb | 2 +- lib/states/menus/load_menu.rb | 2 +- lib/states/menus/main_menu.rb | 2 +- lib/states/menus/multiplayer_menu.rb | 8 +++---- lib/states/menus/pause_menu.rb | 2 +- lib/states/menus/settings_menu.rb | 2 +- lib/states/menus/solo_lobby_menu.rb | 32 ++++++++++++++++++---------- 9 files changed, 34 insertions(+), 24 deletions(-) diff --git a/lib/states/boot.rb b/lib/states/boot.rb index 44246f0..c0cd341 100644 --- a/lib/states/boot.rb +++ b/lib/states/boot.rb @@ -11,13 +11,13 @@ class IMICRTS @status = @messages[@messages_index] @last_update = Gosu.milliseconds - @update_interval = 250 + @update_interval = 200 - @switcher = CyberarmEngine::Timer.new(5_000) do + @switcher = CyberarmEngine::Timer.new(3_000) do push_state(MainMenu) end - @loader = CyberarmEngine::Timer.new(250) do + @loader = CyberarmEngine::Timer.new(@update_interval) do split = @status.scan(".") if split.size >= 3 @messages_index+=1 diff --git a/lib/states/game.rb b/lib/states/game.rb index 32623f7..4b7dec0 100644 --- a/lib/states/game.rb +++ b/lib/states/game.rb @@ -37,7 +37,7 @@ class IMICRTS @sidebar = stack(width: IMICRTS::MENU_WIDTH, height: 1.0, padding: IMICRTS::MENU_PADDING) do background [0x55555555, 0x55666666] - label "SIDEBAR", text_size: 78, margin_bottom: 20 + banner "SIDEBAR", margin_bottom: 20 flow(width: 1.0, height: 1.0) do @sidebar_actions = stack(width: 0.9) do diff --git a/lib/states/menus/credits_menu.rb b/lib/states/menus/credits_menu.rb index ba04dca..70c13a2 100644 --- a/lib/states/menus/credits_menu.rb +++ b/lib/states/menus/credits_menu.rb @@ -7,7 +7,7 @@ class IMICRTS stack(width: IMICRTS::MENU_WIDTH, height: 1.0, padding: IMICRTS::MENU_PADDING) do background [0xff555555, Gosu::Color::GRAY] - label "Credits", text_size: 78, margin: 20 + banner "Credits", margin: 20 licenses = Gosu::LICENSES.lines preamble = licenses.shift diff --git a/lib/states/menus/load_menu.rb b/lib/states/menus/load_menu.rb index a8c7b28..f5a27ec 100644 --- a/lib/states/menus/load_menu.rb +++ b/lib/states/menus/load_menu.rb @@ -7,7 +7,7 @@ class IMICRTS stack(width: IMICRTS::MENU_WIDTH, height: 1.0, padding: IMICRTS::MENU_PADDING) do background [0xff555555, Gosu::Color::GRAY] - label "Load", text_size: 78, margin: 20 + banner "Load", margin: 20 label "Replays" stack(width: 1.0, height: 0.30) do diff --git a/lib/states/menus/main_menu.rb b/lib/states/menus/main_menu.rb index 5c844ea..e0391bd 100644 --- a/lib/states/menus/main_menu.rb +++ b/lib/states/menus/main_menu.rb @@ -7,7 +7,7 @@ class IMICRTS stack(width: IMICRTS::MENU_WIDTH, height: 1.0, padding: IMICRTS::MENU_PADDING) do background [0xff555555, Gosu::Color::GRAY] - label IMICRTS::NAME, text_size: 78, margin: 20 + banner IMICRTS::NAME, margin: 20 button("Campaign", width: 1.0, enabled: false, tip: "No campaign available, yet...") do push_state(CampaignMenu) end diff --git a/lib/states/menus/multiplayer_menu.rb b/lib/states/menus/multiplayer_menu.rb index 27aafbe..e4f7f27 100644 --- a/lib/states/menus/multiplayer_menu.rb +++ b/lib/states/menus/multiplayer_menu.rb @@ -6,8 +6,8 @@ class IMICRTS stack(width: IMICRTS::MENU_WIDTH, height: 1.0, padding: IMICRTS::MENU_PADDING) do background [0xff555555, Gosu::Color::GRAY] - label "Multiplayer", text_size: 78, margin: 20 - label "Games", text_size: 32 + banner "Multiplayer", margin: 20 + title "Games" @games_list = stack(border_color: Gosu::Color::WHITE, border_thickness: 2) do end flow do @@ -15,10 +15,10 @@ class IMICRTS refresh_games end button("Host Game") do - push_state(HostMultiplayerGameMenu) + # push_state(HostMultiplayerGameMenu) end button("Join Game") do - push_state(MultiplayerLobbyMenu) + # push_state(MultiplayerLobbyMenu) end end diff --git a/lib/states/menus/pause_menu.rb b/lib/states/menus/pause_menu.rb index a8f2acd..e88ba5b 100644 --- a/lib/states/menus/pause_menu.rb +++ b/lib/states/menus/pause_menu.rb @@ -3,7 +3,7 @@ class IMICRTS def setup stack(width: IMICRTS::MENU_WIDTH, height: 1.0, padding: IMICRTS::MENU_PADDING) do background [0xff555555, Gosu::Color::GRAY] - label "Paused", text_size: 78, margin: 20 + banner "Paused", margin: 20 button "Resume", width: 1.0 do pop_state diff --git a/lib/states/menus/settings_menu.rb b/lib/states/menus/settings_menu.rb index 1f587de..c807914 100644 --- a/lib/states/menus/settings_menu.rb +++ b/lib/states/menus/settings_menu.rb @@ -6,7 +6,7 @@ class IMICRTS stack(width: IMICRTS::MENU_WIDTH, height: 1.0, padding: IMICRTS::MENU_PADDING) do background [0xff555555, Gosu::Color::GRAY] - label "Settings", text_size: 78, margin: 20 + banner "Settings", margin: 20 @skip_intro = check_box "Skip Intro", checked: Setting.enabled?(:skip_intro) diff --git a/lib/states/menus/solo_lobby_menu.rb b/lib/states/menus/solo_lobby_menu.rb index 5bdb9bd..e3fb760 100644 --- a/lib/states/menus/solo_lobby_menu.rb +++ b/lib/states/menus/solo_lobby_menu.rb @@ -6,7 +6,7 @@ class IMICRTS stack(width: 1.0, height: 1.0, padding: IMICRTS::MENU_PADDING) do background [0xff555555, Gosu::Color::GRAY] - label "Lobby", text_size: 78, margin: 20 + banner "Lobby", margin: 20 flow(width: 1.0, height: 0.8) do flow(width: 0.70, height: 1.0) do stack(width: 0.40) do @@ -50,25 +50,29 @@ class IMICRTS stack(width: 0.30, height: 1.0) do # TODO: Show preview image label "Map" - @map_name = list_box items: [:test_map], choose: :test_map, width: 1.0 - @map_name.subscribe(:changed) do |sender, value| - map = Map.new(map_file: "maps/#{value}.tmx") - @map_preview.instance_variable_set(:"@image", map.render_preview) - @map_preview.recalculate + maps_list = Dir.glob("#{GAME_ROOT_PATH}/assets/maps/*.tmx").map do |m| + File.basename(m, ".tmx").to_sym end - @map_preview = image "#{GAME_ROOT_PATH}/assets/logo.png", width: 1.0, border_thickness: 2, border_color: Gosu::Color::BLACK, background: Gosu::Color::GRAY + + @map_name = list_box items: maps_list, choose: Setting.get(:default_map).to_sym, width: 1.0 + @map_name.subscribe(:changed) do |sender, value| + @map_preview.value = map_preview(value) + end + + @map_preview = image map_preview(@map_name.value), width: 1.0, border_thickness: 2, border_color: Gosu::Color::BLACK, background: Gosu::Color::GRAY end end flow(width: 1.0, height: 0.2) do button("Accept") do save_playerdata - map = Map.new(map_file: "maps/#{@map_name.value}.tmx") + players = [ - { id: 0, team: @player_team.value.to_i, spawnpoint: map.spawnpoints.last, color: @player_color.value.to_sym }, - { id: 1, team: 2, spawnpoint: map.spawnpoints.first, color: :lightblue } + { id: 0, team: @player_team.value.to_i, spawnpoint: @map.spawnpoints.last, color: @player_color.value.to_sym }, + { id: 1, team: 2, spawnpoint: @map.spawnpoints.first, color: :lightblue } ] - push_state(Game, networking_mode: :virtual, map: map, players: players) + + push_state(Game, networking_mode: :virtual, map: @map, players: players) end button("Back", align: :right) do @@ -83,8 +87,14 @@ class IMICRTS Setting.set(:player_name, @player_name.value) Setting.set(:player_color, @player_color.value.to_sym) Setting.set(:player_team, @player_team.value.to_i) + Setting.set(:default_map, @map_name.value.to_s) Setting.save! end + + def map_preview(map_name) + @map = Map.new(map_file: "maps/#{map_name}.tmx") + @map.render_preview + end end end