25 lines
629 B
GDScript
25 lines
629 B
GDScript
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 {}
|