From 31175b4ecd092d98f59abb44dc5413eb08534400 Mon Sep 17 00:00:00 2001 From: Nathan Singer Date: Tue, 29 Apr 2025 07:01:46 -0400 Subject: [PATCH] adds mana cost to the card tooltip --- caching.gd | 5 +++++ player.gd | 10 +++++++--- scenes/card/load.gd | 1 + scenes/tooltip/card_text.gd | 22 ++++++++++++---------- 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/caching.gd b/caching.gd index edbe2fc..3a3abfa 100644 --- a/caching.gd +++ b/caching.gd @@ -151,6 +151,11 @@ func _get_mana_img(symbol: String, img_url: String) -> Error: if err != OK: push_error(_cache_error("IMG_LOADING") + "Couldn't load the image.") return FAILED + + + if img.get_size() == Vector2i(100, 100): + print("resizing") + img.resize(20, 20, Image.INTERPOLATE_LANCZOS) img.save_png("res://symbol_cache/" + symbol.replace("/", "-").replace("{", "").replace("}", "") + ".png") img = null diff --git a/player.gd b/player.gd index 5bbe065..fc61cb1 100644 --- a/player.gd +++ b/player.gd @@ -12,14 +12,18 @@ var decks: Array[Dictionary] func _ready() -> void: # The first field in the array will be the player's own field. # Might be a better idea to have that in a seperate variable? idk - + var card = _card_class.instantiate() + card.init("d3f10f07-7cfe-4a6f-8de6-373e367a731b") + add_child(card) + card.position = Vector2(100, 100) # TODO: Currently working with an already-cached card with a known ID to load this. # Later on, the cards should be pulling the IDs directly from the library's list of IDs. - card.init("162e81d3-6cd4-4cb8-8ed8-cfbd8d34ca71") + + - add_child(card) + #fields.append(field_scene.instantiate()) #var colors: Array[Color] = [Color(1, 0, 1)] diff --git a/scenes/card/load.gd b/scenes/card/load.gd index bc802d4..2d2fda6 100644 --- a/scenes/card/load.gd +++ b/scenes/card/load.gd @@ -41,6 +41,7 @@ func _load_data() -> Error: card.card_info["name"] = card_json["name"] card.card_info["type"] = card_json["type_line"] card.card_info["desc"] = card_json["oracle_text"] + card.card_info["cost"] = card_json["mana_cost"] return OK diff --git a/scenes/tooltip/card_text.gd b/scenes/tooltip/card_text.gd index f6083b4..354f97a 100644 --- a/scenes/tooltip/card_text.gd +++ b/scenes/tooltip/card_text.gd @@ -2,22 +2,24 @@ extends RichTextLabel var mana_symbols: Dictionary +func _convert_text_to_symbol(_text: String): + var last_idx = 0 + for symbol in mana_symbols: + last_idx = 0 + while _text.find(symbol, last_idx) != -1: + _text = _text.replace(symbol, "[img]" + mana_symbols[symbol] + "[/img]") + last_idx = _text.find(symbol, last_idx) + symbol.length() + return _text + func _set_tip_text(card_info: Dictionary, _card_image: Image) -> void: # TODO: add more card formatting, check all of the logos, very niche icons will be affected i believe since they're # different sizes # shrink text if we use too much space for it, etc - text = "[b]" + card_info["name"] + "[/b]\n" + text = "[b]" + card_info["name"] + "[/b]\t" + text += _convert_text_to_symbol(card_info["cost"]) + "\n" text += "[i]" + card_info["type"] + "[/i]\n" - var oracle_text = card_info["desc"] - var last_idx = 0 - - for symbol in mana_symbols: - last_idx = 0 - while oracle_text.find(symbol, last_idx) != -1: - 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 + text += _convert_text_to_symbol(card_info["desc"]) func _clear_tip_text() -> void: