late Sunday update: netcode changes, bot improvements, bot development
This commit is contained in:
@@ -5,6 +5,9 @@ var LobbyMenu = preload("res://scenes/menus/LobbyMenu.tscn")
|
||||
|
||||
func _ready():
|
||||
find_node("bots").set_pressed(config.get_value("game","bots", true))
|
||||
find_node("bot_difficulty").set_value(config.get_value("game","bot_difficulty", gamestate.DEFAULT_BOT_DIFFICULTY))
|
||||
find_node("bot_difficulty").set_editable(find_node("bots").is_pressed())
|
||||
find_node("bot_difficulty").set_tooltip(tr("BOT_DIFFICULTY"))
|
||||
|
||||
|
||||
func _draw():
|
||||
@@ -14,7 +17,8 @@ func _draw():
|
||||
func _on_host_pressed():
|
||||
var port = find_node("port").get_value()
|
||||
var bots = find_node("bots").is_pressed()
|
||||
var err = server.host_game(int(port), bots)
|
||||
var bot_difficulty = find_node("bot_difficulty").get_value()
|
||||
var err = server.host_game(int(port), bots, bot_difficulty)
|
||||
|
||||
if err == OK:
|
||||
var lobby_menu = LobbyMenu.instance()
|
||||
@@ -30,4 +34,8 @@ func _on_host_pressed():
|
||||
|
||||
func _on_back_pressed():
|
||||
queue_free()
|
||||
get_tree().get_root().get_node("multiplayer_menu").show()
|
||||
get_tree().get_root().get_node("multiplayer_menu").show()
|
||||
|
||||
|
||||
func _on_bots_toggled(button_pressed):
|
||||
find_node("bot_difficulty").set_editable(button_pressed)
|
||||
@@ -1,5 +1,7 @@
|
||||
extends Control
|
||||
|
||||
var SettingsMenu = preload("res://scenes/menus/SettingsMenu.tscn")
|
||||
|
||||
|
||||
func _draw():
|
||||
find_node("resume").grab_focus()
|
||||
@@ -10,7 +12,9 @@ func _on_resume_pressed():
|
||||
|
||||
|
||||
func _on_settings_pressed():
|
||||
pass
|
||||
var settings_menu = SettingsMenu.instance()
|
||||
get_parent().add_child(settings_menu)
|
||||
hide()
|
||||
|
||||
|
||||
func _on_end_pressed():
|
||||
|
||||
@@ -33,7 +33,7 @@ func _draw():
|
||||
find_node("ready").grab_focus()
|
||||
|
||||
|
||||
func _physics_process(delta):
|
||||
func _process(delta):
|
||||
if not countdown_timer.is_stopped():
|
||||
get_node("countdown").text = str(int(countdown_timer.get_time_left()) + 1)
|
||||
|
||||
|
||||
@@ -5,6 +5,9 @@ onready var player_settings = find_node("player_settings")
|
||||
|
||||
func _ready():
|
||||
find_node("bots").set_pressed(config.get_value("game","bots", true))
|
||||
find_node("bot_difficulty").set_value(config.get_value("game","bot_difficulty", gamestate.DEFAULT_BOT_DIFFICULTY))
|
||||
find_node("bot_difficulty").set_editable(find_node("bots").is_pressed())
|
||||
find_node("bot_difficulty").set_tooltip(tr("BOT_DIFFICULTY"))
|
||||
|
||||
|
||||
func _draw():
|
||||
@@ -15,10 +18,15 @@ func _on_start_pressed():
|
||||
var name = player_settings.get_name_node().text
|
||||
var color = player_settings.get_color_node().color
|
||||
var bots = find_node("bots").is_pressed()
|
||||
var bot_difficulty = find_node("bot_difficulty").get_value()
|
||||
queue_free()
|
||||
server.local_game(name,color,bots)
|
||||
server.local_game(name,color,bots,bot_difficulty)
|
||||
|
||||
|
||||
func _on_back_pressed():
|
||||
queue_free()
|
||||
get_tree().get_root().get_node("main_menu").show()
|
||||
|
||||
|
||||
func _on_bots_toggled(button_pressed):
|
||||
find_node("bot_difficulty").set_editable(button_pressed)
|
||||
|
||||
@@ -42,4 +42,9 @@ func _server_disconnected():
|
||||
func show_error_dialog(text:String):
|
||||
var dialog = get_node("error_dialog")
|
||||
dialog.set_text(text)
|
||||
dialog.popup_centered()
|
||||
dialog.popup_centered()
|
||||
|
||||
|
||||
func _on_info_pressed():
|
||||
var dialog = get_node("info_popup")
|
||||
dialog.popup_centered()
|
||||
|
||||
@@ -8,6 +8,9 @@ func _ready():
|
||||
game_title += " by " + player_name
|
||||
find_node("name").set_text(game_title)
|
||||
find_node("bots").set_pressed(config.get_value("game","bots", true))
|
||||
find_node("bot_difficulty").set_value(config.get_value("game","bot_difficulty", gamestate.DEFAULT_BOT_DIFFICULTY))
|
||||
find_node("bot_difficulty").set_editable(find_node("bots").is_pressed())
|
||||
find_node("bot_difficulty").set_tooltip(tr("BOT_DIFFICULTY"))
|
||||
|
||||
|
||||
func _draw():
|
||||
@@ -21,7 +24,8 @@ func _on_create_pressed():
|
||||
var bots = 0
|
||||
if find_node("bots").is_pressed():
|
||||
bots = 1
|
||||
req.post_request('client/game/create', to_json({'name' : server_name, 'bots' : bots}))
|
||||
var bot_difficulty = find_node("bot_difficulty").get_value()
|
||||
req.post_request('client/game/create', to_json({'name' : server_name, 'bots' : bots, 'bot_difficulty' : bot_difficulty}))
|
||||
|
||||
|
||||
func _on_game_created(result, response_code, headers, body):
|
||||
@@ -44,3 +48,7 @@ func _on_name_text_changed(new_text):
|
||||
func _on_back_pressed():
|
||||
queue_free()
|
||||
get_tree().get_root().get_node("multiplayer_menu").show()
|
||||
|
||||
|
||||
func _on_bots_toggled(button_pressed):
|
||||
find_node("bot_difficulty").set_editable(button_pressed)
|
||||
|
||||
@@ -77,7 +77,7 @@ func get_games(only_open:bool):
|
||||
if only_open:
|
||||
req.get_request('client/games?open')
|
||||
else:
|
||||
req.get_request('client/games')
|
||||
req.get_request('client/games')
|
||||
|
||||
|
||||
func _on_get_games(result, response_code, headers, body):
|
||||
@@ -94,7 +94,7 @@ func _on_get_games(result, response_code, headers, body):
|
||||
name += "/4)"
|
||||
if game.bots:
|
||||
name += " [with Bots]"
|
||||
games_list.add_item(name)
|
||||
games_list.add_item(name)
|
||||
if game.running:
|
||||
games_list.set_item_icon(games_list.get_item_count()-1, games_list.get_node("running_icon").get_button_icon())
|
||||
elif game.has('private') && game.private:
|
||||
|
||||
@@ -16,6 +16,10 @@ func _ready():
|
||||
init_mapping()
|
||||
|
||||
|
||||
func apply():
|
||||
config.set_value("controls","mapping",new_inputs)
|
||||
|
||||
|
||||
func init_mapping():
|
||||
new_inputs = {}
|
||||
for action in config.CONTROL_ACTIONS:
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
extends Tabs
|
||||
|
||||
onready var player_settings = find_node("settings_player")
|
||||
|
||||
|
||||
func _ready():
|
||||
# game
|
||||
find_node("bots").set_pressed(config.get_value("game","bots", true))
|
||||
find_node("bot_difficulty").set_value(config.get_value("game","bot_difficulty", gamestate.DEFAULT_BOT_DIFFICULTY))
|
||||
find_node("bot_difficulty").set_tooltip(tr("BOT_DIFFICULTY"))
|
||||
|
||||
|
||||
func apply():
|
||||
config.set_value("game","player_name",player_settings.get_name_node().get_text())
|
||||
config.set_value("game","player_color",player_settings.get_color_node().color)
|
||||
config.set_value("game","bots",find_node("bots").is_pressed())
|
||||
config.set_value("game","bot_difficulty",find_node("bot_difficulty").get_value())
|
||||
@@ -0,0 +1,24 @@
|
||||
extends Tabs
|
||||
|
||||
|
||||
func _ready():
|
||||
find_node("fullscreen").set_pressed(config.get_value("graphics","fullscreen", true))
|
||||
find_node("light").set_pressed(config.get_value("graphics","light", false))
|
||||
find_node("shadows").set_pressed(config.get_value("graphics","shadows", false))
|
||||
find_node("shadows").set_disabled(not find_node("light").is_pressed())
|
||||
|
||||
for resolution in config.RESOLUTIONS:
|
||||
find_node("resolution").add_item(str(resolution.x) + " * " + str(resolution.y))
|
||||
|
||||
find_node("resolution").select(config.RESOLUTIONS.find(config.get_value("graphics","resolution", config.RESOLUTIONS[0])))
|
||||
|
||||
|
||||
func apply():
|
||||
config.set_value("graphics","resolution",config.RESOLUTIONS[find_node("resolution").get_selected()])
|
||||
config.set_value("graphics","fullscreen",find_node("fullscreen").is_pressed())
|
||||
config.set_value("graphics","light",find_node("light").is_pressed())
|
||||
config.set_value("graphics","shadows",find_node("shadows").is_pressed())
|
||||
|
||||
|
||||
func _on_light_toggled(button_pressed):
|
||||
find_node("shadows").set_disabled(not button_pressed)
|
||||
@@ -1,35 +1,14 @@
|
||||
extends Control
|
||||
|
||||
onready var player_settings = find_node("settings_player")
|
||||
onready var game_tab = find_node("game")
|
||||
onready var controls_tab = find_node("controls")
|
||||
onready var graphics_tab = find_node("graphics")
|
||||
onready var system_tab = find_node("system")
|
||||
|
||||
var locale
|
||||
|
||||
|
||||
func _ready():
|
||||
get_node("menu/back").connect("pressed",self,"_on_back_pressed")
|
||||
|
||||
# game
|
||||
find_node("bots").set_pressed(config.get_value("game","bots", true))
|
||||
|
||||
# graphics
|
||||
find_node("fullscreen").set_pressed(config.get_value("graphics","fullscreen", true))
|
||||
find_node("light").set_pressed(config.get_value("graphics","light", false))
|
||||
find_node("shadows").set_pressed(config.get_value("graphics","shadows", false))
|
||||
find_node("shadows").set_disabled(not find_node("light").is_pressed())
|
||||
|
||||
for resolution in config.RESOLUTIONS:
|
||||
find_node("resolution").add_item(str(resolution.x) + " * " + str(resolution.y))
|
||||
|
||||
find_node("resolution").select(config.RESOLUTIONS.find(config.get_value("graphics","resolution", config.RESOLUTIONS[0])))
|
||||
|
||||
# system
|
||||
find_node("server_addr").set_text(game_server.get_server_addr())
|
||||
find_node("api_addr").set_text(game_server.get_api_addr())
|
||||
_init_locales()
|
||||
system_tab.connect("locale_changed", self, "on_locale_changed")
|
||||
|
||||
|
||||
func _draw():
|
||||
@@ -38,79 +17,30 @@ func _draw():
|
||||
|
||||
func _on_back_pressed():
|
||||
queue_free()
|
||||
get_tree().get_root().get_node("main_menu").show()
|
||||
if get_parent().has_node("ingame_menu"):
|
||||
get_parent().get_node("ingame_menu").show()
|
||||
get_tree().get_root().get_node("main_menu").hide()
|
||||
elif get_tree().get_root().has_node("main_menu"):
|
||||
get_tree().get_root().get_node("main_menu").show()
|
||||
|
||||
|
||||
func _on_locales_item_selected(index):
|
||||
match index:
|
||||
0:
|
||||
locale = "en"
|
||||
1:
|
||||
locale = "de"
|
||||
_:
|
||||
locale = "en"
|
||||
TranslationServer.set_locale(locale)
|
||||
func on_locale_changed():
|
||||
game_tab.set_name(tr("GAME"))
|
||||
controls_tab.set_name(tr("CONTROLS"))
|
||||
graphics_tab.set_name(tr("GRAPHICS"))
|
||||
system_tab.set_name(tr("SYSTEM"))
|
||||
|
||||
|
||||
func _init_locales():
|
||||
var locales = find_node("locales")
|
||||
locales.clear()
|
||||
locales.add_item(tr("LOCALE_EN"))
|
||||
locales.add_item(tr("LOCALE_DE"))
|
||||
locale = config.get_value("system","locale","en")
|
||||
match locale:
|
||||
"en":
|
||||
locales.select(0)
|
||||
_on_locales_item_selected(0)
|
||||
"de":
|
||||
locales.select(1)
|
||||
_on_locales_item_selected(1)
|
||||
|
||||
|
||||
func _on_locales_tree_exiting():
|
||||
config_apply.apply_locale()
|
||||
|
||||
|
||||
func _on_save_pressed():
|
||||
_on_apply_pressed()
|
||||
_on_back_pressed()
|
||||
|
||||
|
||||
func _on_apply_pressed():
|
||||
# game
|
||||
config.set_value("game","player_name",player_settings.get_name_node().get_text())
|
||||
config.set_value("game","player_color",player_settings.get_color_node().color)
|
||||
config.set_value("game","bots",find_node("bots").is_pressed())
|
||||
|
||||
# graphics
|
||||
config.set_value("graphics","resolution",config.RESOLUTIONS[find_node("resolution").get_selected()])
|
||||
config.set_value("graphics","fullscreen",find_node("fullscreen").is_pressed())
|
||||
config.set_value("graphics","light",find_node("light").is_pressed())
|
||||
config.set_value("graphics","shadows",find_node("shadows").is_pressed())
|
||||
|
||||
# controls
|
||||
config.set_value("controls","mapping",find_node("settings_controls").new_inputs)
|
||||
|
||||
# system
|
||||
config.set_value("system","locale",locale)
|
||||
var server_addr = find_node("server_addr").get_text()
|
||||
if server_addr.empty():
|
||||
server_addr = game_server.SERVER_ADDR
|
||||
config.set_value("system","server_addr",server_addr)
|
||||
|
||||
var api_addr = find_node("api_addr").get_text()
|
||||
if api_addr.empty():
|
||||
api_addr = game_server.API_ADDR
|
||||
config.set_value("system","api_addr",api_addr)
|
||||
game_tab.apply()
|
||||
graphics_tab.apply()
|
||||
controls_tab.apply()
|
||||
system_tab.apply()
|
||||
|
||||
config.save()
|
||||
|
||||
config_apply.apply_settings()
|
||||
|
||||
|
||||
func _on_light_toggled(button_pressed):
|
||||
find_node("shadows").set_disabled(not button_pressed)
|
||||
config_apply.apply_settings()
|
||||
@@ -0,0 +1,55 @@
|
||||
extends Tabs
|
||||
|
||||
var locale
|
||||
|
||||
signal locale_changed()
|
||||
|
||||
|
||||
func _ready():
|
||||
find_node("server_addr").set_text(game_server.get_server_addr())
|
||||
find_node("api_addr").set_text(game_server.get_api_addr())
|
||||
_init_locales()
|
||||
|
||||
|
||||
func apply():
|
||||
config.set_value("system","locale",locale)
|
||||
var server_addr = find_node("server_addr").get_text()
|
||||
if server_addr.empty():
|
||||
server_addr = game_server.SERVER_ADDR
|
||||
config.set_value("system","server_addr",server_addr)
|
||||
|
||||
var api_addr = find_node("api_addr").get_text()
|
||||
if api_addr.empty():
|
||||
api_addr = game_server.API_ADDR
|
||||
config.set_value("system","api_addr",api_addr)
|
||||
|
||||
|
||||
func _on_locales_item_selected(index):
|
||||
match index:
|
||||
0:
|
||||
locale = "en"
|
||||
1:
|
||||
locale = "de"
|
||||
_:
|
||||
locale = "en"
|
||||
TranslationServer.set_locale(locale)
|
||||
emit_signal("locale_changed")
|
||||
|
||||
|
||||
func _init_locales():
|
||||
var locales = find_node("locales")
|
||||
locales.clear()
|
||||
locales.add_item(tr("LOCALE_EN"))
|
||||
locales.add_item(tr("LOCALE_DE"))
|
||||
locale = config.get_value("system","locale","en")
|
||||
match locale:
|
||||
"en":
|
||||
locales.select(0)
|
||||
_on_locales_item_selected(0)
|
||||
"de":
|
||||
locales.select(1)
|
||||
_on_locales_item_selected(1)
|
||||
|
||||
|
||||
func _on_system_settings_menu_tree_exiting():
|
||||
config_apply.apply_locale()
|
||||
Reference in New Issue
Block a user