diff --git a/gymkhana/addons/escoria-ui-return-monkey-island/esc_item_with_tooltip.gd b/gymkhana/addons/escoria-ui-return-monkey-island/esc_item_with_tooltip.gd index 9a4cc8df..4fde8c80 100644 --- a/gymkhana/addons/escoria-ui-return-monkey-island/esc_item_with_tooltip.gd +++ b/gymkhana/addons/escoria-ui-return-monkey-island/esc_item_with_tooltip.gd @@ -6,7 +6,11 @@ class_name ESCItemWithTooltip, "res://addons/escoria-core/design/esc_item.svg" export(String) var action1_text = "" # Action 2 Label text export(String) var action2_text = "" -# Action 3 tooltip text in inventory +# Action 3 tooltip text if item in inventory export(String) var action3_text = "" -# Action 3 tooltip text in inventory +# Action 4 tooltip text if item in inventory export(String) var action4_text = "" +# Action 3 tooltip texts if item is target. Dictionary with tool's global id as key. +export(Dictionary) var action3_target_texts = {} +# Action 4 tooltip texts if item is target. Dictionary with tool's global id as key. +export(Dictionary) var action4_target_texts = {} diff --git a/gymkhana/addons/escoria-ui-return-monkey-island/esc_rich_tooltip.gd b/gymkhana/addons/escoria-ui-return-monkey-island/esc_rich_tooltip.gd index 974d07ae..2e71c9b8 100644 --- a/gymkhana/addons/escoria-ui-return-monkey-island/esc_rich_tooltip.gd +++ b/gymkhana/addons/escoria-ui-return-monkey-island/esc_rich_tooltip.gd @@ -140,6 +140,9 @@ func set_target2(target2: String) -> void: # Update the tooltip text. +# * If waiting for target item: get text from action*_target_texts dictionaries using current_tool as key +# * If item is in inventory: use action3_text and action4_text variables +# * Else: use action1_text and action2_text variables func update_tooltip_text(): if(current_target_object == null): return @@ -147,8 +150,8 @@ func update_tooltip_text(): var item_in_inventory = escoria.inventory_manager.inventory_has(current_target_object.global_id) var waiting_for_target_item = escoria.action_manager.action_state == ESCActionManager.ACTION_INPUT_STATE.AWAITING_TARGET_ITEM - var action1_text = current_target_object.action3_text if item_in_inventory or waiting_for_target_item else current_target_object.action1_text - var action2_text = current_target_object.action4_text if item_in_inventory or waiting_for_target_item else current_target_object.action2_text + var action1_text = get_action_target_text(current_target_object.action3_target_texts) if waiting_for_target_item else current_target_object.action3_text if item_in_inventory else current_target_object.action1_text + var action2_text = get_action_target_text(current_target_object.action4_target_texts) if waiting_for_target_item else current_target_object.action4_text if item_in_inventory else current_target_object.action2_text $tooltip1/label.text = action1_text $tooltip1.visible = action1_text != ""; @@ -157,6 +160,9 @@ func update_tooltip_text(): $tooltip2.visible = action2_text != ""; +func get_action_target_text(action_target_texts: Dictionary): + var action_target_text = action_target_texts.get(escoria.action_manager.current_tool.global_id) + return action_target_text if action_target_text else "" # Update the tooltip size according to the text. func update_size(): diff --git a/gymkhana/rooms/trasera_cocina/trasera_cocina.tscn b/gymkhana/rooms/trasera_cocina/trasera_cocina.tscn index 3d7e5add..39bab5e0 100644 --- a/gymkhana/rooms/trasera_cocina/trasera_cocina.tscn +++ b/gymkhana/rooms/trasera_cocina/trasera_cocina.tscn @@ -69,8 +69,8 @@ combine_when_selected_action_is_in = [ "action4" ] dialog_color = Color( 1, 1, 1, 1 ) action1_text = "Esto es una puerta y tiene una descripcion mu larga" action2_text = "Entrar! con descricion..." -action3_text = "Usar la bombona con la puerta?" -action4_text = "Lanzarla contra la puerta" +action3_target_texts = { "i_bombona2": "Usar la bombona con la puerta?" } +action4_target_texts = { "i_bombona2": "Lanzarla contra la puerta" } animations = SubResource( 2 ) [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/entrada_cocina"]