2024-09-19 12:04:52 +08:00
|
|
|
extends Control
|
2024-09-21 11:52:44 +08:00
|
|
|
class_name GameFlow
|
2024-09-19 12:04:52 +08:00
|
|
|
@onready var back: TextureRect = $back
|
|
|
|
@onready var event: HBoxContainer = $bottom_container/event
|
2024-09-20 20:20:14 +08:00
|
|
|
@onready var place_add: VBoxContainer = $place_add
|
|
|
|
@onready var animation_player: AnimationPlayer = $AnimationPlayer
|
|
|
|
@onready var animation_mask: ColorRect = $animation_mask
|
|
|
|
@onready var character_texture: TextureRect = $hbox/TextureRect/TextureRect/character_texture
|
|
|
|
@onready var event_panel: Control = $event_panel
|
2024-09-21 11:52:44 +08:00
|
|
|
@onready var character_name: Label = $hbox/TextureRect2/vbox/HBoxContainer/character_name
|
2024-09-22 17:37:51 +08:00
|
|
|
@onready var map: Control = $map
|
|
|
|
@onready var date: Label = $hbox/TextureRect2/vbox/date
|
2024-09-23 11:47:55 +08:00
|
|
|
@onready var touch_add_pos: Control = $touch_add_pos
|
2024-09-22 17:37:51 +08:00
|
|
|
|
|
|
|
const GAME_FLOW_TOUCH = preload("res://scene/game_flow_touch.tscn")
|
2024-09-20 20:20:14 +08:00
|
|
|
|
2024-09-19 12:04:52 +08:00
|
|
|
const GAME_FLOW_EVENT = preload("res://scene/game_flow_event.tscn")
|
2024-09-20 20:20:14 +08:00
|
|
|
const GAME_FLOW_PLACE = preload("res://scene/game_flow_place.tscn")
|
2024-09-19 12:04:52 +08:00
|
|
|
var scene_data:Dictionary
|
|
|
|
func _ready() -> void:
|
2024-10-04 18:08:33 +08:00
|
|
|
set_scene(Global.get_now_scene())
|
2024-09-22 17:37:51 +08:00
|
|
|
update_date()
|
|
|
|
Global.time_changed.connect(update_date)
|
2024-09-21 11:52:44 +08:00
|
|
|
Global.now_game_flow=self
|
2024-09-20 20:20:14 +08:00
|
|
|
var character_data=Global.get_now_character_data()
|
2024-10-04 18:08:33 +08:00
|
|
|
character_texture.texture=Database.get_texture(CharacterTool.get_head(character_data))
|
2024-09-27 17:51:20 +08:00
|
|
|
character_name.text=CharacterTool.get_character_name(character_data)
|
2024-10-01 19:11:46 +08:00
|
|
|
update_game_currency()
|
|
|
|
Global.game_currency_changed.connect(update_game_currency)
|
2024-09-19 12:04:52 +08:00
|
|
|
func set_scene(id:String):
|
2024-10-04 18:08:33 +08:00
|
|
|
scene_data=Database.get_scene_data(id)
|
|
|
|
back.texture=Database.get_texture(scene_data["texture"])
|
2024-09-19 12:04:52 +08:00
|
|
|
for i in event.get_children():
|
|
|
|
i.queue_free()
|
2024-09-20 20:20:14 +08:00
|
|
|
for i in place_add.get_children():
|
|
|
|
i.queue_free()
|
2024-09-23 11:47:55 +08:00
|
|
|
for i in touch_add_pos.get_children():
|
|
|
|
i.queue_free()
|
2024-09-19 12:04:52 +08:00
|
|
|
for i in scene_data["quick_event"]:
|
|
|
|
var new_btn=GAME_FLOW_EVENT.instantiate()
|
|
|
|
event.add_child(new_btn)
|
|
|
|
new_btn.set_data(i)
|
2024-09-22 11:48:18 +08:00
|
|
|
new_btn.pressed.connect(show_event)
|
2024-09-20 20:20:14 +08:00
|
|
|
for i in scene_data["linked_scene"]:
|
|
|
|
var new_place=GAME_FLOW_PLACE.instantiate()
|
|
|
|
place_add.add_child(new_place)
|
|
|
|
new_place.set_data(i)
|
|
|
|
new_place.pressed.connect(place_pressed)
|
2024-09-23 11:47:55 +08:00
|
|
|
pass
|
2024-09-23 17:27:43 +08:00
|
|
|
if scene_data.has("touch"):
|
|
|
|
var touch_data:Dictionary=scene_data["touch"].duplicate()
|
|
|
|
for i in touch_data.keys():
|
|
|
|
var new_touch=GAME_FLOW_TOUCH.instantiate()
|
|
|
|
touch_add_pos.add_child(new_touch)
|
|
|
|
touch_data[i]["scene_id"]=id
|
|
|
|
touch_data[i]["name"]=i
|
|
|
|
new_touch.set_data(touch_data[i])
|
|
|
|
new_touch.judge()
|
|
|
|
|
2024-09-23 11:47:55 +08:00
|
|
|
|
2024-09-23 17:27:43 +08:00
|
|
|
func judge_touch():
|
|
|
|
for i in touch_add_pos.get_children():
|
|
|
|
i.judge()
|
|
|
|
func touch_click(data:Dictionary):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-09-20 20:20:14 +08:00
|
|
|
pass
|
2024-09-22 17:37:51 +08:00
|
|
|
func update_date():
|
|
|
|
var time_dic=Global.get_time_dictionary()
|
|
|
|
date.text=str(time_dic["year"])+"/"+str(time_dic["month"])+"/"+str(time_dic["day"])
|
2024-09-23 17:27:43 +08:00
|
|
|
judge_touch()
|
2024-09-20 20:20:14 +08:00
|
|
|
func place_pressed(data:Dictionary):
|
2024-09-22 17:37:51 +08:00
|
|
|
|
|
|
|
Global.move_scene(data["id"],data["distance"])
|
|
|
|
func change_scene(scene_id:String,distance:float):
|
|
|
|
|
2024-09-20 20:20:14 +08:00
|
|
|
animation_mask.show()
|
|
|
|
animation_player.play("change")
|
|
|
|
await animation_player.animation_finished
|
2024-09-22 17:37:51 +08:00
|
|
|
set_scene(scene_id)
|
2024-09-20 20:20:14 +08:00
|
|
|
await get_tree().create_timer(0.2).timeout
|
|
|
|
animation_player.play_backwards("change")
|
|
|
|
await animation_player.animation_finished
|
|
|
|
animation_mask.hide()
|
|
|
|
pass
|
2024-09-22 11:48:18 +08:00
|
|
|
func show_event(event_id:String):
|
2024-09-20 20:20:14 +08:00
|
|
|
event_panel.show()
|
2024-09-22 11:48:18 +08:00
|
|
|
event_panel.set_event_data(event_id)
|
2024-09-19 12:04:52 +08:00
|
|
|
pass
|
2024-09-22 17:37:51 +08:00
|
|
|
|
|
|
|
|
|
|
|
func _on_map_pressed() -> void:
|
|
|
|
map.set_map(scene_data["map"])
|
|
|
|
map.modulate.a=0
|
|
|
|
var t=get_tree().create_tween()
|
|
|
|
t.tween_property(map,"modulate:a",1,0.2)
|
|
|
|
map.show()
|
|
|
|
|
|
|
|
pass # Replace with function body.
|
2024-09-30 18:06:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
func _on_head_btn_pressed() -> void:
|
|
|
|
%basic_mes.data=Global.get_now_character_data()
|
|
|
|
%basic_mes.init_from_data()
|
|
|
|
%basic_mes.show()
|
|
|
|
pass # Replace with function body.
|
2024-10-01 19:11:46 +08:00
|
|
|
|
|
|
|
func update_game_currency():
|
|
|
|
%jinqian.text=str(Global.get_currency_game(1))
|
|
|
|
%shengming.text=str(Global.get_currency_game(0))
|
|
|
|
%jingshen.text=str(Global.get_currency_game(2))
|
2024-10-02 18:35:48 +08:00
|
|
|
#显示交易
|
|
|
|
func show_trade(NPC_id:String):
|
|
|
|
%trade.set_data(NPC_id)
|
|
|
|
%trade.show()
|
2024-10-04 18:08:33 +08:00
|
|
|
|
|
|
|
|
|
|
|
func _on_save_pressed() -> void:
|
|
|
|
%save_and_load.show()
|
|
|
|
%save_and_load.fresh()
|
|
|
|
pass # Replace with function body.
|
|
|
|
|
|
|
|
|
|
|
|
func _on_load_pressed() -> void:
|
|
|
|
pass # Replace with function body.
|
2024-10-05 18:44:58 +08:00
|
|
|
#显示对应id的鉴定事件
|
|
|
|
func show_identification(id:String):
|
|
|
|
%identification.show()
|
|
|
|
var indetification=Database.get_identifation_data(id)
|
|
|
|
%identification.set_data(indetification)
|
|
|
|
pass
|
2024-10-08 17:01:28 +08:00
|
|
|
|
|
|
|
func show_auction(npc_id_array:Array,item_id_array:Array):
|
|
|
|
%auction.show()
|
|
|
|
await get_tree().process_frame
|
|
|
|
await get_tree().process_frame
|
|
|
|
var npc_data_arr:Array=[]
|
|
|
|
var item_data_arr:Array=[]
|
|
|
|
for i in npc_id_array:
|
|
|
|
var npc_data=Global.get_now_game_npc_data(i)
|
|
|
|
npc_data_arr.append(npc_data)
|
|
|
|
for i in item_id_array:
|
|
|
|
var item_data=Database.get_item_data(i)
|
|
|
|
item_data_arr.append(item_data)
|
|
|
|
%auction.set_npc_arr_and_item_arr(npc_data_arr,item_data_arr)
|
2024-10-09 20:34:18 +08:00
|
|
|
|
|
|
|
func show_item_level_up():
|
|
|
|
|
|
|
|
%item_level_up.show()
|
|
|
|
%item_level_up.fresh()
|
|
|
|
pass
|