From d8d25e5dbbabf0f2381146a955211d1fae0b4f10 Mon Sep 17 00:00:00 2001 From: Eneko Nieto Date: Wed, 8 Mar 2023 23:25:20 +0100 Subject: [PATCH] Added ESCItemWithTooltip.target_when_selected_action_is_in --- .../esc/esc_action_manager_monkey.gd | 9 ++++----- .../esc_item_with_tooltip.gd | 8 ++++++++ .../rooms/trasera_cocina/esc/p_eneko_smoking.esc | 16 +++++++--------- .../rooms/trasera_cocina/trasera_cocina.tscn | 2 ++ 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/gymkhana/addons/escoria-ui-return-monkey-island/esc/esc_action_manager_monkey.gd b/gymkhana/addons/escoria-ui-return-monkey-island/esc/esc_action_manager_monkey.gd index 4b3a6f3d..acf527dd 100644 --- a/gymkhana/addons/escoria-ui-return-monkey-island/esc/esc_action_manager_monkey.gd +++ b/gymkhana/addons/escoria-ui-return-monkey-island/esc/esc_action_manager_monkey.gd @@ -205,7 +205,7 @@ func perform_inputevent_on_object( # depending on the used action verb. var tool_just_set = _set_tool_and_action(obj, default_action) # MODIFIED FOR RETURN TO MONKEY UI - var need_combine = _check_item_needs_combine_obj(obj, tool_just_set) + var need_combine = _check_item_needs_combine_obj(obj) # If the current tool was not set, this is our first item, make it the tool if not current_tool or (current_tool and not need_combine): @@ -338,7 +338,7 @@ func _set_tool_and_action(obj: ESCObject, default_action: bool): if current_action and current_tool: # MODIFIED FOR RETURN TO MONKEY UI if (not current_action in escoria.action_manager\ - .current_tool.node.combine_when_selected_action_is_in and not current_action in obj.node.combine_when_selected_action_is_in): + .current_tool.node.combine_when_selected_action_is_in and not current_action in obj.node.target_when_selected_action_is_in): current_tool = obj tool_just_set = true elif default_action: @@ -357,10 +357,9 @@ func _set_tool_and_action(obj: ESCObject, default_action: bool): # # *Returns* True if current action on "obj" requires a combination # MODIFIED FOR RETURN TO MONKEY UI -func _check_item_needs_combine_obj(obj: ESCObject, tool_just_set: bool) -> bool: +func _check_item_needs_combine_obj(obj: ESCObject) -> bool: return current_action \ and current_tool \ and (current_action in current_tool.node.combine_when_selected_action_is_in # MODIFIED FOR RETURN TO MONKEY UI - or !tool_just_set) - # or current_action in obj.node.combine_when_selected_action_is_in) + or current_action in obj.node.target_when_selected_action_is_in) 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 4fde8c80..e68e584d 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 @@ -4,13 +4,21 @@ class_name ESCItemWithTooltip, "res://addons/escoria-core/design/esc_item.svg" # Action 1 Label text export(String) var action1_text = "" + # Action 2 Label text export(String) var action2_text = "" + # Action 3 tooltip text if item in inventory export(String) var action3_text = "" + # 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 = {} + +# If action used by player is in this list, this is a valid target (second item in combination) +export(Array) var target_when_selected_action_is_in = [] diff --git a/gymkhana/rooms/trasera_cocina/esc/p_eneko_smoking.esc b/gymkhana/rooms/trasera_cocina/esc/p_eneko_smoking.esc index 8f4c3d96..03ab2613 100644 --- a/gymkhana/rooms/trasera_cocina/esc/p_eneko_smoking.esc +++ b/gymkhana/rooms/trasera_cocina/esc/p_eneko_smoking.esc @@ -45,17 +45,15 @@ set_global loom_conversation_done false #set_gui_visible true :action3 i_caja_herramientas -say eneko_smoking "No quiero una caja vacía 3" - -:action3 -say eneko_smoking "Nada" - -:action4 i_caja_herramientas -say eneko_smoking "No quiero una caja vacía 4" +say eneko_smoking "No quiero una caja vacía" :action3 i_bombona2 -> [bombona2_offered] +> [eq bombona2_offered 1] + say eneko_smoking "¡No vuelvas a hacerlo, es peligroso!" + set_global bombona2_offered 2 + stop +> [eq bombona2_offered 2] say eneko_smoking "¡SE ACABÓ, TE HE BLOQUEADO EN WHATSAPP!" stop say eneko_smoking "¿Estás loco? ¿No ves que estoy fumando?" -set_global bombona2_offered true +set_global bombona2_offered 1 diff --git a/gymkhana/rooms/trasera_cocina/trasera_cocina.tscn b/gymkhana/rooms/trasera_cocina/trasera_cocina.tscn index 7fad5c8a..553706a7 100644 --- a/gymkhana/rooms/trasera_cocina/trasera_cocina.tscn +++ b/gymkhana/rooms/trasera_cocina/trasera_cocina.tscn @@ -69,6 +69,7 @@ action1_text = "Esto es una puerta y tiene una descripcion mu larga" action2_text = "Entrar! con descricion..." action3_target_texts = { "i_bombona2": "Usar la bombona con la puerta?" } action4_target_texts = { "i_bombona2": "Lanzarla contra la puerta" } +target_when_selected_action_is_in = [ "action3", "action4" ] animations = SubResource( 2 ) [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/entrada_cocina"] @@ -120,6 +121,7 @@ dialog_color = Color( 0, 1, 0.462745, 1 ) action1_text = "Objervar sujeto" action2_text = "Hablar" action3_target_texts = { "i_bombona2": "Toma, un regalo", "i_caja_herramientas": "Regalar" } +target_when_selected_action_is_in = [ "action3" ] selectable = true [node name="ESCLocation" type="Position2D" parent="EnekoSmoking"]