extends GutTest var EnemyScene = load("res://Game/Mobs/forkman.tscn") # Ellenenség PackedScene útvonala var _enemy_instance = null var _mock_parent = null func before_each(): # Szülő mockolása PathFollow2D helyett _mock_parent = PathFollow2D.new() _mock_parent.name = "PathFollow2D_Mock" add_child(_mock_parent) # Scene példányosítása _enemy_instance = EnemyScene.instantiate() _mock_parent.add_child(_enemy_instance) # Gyermek node-ok inicializálása await get_tree().process_frame # Szükséges a _ready() függvény teljes lefutásához func after_each(): _enemy_instance.queue_free() _mock_parent.queue_free() func test_scene_initialization(): # Gyermek elemek ellenőrzése var character_body = _enemy_instance.get_node("CharacterBody2D") var health_bar = _enemy_instance.get_node("ProgressBar") assert_not_null(character_body, "Hiányzó CharacterBody2D") assert_not_null(health_bar, "Hiányzó ProgressBar") func test_shield_damage_reduction(): # Kezdeti állapot beállítása _enemy_instance.current_shield = 50 _enemy_instance.current_health = 100 # Sebzés alkalmazása _enemy_instance.enemy_hurt(30) # Ellenőrzések assert_eq(_enemy_instance.current_shield, 20, "Pajzs érték helytelen") assert_eq(_enemy_instance.current_health, 100, "Életerő nem változhat pajzs esetén") func test_shield_break_and_health_damage(): # Kezdeti állapot _enemy_instance.current_shield = 20 _enemy_instance.current_health = 100 # Nagy sebzés _enemy_instance.enemy_hurt(30) # Ellenőrzések assert_eq(_enemy_instance.current_shield, 0, "Pajzsnak nullának kell lennie") assert_eq(_enemy_instance.current_health, 90, "Életerő csökkenés hibás") func test_health_damage_without_shield(): # Pajzs nélküli állapot _enemy_instance.current_shield = 0 _enemy_instance.current_health = 80 # Sebzés _enemy_instance.enemy_hurt(25) assert_eq(_enemy_instance.current_shield, 0, "Pajzs mértékének csökkenése változatlan") assert_eq(_enemy_instance.current_health, 55, "Életerő csökkenés hibás pajzs nélkül")