class_name PawnDisplay extends Panel @onready var pawn_name : Label = %PawnName @onready var hack_container : HBoxContainer = %HackContainer @onready var portrait : TextureRect = $Portrait @onready var portrait_blinder : TextureRect = $PortraitBlinder var hacks : Array = [] var swap_portrait_tween : Tween = null func _ready() -> void: for child in hack_container.get_children(): hacks.append(child) func set_hacks(hack_list : Array[HackSet]) -> void: var hcount = 0 if len(hack_list) != 3: return for hack in hacks: hack.setup(hack_list[hcount].type, hack_list[hcount].qty) hcount+=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