18 lines
1004 B
GDScript
18 lines
1004 B
GDScript
@tool
|
|
extends Node
|
|
func run_checks() -> Dictionary:
|
|
var network := preload("res://scripts/planets/mining_network.gd")
|
|
var failures: Array[String] = []
|
|
for level in [1,5,20,50,80,100,120]:
|
|
var center := clampi(level,1,100)
|
|
for seed_value in 1000:
|
|
var profile := {"id":"test:%d" % seed_value,"seed":seed_value,"name":"Test","difficulty":1.0,"system_level":level}
|
|
var candidate: Dictionary = network.recruit(profile)
|
|
if int(candidate.management) < maxi(1,center-5) or int(candidate.management) > mini(100,center+5): failures.append("Out of level bounds")
|
|
if candidate != network.recruit(profile): failures.append("Rerolled on revisit")
|
|
var safe := profile.duplicate()
|
|
safe.difficulty = 0.0
|
|
if candidate.management != network.recruit(safe).management: failures.append("Biome changed rating")
|
|
if network.recruitment_cost(candidate) != int(candidate.management)*1000: failures.append("Wrong price")
|
|
return {"failures":failures,"rolls_checked":7000,"passed":failures.is_empty()}
|