40 lines
1.3 KiB
GDScript
40 lines
1.3 KiB
GDScript
class_name PawnDisplay extends Panel
|
|
|
|
@onready var pawn_name : Label = %PawnName
|
|
@onready var trap_container : HBoxContainer = %TrapContainer
|
|
@onready var portrait : TextureRect = $Portrait
|
|
@onready var portrait_blinder : TextureRect = $PortraitBlinder
|
|
var traps : Array = []
|
|
var swap_portrait_tween : Tween = null
|
|
|
|
func _ready() -> void:
|
|
for child in trap_container.get_children():
|
|
traps.append(child)
|
|
|
|
func set_traps(trap_list : Array[TrapSet]) -> void:
|
|
var tcount = 0
|
|
if len(trap_list) != 3:
|
|
return
|
|
for trap in traps:
|
|
trap.setup(trap_list[tcount].type, trap_list[tcount].qty)
|
|
tcount+=1
|
|
|
|
func set_portrait(picture : Texture2D) -> void:
|
|
if swap_portrait_tween != null and swap_portrait_tween.is_running():
|
|
swap_portrait_tween.stop()
|
|
swap_portrait_tween = create_tween()
|
|
|
|
swap_portrait_tween.tween_property(portrait_blinder, "visible", true, 0)
|
|
swap_portrait_tween.tween_method(tv_blur, 1.0, 0.0, .1)
|
|
swap_portrait_tween.tween_property(portrait, "texture", picture, 0)
|
|
swap_portrait_tween.tween_method(tv_blur, 0.0, 1.0, .1)
|
|
swap_portrait_tween.tween_property(portrait_blinder, "visible", false, 0)
|
|
portrait.texture = picture
|
|
|
|
func tv_blur(amount : float) -> void:
|
|
var blinder_mat : ShaderMaterial = portrait_blinder.material
|
|
blinder_mat.set_shader_parameter("opacity_limit", amount)
|
|
|
|
func set_pawn_name(name : String) -> void:
|
|
pawn_name.text = name
|