extends Node2D const EFFECT := preload("res://scripts/items/loot_reveal_effect.gd") func _ready() -> void: RenderingServer.set_default_clear_color(Color("081420")) var title := Label.new() title.text = "ODZYSKANE WYPOSAƻENIE" title.position = Vector2(85,65) title.add_theme_font_size_override("font_size",28) add_child(title) var effects: Array[Node2D] = [] for index in 3: var item := ItemInstance.new() item.definition = preload("res://resources/items/reinforced_shield.tres") item.rarity = index*2 for addon in index*2+1: var modifier := ItemStatModifier.new() modifier.stat_key = "shield_percent" modifier.value = 1.0 item.additional_modifiers.append(modifier) var pickup := Node2D.new() pickup.set_script(preload("res://scripts/items/loot_pickup.gd")) pickup.item = item pickup.position = Vector2(250+index*350,350) add_child(pickup) var label := Label.new() label.text = item.get_rarity_name() label.position = pickup.position+Vector2(-65,85) label.add_theme_font_size_override("font_size",18) label.modulate = item.get_rarity_color() add_child(label) for child in get_children(): if child.get_script() == EFFECT: effects.append(child) assert(effects.size() == 3) var normal := EFFECT.sound(0) assert(normal.get_length() > 0.6 and normal.data.size() > 20000) assert(normal == EFFECT.sound(0) and normal != EFFECT.sound(1)) assert(normal.save_to_wav("res://artifacts/loot_drop_chime.wav") == OK) await get_tree().create_timer(0.18).timeout if DisplayServer.get_name() != "headless": await RenderingServer.frame_post_draw assert(get_viewport().get_texture().get_image().save_png("res://artifacts/loot_drop_effect.png") == OK) await get_tree().create_timer(0.9).timeout for effect in effects: assert(not is_instance_valid(effect)) assert(get_tree().get_nodes_in_group("loot").size() == 3) print("LOOT REVEAL PASS: three rarity drops, cached sound synthesis, preview and WAV export, timed effect cleanup, loot retained") get_tree().quit()