replaced use of label with banner for menu titles, updated solo lobby to show preview on load

This commit is contained in:
2021-01-05 20:32:56 -06:00
parent a6c2b080b9
commit b8d5bd2368
9 changed files with 34 additions and 24 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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