36 lines
1.4 KiB
GDScript
36 lines
1.4 KiB
GDScript
extends Node
|
|
const BAL = preload("res://scripts/levels/level_balance.gd")
|
|
func _ready() -> void:
|
|
var outcomes: Array = []
|
|
for style in ["diverse", "random"]:
|
|
for trial in 300:
|
|
var captain := CaptainProgress.new()
|
|
captain._skill_rng.seed = 81723 + trial
|
|
var rng := RandomNumberGenerator.new()
|
|
rng.seed = 55001 + trial
|
|
var all_types := 0
|
|
var all_ranks := 0
|
|
for level in range(1, 51):
|
|
for tier in BAL.enemy_tiers(level):
|
|
captain.reward_enemy(level, tier, 1.0, 1.0)
|
|
while captain.learning_points > 0:
|
|
captain.prepare_skill_offers()
|
|
if captain.skill_offers.is_empty():
|
|
break
|
|
var pick: String = captain.skill_offers[rng.randi_range(0, captain.skill_offers.size() - 1)]
|
|
if style == "diverse":
|
|
for skill in captain.skill_offers:
|
|
if captain.get_skill_rank(skill) < captain.get_skill_rank(pick):
|
|
pick = skill
|
|
assert(captain.train_skill(pick))
|
|
if captain.skills.size() == 9 and all_types == 0:
|
|
all_types = level
|
|
if captain.get_spent_learning_points() == 27 and all_ranks == 0:
|
|
all_ranks = level
|
|
outcomes.append({"style": style, "trial": trial, "all_types": all_types, "all_ranks": all_ranks})
|
|
var f := FileAccess.open("res://artifacts/balance_skill_paths.json", FileAccess.WRITE)
|
|
f.store_string(JSON.stringify(outcomes))
|
|
f.close()
|
|
print("BALANCE_SKILL_PATHS: PASS 600 seeded skill paths using actual offers, training and XP")
|
|
get_tree().quit()
|