76 lines
2.3 KiB
GDScript
76 lines
2.3 KiB
GDScript
extends Control
|
|
const ABILITY_TO_CARDS_SIDE_CARD = preload("res://scene/ability_to_cards_side_card.tscn")
|
|
const ABILITY_TO_CARD_NEED = preload("res://scene/ability_to_card_need.tscn")
|
|
signal close
|
|
var all_could_make_item:Array
|
|
func fresh():
|
|
before_click_card=null
|
|
for i in %card_add_pos.get_children():
|
|
i.queue_free()
|
|
for i in %need_add_pos.get_children():
|
|
i.queue_free()
|
|
all_could_make_item=Global.get_now_game_item_could_make()
|
|
for i in all_could_make_item.size():
|
|
|
|
var new_size_card=ABILITY_TO_CARDS_SIDE_CARD.instantiate()
|
|
%card_add_pos.add_child(new_size_card)
|
|
new_size_card.selected=false
|
|
if i==0:
|
|
side_click(new_size_card,0)
|
|
new_size_card.click.connect(side_click.bindv([new_size_card,i]))
|
|
new_size_card.set_text(Database.get_item_name(all_could_make_item[i]))
|
|
pass
|
|
|
|
var before_click_card
|
|
var now_selected_item_ind:int=0
|
|
func side_click(side_card,ind:int):
|
|
now_selected_item_ind=ind
|
|
if before_click_card!=null:
|
|
before_click_card.selected=false
|
|
side_card.selected=true
|
|
var item_id=all_could_make_item[ind]
|
|
var item_data=Database.get_item_data(item_id)
|
|
var need_material=ItemTool.get_item_make_material(item_data)
|
|
%introduction.text=item_data["introduction"]
|
|
for i in %need_add_pos.get_children():
|
|
i.queue_free()
|
|
%make.disable(false)
|
|
for i in need_material.keys():
|
|
var new_need=ABILITY_TO_CARD_NEED.instantiate()
|
|
%need_add_pos.add_child(new_need)
|
|
var now_item_num=Global.get_item_by_id(i)
|
|
var need_num:int=need_material[i]
|
|
if now_item_num<need_num:
|
|
new_need.set_color(Color.RED)
|
|
%make.disable(true)
|
|
new_need.set_text(Database.get_item_name(i)+":"+str(now_item_num)+"/"+str(need_num))
|
|
pass
|
|
pass
|
|
|
|
|
|
func _on_make_pressed() -> void:
|
|
var could_make:bool=true
|
|
var item_id=all_could_make_item[now_selected_item_ind]
|
|
var item_data=Database.get_item_data(item_id)
|
|
var need_material=ItemTool.get_item_make_material(item_data)
|
|
for i in need_material.keys():
|
|
var now_item_num=Global.get_item_by_id(i)
|
|
var need_num:int=need_material[i]
|
|
if now_item_num<need_num:
|
|
could_make=false
|
|
break
|
|
if could_make:
|
|
for i in need_material.keys():
|
|
var need_num:int=need_material[i]
|
|
Global.decrease_item_num_id(i,need_num)
|
|
Global.add_item_to_bag(item_data)
|
|
fresh()
|
|
pass
|
|
pass # Replace with function body.
|
|
|
|
|
|
func _on_back_pressed() -> void:
|
|
self.hide()
|
|
close.emit()
|
|
pass # Replace with function body.
|