Files
kicking-high/proto1/hire_fire.gd
2019-07-17 16:01:38 +03:00

124 lines
4.6 KiB
GDScript3

extends WindowDialog
# Declare member variables here. Examples:
# var a = 2
# var b = "text"
# Called when the node enters the scene tree for the first time.
func build_lists():
$VBoxContainer/player_list.clear()
for k in world.line.keys():
var item_text: String = world.line[k].name
item_text += " " + world.line[k].lastname
item_text += " STR: " + str(int(world.line[k].strength * 100.0))
item_text += " Cost/day: " + str(world.line[k].cost)
if world.line[k].type == 0:
item_text += " team"
else:
item_text += " cheerleader"
var idx = $VBoxContainer/player_list.get_item_count()
$VBoxContainer/player_list.add_item(item_text)
$VBoxContainer/player_list.set_item_metadata(idx, {"id": k})
$VBoxContainer/team_list.clear()
for k in world.team.keys():
var item_text: String = world.team[k].name
item_text += " " + world.team[k].lastname
item_text += " STR: " + str(int(world.team[k].strength * 100.0))
item_text += " Cost/day: " + str(world.team[k].cost)
item_text += " team"
var idx = $VBoxContainer/team_list.get_item_count()
$VBoxContainer/team_list.add_item(item_text)
$VBoxContainer/team_list.set_item_metadata(idx, {"id": k, "type": world.team[k].type})
for k in world.cheer_team.keys():
var item_text: String = world.cheer_team[k].name
item_text += " " + world.cheer_team[k].lastname
item_text += " STR: " + str(int(world.cheer_team[k].strength * 100.0))
item_text += " Cost/day: " + str(world.cheer_team[k].cost)
item_text += " cheerleader"
var idx = $VBoxContainer/team_list.get_item_count()
$VBoxContainer/team_list.add_item(item_text)
$VBoxContainer/team_list.set_item_metadata(idx, {"id": k, "type": world.cheer_team[k].type})
func hire_candidate():
var sel: PoolIntArray = $VBoxContainer/player_list.get_selected_items()
if sel.size() == 0:
return
var idx = sel[0]
var meta: Dictionary = $VBoxContainer/player_list.get_item_metadata(idx)
var cd = world.line[meta.id]
if cd.type == 0:
var teamkeys = world.team.keys()
var newkey = 0
if teamkeys.size() > 0:
var maxkey = teamkeys.max()
newkey = maxkey + 1
var char_sc = load("res://npc_player.tscn").instance()
cd.scene = char_sc
get_tree().get_root().add_child(char_sc)
var nav: Navigation2D = get_node("/root/main/nav")
var p = nav.get_closest_point(get_node("/root/main/dormitory_players").global_position + Vector2(randf() * 100.0 - 50.0, randf() * 100 - 50.0))
char_sc.position = p
world.team[newkey] = cd
world.line.erase(meta.id)
build_lists()
update()
else:
var teamkeys = world.cheer_team.keys()
var newkey = 0
if teamkeys.size() > 0:
var maxkey = teamkeys.max()
newkey = maxkey + 1
var char_sc = load("res://npc_cheer.tscn").instance()
cd.scene = char_sc
get_tree().get_root().add_child(char_sc)
var nav: Navigation2D = get_node("/root/main/nav")
var p = nav.get_closest_point(get_node("/root/main/dormitory_cheer").global_position + Vector2(randf() * 100.0 - 50.0, randf() * 100 - 50.0))
char_sc.position = p
world.cheer_team[newkey] = cd
world.line.erase(meta.id)
build_lists()
update()
func hire_all():
for k in world.line.keys():
var cd = world.line[k]
if cd.type == 0:
var teamkeys = world.team.keys()
var newkey = 0
if teamkeys.size() > 0:
var maxkey = teamkeys.max()
newkey = maxkey + 1
var char_sc = load("res://npc_player.tscn").instance()
cd.scene = char_sc
get_tree().get_root().add_child(char_sc)
var nav: Navigation2D = get_node("/root/main/nav")
var p = nav.get_closest_point(get_node("/root/main/dormitory_players").global_position + Vector2(randf() * 100.0 - 50.0, randf() * 100 - 50.0))
char_sc.position = p
world.team[newkey] = cd
world.line.erase(k)
else:
var teamkeys = world.cheer_team.keys()
var newkey = 0
if teamkeys.size() > 0:
var maxkey = teamkeys.max()
newkey = maxkey + 1
var char_sc = load("res://npc_cheer.tscn").instance()
cd.scene = char_sc
get_tree().get_root().add_child(char_sc)
var nav: Navigation2D = get_node("/root/main/nav")
var p = nav.get_closest_point(get_node("/root/main/dormitory_cheer").global_position + Vector2(randf() * 100.0 - 50.0, randf() * 100 - 50.0))
char_sc.position = p
world.cheer_team[newkey] = cd
world.line.erase(k)
cd.scene.set_meta("data", cd)
build_lists()
update()
func _ready():
$VBoxContainer/close.connect("pressed", self, "hide")
connect("about_to_show", self, "build_lists")
$VBoxContainer/buttons/hire.connect("pressed", self, "hire_candidate")
$VBoxContainer/buttons/hire_all.connect("pressed", self, "hire_all")
# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta):
# pass