Browse Source

Add singleplayer functionality; fix -hero arg

master
Luna 7 years ago
parent
commit
257346db5a
5 changed files with 94 additions and 17 deletions
  1. +1
    -1
      scenes/menu.tscn
  2. +82
    -0
      scenes/singleplayer_lobby.tscn
  3. +1
    -1
      scripts/hero_select.gd
  4. +6
    -1
      scripts/lobby.gd
  5. +4
    -14
      scripts/menu.gd

+ 1
- 1
scenes/menu.tscn View File

@ -135,7 +135,7 @@ toggle_mode = false
enabled_focus_mode = 2
shortcut = null
group = null
text = "Singleplayer"
text = "Practice Range"
flat = false
align = 1


+ 82
- 0
scenes/singleplayer_lobby.tscn View File

@ -0,0 +1,82 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://scenes/lobby.tscn" type="PackedScene" id=1]
[ext_resource path="res://assets/DejaVuSansMono.ttf" type="DynamicFontData" id=2]
[sub_resource type="DynamicFont" id=1]
size = 40
use_mipmaps = false
use_filter = false
font_data = ExtResource( 2 )
[node name="Lobby" instance=ExtResource( 1 )]
[node name="Label" type="Label" parent="." index="0"]
anchor_left = 0.0
anchor_top = 0.0
anchor_right = 0.0
anchor_bottom = 0.0
margin_left = 602.0
margin_top = 276.0
margin_right = 938.0
margin_bottom = 324.0
rect_pivot_offset = Vector2( 0, 0 )
mouse_filter = 2
mouse_default_cursor_shape = 0
size_flags_horizontal = 1
size_flags_vertical = 4
custom_fonts/font = SubResource( 1 )
text = "Practice Range"
percent_visible = 1.0
lines_skipped = 0
max_lines_visible = -1
[node name="HeroSelect" parent="." index="1"]
margin_top = 62.0
margin_bottom = 62.0
[node name="Username" parent="." index="2"]
visible = false
margin_top = 308.0
margin_bottom = 341.0
[node name="Spectating" parent="." index="3"]
visible = false
[node name="LevelSelect" parent="." index="4"]
margin_top = 401.0
margin_bottom = 442.0
items = [ "Platform map", null, false, 0, null, "City-like thing", null, false, 1, null, "Slide", null, false, 2, null ]
[node name="TeamLabel" parent="." index="5"]
visible = false
[node name="Team" parent="." index="6"]
visible = false
[node name="PlayerList" parent="." index="7"]
visible = false
[node name="StartGame" parent="." index="8"]
margin_left = 41.0
margin_top = 486.0
margin_right = 163.0
margin_bottom = 526.0
text = "Play!"
[node name="VSeparator" parent="." index="9"]
visible = false
[editable path="HeroSelect"]

+ 1
- 1
scripts/hero_select.gd View File

@ -25,11 +25,11 @@ func _ready():
connect("item_selected", self, "set_hero")
func set_hero(hero):
select(hero)
networking.set_info("hero", hero)
func random_hero():
var hero = randi() % hero_names.size()
select(hero)
set_hero(hero)
return hero

+ 6
- 1
scripts/lobby.gd View File

@ -19,6 +19,7 @@ func _ready():
var level = util.args.get_value("-level")
if level == "r":
level = randi() % level_select.get_item_count()
level = int(level)
_set_level(level)
level_select.show()
@ -34,7 +35,11 @@ func _ready():
func _connected():
_send_name()
hero_select.random_hero()
if util.args.get_value("-hero") == "r":
hero_select.random_hero()
else:
print(util.args.get_value("-hero"))
hero_select.set_hero(int(util.args.get_value("-hero")))
if util.args.get_value("-start-game"):
networking.start_game()


+ 4
- 14
scripts/menu.gd View File

@ -19,7 +19,8 @@ func _custom_game():
get_tree().change_scene("res://scenes/custom_game.tscn")
func _singleplayer():
print("still refactoring singleplayer")
networking.start_server()
get_tree().change_scene("res://scenes/singleplayer_lobby.tscn")
# Command line
@ -33,17 +34,6 @@ func _option_sel(button_name, option):
func _arg_actions():
var o = util.args
# if o.get_value("-silent"):
# server_playing = false
# if o.get_value("-hero"):
# var hero = o.get_value("-hero")
# _option_sel("PlayerSettings/HeroSelect", hero)
# # For some reason, calling _option_sel doesn't trigger the actual selection
# select_hero(get_node("PlayerSettings/HeroSelect").get_selected_id())
# if o.get_value("-level"):
# _option_sel("CustomGame/LevelSelect", o.get_value("-level"))
# if o.get_value("-port"):
# port = o.get_value("-port")
# if o.get_value("-ai"):
# my_info.is_ai = true
# if not o.get_value("-no-record") and not o.get_value("-ai"):
@ -56,8 +46,8 @@ func _arg_actions():
if o.get_value("-client"):
networking.start_client()
get_tree().change_scene("res://scenes/lobby.tscn")
# if o.get_value("-singleplayer"):
# networking.call_deferred("start_singleplayer")
if o.get_value("-singleplayer"):
_singleplayer()
if o.get_value('-h'):
o.print_help()
quit()


Loading…
Cancel
Save