Browse Source

Add hero descriptions to UI

master
Luna 7 years ago
parent
commit
77f173461a
5 changed files with 135 additions and 88 deletions
  1. +33
    -3
      scenes/hero_select.tscn
  2. +9
    -0
      scripts/hero_select.gd
  3. +10
    -0
      scripts/hero_select_screen.gd
  4. +14
    -16
      scripts/lobby.gd

scenes/HeroSelect.tscn → scenes/hero_select.tscn View File


+ 9
- 0
scripts/hero_select.gd View File

@ -8,6 +8,15 @@ const hero_names = [
"PAZIENZA",
]
const hero_text = [
"DILIGENCE.\n\nWallride by jumping on walls.\n\nYour speed builds immensely as your Switch Charge increases.",
"WRATH.\n\nPress E and click (or just click) to build a wall.\n\nRight click to destroy one.",
"LUST.\n\nYou attract nearby heroes.\n\nPress E to switch to repelling them.",
"GENEROSITY.\n\nMake contact with a friend to boost their speed.\n\nPress E to separate.",
"PATIENCE.\n\nHold left mouse button on an enemy to slow them down.",
]
func _ready():
for hero_index in range(hero_names.size()):
add_item(hero_names[hero_index], hero_index)

+ 10
- 0
scripts/hero_select_screen.gd View File

@ -0,0 +1,10 @@
extends ColorRect
func _ready():
get_node("Hero").connect("item_selected", self, "update_description")
update_description(0)
func update_description(hero):
var description = get_node("Hero").hero_text[hero]
get_node("HeroDescription").set_text(description)

+ 14
- 16
scripts/lobby.gd View File

@ -36,15 +36,24 @@ func option_sel(button_name, option):
func _ready():
randomize()
get_node("Server").connect("pressed", self, "_server_init")
get_node("ServerStart").connect("pressed", self, "start_game")
get_node("Client").connect("pressed", self, "_client_init")
get_node("Singleplayer").connect("pressed", self, "_singleplayer_init")
get_node("HeroSelect").connect("item_selected", self, "select_hero")
var o = setup_options()
o.parse()
randomize()
if o.get_value("-silent-server"):
SERVER_PLAYING = false # TODO: Uncaps :(
if o.get_value("-hero"):
option_sel("HeroSelect", o.get_value("-hero"))
var hero = o.get_value("-hero")
option_sel("HeroSelect", hero)
# For some reason, calling option_sel doesn't trigger the actual selection
select_hero(get_node("HeroSelect").get_selected_id())
if o.get_value("-level"):
option_sel("ServerStart/LevelSelect", o.get_value("-level"))
if o.get_value("-server"):
@ -64,18 +73,9 @@ func _ready():
o.print_help()
quit()
# Called every time the node is added to the scene.
# Initialization here
get_node("Server").connect("pressed", self, "_server_init")
get_node("ServerStart").connect("pressed", self, "start_game")
get_node("Client").connect("pressed", self, "_client_init")
get_node("Singleplayer").connect("pressed", self, "_singleplayer_init")
get_tree().connect("network_peer_connected", self, "_player_connected")
get_tree().connect("network_peer_disconnected", self, "_player_disconnected")
get_tree().connect("connected_to_server", self, "_connected_ok")
get_node("HeroSelect").connect("item_selected", self, "select_hero")
func _client_init():
collect_info()
@ -157,6 +157,8 @@ sync func unregister_player(peer):
get_node("/root/Level/Players/%d" % peer).queue_free()
func select_hero(hero):
var description = get_node("HeroSelect").hero_text[hero]
get_node("HeroDescription").set_text(description)
rpc("set_hero", get_tree().get_network_unique_id(), hero)
sync func set_hero(peer, hero):
@ -228,7 +230,3 @@ sync func post_configure_game():
for p in player_info:
get_node("/root/Level/Players/%d" % p).begin()
#func _process(delta):
# # Called every frame. Delta is time since last frame.
# # Update game logic here.
# pass

Loading…
Cancel
Save