Randoloot/tests/abilities/virus_chance_test.gd
2026-10-17 21:28:08 +02:00

24 lines
802 B
GDScript

extends Node
func _ready() -> void:
var script := preload("res://scripts/game/enemy_ship.gd")
seed(20261017)
var successes := 0
var failures := 0
for index in 2000:
var enemy := script.new()
var won: bool = enemy.roll_virus_infection()
successes += int(won)
failures += int(not won)
assert(not enemy.roll_virus_infection(), "A second frame must never reroll infection")
assert(not enemy.roll_virus_infection(), "Failed rolls must remain failed")
enemy.free()
assert(successes >= 900 and successes <= 1100)
assert(failures > 0 and successes > 0)
var boss := script.new()
boss.loot_tier = 2
for index in 100:
assert(not boss.roll_virus_infection())
boss.free()
print("VIRUS_CHANCE_TEST: PASS ", successes, "/2000 first attempts, no rerolls, bosses immune")
get_tree().quit()