mirror of
https://github.com/cyberarm/i-mic-rts.git
synced 2025-12-15 07:42:34 +00:00
replaced use of label with banner for menu titles, updated solo lobby to show preview on load
This commit is contained in:
@@ -11,13 +11,13 @@ class IMICRTS
|
|||||||
@status = @messages[@messages_index]
|
@status = @messages[@messages_index]
|
||||||
|
|
||||||
@last_update = Gosu.milliseconds
|
@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)
|
push_state(MainMenu)
|
||||||
end
|
end
|
||||||
|
|
||||||
@loader = CyberarmEngine::Timer.new(250) do
|
@loader = CyberarmEngine::Timer.new(@update_interval) do
|
||||||
split = @status.scan(".")
|
split = @status.scan(".")
|
||||||
if split.size >= 3
|
if split.size >= 3
|
||||||
@messages_index+=1
|
@messages_index+=1
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ class IMICRTS
|
|||||||
@sidebar = stack(width: IMICRTS::MENU_WIDTH, height: 1.0, padding: IMICRTS::MENU_PADDING) do
|
@sidebar = stack(width: IMICRTS::MENU_WIDTH, height: 1.0, padding: IMICRTS::MENU_PADDING) do
|
||||||
background [0x55555555, 0x55666666]
|
background [0x55555555, 0x55666666]
|
||||||
|
|
||||||
label "SIDEBAR", text_size: 78, margin_bottom: 20
|
banner "SIDEBAR", margin_bottom: 20
|
||||||
|
|
||||||
flow(width: 1.0, height: 1.0) do
|
flow(width: 1.0, height: 1.0) do
|
||||||
@sidebar_actions = stack(width: 0.9) do
|
@sidebar_actions = stack(width: 0.9) do
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ class IMICRTS
|
|||||||
stack(width: IMICRTS::MENU_WIDTH, height: 1.0, padding: IMICRTS::MENU_PADDING) do
|
stack(width: IMICRTS::MENU_WIDTH, height: 1.0, padding: IMICRTS::MENU_PADDING) do
|
||||||
background [0xff555555, Gosu::Color::GRAY]
|
background [0xff555555, Gosu::Color::GRAY]
|
||||||
|
|
||||||
label "Credits", text_size: 78, margin: 20
|
banner "Credits", margin: 20
|
||||||
|
|
||||||
licenses = Gosu::LICENSES.lines
|
licenses = Gosu::LICENSES.lines
|
||||||
preamble = licenses.shift
|
preamble = licenses.shift
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ class IMICRTS
|
|||||||
|
|
||||||
stack(width: IMICRTS::MENU_WIDTH, height: 1.0, padding: IMICRTS::MENU_PADDING) do
|
stack(width: IMICRTS::MENU_WIDTH, height: 1.0, padding: IMICRTS::MENU_PADDING) do
|
||||||
background [0xff555555, Gosu::Color::GRAY]
|
background [0xff555555, Gosu::Color::GRAY]
|
||||||
label "Load", text_size: 78, margin: 20
|
banner "Load", margin: 20
|
||||||
|
|
||||||
label "Replays"
|
label "Replays"
|
||||||
stack(width: 1.0, height: 0.30) do
|
stack(width: 1.0, height: 0.30) do
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ class IMICRTS
|
|||||||
|
|
||||||
stack(width: IMICRTS::MENU_WIDTH, height: 1.0, padding: IMICRTS::MENU_PADDING) do
|
stack(width: IMICRTS::MENU_WIDTH, height: 1.0, padding: IMICRTS::MENU_PADDING) do
|
||||||
background [0xff555555, Gosu::Color::GRAY]
|
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
|
button("Campaign", width: 1.0, enabled: false, tip: "No campaign available, yet...") do
|
||||||
push_state(CampaignMenu)
|
push_state(CampaignMenu)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ class IMICRTS
|
|||||||
stack(width: IMICRTS::MENU_WIDTH, height: 1.0, padding: IMICRTS::MENU_PADDING) do
|
stack(width: IMICRTS::MENU_WIDTH, height: 1.0, padding: IMICRTS::MENU_PADDING) do
|
||||||
background [0xff555555, Gosu::Color::GRAY]
|
background [0xff555555, Gosu::Color::GRAY]
|
||||||
|
|
||||||
label "Multiplayer", text_size: 78, margin: 20
|
banner "Multiplayer", margin: 20
|
||||||
label "Games", text_size: 32
|
title "Games"
|
||||||
@games_list = stack(border_color: Gosu::Color::WHITE, border_thickness: 2) do
|
@games_list = stack(border_color: Gosu::Color::WHITE, border_thickness: 2) do
|
||||||
end
|
end
|
||||||
flow do
|
flow do
|
||||||
@@ -15,10 +15,10 @@ class IMICRTS
|
|||||||
refresh_games
|
refresh_games
|
||||||
end
|
end
|
||||||
button("Host Game") do
|
button("Host Game") do
|
||||||
push_state(HostMultiplayerGameMenu)
|
# push_state(HostMultiplayerGameMenu)
|
||||||
end
|
end
|
||||||
button("Join Game") do
|
button("Join Game") do
|
||||||
push_state(MultiplayerLobbyMenu)
|
# push_state(MultiplayerLobbyMenu)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ class IMICRTS
|
|||||||
def setup
|
def setup
|
||||||
stack(width: IMICRTS::MENU_WIDTH, height: 1.0, padding: IMICRTS::MENU_PADDING) do
|
stack(width: IMICRTS::MENU_WIDTH, height: 1.0, padding: IMICRTS::MENU_PADDING) do
|
||||||
background [0xff555555, Gosu::Color::GRAY]
|
background [0xff555555, Gosu::Color::GRAY]
|
||||||
label "Paused", text_size: 78, margin: 20
|
banner "Paused", margin: 20
|
||||||
|
|
||||||
button "Resume", width: 1.0 do
|
button "Resume", width: 1.0 do
|
||||||
pop_state
|
pop_state
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ class IMICRTS
|
|||||||
stack(width: IMICRTS::MENU_WIDTH, height: 1.0, padding: IMICRTS::MENU_PADDING) do
|
stack(width: IMICRTS::MENU_WIDTH, height: 1.0, padding: IMICRTS::MENU_PADDING) do
|
||||||
background [0xff555555, Gosu::Color::GRAY]
|
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)
|
@skip_intro = check_box "Skip Intro", checked: Setting.enabled?(:skip_intro)
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ class IMICRTS
|
|||||||
stack(width: 1.0, height: 1.0, padding: IMICRTS::MENU_PADDING) do
|
stack(width: 1.0, height: 1.0, padding: IMICRTS::MENU_PADDING) do
|
||||||
background [0xff555555, Gosu::Color::GRAY]
|
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: 1.0, height: 0.8) do
|
||||||
flow(width: 0.70, height: 1.0) do
|
flow(width: 0.70, height: 1.0) do
|
||||||
stack(width: 0.40) do
|
stack(width: 0.40) do
|
||||||
@@ -50,25 +50,29 @@ class IMICRTS
|
|||||||
stack(width: 0.30, height: 1.0) do
|
stack(width: 0.30, height: 1.0) do
|
||||||
# TODO: Show preview image
|
# TODO: Show preview image
|
||||||
label "Map"
|
label "Map"
|
||||||
@map_name = list_box items: [:test_map], choose: :test_map, width: 1.0
|
maps_list = Dir.glob("#{GAME_ROOT_PATH}/assets/maps/*.tmx").map do |m|
|
||||||
@map_name.subscribe(:changed) do |sender, value|
|
File.basename(m, ".tmx").to_sym
|
||||||
map = Map.new(map_file: "maps/#{value}.tmx")
|
|
||||||
@map_preview.instance_variable_set(:"@image", map.render_preview)
|
|
||||||
@map_preview.recalculate
|
|
||||||
end
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
flow(width: 1.0, height: 0.2) do
|
flow(width: 1.0, height: 0.2) do
|
||||||
button("Accept") do
|
button("Accept") do
|
||||||
save_playerdata
|
save_playerdata
|
||||||
map = Map.new(map_file: "maps/#{@map_name.value}.tmx")
|
|
||||||
players = [
|
players = [
|
||||||
{ id: 0, team: @player_team.value.to_i, spawnpoint: map.spawnpoints.last, color: @player_color.value.to_sym },
|
{ 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: 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
|
end
|
||||||
|
|
||||||
button("Back", align: :right) do
|
button("Back", align: :right) do
|
||||||
@@ -83,8 +87,14 @@ class IMICRTS
|
|||||||
Setting.set(:player_name, @player_name.value)
|
Setting.set(:player_name, @player_name.value)
|
||||||
Setting.set(:player_color, @player_color.value.to_sym)
|
Setting.set(:player_color, @player_color.value.to_sym)
|
||||||
Setting.set(:player_team, @player_team.value.to_i)
|
Setting.set(:player_team, @player_team.value.to_i)
|
||||||
|
Setting.set(:default_map, @map_name.value.to_s)
|
||||||
|
|
||||||
Setting.save!
|
Setting.save!
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def map_preview(map_name)
|
||||||
|
@map = Map.new(map_file: "maps/#{map_name}.tmx")
|
||||||
|
@map.render_preview
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user