Files
tekton/scripts/controllers/scarcity_controller.gd
2026-01-28 02:29:43 +08:00

26 lines
578 B
GDScript

class_name ScarcityController
extends RefCounted
# ScarcityController - Logic for tile generation based on ScarcityModel
static func get_random_tile_id() -> int:
var rng = RandomNumberGenerator.new()
rng.randomize()
var weights = ScarcityModel.get_tile_weights()
var total_weight = 0
# Calculate total weight
for tile in weights:
total_weight += weights[tile]
var roll = rng.randi_range(0, total_weight - 1)
var current = 0
for tile in weights:
current += weights[tile]
if roll < current:
return tile
return ScarcityModel.TILE_HEART # Fallback