class_name JudgementPolicy extends Resource @export var entries: Dictionary = {} func multiplier(label: StringName, channel: StringName, fallback := 1.0) -> float: var entry := _entry_for(label) if entry.is_empty(): return fallback if entry.has(str(channel)): return float(entry[str(channel)]) if entry.has(channel): return float(entry[channel]) return fallback func _entry_for(label: StringName) -> Dictionary: var key := str(label).to_lower() if entries.has(key) and entries[key] is Dictionary: return entries[key] if entries.has(label) and entries[label] is Dictionary: return entries[label] return {}