extends RichTextLabel

var mana_symbols: Dictionary

func _set_tip_text(card_info: Dictionary, _card_image: Image) -> void:
	text = card_info["name"] + " | " + card_info["type"] + "\n"
	var oracle_text = card_info["desc"]
	var last_idx = 0
	var found_card: bool = false
	# TODO: fix the string splitting here because its missing some symbols, and misplacing others
	
	# TODO: duh this is skipping some symbols because it will find the first symbol (which could be after many other symbols)
	# and then add all the previous text, skipping them
	
	for symbol in mana_symbols:
		last_idx = 0
		while oracle_text.find(symbol, last_idx) != -1:
			print("infinite loop?")
			oracle_text = oracle_text.replace(symbol, "[img width=\"16\" height=\"16\"]" + mana_symbols[symbol] + "[/img]")
			last_idx = oracle_text.find(symbol, last_idx) + symbol.length() 

	text += oracle_text
	

func _clear_tip_text() -> void:
	text = ""

func _ready() -> void:
	if !FileAccess.file_exists("res://symbol_cache/symbols.json"):
		push_error("Symbols haven't been cached yet!")
		return
	var file = FileAccess.open("res://symbol_cache/symbols.json", FileAccess.READ)
	mana_symbols = JSON.parse_string(file.get_as_text())
	file.close()
	
	set_use_bbcode(true)
	
	EventBus.connect("card_on_hover", _set_tip_text)
	EventBus.connect("card_on_unhover", _clear_tip_text)