diff --git a/addons/escoria-core/game/core-scripts/esc/esc_compiler.gd b/addons/escoria-core/game/core-scripts/esc/esc_compiler.gd index 28635978..17ce644f 100644 --- a/addons/escoria-core/game/core-scripts/esc/esc_compiler.gd +++ b/addons/escoria-core/game/core-scripts/esc/esc_compiler.gd @@ -51,6 +51,7 @@ var commands = { "inventory_remove": { "min_args": 1 }, "inventory_display": { "min_args": 1, "types": [TYPE_BOOL] }, "jump": { "min_args": 1 }, + "label": { "min_args": 1 }, "play_snd": { "min_args": 2, "types": [TYPE_STRING, TYPE_STRING, TYPE_BOOL] }, "queue_animation": { "min_args": 2, "types": [TYPE_STRING, TYPE_STRING, TYPE_BOOL] }, "queue_resource": { "min_args": 1, "types": [TYPE_STRING, TYPE_BOOL] }, @@ -75,9 +76,9 @@ var commands = { "turn_to": { "min_args": 2 }, "wait": true, "walk": { "min_args": 2 }, + "walk_block": { "min_args": 2 }, "walk_to_pos": { "min_args": 3}, "walk_to_pos_block": { "min_args": 3}, - "walk_block": { "min_args": 2 }, "%": { "alias": "label", "min_args": 1}, "?": { "alias": "dialog"}, diff --git a/addons/escoria-core/game/core-scripts/esc/esc_runner_level.gd b/addons/escoria-core/game/core-scripts/esc/esc_runner_level.gd index 33d28f7d..08f2fea9 100644 --- a/addons/escoria-core/game/core-scripts/esc/esc_runner_level.gd +++ b/addons/escoria-core/game/core-scripts/esc/esc_runner_level.gd @@ -389,13 +389,15 @@ func inventory_display(command_params : Array): """ jump label_name -Jump to label_name block. Labels are blocks defined the same way as action_verbs: - :label +Jump to label_name block. This is used to build more complex dialog trees. +Labels must be defined at the same level as the 'jump' command, using either +'label label_name' command or '% label_name'. """ func jump(command_params : Array): escoria.esc_runner.jump(command_params[0]) return esctypes.EVENT_LEVEL_STATE.JUMP + """ """ func play_snd(command_params : Array): diff --git a/addons/escoria-core/game/core-scripts/esctooltip.gd b/addons/escoria-core/game/core-scripts/esctooltip.gd index 98148fbf..4df3464d 100644 --- a/addons/escoria-core/game/core-scripts/esctooltip.gd +++ b/addons/escoria-core/game/core-scripts/esctooltip.gd @@ -80,7 +80,7 @@ func set_target2(target2 : String) -> void: func update_tooltip_text(): """ - Overriden method. Should not be called. + Overriden method. Should not be called directly. """ pass diff --git a/addons/escoria-core/game/inputs_manager.gd b/addons/escoria-core/game/inputs_manager.gd index d1a92bcf..25e1f8d0 100644 --- a/addons/escoria-core/game/inputs_manager.gd +++ b/addons/escoria-core/game/inputs_manager.gd @@ -14,7 +14,7 @@ func _input(event): escoria.main.get_node("layers/debug_layer/esc_prompt_popup").popup() if ProjectSettings.get_setting("escoria/ui/tooltip_follows_mouse"): - if !hotspot_focused.empty(): + if escoria.main.current_scene and escoria.main.current_scene.game: if event is InputEventMouseMotion: escoria.main.current_scene.game.update_tooltip_following_mouse_position(event.position) diff --git a/game/characters/mark/mark.tscn b/game/characters/mark/mark.tscn index a04d0589..65888d4a 100644 --- a/game/characters/mark/mark.tscn +++ b/game/characters/mark/mark.tscn @@ -9,191 +9,191 @@ [ext_resource path="res://game/characters/mark/png/mark_talk_right.png" type="Texture" id=7] [sub_resource type="AtlasTexture" id=1] -atlas = ExtResource( 4 ) -region = Rect2( 48, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=2] -atlas = ExtResource( 4 ) -region = Rect2( 120, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=3] -atlas = ExtResource( 4 ) -region = Rect2( 72, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=4] -atlas = ExtResource( 5 ) +atlas = ExtResource( 7 ) region = Rect2( 0, 0, 24, 70 ) -[sub_resource type="AtlasTexture" id=5] -atlas = ExtResource( 5 ) +[sub_resource type="AtlasTexture" id=2] +atlas = ExtResource( 7 ) region = Rect2( 24, 0, 24, 70 ) -[sub_resource type="AtlasTexture" id=6] -atlas = ExtResource( 5 ) +[sub_resource type="AtlasTexture" id=3] +atlas = ExtResource( 7 ) region = Rect2( 48, 0, 24, 70 ) +[sub_resource type="AtlasTexture" id=4] +atlas = ExtResource( 7 ) +region = Rect2( 72, 0, 24, 70 ) + +[sub_resource type="AtlasTexture" id=5] +atlas = ExtResource( 7 ) +region = Rect2( 96, 0, 24, 70 ) + +[sub_resource type="AtlasTexture" id=6] +atlas = ExtResource( 4 ) +region = Rect2( 0, 0, 24, 70 ) + [sub_resource type="AtlasTexture" id=7] atlas = ExtResource( 4 ) -region = Rect2( 0, 0, 24, 70 ) +region = Rect2( 336, 0, 24, 70 ) [sub_resource type="AtlasTexture" id=8] atlas = ExtResource( 4 ) -region = Rect2( 336, 0, 24, 70 ) +region = Rect2( 360, 0, 24, 70 ) [sub_resource type="AtlasTexture" id=9] atlas = ExtResource( 4 ) -region = Rect2( 360, 0, 24, 70 ) +region = Rect2( 384, 0, 24, 70 ) [sub_resource type="AtlasTexture" id=10] -atlas = ExtResource( 4 ) -region = Rect2( 384, 0, 24, 70 ) +atlas = ExtResource( 6 ) +region = Rect2( 0, 0, 24, 70 ) [sub_resource type="AtlasTexture" id=11] atlas = ExtResource( 6 ) -region = Rect2( 0, 0, 24, 70 ) +region = Rect2( 24, 0, 24, 70 ) [sub_resource type="AtlasTexture" id=12] -atlas = ExtResource( 6 ) -region = Rect2( 24, 0, 24, 70 ) +atlas = ExtResource( 4 ) +region = Rect2( 120, 0, 24, 70 ) [sub_resource type="AtlasTexture" id=13] -atlas = ExtResource( 2 ) -region = Rect2( 0, 0, 24, 70 ) +atlas = ExtResource( 4 ) +region = Rect2( 72, 0, 24, 70 ) [sub_resource type="AtlasTexture" id=14] -atlas = ExtResource( 2 ) -region = Rect2( 24, 0, 24, 70 ) +atlas = ExtResource( 5 ) +region = Rect2( 0, 0, 24, 70 ) [sub_resource type="AtlasTexture" id=15] -atlas = ExtResource( 2 ) -region = Rect2( 48, 0, 24, 70 ) +atlas = ExtResource( 5 ) +region = Rect2( 24, 0, 24, 70 ) [sub_resource type="AtlasTexture" id=16] -atlas = ExtResource( 4 ) -region = Rect2( 144, 0, 24, 70 ) +atlas = ExtResource( 5 ) +region = Rect2( 48, 0, 24, 70 ) [sub_resource type="AtlasTexture" id=17] atlas = ExtResource( 4 ) -region = Rect2( 168, 0, 24, 70 ) +region = Rect2( 48, 0, 24, 70 ) [sub_resource type="AtlasTexture" id=18] -atlas = ExtResource( 4 ) -region = Rect2( 192, 0, 24, 70 ) +atlas = ExtResource( 2 ) +region = Rect2( 0, 0, 24, 70 ) [sub_resource type="AtlasTexture" id=19] -atlas = ExtResource( 4 ) -region = Rect2( 96, 0, 24, 70 ) +atlas = ExtResource( 2 ) +region = Rect2( 24, 0, 24, 70 ) [sub_resource type="AtlasTexture" id=20] -atlas = ExtResource( 4 ) -region = Rect2( 24, 0, 24, 70 ) +atlas = ExtResource( 2 ) +region = Rect2( 48, 0, 24, 70 ) [sub_resource type="AtlasTexture" id=21] atlas = ExtResource( 4 ) -region = Rect2( 216, 0, 24, 70 ) +region = Rect2( 144, 0, 24, 70 ) [sub_resource type="AtlasTexture" id=22] atlas = ExtResource( 4 ) -region = Rect2( 240, 0, 24, 70 ) +region = Rect2( 168, 0, 24, 70 ) [sub_resource type="AtlasTexture" id=23] atlas = ExtResource( 4 ) -region = Rect2( 264, 0, 24, 70 ) +region = Rect2( 192, 0, 24, 70 ) [sub_resource type="AtlasTexture" id=24] atlas = ExtResource( 4 ) -region = Rect2( 288, 0, 24, 70 ) +region = Rect2( 96, 0, 24, 70 ) [sub_resource type="AtlasTexture" id=25] atlas = ExtResource( 4 ) -region = Rect2( 312, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=26] -atlas = ExtResource( 7 ) -region = Rect2( 0, 0, 24, 70 ) - -[sub_resource type="AtlasTexture" id=27] -atlas = ExtResource( 7 ) region = Rect2( 24, 0, 24, 70 ) +[sub_resource type="AtlasTexture" id=26] +atlas = ExtResource( 4 ) +region = Rect2( 216, 0, 24, 70 ) + +[sub_resource type="AtlasTexture" id=27] +atlas = ExtResource( 4 ) +region = Rect2( 240, 0, 24, 70 ) + [sub_resource type="AtlasTexture" id=28] -atlas = ExtResource( 7 ) -region = Rect2( 48, 0, 24, 70 ) +atlas = ExtResource( 4 ) +region = Rect2( 264, 0, 24, 70 ) [sub_resource type="AtlasTexture" id=29] -atlas = ExtResource( 7 ) -region = Rect2( 72, 0, 24, 70 ) +atlas = ExtResource( 4 ) +region = Rect2( 288, 0, 24, 70 ) [sub_resource type="AtlasTexture" id=30] -atlas = ExtResource( 7 ) -region = Rect2( 96, 0, 24, 70 ) +atlas = ExtResource( 4 ) +region = Rect2( 312, 0, 24, 70 ) [sub_resource type="SpriteFrames" id=31] animations = [ { -"frames": [ SubResource( 1 ) ], +"frames": [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ) ], "loop": true, -"name": "idle_right", +"name": "speak_right", "speed": 5.0 }, { -"frames": [ SubResource( 2 ) ], -"loop": true, -"name": "idle_down_left", -"speed": 5.0 -}, { -"frames": [ SubResource( 3 ) ], -"loop": true, -"name": "idle_up", -"speed": 5.0 -}, { -"frames": [ SubResource( 4 ), SubResource( 5 ), SubResource( 6 ) ], -"loop": true, -"name": "speak_down_right", -"speed": 6.0 -}, { -"frames": [ SubResource( 7 ) ], +"frames": [ SubResource( 6 ) ], "loop": true, "name": "idle_down", "speed": 5.0 }, { -"frames": [ SubResource( 8 ), SubResource( 9 ), SubResource( 10 ) ], +"frames": [ SubResource( 7 ), SubResource( 8 ), SubResource( 9 ) ], "loop": true, "name": "walk_up", "speed": 6.0 }, { -"frames": [ SubResource( 11 ), SubResource( 12 ), SubResource( 11 ), SubResource( 12 ), SubResource( 12 ) ], +"frames": [ SubResource( 10 ), SubResource( 11 ), SubResource( 10 ), SubResource( 11 ), SubResource( 11 ) ], "loop": true, "name": "speak_up", "speed": 3.0 }, { -"frames": [ SubResource( 13 ), SubResource( 14 ), SubResource( 15 ), SubResource( 14 ), SubResource( 15 ) ], +"frames": [ SubResource( 12 ) ], +"loop": true, +"name": "idle_down_left", +"speed": 5.0 +}, { +"frames": [ SubResource( 13 ) ], +"loop": true, +"name": "idle_up", +"speed": 5.0 +}, { +"frames": [ SubResource( 14 ), SubResource( 15 ), SubResource( 16 ) ], +"loop": true, +"name": "speak_down_right", +"speed": 6.0 +}, { +"frames": [ SubResource( 17 ) ], +"loop": true, +"name": "idle_right", +"speed": 5.0 +}, { +"frames": [ SubResource( 18 ), SubResource( 19 ), SubResource( 20 ), SubResource( 19 ), SubResource( 20 ) ], "loop": true, "name": "speak_down", "speed": 6.0 }, { -"frames": [ SubResource( 16 ), SubResource( 17 ), SubResource( 18 ) ], +"frames": [ SubResource( 21 ), SubResource( 22 ), SubResource( 23 ) ], "loop": true, "name": "walk_down", "speed": 6.0 }, { -"frames": [ SubResource( 19 ) ], +"frames": [ SubResource( 24 ) ], "loop": true, "name": "idle_left", "speed": 5.0 }, { -"frames": [ SubResource( 20 ) ], +"frames": [ SubResource( 25 ) ], "loop": true, "name": "idle_down_right", "speed": 5.0 }, { -"frames": [ SubResource( 21 ), SubResource( 22 ), SubResource( 23 ), SubResource( 24 ), SubResource( 25 ) ], +"frames": [ SubResource( 26 ), SubResource( 27 ), SubResource( 28 ), SubResource( 29 ), SubResource( 30 ) ], "loop": true, "name": "walk_right", "speed": 6.0 -}, { -"frames": [ SubResource( 26 ), SubResource( 27 ), SubResource( 28 ), SubResource( 29 ), SubResource( 30 ) ], -"loop": true, -"name": "speak_right", -"speed": 5.0 } ] [sub_resource type="CapsuleShape2D" id=32] diff --git a/game/items/escitems/bottle_escitem.tscn b/game/items/escitems/bottle_escitem.tscn index f1b4ed40..ff9a0a52 100644 --- a/game/items/escitems/bottle_escitem.tscn +++ b/game/items/escitems/bottle_escitem.tscn @@ -14,6 +14,7 @@ global_id = "r9_bottle" esc_script = "res://game/items/escitems/bottle.esc" tooltip_name = "Bottle" default_action = "pickup" +combine_if_action_used_among = PoolStringArray( "use" ) use_from_inventory_only = true inventory_item_scene_file = ExtResource( 3 ) dialog_color = Color( 1, 1, 1, 1 ) diff --git a/game/rooms/room9/background.tscn b/game/rooms/room9/background.tscn index feb68b1f..4caa8e09 100644 --- a/game/rooms/room9/background.tscn +++ b/game/rooms/room9/background.tscn @@ -21,7 +21,3 @@ points = PoolVector2Array( 6.61201, 704.409, 6.61203, 389.558, 87.755, 339.775, __meta__ = { "_editor_description_": "" } - -[node name="r_door" type="Line2D" parent="."] -position = Vector2( 0, -267.828 ) -points = PoolVector2Array( 1175.07, 620.086, 1171.24, 311.267, 1274.8, 356.87, 1271.64, 671.735, 1188.64, 624.843 ) diff --git a/game/rooms/room9/esc/closet_left.esc b/game/rooms/room9/esc/closet_left.esc index 694d2bf4..dcedcb75 100755 --- a/game/rooms/room9/esc/closet_left.esc +++ b/game/rooms/room9/esc/closet_left.esc @@ -1,5 +1,20 @@ # Magical closet: the object is always in the LAST opened closet +:use +> [left_closet_open] + stop + +set_global left_closet_open true +inc_global open_closets 1 + +> [lt open_closets 3] + set_state r9_closet_left open_no_object + stop + +> [eq open_closets 3] + set_state r9_closet_left open_object + stop + :open > [left_closet_open] diff --git a/game/rooms/room9/esc/closet_middle.esc b/game/rooms/room9/esc/closet_middle.esc index 6b2a49a3..325dd414 100755 --- a/game/rooms/room9/esc/closet_middle.esc +++ b/game/rooms/room9/esc/closet_middle.esc @@ -1,5 +1,20 @@ # Magical closet: the object is always in the LAST opened closet +:use +> [middle_closet_open] + stop + +set_global middle_closet_open true +inc_global open_closets 1 + +> [lt open_closets 3] + set_state r9_closet_middle open_no_object + stop + +> [eq open_closets 3] + set_state r9_closet_middle open_object + stop + :open > [middle_closet_open] diff --git a/game/rooms/room9/esc/closet_right.esc b/game/rooms/room9/esc/closet_right.esc index c67fc286..672f613e 100755 --- a/game/rooms/room9/esc/closet_right.esc +++ b/game/rooms/room9/esc/closet_right.esc @@ -1,5 +1,20 @@ # Magical closet: the object is always in the LAST opened closet +:use +> [right_closet_open] + stop + +set_global right_closet_open true +inc_global open_closets 1 + +> [lt open_closets 3] + set_state r9_closet_right open_no_object + stop + +> [eq open_closets 3] + set_state r9_closet_right open_object + stop + :open > [right_closet_open] diff --git a/game/rooms/room9/esc/right_exit.esc b/game/rooms/room9/esc/right_exit.esc new file mode 100755 index 00000000..25d9ba02 --- /dev/null +++ b/game/rooms/room9/esc/right_exit.esc @@ -0,0 +1,2 @@ +:exit_scene + diff --git a/game/rooms/room9/esc/stand.esc b/game/rooms/room9/esc/stand.esc new file mode 100755 index 00000000..10b9f5bf --- /dev/null +++ b/game/rooms/room9/esc/stand.esc @@ -0,0 +1,4 @@ + +:use r9_bottle +set_state r9_stand set_bottle +set_state r9_right_exit open diff --git a/game/rooms/room9/r_door.tscn b/game/rooms/room9/r_door.tscn new file mode 100644 index 00000000..71783df1 --- /dev/null +++ b/game/rooms/room9/r_door.tscn @@ -0,0 +1,133 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://addons/escoria-core/game/core-scripts/escitem.gd" type="Script" id=1] + +[sub_resource type="Animation" id=1] +resource_name = "r_door_close" +tracks/0/type = "value" +tracks/0/path = NodePath("r_door_closed:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("r_door_opened:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/2/type = "value" +tracks/2/path = NodePath(".:is_exit") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/3/type = "value" +tracks/3/path = NodePath(".:default_action") +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": [ "look" ] +} + +[sub_resource type="Animation" id=2] +resource_name = "r_door_open" +length = 0.3 +tracks/0/type = "value" +tracks/0/path = NodePath("r_door_closed:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("r_door_opened:visible") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/2/type = "value" +tracks/2/path = NodePath(".:is_exit") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/3/type = "value" +tracks/3/path = NodePath(".:default_action") +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": [ "walk" ] +} + +[node name="r_door" type="Area2D"] +script = ExtResource( 1 ) +global_id = "r9_door" +esc_script = "res://game/rooms/room9/esc/r9_door.esc" +tooltip_name = "Door" +default_action = "look" +dialog_color = Color( 1, 1, 1, 1 ) +interact_positions = { +"default": Vector2( 0, 0 ) +} + +[node name="r_door_closed" type="Polygon2D" parent="."] +color = Color( 0.482353, 0.568627, 1, 1 ) +polygon = PoolVector2Array( 1172.3, 44.8186, 1172.3, 348.012, 1273.9, 401.983, 1277.07, 89.2657 ) + +[node name="r_door_opened" type="Polygon2D" parent="."] +visible = false +color = Color( 0.482353, 0.568627, 1, 1 ) +polygon = PoolVector2Array( 1172.3, 44.8186, 1172.3, 348.012, 1029.82, 349.887, 1025.19, 42.1269 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +anims/r_door_close = SubResource( 1 ) +anims/r_door_open = SubResource( 2 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] +polygon = PoolVector2Array( 1169.35, 41.7644, 1168.09, 347.925, 1275.18, 407.141, 1278.96, 88.3814 ) diff --git a/game/rooms/room9/room9.tscn b/game/rooms/room9/room9.tscn index 1986bd7f..83a11076 100644 --- a/game/rooms/room9/room9.tscn +++ b/game/rooms/room9/room9.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=10 format=2] +[gd_scene load_steps=13 format=2] [ext_resource path="res://addons/escoria-core/game/core-scripts/escterrain.gd" type="Script" id=1] [ext_resource path="res://game/rooms/room9/background.tscn" type="PackedScene" id=2] @@ -8,12 +8,29 @@ [ext_resource path="res://addons/escoria-core/game/core-scripts/escroom.gd" type="Script" id=6] [ext_resource path="res://addons/escoria-core/game/core-scripts/escitem.gd" type="Script" id=7] [ext_resource path="res://game/rooms/room2/button/button.tscn" type="PackedScene" id=8] +[ext_resource path="res://game/rooms/room9/r_door.tscn" type="PackedScene" id=9] +[ext_resource path="res://game/items/textures/genericItem_color_127.png" type="Texture" id=10] [sub_resource type="NavigationPolygon" id=1] vertices = PoolVector2Array( 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, 1143.08, 613.35, -9.16094, 803.802, -6.44019, 711.297, 846.646, 637.49, 3.15687, 646.051, 59.2201, 628.698, 84.5821, 654.06, 864.626, 613.518, 428.618, 640.487, 386.666, 618.012, 129.634, 615.792 ) polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 0, 3, 5, 6, 7 ), PoolIntArray( 6, 8, 9, 10 ), PoolIntArray( 7, 11, 4 ), PoolIntArray( 12, 7, 6, 10 ), PoolIntArray( 13, 12, 10, 14 ) ] outlines = [ PoolVector2Array( -6.44019, 711.297, 3.15687, 646.051, 59.2201, 628.698, 84.5821, 654.06, 129.634, 615.792, 386.666, 618.012, 428.618, 640.487, 846.646, 637.49, 864.626, 613.518, 1143.08, 613.35, 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, -9.16094, 803.802 ) ] +[sub_resource type="Animation" id=2] +resource_name = "set_bottle" +tracks/0/type = "value" +tracks/0/path = NodePath("bottle:visible") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} + [node name="room9" type="Node2D"] script = ExtResource( 6 ) __meta__ = { @@ -37,6 +54,15 @@ __meta__ = { [node name="walkable_area" type="Navigation2D" parent="."] script = ExtResource( 1 ) +scales = null +bitmaps_scale = Vector2( 1, 1 ) +lightmap = null +player_speed_multiplier = 1.0 +player_doubleclick_speed_multiplier = 1.5 +lightmap_modulate = Color( 1, 1, 1, 1 ) +debug_mode = 1 +scale_min = 0.3 +scale_max = 1.0 [node name="platform" type="NavigationPolygonInstance" parent="walkable_area"] position = Vector2( 6.73163, -264.779 ) @@ -53,6 +79,7 @@ global_id = "r9_l_exit" esc_script = "res://game/rooms/room9/esc/left_exit.esc" is_exit = true tooltip_name = "Left exit" +default_action = "walk" dialog_color = Color( 1, 1, 1, 1 ) interact_positions = { "default": Vector2( 37.4521, 392.045 ) @@ -64,29 +91,21 @@ polygon = PoolVector2Array( 0.328762, 440.897, 1.85199, 119.926, 85.9517, 74.621 [node name="Position2D" type="Position2D" parent="Hotspots/l_door"] position = Vector2( 37.4521, 392.045 ) -[node name="r_door" type="Area2D" parent="Hotspots"] -position = Vector2( -1, 0 ) -script = ExtResource( 7 ) -global_id = "r9_r_exit" -is_exit = true -tooltip_name = "Right exit" -dialog_color = Color( 1, 1, 1, 1 ) +[node name="r_door" parent="Hotspots" instance=ExtResource( 9 )] +esc_script = "res://game/rooms/room9/esc/right_exit.esc" interact_positions = { -"default": Vector2( 1224.47, 353.99 ) +"default": Vector2( 1198.65, 391.058 ) } -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_door"] -polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 ) - [node name="Position2D" type="Position2D" parent="Hotspots/r_door"] -position = Vector2( 1225.47, 353.99 ) +position = Vector2( 1198.65, 391.058 ) [node name="r9_closet_left" parent="Hotspots" instance=ExtResource( 5 )] position = Vector2( 435.233, 64.1518 ) global_id = "r9_closet_left" esc_script = "res://game/rooms/room9/esc/closet_left.esc" tooltip_name = "Left closet" -default_action = "open" +default_action = "use" interact_positions = { "default": Vector2( 505.158, 383.05 ) } @@ -99,7 +118,7 @@ position = Vector2( 572.963, 65.2113 ) global_id = "r9_closet_middle" esc_script = "res://game/rooms/room9/esc/closet_middle.esc" tooltip_name = "Middle closet" -default_action = "open" +default_action = "use" interact_positions = { "default": Vector2( 638.65, 383.05 ) } @@ -112,7 +131,7 @@ position = Vector2( 710.693, 66.2707 ) global_id = "r9_closet_right" esc_script = "res://game/rooms/room9/esc/closet_right.esc" tooltip_name = "Right closet" -default_action = "open" +default_action = "use" interact_positions = { "default": Vector2( 775.32, 383.05 ) } @@ -142,5 +161,36 @@ __meta__ = { "_edit_use_anchors_": false } +[node name="stand" type="Area2D" parent="Hotspots"] +position = Vector2( -125.617, 0.8909 ) +script = ExtResource( 7 ) +global_id = "r9_stand" +esc_script = "res://game/rooms/room9/esc/stand.esc" +tooltip_name = "Stand" +default_action = "look" +use_from_inventory_only = true +dialog_color = Color( 1, 1, 1, 1 ) +interact_positions = { +"default": Vector2( -125.617, 0.8909 ) +} + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/stand"] +polygon = PoolVector2Array( 1086.57, 357.819, 1087.46, 226.857, 1134.68, 228.639, 1133.79, 358.71 ) + +[node name="Line2D" type="Line2D" parent="Hotspots/stand"] +points = PoolVector2Array( 1103.65, 354.291, 1103.65, 240.701, 1092.07, 236.692, 1090.74, 349.391, 1104.99, 354.736, 1125.48, 354.736, 1125.93, 239.365, 1099.2, 238.474, 1089.85, 234.465, 1115.68, 234.02, 1127.71, 238.919 ) + +[node name="bottle" type="Sprite" parent="Hotspots/stand"] +visible = false +position = Vector2( 1110, 193.494 ) +scale = Vector2( 0.6, 0.6 ) +texture = ExtResource( 10 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="Hotspots/stand"] +anims/set_bottle = SubResource( 2 ) + +[node name="Position2D" type="Position2D" parent="Hotspots/stand"] +position = Vector2( 1111.74, 380.57 ) + [node name="player_start" type="Position2D" parent="."] position = Vector2( 76.7617, 437.649 ) diff --git a/game/ui/ui_mouse_icons/game.tscn b/game/ui/ui_mouse_icons/game.tscn index b4a6aa79..d9f4a2fa 100644 --- a/game/ui/ui_mouse_icons/game.tscn +++ b/game/ui/ui_mouse_icons/game.tscn @@ -38,9 +38,7 @@ layer = 2 [node name="tooltip" parent="ui/tooltip_layer" instance=ExtResource( 6 )] mouse_filter = 2 bbcode_text = "[center][color=#000000][/color][/center]" -color = Color( 0, 0, 0, 1 ) offset_from_cursor = Vector2( 75, 10 ) -debug_mode = true [node name="dialog_layer" type="CanvasLayer" parent="ui"] layer = 3 diff --git a/game/ui/ui_mouse_icons/tooltip/tooltip_target.gd b/game/ui/ui_mouse_icons/tooltip/tooltip_target.gd index e7b0a5d7..9a904f1f 100644 --- a/game/ui/ui_mouse_icons/tooltip/tooltip_target.gd +++ b/game/ui/ui_mouse_icons/tooltip/tooltip_target.gd @@ -1,4 +1,3 @@ -tool extends ESCTooltip func update_tooltip_text():