67 lines
2.0 KiB
GDScript
67 lines
2.0 KiB
GDScript
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")
|