From bd3ef71c80183bceda655ce39b19d3cb49f81d9f Mon Sep 17 00:00:00 2001 From: Julian Murgia Date: Wed, 3 Feb 2021 17:26:12 +0100 Subject: [PATCH] Added hover stack to manage overlapping Area2Ds Added room selector in demo scenes Modified dialogues in room 1, fixed bug in room 8 and 9 --- ....png-76792812151af35ec4a677d2674810fc.stex | Bin 3226 -> 0 bytes ....png-b2986fedd542821915ec877a570a0934.stex | Bin 2913 -> 0 bytes ....png-185eba49da7d77d331c5119550be859c.stex | Bin 2236 -> 0 bytes ....png-cd78241d27aa0dc800a83edce9459724.stex | Bin 2479 -> 0 bytes .../game/core-scripts/esc/esc_runner.gd | 4 +- .../escoria-core/game/core-scripts/escitem.gd | 8 +-- addons/escoria-core/game/escoria.gd | 3 +- addons/escoria-core/game/inputs_manager.gd | 42 ++++++++++----- addons/escoria-core/game/main.gd | 5 ++ .../label/action_target_tooltip.gd | 50 +++++++++--------- game/rooms/room2/button/button.tscn | 3 ++ game/rooms/room2/esc/button.esc | 24 ++++++++- game/rooms/room2/room2.tscn | 4 ++ game/rooms/room8/room8.tscn | 2 +- game/rooms/room9/closet/magical_closet.tscn | 46 ++++++++++++++-- game/rooms/room9/esc/closet_left.esc | 4 ++ game/rooms/room9/esc/closet_middle.esc | 4 ++ game/rooms/room9/esc/closet_right.esc | 4 ++ game/rooms/room9/esc/left_exit.esc | 2 +- game/rooms/room9/items/empty_sheet.png | Bin 1512 -> 0 bytes game/rooms/room9/items/empty_sheet.png.import | 34 ------------ game/rooms/room9/items/filled_sheet.png | Bin 1387 -> 0 bytes .../rooms/room9/items/filled_sheet.png.import | 34 ------------ game/rooms/room9/items/pen.png | Bin 918 -> 0 bytes game/rooms/room9/items/pen.png.import | 34 ------------ game/rooms/room9/items/wrench.png | Bin 857 -> 0 bytes game/rooms/room9/items/wrench.png.import | 34 ------------ game/ui/commons/room_select.gd | 36 +++++++++++++ game/ui/commons/room_select.tscn | 24 +++++++++ game/ui/ui_9verbs/game.gd | 32 ++++++----- game/ui/ui_9verbs/game.tscn | 18 ++++++- game/ui/ui_9verbs/verbs_menu.gd | 3 ++ game/ui/ui_9verbs/verbs_menu.tscn | 1 - 33 files changed, 253 insertions(+), 202 deletions(-) delete mode 100644 .import/empty_sheet.png-76792812151af35ec4a677d2674810fc.stex delete mode 100644 .import/filled_sheet.png-b2986fedd542821915ec877a570a0934.stex delete mode 100644 .import/pen.png-185eba49da7d77d331c5119550be859c.stex delete mode 100644 .import/wrench.png-cd78241d27aa0dc800a83edce9459724.stex delete mode 100644 game/rooms/room9/items/empty_sheet.png delete mode 100644 game/rooms/room9/items/empty_sheet.png.import delete mode 100644 game/rooms/room9/items/filled_sheet.png delete mode 100644 game/rooms/room9/items/filled_sheet.png.import delete mode 100644 game/rooms/room9/items/pen.png delete mode 100644 game/rooms/room9/items/pen.png.import delete mode 100644 game/rooms/room9/items/wrench.png delete mode 100644 game/rooms/room9/items/wrench.png.import create mode 100644 game/ui/commons/room_select.gd create mode 100644 game/ui/commons/room_select.tscn diff --git a/.import/empty_sheet.png-76792812151af35ec4a677d2674810fc.stex b/.import/empty_sheet.png-76792812151af35ec4a677d2674810fc.stex deleted file mode 100644 index 278d244900970a5a3d1341908bd2e91446941b8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3226 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 M07*qoM6N<$f-I)#7ytkO diff --git a/.import/filled_sheet.png-b2986fedd542821915ec877a570a0934.stex b/.import/filled_sheet.png-b2986fedd542821915ec877a570a0934.stex deleted file mode 100644 index 3b9ad2a3bc27aaa6a32f2f2d779272bafd85a619..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2913 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 KMNUMnLSTX=zi2Q3 diff --git a/.import/wrench.png-cd78241d27aa0dc800a83edce9459724.stex b/.import/wrench.png-cd78241d27aa0dc800a83edce9459724.stex deleted file mode 100644 index fe6f2e0230bf6db660432b22203fb93f766199f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2479 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 diff --git a/addons/escoria-core/game/core-scripts/esc/esc_runner.gd b/addons/escoria-core/game/core-scripts/esc/esc_runner.gd index e3272a78..b01d0fb8 100644 --- a/addons/escoria-core/game/core-scripts/esc/esc_runner.gd +++ b/addons/escoria-core/game/core-scripts/esc/esc_runner.gd @@ -375,7 +375,7 @@ func change_scene(params, context, run_events=true): # Finally we add the setup on to of the events stack so that it is ran first run_event(events["setup"]) - escoria.inputs_manager.is_hotspot_focused = false + escoria.inputs_manager.hotspot_focused = "" if !scenes_cache_list.has(params[0]): scenes_cache_list.push_back(params[0]) scenes_cache[room_scene.global_id] = params[0] @@ -431,7 +431,7 @@ func superpose_scene(params, context, run_events=true): get_node("/root").add_child(room_scene) - escoria.inputs_manager.is_hotspot_focused = false + escoria.inputs_manager.hotspot_focused = false if !scenes_cache_list.has(params[0]): scenes_cache_list.push_back(params[0]) if room_scene.get("global_id"): diff --git a/addons/escoria-core/game/core-scripts/escitem.gd b/addons/escoria-core/game/core-scripts/escitem.gd index 730b38c1..b36d5042 100644 --- a/addons/escoria-core/game/core-scripts/escitem.gd +++ b/addons/escoria-core/game/core-scripts/escitem.gd @@ -9,8 +9,8 @@ func get_class(): ESCItem is a Sprite that defines an item, potentially interactive """ -signal mouse_entered_item(global_id) -signal mouse_exited_item +signal mouse_entered_item(item) +signal mouse_exited_item(item) signal mouse_left_clicked_item(global_id) signal mouse_double_left_clicked_item(global_id) signal mouse_right_clicked_item(global_id) @@ -183,10 +183,10 @@ func manage_input(viewport : Viewport, event : InputEvent, shape_idx : int): func _on_mouse_entered(): - emit_signal("mouse_entered_item", global_id) + emit_signal("mouse_entered_item", self) func _on_mouse_exited(): - emit_signal("mouse_exited_item") + emit_signal("mouse_exited_item", self) ################################################################################ diff --git a/addons/escoria-core/game/escoria.gd b/addons/escoria-core/game/escoria.gd index e25dcf8b..4d2a3bc0 100644 --- a/addons/escoria-core/game/escoria.gd +++ b/addons/escoria-core/game/escoria.gd @@ -126,7 +126,7 @@ func do(action : String, params : Array = []) -> void: match action: "walk": # Reset current action. - esc_runner.set_current_action("") + esc_runner.clear_current_action() # Check moving object. if !escoria.esc_runner.check_obj(params[0], "escoria.do(walk)"): @@ -262,7 +262,6 @@ func ev_left_click_on_item(obj, event, default_action = false): # If no interaction should happen after player has arrived, leave immediately. if dont_interact: - print("DONT INTERACT WAS TRUE") return var player_global_pos = main.current_scene.player.global_position diff --git a/addons/escoria-core/game/inputs_manager.gd b/addons/escoria-core/game/inputs_manager.gd index 7bc28f96..d6613c55 100644 --- a/addons/escoria-core/game/inputs_manager.gd +++ b/addons/escoria-core/game/inputs_manager.gd @@ -1,7 +1,9 @@ tool extends Node -var is_hotspot_focused : bool +onready var hover_stack : Array = [] +onready var hotspot_focused : String = "" + func _ready(): set_process_input(true) @@ -13,19 +15,19 @@ func _input(event): ################################################################################### func _on_left_click_on_bg(position : Vector2): - if !is_hotspot_focused: + if hotspot_focused.empty(): printt("Left click on background at ", str(position)) escoria.main.current_scene.game.left_click_on_bg(position) func _on_double_left_click_on_bg(position : Vector2): - if !is_hotspot_focused: + if hotspot_focused.empty(): printt("Double left click on background at ", str(position)) escoria.main.current_scene.game.left_double_click_on_bg(position) func _on_right_click_on_bg(position : Vector2): - if !is_hotspot_focused: + if hotspot_focused.empty(): printt("Right click on background at ", str(position)) escoria.main.current_scene.game.right_click_on_bg(position) @@ -54,15 +56,31 @@ func _on_mouse_exited_inventory_item() -> void: ################################################################################## -func _on_mouse_entered_item(item_global_id : String) -> void: - printt("Item focused : ", item_global_id) - is_hotspot_focused = true - escoria.main.current_scene.game.element_focused(item_global_id) +func _on_mouse_entered_item(item : ESCItem) -> void: + printt("Item focused : ", item.global_id) + + if !hover_stack.empty(): + if item.z_index < hover_stack.back().z_index: + hover_stack.insert(hover_stack.size()-1, item) + else: + hover_stack.push_back(item) + else: + hover_stack.push_back(item) + + hotspot_focused = hover_stack.back().global_id + escoria.main.current_scene.game.element_focused(item.global_id) -func _on_mouse_exited_item() -> void: - print("Item unfocused") - is_hotspot_focused = false - escoria.main.current_scene.game.element_unfocused() + +func _on_mouse_exited_item(item : ESCItem) -> void: + printt("Item unfocused : ", item.global_id) + hover_stack.erase(item) + if hover_stack.empty(): + hotspot_focused = "" + escoria.main.current_scene.game.element_unfocused() + else: + hotspot_focused = hover_stack.back().global_id + escoria.main.current_scene.game.element_focused(hotspot_focused) + func _on_mouse_left_clicked_item(item_global_id : String, event : InputEvent) -> void: printt("Item left clicked", item_global_id, event) diff --git a/addons/escoria-core/game/main.gd b/addons/escoria-core/game/main.gd index c7c2e9c7..b179741e 100644 --- a/addons/escoria-core/game/main.gd +++ b/addons/escoria-core/game/main.gd @@ -179,3 +179,8 @@ func check_game_scene_methods(): assert(current_scene.game.has_method("inventory_item_unfocused")) assert(current_scene.game.has_method("mousewheel_action")) + + assert(current_scene.game.has_method("hide_ui")) + assert(current_scene.game.has_method("show_ui")) + assert(current_scene.game.has_method("_on_event_done")) + diff --git a/addons/escoria-core/template_scenes/label/action_target_tooltip.gd b/addons/escoria-core/template_scenes/label/action_target_tooltip.gd index 5b04c2d0..6e232c8c 100644 --- a/addons/escoria-core/template_scenes/label/action_target_tooltip.gd +++ b/addons/escoria-core/template_scenes/label/action_target_tooltip.gd @@ -19,31 +19,31 @@ func on_action_selected() -> void: current_action = escoria.esc_runner.current_action update_tooltip_text() -func element_focused(element_id : String) -> void: - printt("action_target_tooltip.gd:on_element_focused()", "Element focused: ", element_id) - - if element_id == "": - set_target("") - return - - var object = escoria.esc_runner.get_object(element_id) - - if object == null or !is_instance_valid(object): - escoria.report_warnings("action_target_tooltip.gd:on_element_focused()", - ["Object exists but is not loaded for id " + element_id]) - set_target(element_id) - return - - if !escoria.esc_runner.get_interactive(element_id) and !object is ESCInventoryItem: - set_target("") - return - - var wait_for_target = false - if object is ESCItem or object is ESCInventoryItem: - if current_action in object.combine_if_action_used_among: - wait_for_target = true - - set_target(object.tooltip_name, wait_for_target) +#func element_focused(element_id : String) -> void: +# printt("action_target_tooltip.gd:on_element_focused()", "Element focused: ", element_id) +# +# if element_id == "": +# set_target("") +# return +# +# var object = escoria.esc_runner.get_object(element_id) +# +# if object == null or !is_instance_valid(object): +# escoria.report_warnings("action_target_tooltip.gd:on_element_focused()", +# ["Object exists but is not loaded for id " + element_id]) +# set_target(element_id) +# return +# +# if !escoria.esc_runner.get_interactive(element_id) and !object is ESCInventoryItem: +# set_target("") +# return +# +# var wait_for_target = false +# if object is ESCItem or object is ESCInventoryItem: +# if current_action in object.combine_if_action_used_among: +# wait_for_target = true +# +# set_target(object.tooltip_name, wait_for_target) func set_target(target : String, needs_second_target : bool = false) -> void: diff --git a/game/rooms/room2/button/button.tscn b/game/rooms/room2/button/button.tscn index 6c463473..86c81772 100644 --- a/game/rooms/room2/button/button.tscn +++ b/game/rooms/room2/button/button.tscn @@ -20,3 +20,6 @@ points = PoolVector2Array( 2.86993, 4.8189, 2.86993, 53.646, 50.8979, 53.9476, 5 [node name="CollisionShape2D" type="CollisionShape2D" parent="."] position = Vector2( 26.9811, 29.4218 ) shape = SubResource( 1 ) + +[node name="dialog_position" type="Position2D" parent="."] +position = Vector2( 22.0044, -141.187 ) diff --git a/game/rooms/room2/esc/button.esc b/game/rooms/room2/esc/button.esc index 23393411..f8d4cbf5 100755 --- a/game/rooms/room2/esc/button.esc +++ b/game/rooms/room2/esc/button.esc @@ -1,5 +1,27 @@ :look -say player "That button must activate the bridge." +> [! r2_look_dialog_advance] + say player "That button must activate the bridge." + set_global r2_look_dialog_advance 1 + stop +> [eq r2_look_dialog_advance 1] + say player "I already said that this button must activate the bridge." + set_global r2_look_dialog_advance 2 + stop +> [eq r2_look_dialog_advance 2] + set_angle player 180 + say player "Listen closely." + say player "This" + say player "button" + say player "must" + say player "activate" + say player "the bridge." + set_global r2_look_dialog_advance 3 + stop +> [eq r2_look_dialog_advance 3] + say player "I give up." + say player "" + stop + :push say player "I must USE this." diff --git a/game/rooms/room2/room2.tscn b/game/rooms/room2/room2.tscn index 44bf0c44..329c5aed 100644 --- a/game/rooms/room2/room2.tscn +++ b/game/rooms/room2/room2.tscn @@ -53,6 +53,7 @@ script = ExtResource( 7 ) global_id = "r2_r_exit" esc_script = "res://game/rooms/room2/esc/right_exit.esc" is_exit = true +tooltip_name = "Right exit" dialog_color = Color( 1, 1, 1, 1 ) interact_positions = { "default": Vector2( 1225.47, 353.99 ) @@ -69,6 +70,7 @@ script = ExtResource( 7 ) global_id = "r2_l_exit" esc_script = "res://game/rooms/room2/esc/left_exit.esc" is_exit = true +tooltip_name = "Left exit" dialog_color = Color( 1, 1, 1, 1 ) interact_positions = { "default": Vector2( 52.1462, 384.691 ) @@ -84,6 +86,7 @@ position = Vector2( 52.1462, 384.691 ) position = Vector2( 958.107, 176.401 ) global_id = "r2_button_right" esc_script = "res://game/rooms/room2/esc/button.esc" +dialog_color = Color( 0, 1, 0.109804, 1 ) interact_positions = { "default": Vector2( 987.537, 371.812 ) } @@ -98,6 +101,7 @@ __meta__ = { position = Vector2( 288.82, 171.439 ) global_id = "r2_button" esc_script = "res://game/rooms/room2/esc/button.esc" +dialog_color = Color( 0, 1, 0.109804, 1 ) interact_positions = { "default": Vector2( 313.488, 368.437 ) } diff --git a/game/rooms/room8/room8.tscn b/game/rooms/room8/room8.tscn index 88922deb..556c6244 100644 --- a/game/rooms/room8/room8.tscn +++ b/game/rooms/room8/room8.tscn @@ -75,7 +75,7 @@ __meta__ = { "_edit_vertical_guides_": [ ] } global_id = "room8" -esc_script = "res://game/rooms/room1/esc/room1.esc" +esc_script = "res://game/rooms/room8/esc/room8.esc" player_scene = ExtResource( 4 ) camera_limits = [ Rect2( 0, 0, 1289, 555 ) ] diff --git a/game/rooms/room9/closet/magical_closet.tscn b/game/rooms/room9/closet/magical_closet.tscn index 909da40c..6447476b 100644 --- a/game/rooms/room9/closet/magical_closet.tscn +++ b/game/rooms/room9/closet/magical_closet.tscn @@ -46,6 +46,18 @@ tracks/2/keys = { "update": 1, "values": [ false ] } +tracks/3/type = "value" +tracks/3/path = NodePath("statue:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} [sub_resource type="Animation" id=4] length = 0.5 @@ -85,6 +97,18 @@ tracks/2/keys = { "update": 1, "values": [ false ] } +tracks/3/type = "value" +tracks/3/path = NodePath("statue:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} [sub_resource type="Animation" id=5] length = 0.5 @@ -124,6 +148,18 @@ tracks/2/keys = { "update": 1, "values": [ true ] } +tracks/3/type = "value" +tracks/3/path = NodePath("statue:visible") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} [node name="closet" type="Area2D"] script = ExtResource( 1 ) @@ -185,20 +221,24 @@ default_color = Color( 0.4, 0.501961, 1, 1 ) color = Color( 0.4, 0.501961, 1, 1 ) polygon = PoolVector2Array( 1.07718, 7.2891, -37.6216, 23.335, -37.6216, 328.206, 2.02106, 302.722 ) -[node name="statue" type="Area2D" parent="base/open_object"] +[node name="statue" type="Area2D" parent="."] +visible = false +position = Vector2( 1.12247, 0 ) +z_index = 1 script = ExtResource( 1 ) global_id = "statue" +tooltip_name = "Statue" dialog_color = Color( 1, 1, 1, 1 ) interact_positions = { "default": Vector2( 59.3937, 58.8658 ) } -[node name="object" type="Polygon2D" parent="base/open_object/statue"] +[node name="object" type="Polygon2D" parent="statue"] position = Vector2( 1.18921, 7.13524 ) color = Color( 0.662745, 0.529412, 0, 1 ) polygon = PoolVector2Array( 52.338, 36.2829, 57.6774, 26.2716, 62.3493, 36.9503, 70.3583, 35.6154, 70.692, 27.2727, 76.3651, 26.6053, 76.3651, 29.9424, 72.9964, 30.7421, 72.9964, 39.2744, 61.4878, 45.624, 69.2264, 73.602, 43.4311, 73.4035, 53.7492, 45.4256, 41.4468, 39.8697, 41.6453, 31.139, 37.8752, 30.3453, 37.6768, 26.5752, 44.4232, 27.7657, 44.4232, 34.1154 ) -[node name="CollisionShape2D" type="CollisionShape2D" parent="base/open_object/statue"] +[node name="CollisionShape2D" type="CollisionShape2D" parent="statue"] position = Vector2( 58.2712, 58.8658 ) shape = SubResource( 1 ) diff --git a/game/rooms/room9/esc/closet_left.esc b/game/rooms/room9/esc/closet_left.esc index 27006325..694d2bf4 100755 --- a/game/rooms/room9/esc/closet_left.esc +++ b/game/rooms/room9/esc/closet_left.esc @@ -2,6 +2,10 @@ :open +> [left_closet_open] + stop + +set_global left_closet_open true inc_global open_closets 1 > [lt open_closets 3] diff --git a/game/rooms/room9/esc/closet_middle.esc b/game/rooms/room9/esc/closet_middle.esc index c9a0b91b..6b2a49a3 100755 --- a/game/rooms/room9/esc/closet_middle.esc +++ b/game/rooms/room9/esc/closet_middle.esc @@ -2,6 +2,10 @@ :open +> [middle_closet_open] + stop + +set_global middle_closet_open true inc_global open_closets 1 > [lt open_closets 3] diff --git a/game/rooms/room9/esc/closet_right.esc b/game/rooms/room9/esc/closet_right.esc index 6bd4cc42..c67fc286 100755 --- a/game/rooms/room9/esc/closet_right.esc +++ b/game/rooms/room9/esc/closet_right.esc @@ -2,6 +2,10 @@ :open +> [right_closet_open] + stop + +set_global right_closet_open true inc_global open_closets 1 > [lt open_closets 3] diff --git a/game/rooms/room9/esc/left_exit.esc b/game/rooms/room9/esc/left_exit.esc index bafdbb36..1bdc8109 100755 --- a/game/rooms/room9/esc/left_exit.esc +++ b/game/rooms/room9/esc/left_exit.esc @@ -1,2 +1,2 @@ :exit_scene -change_scene "res://game/rooms/room7/room7.tscn" +change_scene "res://game/rooms/room8/room8.tscn" diff --git a/game/rooms/room9/items/empty_sheet.png b/game/rooms/room9/items/empty_sheet.png deleted file mode 100644 index 582ddf45f5bba43ec4908d5ffc4f9656f3db99c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1512 zcmXw3e>l^593NI0k9@cFQ(~i-k~kE#*jQIOnNWJnrDGX)MN4H9CgJAl4o7}Rk5g7x z6hqFAup*SxI_1YU-_>TUnP1~JTkhNS-1~VxulMWydcQvJ&*%C4@yQMhIAmsGVFH7} z%=`|Mf}k7;tz=^(2=CO~dUCP3R;^i(FRH}y@t0Ggj_L9C z1;yVo$?(jF9<_2ryZBKmm3|y+T3K0neILC5jdr~l6cAjes%&S8>*9Aukj-=A$*Rf$ zvGstMoU=Q}+`3)N@@ARW#aGrvs8o=_+q&JG)eh^cVy*rBjD93yNQ|g)WHPDBd0iU# zs;yCwa{Tv8_f9+{&|(!?eVq09mX*HE1S7<@G+8cd{>`i9^CP=EdPRZ&1$BMcIn57C zmr((sC1`QIy%&va`87M3TD28Szd5Qzp%9md`e0FiUvf-4d{3eN4FAmEGEVezQt+~}Aufu8k z+X9P#UGGx$mj*-ENS%C+$kUqK5cJ7ZdgN%~nO#Lff8)K^oe)DkO;-xt!=08X=tLKO zI=e`DYAmv)yvCOL?UM*sKZ(WY;+s~Fmh)D={Vy)}HQ5)sv%|}=SZ=ZBos)MH>1A_~ zY{W5&%+3@6QU^oV^|Nf0x8|AdF9>wl!nJdp)Ap8nE_bHLv z1KoRwCIb#+e_Z_4>WNAw%72*!OWOr2I=PMO#AH? z@K|$rOm?;n(R5%JnH0X$^e$_o8fRzH%U@SK2j^eYmah)sTt}!q^E}Hk({SUN_Sg$k z8(j?cT*n>5#$365!^4&VGNlKNGdz*9lnOSXINvOsiLCMmx{LD=UxF{f)9Sx#A5-gr0aS4*n-=rG&^SoYBGF+-5 z86CifS#5U;lyPB1W&xoD4SLny`;ommiIKWti=mV=9_MAlcPEOC^p1N-2Hrg2s;hk` zD{M%@rlea}M2Jc~e6dLw#{t_5(EPMV_#6(Pn@OL;8`1)70UC(%ICKz)uXyUY!w2lx z{!Ia${nx~UeZH8N*%@AK=e~l!F89wZm;eqZlxDGaX2noZR?g&xaEu-&yI>Rgf(BUS zXNE4l{8Kv+g(5SWF~=J#Ul>xQbd_3^GuRo``(E_8>Gpni`e$maawySshKP-Z=c+Pl z-rWaXq;&ZF%t_WGVNIlOZgdASv^16aCNW6sfY6pu`tpW$TQ0snknX&ixnXXNql$Ys z&ax&XX+Lsdvw@PZG84-?!#K-~wMM7lL?`BdF4$|G%%phLQ+VyWCi0gEwY*yuCa>1- zY}WXML%#i9qm~vGt6Ze_fR35P8^w+QdpwaBO+7M$Dtjhi?X&FZ>QseiLO&MF?_dC_ I*5`EkzsW@owg3PC diff --git a/game/rooms/room9/items/empty_sheet.png.import b/game/rooms/room9/items/empty_sheet.png.import deleted file mode 100644 index 70c01c6c..00000000 --- a/game/rooms/room9/items/empty_sheet.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/empty_sheet.png-76792812151af35ec4a677d2674810fc.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://game/rooms/room9/items/empty_sheet.png" -dest_files=[ "res://.import/empty_sheet.png-76792812151af35ec4a677d2674810fc.stex" ] - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 diff --git a/game/rooms/room9/items/filled_sheet.png b/game/rooms/room9/items/filled_sheet.png deleted file mode 100644 index 7f310986ffd4dba02bd3e5b49a236e06e1b9c2e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1387 zcmV-x1(f=UP)`T6<${QUj>{r&y@{QUg={r%zL;r;#n{r&y>`}+U@ z0O{%J?(Xj9=H~VF_3iEL`}_O$_V)Vv`tb1Z^YioQ=;;0Z{qpki`1tti>+9v^<^TWx z>cNu`0000VbW%=Jug~vK->=UPUvDp;Pk-+}4uUmr{lehZM(i?apGB&TnfTdv$ z4loW7B7~TMdHmjN{*A{UlgX$P{C#QS8{=Q4U3{v+7Z8Od_+1HJx`E%6VB!RRRp&Tz z0>2QlRDh8aIK6%gV~h}*0q`1v&jpW+QhH)Mat(J6zPkiqe9=X9shD4iK3{4FJ_u8> zy4Xj`FLkUgm3DwH-U0*gY$!1C2Mz%E%O4m4F!Bdp0C3y)1m8q2qipL6UMj0H zG2rK|G8Vu@uWnqfRa(u|;K*1#Ie*^?4glD4%yVhp3H(E=KLqf+*Wl&+x_oG>KLjv# z5R5ZyYXZP4pTZ=9{c$hAZO(=Qdvq%y055#{D-jIJ_*Al8W~H8DtN}QX2p-pmxai}r zL@+4hZA;zktVIOCp+@kw2V-MI02nlqTHJP2pLzhES_mFbeO747xB-JQKAK2IWh_!l zaBMDjJoU#!(jN`DJ&hAS4!7pMB5wDG5`0sOBh?-p>&V*u(SWqi5g`vb2582bYw0QTrsA^?U>;B12$FmNk7n=_~eOyp-$K5Xq(8Z7h{T}oOjQPK~L z43xAwLKnvUaRUd&N}5-F(9+xMGN&2G(+qo6~09yMNCMn|@+{>*bb%Kn2h zqg#Psk8ULdV2^GE1Ms(Ze{}t6;U#|tuK>9J@V(x?yg!`4Pcaw4WDxz};3-+4c{l+0zWXN;!mc|2qJCv+ zNl?(APqgo1kuS8y_O4)R_>xzhew#A4e37nBzsciW^?O5arcFQY`xfN&@v755cLLuZ tuO$7*2l(-LAL;i9emveP{bCva{0H2G0`9NSR}=sM002ovPDHLkV1n1ryA%Kb diff --git a/game/rooms/room9/items/filled_sheet.png.import b/game/rooms/room9/items/filled_sheet.png.import deleted file mode 100644 index 4cd2c897..00000000 --- a/game/rooms/room9/items/filled_sheet.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/filled_sheet.png-b2986fedd542821915ec877a570a0934.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://game/rooms/room9/items/filled_sheet.png" -dest_files=[ "res://.import/filled_sheet.png-b2986fedd542821915ec877a570a0934.stex" ] - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 diff --git a/game/rooms/room9/items/pen.png b/game/rooms/room9/items/pen.png deleted file mode 100644 index 895aac41100321a8e41e34d46e2d91a7b0c80473..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 918 zcmV;H18Mw;P)qp&Hw-a zLT{Hub)h_0Z$*2nHa|x{V}nYK$vI0~$kpMs%il-{UhgGv(#wOqA4PG;Rz4001y_QchDpf8TFE&#x~}FHdiuzYkxJ zPmgcU?=LTZzYlM(Kd*n!kKdmkUk|^Z-|t^P?;ikA<6KAp00JsWL_t(Y$Bou!cbhO2 z24LEBr6Z#mP8=`100UA-W<6sJ;{X4mvXRg$k@t(?oae|~U65o@O}eH{>N`Ut&z(4q zdtN&wy*Q8Mwa^Pcu41_w+8M<{98X0_Np{=fVx*#G0oIIdg8Y&wX!)EkEXnI3y)-d( z>p|0m>-1?cEo%yvVM?E~8xPS=UHRcPWY5_H#5SU~Fi-n+{_6wU^H=y*>33y1-$QDGci@hNc_+mXK*wn(cR@p1;C=1qZD-4%QIt#vtjuQ1z1iR^ zm@+P#s=^_lH%!QCUlk?MF>5574jX*2Uzwa_Iy^uJ3}p<~fhm;i4$z-aF6MwPAf13U zYli>-8qixPZ^25aC~5|%qA0W!uKhLjiVZ^9{+i}X>S4c9wZEdI-c44x z{S_T@OWt;a+Fwy|pV+?0?JwzhbA=9;&GwhHCokv8+)b!V3EU|Wf-up3qA4T`S#RCmh z&>vBfr@tKSsOY;W%hNwi`wMy$75S54-y}-+J08?Ck96>FMk1>+J08>+9?5>+9|9?dIm@?Ck9A z?d{#&-2eap=jiC$-QC~d;OOb;>gwv|=H}kt-{a)u>+9><+}z;e;_U3~+}_^V+uQE$ z?&~v8bN~PV5Oh*bQ*U3N&#y0!Pe0%9AHRPO0BVxV4FCWFi%CR5R9M5UnC+IUAPhxO zK|ulMez&#q{*O6WuPtbRfS#W-Yj%^6lVnOpwDb`E9YIq%Vbp2NAdOYSPGPh%|D{e~ zY(AUXV$7P)s$LgjKKU%_3Txx!V@1ne%FQQ|QXJ#wV?|2(#?Qw}9zKWi6lRytqJtT1 zv`rPm9P)uWPxs4@1rK5l`7A~lfnc_dB)EL67#z%6GJ?tnbb)fhJYpJE>6AWA)kgIPWTC~<$J04}IKzXBL2E4pvJ!EY!4Q-Q@%I`~;Fh|wU%^i?33 zrE#G4qcF!v4kzBgn977y4?r+W<3Jc4#F$<|ub^RT(lEz}?huS^91v5Pm?W!l7;W;T z0`rDmgQ@Z`GJqMb!32g*P$3Mt29uc;5A7*&38u?@aTue;C73p|jU|ZT<`PVkivdp- zm51o1f?g`8X9OiIaF|FeqOOMUwT1FQ({?&~wCO(iEQ+UZzxc#z2t%Ea2^VnOC7N(S zjXY@MF2J7G2^Unz^SVilTpT9h0*1q|IHetN7+F|fA45v(>tTkzw7woDv9|{trb}&m z6eeM8p>deRF6c%ShMN=h{b0nI`o1yhRDCy0!UbZ)VO$s7@FQ=Bab0k`KldOyqA;!t zrsq80fBBXia2VGGmSXiUuf8vg>w?F;>gN>s_Z!5xF4!pZ{A0?f?}Bk$@aIkWq*dd- zK_dbR=7Ab{foR^Gzld*ab{MaNSI%?FtMBWjJXbCce!rQ#`o1vUq_ORH|BYHHdyMbP z>G@@H>$`TbC|W58Oj|ngd<@H9+2EiM*()2wwAm{g#ITZ;0t``cuD%&Cp1y jRL9v^fEj7oAAj@>O;PpS@Lw|O00000NkvXXu0mjftn;U4 diff --git a/game/rooms/room9/items/wrench.png.import b/game/rooms/room9/items/wrench.png.import deleted file mode 100644 index 28bf5d70..00000000 --- a/game/rooms/room9/items/wrench.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path="res://.import/wrench.png-cd78241d27aa0dc800a83edce9459724.stex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://game/rooms/room9/items/wrench.png" -dest_files=[ "res://.import/wrench.png-cd78241d27aa0dc800a83edce9459724.stex" ] - -[params] - -compress/mode=0 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/bptc_ldr=0 -compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 diff --git a/game/ui/commons/room_select.gd b/game/ui/commons/room_select.gd new file mode 100644 index 00000000..a4ff736a --- /dev/null +++ b/game/ui/commons/room_select.gd @@ -0,0 +1,36 @@ +extends OptionButton + +var selected_id = 0 +var options_paths = [] + +func _ready(): + var rooms_folder = "res://game/rooms/" + var dir = Directory.new() + var i = 1 + if dir.open(rooms_folder) == OK: + dir.list_dir_begin(true) + var file_name = dir.get_next() + while file_name != "": + if dir.current_is_dir(): + add_item(file_name) + options_paths.push_back("res://game/rooms/" + file_name + "/" + file_name + ".tscn") + i += 1 + file_name = dir.get_next() + + else: + escoria.report_errors("room_select.gd:_ready()", + ["A problem occurred while opening rooms folder."]) + + +func _on_button_pressed(): + var actual_command = ":debug\nchange_scene " + options_paths[selected_id] + "\n" + + var errors = [] + var events = escoria.esc_compiler.compile_str(actual_command, errors) + + if errors.empty(): + #past_actions.text += str(events) + var ret = escoria.esc_runner.run_event(events["debug"]) + +func _on_option_item_selected(index): + selected_id = index diff --git a/game/ui/commons/room_select.tscn b/game/ui/commons/room_select.tscn new file mode 100644 index 00000000..72ad1efa --- /dev/null +++ b/game/ui/commons/room_select.tscn @@ -0,0 +1,24 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://game/ui/commons/room_select.gd" type="Script" id=1] + +[node name="room_select" type="HBoxContainer"] +margin_right = 63.0 +margin_bottom = 40.0005 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="option" type="OptionButton" parent="."] +margin_right = 29.0 +margin_bottom = 40.0 +script = ExtResource( 1 ) + +[node name="button" type="Button" parent="."] +margin_left = 33.0 +margin_right = 63.0 +margin_bottom = 40.0 +text = "Go" + +[connection signal="item_selected" from="option" to="option" method="_on_option_item_selected"] +[connection signal="pressed" from="button" to="option" method="_on_button_pressed"] diff --git a/game/ui/ui_9verbs/game.gd b/game/ui/ui_9verbs/game.gd index 872d8e94..e922046d 100644 --- a/game/ui/ui_9verbs/game.gd +++ b/game/ui/ui_9verbs/game.gd @@ -24,10 +24,14 @@ Implement methods to react to inputs. - mousewheel_action(direction : int) +- hide_ui() +- show_ui() +- _on_event_done(event_name: String) """ -signal element_focused(element_global_id) +func _ready(): + escoria.esc_runner.connect("event_done", self, "_on_event_done") func _input(event): @@ -42,29 +46,27 @@ func _input(event): func left_click_on_bg(position : Vector2) -> void: escoria.do("walk", ["player", position]) + escoria.esc_runner.clear_current_action() + $ui/verbs_layer/verbs_menu.unselect_actions() func right_click_on_bg(position : Vector2) -> void: escoria.do("walk", ["player", position]) + escoria.esc_runner.clear_current_action() + $ui/verbs_layer/verbs_menu.unselect_actions() func left_double_click_on_bg(position : Vector2) -> void: escoria.do("walk", ["player", position, true]) + escoria.esc_runner.clear_current_action() + $ui/verbs_layer/verbs_menu.unselect_actions() ## ITEM FOCUS ## func element_focused(element_id : String) -> void: - #emit_signal("element_focused", element_id) -# var target_obj = escoria.esc_runner.get_object(element_id) -# if escoria.esc_runner.current_action != "use" && escoria.esc_runner.current_tool == null: -# if target_obj is ESCItem or target_obj is ESCHotspot: -# $ui/verbs_layer/verbs_menu.set_by_name(target_obj.default_action) - pass - + $ui/tooltip_layer/tooltip.set_target(escoria.esc_runner.get_object(element_id).tooltip_name) func element_unfocused() -> void: - #emit_signal("element_focused", "") - #$ui/verbs_layer/verbs_menu.set_by_name("walk") - pass + $ui/tooltip_layer/tooltip.set_target("") ## ITEMS ## @@ -97,10 +99,10 @@ func left_double_click_on_inventory_item(inventory_item_global_id : String, even pass func inventory_item_focused(inventory_item_global_id : String) -> void: - emit_signal("element_focused", inventory_item_global_id) + $ui/tooltip_layer/tooltip.set_target(escoria.esc_runner.get_object(inventory_item_global_id).tooltip_name) func inventory_item_unfocused() -> void: - emit_signal("element_focused", "") + $ui/tooltip_layer/tooltip.set_target("") func open_inventory(): @@ -124,3 +126,7 @@ func show_ui(): $ui/verbs_layer/verbs_menu.show() $ui/inventory_layer/inventory_ui.show() $ui/tooltip_layer/tooltip.show() + +func _on_event_done(event_name: String): + escoria.esc_runner.clear_current_action() + $ui/verbs_layer/verbs_menu.unselect_actions() diff --git a/game/ui/ui_9verbs/game.tscn b/game/ui/ui_9verbs/game.tscn index 3e10270b..b36b9410 100644 --- a/game/ui/ui_9verbs/game.tscn +++ b/game/ui/ui_9verbs/game.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=8 format=2] +[gd_scene load_steps=9 format=2] [ext_resource path="res://addons/escoria-core/template_scenes/label/action_target_tooltip.tscn" type="PackedScene" id=1] [ext_resource path="res://game/ui/ui_9verbs/inventory/inventory_ui.tscn" type="PackedScene" id=2] @@ -6,6 +6,7 @@ [ext_resource path="res://addons/escoria-core/game/scenes/dialogs/dialog_player.tscn" type="PackedScene" id=4] [ext_resource path="res://game/ui/ui_9verbs/game.gd" type="Script" id=5] [ext_resource path="res://addons/escoria-core/game/scenes/camera_player/camera.tscn" type="PackedScene" id=6] +[ext_resource path="res://game/ui/commons/room_select.tscn" type="PackedScene" id=7] [sub_resource type="StyleBoxFlat" id=1] bg_color = Color( 0.6, 0.6, 0.6, 0.5 ) @@ -34,6 +35,12 @@ margin_top = 615.331 margin_right = 21.097 margin_bottom = 615.331 +[node name="room_select" parent="ui/verbs_layer" instance=ExtResource( 7 )] +margin_left = 394.817 +margin_top = 756.336 +margin_right = 423.817 +margin_bottom = 776.336 + [node name="inventory_layer" type="CanvasLayer" parent="ui"] layer = 2 @@ -61,4 +68,13 @@ layer = 3 [node name="dialog_player" parent="ui/dialog_layer" instance=ExtResource( 4 )] +[node name="hover_stack" type="Label" parent="ui"] +margin_left = 1085.0 +margin_top = 2.81912 +margin_right = 1283.0 +margin_bottom = 107.819 +__meta__ = { +"_edit_use_anchors_": false +} + [node name="camera" parent="." instance=ExtResource( 6 )] diff --git a/game/ui/ui_9verbs/verbs_menu.gd b/game/ui/ui_9verbs/verbs_menu.gd index d428ec19..d0fef58f 100644 --- a/game/ui/ui_9verbs/verbs_menu.gd +++ b/game/ui/ui_9verbs/verbs_menu.gd @@ -17,3 +17,6 @@ func _on_action_selected(action : String): for but in $actions.get_children(): but.set_pressed(but.get_name() == action) +func unselect_actions(): + for but in $actions.get_children(): + but.set_pressed(false) diff --git a/game/ui/ui_9verbs/verbs_menu.tscn b/game/ui/ui_9verbs/verbs_menu.tscn index 17c7d6fa..fdc7d477 100644 --- a/game/ui/ui_9verbs/verbs_menu.tscn +++ b/game/ui/ui_9verbs/verbs_menu.tscn @@ -2,7 +2,6 @@ [ext_resource path="res://game/ui/ui_9verbs/verbs_menu.gd" type="Script" id=1] - [node name="verbs_menu" type="Control"] margin_left = 1.0 margin_right = 1.0