challenge-editor/scene/event.gd

61 lines
1.8 KiB
GDScript3
Raw Normal View History

2024-09-19 12:04:52 +08:00
extends Control
const EVENT_CHOICE_BUTTON = preload("res://scene/event_choice_button.tscn")
@onready var choice_add_pos: VBoxContainer = $MarginContainer/NinePatchRect/VBoxContainer/VBoxContainer/choice_add_pos
@onready var event_texture: TextureRect = $MarginContainer/HBoxContainer/event_texture
@onready var event_intro: Label = $MarginContainer/NinePatchRect/VBoxContainer/event_intro
@onready var event_name: Label = $MarginContainer/NinePatchRect/TextureRect/event_name
2024-09-19 17:56:05 +08:00
@onready var animation_player: AnimationPlayer = $AnimationPlayer
@onready var audio_stream_player: AudioStreamPlayer = $AudioStreamPlayer
2024-09-19 12:04:52 +08:00
var data:Dictionary
2024-09-19 17:56:05 +08:00
var text_ratio_tween:Tween
2024-09-19 12:04:52 +08:00
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
set_event_data("event_01")
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
#通过事件ID初始化界面
func set_event_data(id:String):
data=Global.get_event_data(id)
for i in choice_add_pos.get_children():
i.queue_free()
event_texture.texture=Global.get_texture(data["texture"])
event_intro.text=data["text"]
event_name.text=data["name"]
var choice_data=data["choice"]
for i in choice_data:
var new_btn=EVENT_CHOICE_BUTTON.instantiate()
choice_add_pos.add_child(new_btn)
new_btn.set_data(i)
2024-09-19 17:56:05 +08:00
new_btn.click.connect(choice_click)
animation_player.play("open")
func choice_click(event_data:Dictionary):
for i in event_data["triger"]:
match i["type"]:
"change_event":
set_event_data(i["data"])
"change_texture":
event_texture.texture=Global.get_texture(i["data"])
pass
"end":
hide()
"music":
audio_stream_player.stream=load(i["data"])
audio_stream_player.play()
pass
pass
pass
2024-09-19 12:04:52 +08:00
2024-09-19 17:56:05 +08:00
pass
2024-09-19 12:04:52 +08:00