From 09ab75a91346bfcc27a8f9a47db020863a061fc4 Mon Sep 17 00:00:00 2001 From: balloonpopper <5151242+balloonpopper@users.noreply.github.com> Date: Wed, 16 Feb 2022 04:21:42 +1100 Subject: [PATCH] feat: Updated room 2 and 3 graphics (#492) Co-authored-by: Balloonpopper --- game/items/escitems/button.tscn | 9 +- game/rooms/room01/esc/trigger.esc | 2 +- game/rooms/room02/background.tscn | 36 -- game/rooms/room02/bridge.tscn | 54 --- game/rooms/room02/floor1.png | Bin 0 -> 672 bytes game/rooms/room02/floor2.png | Bin 0 -> 402 bytes game/rooms/room02/floor3.png | Bin 0 -> 398 bytes game/rooms/room02/floor4.png | Bin 0 -> 667 bytes game/rooms/room02/room02.tscn | 358 +++++++++++++++--- game/rooms/room02/room2background.png | Bin 0 -> 12864 bytes game/rooms/room02/walkable_area.tscn | 26 -- game/rooms/room03/background.tscn | 35 -- game/rooms/room03/esc/button.esc | 18 +- game/rooms/room03/esc/right_platform.esc | 2 + game/rooms/room03/esc/room03_bridge.esc | 6 +- game/rooms/room03/room03.tscn | 316 +++++++++++++--- game/rooms/room03/room3background.png | Bin 0 -> 7701 bytes game/rooms/room03/room3bridge.png | Bin 0 -> 193 bytes game/rooms/room03/room3chasm.png | Bin 0 -> 3040 bytes .../{room02 => room09}/button/button.tscn | 5 +- game/rooms/room09/room09.tscn | 2 +- game/rooms/room10/room10.tscn | 2 +- 22 files changed, 608 insertions(+), 263 deletions(-) delete mode 100644 game/rooms/room02/background.tscn delete mode 100644 game/rooms/room02/bridge.tscn create mode 100644 game/rooms/room02/floor1.png create mode 100644 game/rooms/room02/floor2.png create mode 100644 game/rooms/room02/floor3.png create mode 100644 game/rooms/room02/floor4.png create mode 100644 game/rooms/room02/room2background.png delete mode 100644 game/rooms/room02/walkable_area.tscn delete mode 100644 game/rooms/room03/background.tscn create mode 100644 game/rooms/room03/room3background.png create mode 100644 game/rooms/room03/room3bridge.png create mode 100644 game/rooms/room03/room3chasm.png rename game/rooms/{room02 => room09}/button/button.tscn (92%) diff --git a/game/items/escitems/button.tscn b/game/items/escitems/button.tscn index 2f891748..2805d274 100644 --- a/game/items/escitems/button.tscn +++ b/game/items/escitems/button.tscn @@ -7,13 +7,13 @@ offsets = PoolRealArray( 0, 0.830189 ) colors = PoolColorArray( 1, 1, 1, 1, 0.353516, 0.353516, 0.353516, 1 ) -[sub_resource type="GradientTexture" id=2] +[sub_resource type="GradientTexture" id=8] gradient = SubResource( 1 ) [sub_resource type="Curve" id=3] _data = [ Vector2( 0, 0.0886364 ), 0.0, 0.0, 0, 0, Vector2( 0.612766, 1 ), 0.0, 0.0, 0, 0, Vector2( 0.770213, 0.95 ), -1.55372, -1.55372, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ] -[sub_resource type="CurveTexture" id=4] +[sub_resource type="CurveTexture" id=9] curve = SubResource( 3 ) [sub_resource type="ParticlesMaterial" id=5] @@ -31,8 +31,8 @@ angle = 160.0 angle_random = 1.0 scale = 0.5 scale_random = 0.45 -scale_curve = SubResource( 4 ) -color_ramp = SubResource( 2 ) +scale_curve = SubResource( 9 ) +color_ramp = SubResource( 8 ) [sub_resource type="Animation" id=6] resource_name = "button_broken" @@ -82,7 +82,6 @@ polygon = PoolVector2Array( 343.993, 396.767, 323.298, 415.689, 344.585, 438.158 [node name="Particles2D" type="Particles2D" parent="."] position = Vector2( 344.768, 142.144 ) -emitting = false amount = 16 lifetime = 4.0 preprocess = 1.99 diff --git a/game/rooms/room01/esc/trigger.esc b/game/rooms/room01/esc/trigger.esc index 8540ae75..0555b052 100644 --- a/game/rooms/room01/esc/trigger.esc +++ b/game/rooms/room01/esc/trigger.esc @@ -2,4 +2,4 @@ :trigger_out -say player "I'm about to leave..." +say player "I'm near the door." diff --git a/game/rooms/room02/background.tscn b/game/rooms/room02/background.tscn deleted file mode 100644 index 4376999d..00000000 --- a/game/rooms/room02/background.tscn +++ /dev/null @@ -1,36 +0,0 @@ -[gd_scene load_steps=3 format=2] - -[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_background.gd" type="Script" id=1] -[ext_resource path="res://game/rooms/room02/bridge.tscn" type="PackedScene" id=2] - -[node name="background" type="TextureRect"] -margin_right = 1298.0 -margin_bottom = 559.0 -mouse_filter = 2 -script = ExtResource( 1 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="l_platform" type="Line2D" parent="."] -position = Vector2( 0, -266 ) -points = PoolVector2Array( -2.96298, 712.01, 129.973, 614.429, 499.081, 611.601, 456.654, 806.761, -4.3772, 811.004, -2.96295, 713.424 ) - -[node name="l_door" type="Line2D" parent="."] -position = Vector2( 0, -266 ) -points = PoolVector2Array( -2.96298, 712.01, 1.85498, 387.294, 87.755, 339.775, 87.5463, 649.784 ) - -[node name="r_platform" type="Line2D" parent="."] -position = Vector2( 0, -266 ) -points = PoolVector2Array( 859.704, 802.519, 815.717, 612.674, 1172.24, 617.258, 1288.21, 675.24, 1293.86, 815.247, 861.118, 808.176 ) - -[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, 1278.31, 672.412, 1184.97, 628.571 ) - -[node name="bridge" parent="." instance=ExtResource( 2 )] -interact_positions = { -"default": Vector2( 0, 0 ) -} - -[editable path="bridge"] diff --git a/game/rooms/room02/bridge.tscn b/game/rooms/room02/bridge.tscn deleted file mode 100644 index 4f62dd50..00000000 --- a/game/rooms/room02/bridge.tscn +++ /dev/null @@ -1,54 +0,0 @@ -[gd_scene load_steps=4 format=2] - -[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=1] - -[sub_resource type="Animation" id=1] -resource_name = "bridge_close" -tracks/0/type = "value" -tracks/0/path = NodePath(".:position") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 0, 1 ), -"transitions": PoolRealArray( 1, 1 ), -"update": 0, -"values": [ Vector2( 0, 0 ), Vector2( 1.41716, -160.142 ) ] -} - -[sub_resource type="Animation" id=2] -resource_name = "bridge_open" -tracks/0/type = "value" -tracks/0/path = NodePath(".:position") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 0, 1 ), -"transitions": PoolRealArray( 1, 1 ), -"update": 0, -"values": [ Vector2( 1.417, -160.142 ), Vector2( 0, 0 ) ] -} - -[node name="bridge" type="Area2D"] -script = ExtResource( 1 ) -global_id = "r2_bridge" -is_interactive = false -player_orients_on_arrival = false -dialog_color = Color( 1, 1, 1, 1 ) -interact_positions = { -"default": Vector2( 0, 0 ) -} - -[node name="bridge_lines" type="Line2D" parent="."] -position = Vector2( -2.36194, -105.8 ) -points = PoolVector2Array( 496.624, 640.806, 823.362, 644.635, 856.546, 776.097, 468.544, 773.544, 493.688, 640.283 ) - -[node name="AnimationPlayer" type="AnimationPlayer" parent="."] -anims/bridge_close = SubResource( 1 ) -anims/bridge_open = SubResource( 2 ) - -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] -polygon = PoolVector2Array( 493.501, 532.894, 463.501, 670.894, 861.501, 670.894, 823.501, 530.894 ) diff --git a/game/rooms/room02/floor1.png b/game/rooms/room02/floor1.png new file mode 100644 index 0000000000000000000000000000000000000000..8362db51935398c2907a62224128eb20e5dae393 GIT binary patch literal 672 zcmeAS@N?(olHy`uVBq!ia0vp^(}DN|2Q!eoG_yGqNHG=%xjQkeJ16rJ$YDu$^mSxl z*x1kgCy^D%=Lzr$aRt)76K?wYmjf9(OLLxq)RhGJ1^@s5pTR+E=|Qu+v@6t%!N$ zbIY*9;;K6ryr^Gtwv<=AQ&s$0!Q)*S#j%HvCY@|Gy|Y5^QA~Kj#fYNBzZ*LAUd4Qk zwV4(ZQ7(4Yb>8Y--6tk-zn<<|bn*GBw@I6x9ID!&q1U`qYxfGBog3!qG@VXaw@XjY zTW?MMwTerrrs09&Gl9l;m!3;C5BC(G4P>{J9!s?hcNCusWKSu*lWHAqDLx;_?kT;J zY8!4ioe`+n^7V|SYys^l8rOhSNPjGlf>)eQF(EHC+}c?i#lGboII?dd@)gr`MQG z{~xn5b{f!}un66Ca>c4;Gl8CoN`AZh*O{r;Qcq9f&YrsU`76`#py`G{&8642t-c?l z8G8+=!7L(r-MnJel9`*I9J-aXcK5GyQ_rQI2WptS_1P=iaHHwWKn=OqHmwHQ5F-cF zP!{36j-yz$Xy*o?hUD5^NoS@WdwLkCVfxp1T}I(T(}jT=YOmc9O^!vl577Ij8~?>ze8%;zDCK19)nipV9-S4v_4MQNn{1`IRkt`T!D1&gquKewYdFJAjMn~x5H8-Ch$!sY61ca$ynew91*GWUCgU;a+^;;QR? zSu@;=s|q&T%(>hw{q*A;xjQQB8-UCwp#@b1#e0PO`15+g55GL<`?1Tyc86k|=yG=R z!`hF(JaDTh1uAA)KLM!tL1mz%q*x6YA^xuyN=%Y#F4rpwu%Axinrpef6{xh*7O3=8_Mg;G)78&qol`;+0G*ksL;wH) literal 0 HcmV?d00001 diff --git a/game/rooms/room02/floor3.png b/game/rooms/room02/floor3.png new file mode 100644 index 0000000000000000000000000000000000000000..3f53f22a51160b21b2af4036530bbe62d032c600 GIT binary patch literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^`9OSvgBeI(Wb$VLQjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`IRkt`T!D1&gquKewYdFJAjMn~Px#1ZP1_K>z@;j|==^1poj52~bQ_MF0Q*jgZ*@0065OKg9q500VSVPE-H?0N2V5 zK>z>%32;bRa{vGi!T@ zD)Vm*_(cvzeT^H2k4e_B;cEknq^~!*SWbfLtc9?Tu)IA-ODIP%Z=5{z9<9 zuw4BxFjqJ1xF2gUG*>SS&eaJ!-3~Pvo~sWA=<0%1v08 zx|(6vdvOLsb+y7^U5&8YtuTY(y4qmCt|r+1PL#orT`e$ZR|D*EBgkObu6h`_s~Yw^ zA7e0dS1kV5zea2BT}N0!G)A9+o^AU@*Go)G)f1w6OF!|H0^5 zQ^M%l(!nyP+y|p;PX(jvNCV5A@g9t>QwkVe=gP3`3FpD+x>SVGb*%);fA<}Xu3H5d zUH4>|@YQuNx*mxzx}Hfe@!NX;zoM%$;pcRv%Ku$*c@9Qbvh45aN|*b;=yDv4u1pyK zUAfW%+2uDFUD=WZy7HwA1((}kbO|L8bV)rGC70J=bcsC}bjjTvMVHfHbQQWm=qh!U zlwCf9(N*k1p{v~4qHwtkMwg-!hAvHqM&t4rj4o9>hb~>4N9A%Dj4ov>h%Rl5NauQg zFuK&uB)arXCZ+53!RV@JMA22#pmx1I7+p1ehCeLJqZsP_+G+p*002ovPDHLkV1nzt BA`t)p literal 0 HcmV?d00001 diff --git a/game/rooms/room02/room02.tscn b/game/rooms/room02/room02.tscn index 037840f4..79895fc8 100644 --- a/game/rooms/room02/room02.tscn +++ b/game/rooms/room02/room02.tscn @@ -1,34 +1,199 @@ -[gd_scene load_steps=9 format=2] +[gd_scene load_steps=21 format=2] -[ext_resource path="res://game/rooms/room02/walkable_area.tscn" type="PackedScene" id=1] -[ext_resource path="res://game/rooms/room02/background.tscn" type="PackedScene" id=2] [ext_resource path="res://game/fonts/caslonantique.tres" type="DynamicFont" id=3] [ext_resource path="res://game/characters/mark/mark.tscn" type="PackedScene" id=4] -[ext_resource path="res://game/rooms/room02/button/button.tscn" type="PackedScene" id=5] [ext_resource path="res://addons/escoria-core/game/core-scripts/esc_room.gd" type="Script" id=6] [ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=7] [ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=8] +[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_background.gd" type="Script" id=9] +[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_terrain.gd" type="Script" id=10] +[ext_resource path="res://game/rooms/room02/room2background.png" type="Texture" id=11] +[ext_resource path="res://game/rooms/room02/floor3.png" type="Texture" id=12] +[ext_resource path="res://game/rooms/room02/floor1.png" type="Texture" id=13] +[ext_resource path="res://game/rooms/room02/floor4.png" type="Texture" id=14] +[ext_resource path="res://game/rooms/room02/floor2.png" type="Texture" id=15] + +[sub_resource type="NavigationPolygon" id=4] +vertices = PoolVector2Array( 10, 378, 86, 337, 88, 374, 8, 545, 121, 355, 488, 354, 409, 546, 1184, 373, 1185, 343, 1272, 393, 1272, 548, 875, 546, 802, 357, 1161, 358 ) +polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 5, 6, 3, 2 ), PoolIntArray( 7, 8, 9, 10 ), PoolIntArray( 10, 11, 12, 13, 7 ) ] +outlines = [ PoolVector2Array( 121, 355, 488, 354, 409, 546, 8, 545, 10, 378, 86, 337, 88, 374 ), PoolVector2Array( 802, 357, 875, 546, 1272, 548, 1272, 393, 1185, 343, 1184, 373, 1161, 358 ) ] + +[sub_resource type="NavigationPolygon" id=5] +vertices = PoolVector2Array( 10, 378, 88, 335, 86, 373, 8, 542, 1185, 374, 1185, 343, 1270, 395, 1272, 545, 114, 355, 1161, 357 ) +polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 5, 6 ), PoolIntArray( 6, 7, 3, 4 ), PoolIntArray( 8, 9, 4, 3, 2 ) ] +outlines = [ PoolVector2Array( 88, 335, 86, 373, 114, 355, 1161, 357, 1185, 374, 1185, 343, 1270, 395, 1272, 545, 8, 542, 10, 378 ) ] + +[sub_resource type="RectangleShape2D" id=6] +extents = Vector2( 39, 39.5 ) + +[sub_resource type="RectangleShape2D" id=7] +extents = Vector2( 39, 39.5 ) + +[sub_resource type="Animation" id=1] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath("ESCBackground/Floor1:position") +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": 0, +"values": [ Vector2( 495, 650 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("ESCBackground/Floor2:position") +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": 0, +"values": [ Vector2( 585, 650 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("ESCBackground/Floor3:position") +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": 0, +"values": [ Vector2( 696, 650 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("ESCBackground/Floor4:position") +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": 0, +"values": [ Vector2( 786, 650 ) ] +} + +[sub_resource type="Animation" id=3] +resource_name = "bridge_close" +length = 1.6 +tracks/0/type = "value" +tracks/0/path = NodePath("ESCBackground/Floor1:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 0.5, 1 ), +"update": 0, +"values": [ Vector2( 495, 650 ), Vector2( 495, 450 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("ESCBackground/Floor2:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.2, 1.2 ), +"transitions": PoolRealArray( 1, 0.5, 1 ), +"update": 0, +"values": [ Vector2( 585, 650 ), Vector2( 585, 650 ), Vector2( 585, 450 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("ESCBackground/Floor4:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.6, 1.6 ), +"transitions": PoolRealArray( 1, 0.5, 1 ), +"update": 0, +"values": [ Vector2( 786, 650 ), Vector2( 786, 650 ), Vector2( 786, 450 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("ESCBackground/Floor3:position") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 0.4, 1.4 ), +"transitions": PoolRealArray( 1, 0.5, 1 ), +"update": 0, +"values": [ Vector2( 696, 650 ), Vector2( 696, 650 ), Vector2( 696, 450 ) ] +} + +[sub_resource type="Animation" id=2] +resource_name = "bridge_open" +length = 1.6 +tracks/0/type = "value" +tracks/0/path = NodePath("ESCBackground/Floor1:position") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.6, 1.6 ), +"transitions": PoolRealArray( 1.94482e-05, 2.05675, 2 ), +"update": 0, +"values": [ Vector2( 495, 450 ), Vector2( 495, 450 ), Vector2( 495, 650 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("ESCBackground/Floor2:position") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.4, 1.4 ), +"transitions": PoolRealArray( 1e-05, 2, 2 ), +"update": 0, +"values": [ Vector2( 585, 450 ), Vector2( 585, 450 ), Vector2( 585, 650 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("ESCBackground/Floor3:position") +tracks/2/interp = 2 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.2, 1.2 ), +"transitions": PoolRealArray( 1e-05, 2, 2 ), +"update": 0, +"values": [ Vector2( 696, 450 ), Vector2( 696, 450 ), Vector2( 696, 650 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("ESCBackground/Floor4:position") +tracks/3/interp = 2 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 2.05675, 2 ), +"update": 0, +"values": [ Vector2( 786, 450 ), Vector2( 786, 650 ) ] +} + +[sub_resource type="CapsuleShape2D" id=8] [node name="room2" type="Node2D"] +position = Vector2( -2, 0 ) script = ExtResource( 6 ) global_id = "room2" esc_script = "res://game/rooms/room02/esc/room02_bridge.esc" player_scene = ExtResource( 4 ) camera_limits = [ Rect2( 0, 0, 1289, 555 ) ] - -[node name="walkable_area" parent="." instance=ExtResource( 1 )] -debug_mode = 1 - -[node name="background" parent="." instance=ExtResource( 2 )] - -[node name="room_label" type="Label" parent="background"] -margin_right = 40.0 -margin_bottom = 14.0 -custom_fonts/font = ExtResource( 3 ) -text = "ROOM 2" -__meta__ = { -"_edit_use_anchors_": false -} +editor_debug_mode = 1 [node name="r_platform" type="Area2D" parent="."] pause_mode = 1 @@ -45,7 +210,7 @@ animations = null polygon = PoolVector2Array( 870.974, 538.342, 827.536, 353.995, 1181.4, 357.174, 1287.34, 413.325, 1289.46, 545.758 ) [node name="action_pos" type="Position2D" parent="r_platform"] -position = Vector2( 430.893, 451.052 ) +position = Vector2( 394, 460 ) script = ExtResource( 8 ) [node name="r_door" type="Area2D" parent="."] @@ -63,7 +228,7 @@ animations = null polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 ) [node name="Position2D" type="Position2D" parent="r_door"] -position = Vector2( 1225.47, 353.99 ) +position = Vector2( 1227, 387 ) script = ExtResource( 8 ) [node name="l_door" type="Area2D" parent="."] @@ -84,38 +249,131 @@ polygon = PoolVector2Array( -1.37926, 443.158, 7.96461, 122.796, 84.0504, 77.411 position = Vector2( 52.1462, 384.691 ) script = ExtResource( 8 ) -[node name="button_right" parent="." instance=ExtResource( 5 )] -pause_mode = 1 -position = Vector2( 958.107, 176.401 ) -global_id = "r2_button_right" -esc_script = "res://game/rooms/room02/esc/button.esc" -dialog_color = Color( 0, 1, 0.109804, 1 ) -animations = null - -[node name="Position2D" type="Position2D" parent="button_right"] -position = Vector2( 29.4302, 195.411 ) -script = ExtResource( 8 ) -__meta__ = { -"_editor_description_": "" -} - -[node name="button_left" parent="." instance=ExtResource( 5 )] -pause_mode = 1 -position = Vector2( 288.82, 171.439 ) -global_id = "r2_button" -esc_script = "res://game/rooms/room02/esc/button.esc" -dialog_color = Color( 0, 1, 0.109804, 1 ) -animations = null - -[node name="Position2D" type="Position2D" parent="button_left"] -position = Vector2( 24.6681, 196.998 ) -script = ExtResource( 8 ) -__meta__ = { -"_editor_description_": "" -} - [node name="player_start" type="Position2D" parent="."] position = Vector2( 76.7617, 437.649 ) script = ExtResource( 8 ) global_id = "r2_player_start" is_start_location = true + +[node name="ESCBackground" type="TextureRect" parent="."] +margin_right = 1280.0 +margin_bottom = 550.0 +mouse_filter = 2 +texture = ExtResource( 11 ) +script = ExtResource( 9 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="room_label" type="Label" parent="ESCBackground"] +margin_left = 18.0 +margin_top = 12.0 +margin_right = 100.0 +margin_bottom = 33.0 +custom_fonts/font = ExtResource( 3 ) +text = "ROOM 2" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Floor1" type="Sprite" parent="ESCBackground"] +position = Vector2( 495, 650 ) +texture = ExtResource( 13 ) + +[node name="Floor2" type="Sprite" parent="ESCBackground"] +position = Vector2( 585, 650 ) +texture = ExtResource( 15 ) + +[node name="Floor4" type="Sprite" parent="ESCBackground"] +position = Vector2( 786, 650 ) +texture = ExtResource( 14 ) + +[node name="Floor3" type="Sprite" parent="ESCBackground"] +position = Vector2( 696, 650 ) +scale = Vector2( 1.01351, 1 ) +texture = ExtResource( 12 ) + +[node name="Polygon2D" type="Polygon2D" parent="ESCBackground"] +color = Color( 0, 0, 0, 1 ) +polygon = PoolVector2Array( 0, 550, 1280, 550, 1280, 800, 0, 800 ) + +[node name="room_label2" type="Label" parent="ESCBackground"] +margin_left = 17.0 +margin_top = 558.0 +margin_right = 99.0 +margin_bottom = 579.0 +custom_fonts/font = ExtResource( 3 ) +text = "Room 2 demonstrates modifying the walkable area of a room. Performing \"use\" on the button will cause the original navmesh (which has a gap +in the middle) with one that covers the whole room (platforms + bridge) - allowing the player to walk from one side to the other. +Setting the state of the r2_bridge variable to \"bridge_open\" or \"bridge_closed\" (see button.esc) automatically runs the animation with the same name." +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="walkable_area" type="Navigation2D" parent="."] +script = ExtResource( 10 ) +debug_mode = 1 + +[node name="bridge_open" type="NavigationPolygonInstance" parent="walkable_area"] +navpoly = SubResource( 4 ) + +[node name="bridge_closed" type="NavigationPolygonInstance" parent="walkable_area"] +visible = false +navpoly = SubResource( 5 ) +enabled = false + +[node name="button_left" type="Area2D" parent="."] +pause_mode = 1 +script = ExtResource( 7 ) +global_id = "r2_button" +esc_script = "res://game/rooms/room02/esc/button.esc" +tooltip_name = "button" +default_action = "use" +dialog_color = Color( 0.196078, 1, 0, 1 ) +animations = null + +[node name="Position2D" type="Position2D" parent="button_left"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="button_left"] +position = Vector2( 370, 190.5 ) +shape = SubResource( 6 ) + +[node name="ESCLocation" type="Position2D" parent="button_left"] +position = Vector2( 369, 375 ) +script = ExtResource( 8 ) + +[node name="button_right2" type="Area2D" parent="."] +pause_mode = 1 +script = ExtResource( 7 ) +global_id = "r2_button_right" +esc_script = "res://game/rooms/room02/esc/button.esc" +tooltip_name = "button" +default_action = "use" +dialog_color = Color( 0.196078, 1, 0, 1 ) +animations = null + +[node name="Position2D" type="Position2D" parent="button_right2"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="button_right2"] +position = Vector2( 911, 190.5 ) +shape = SubResource( 7 ) + +[node name="ESCLocation" type="Position2D" parent="button_right2"] +position = Vector2( 914, 378 ) +script = ExtResource( 8 ) + +[node name="bridge" type="Area2D" parent="."] +pause_mode = 1 +script = ExtResource( 7 ) +global_id = "r2_bridge" +dialog_color = Color( 1, 1, 1, 1 ) +animations = null + +[node name="AnimationPlayer" type="AnimationPlayer" parent="bridge"] +root_node = NodePath("../..") +anims/RESET = SubResource( 1 ) +anims/bridge_close = SubResource( 3 ) +anims/bridge_open = SubResource( 2 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="bridge"] +shape = SubResource( 8 ) diff --git a/game/rooms/room02/room2background.png b/game/rooms/room02/room2background.png new file mode 100644 index 0000000000000000000000000000000000000000..6d38366f763def8502f1116614040a5d326ba646 GIT binary patch literal 12864 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 Lf92dVdHp{C`*yC^ literal 0 HcmV?d00001 diff --git a/game/rooms/room02/walkable_area.tscn b/game/rooms/room02/walkable_area.tscn deleted file mode 100644 index 86eedaa8..00000000 --- a/game/rooms/room02/walkable_area.tscn +++ /dev/null @@ -1,26 +0,0 @@ -[gd_scene load_steps=4 format=2] - -[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_terrain.gd" type="Script" id=1] - -[sub_resource type="NavigationPolygon" id=1] -vertices = PoolVector2Array( 129.634, 615.792, 488.56, 617.98, 454.637, 800.726, 2.69714, 805.103, 75.8943, 663.384, 3.79144, 707.712, 5.9538, 653.476, 63.1848, 626.267, 1284.99, 804.433, 868.119, 803.394, 828.615, 621.468, 1152.31, 619.946, 1181.97, 640.075, 1260.04, 615.231, 1282.91, 680.724, 1190.39, 590.281 ) -polygons = [ PoolIntArray( 0, 1, 2, 3, 4 ), PoolIntArray( 4, 3, 5, 6, 7 ), PoolIntArray( 8, 9, 10, 11, 12 ), PoolIntArray( 13, 14, 8, 12, 15 ) ] -outlines = [ PoolVector2Array( 3.79144, 707.712, 5.9538, 653.476, 63.1848, 626.267, 75.8943, 663.384, 129.634, 615.792, 488.56, 617.98, 454.637, 800.726, 2.69714, 805.103 ), PoolVector2Array( 828.615, 621.468, 868.119, 803.394, 1284.99, 804.433, 1282.91, 680.724, 1260.04, 615.231, 1190.39, 590.281, 1181.97, 640.075, 1152.31, 619.946 ) ] - -[sub_resource type="NavigationPolygon" id=2] -vertices = PoolVector2Array( 837.638, 649.714, 832.166, 621.263, 1171.4, 624.546, 863.901, 768.992, 129.634, 615.792, 488.56, 617.98, 484.183, 645.337, 462.297, 766.803, 454.637, 800.726, 85.8629, 647.526, 1265.5, 615.792, 1281.92, 680.354, 1290.67, 816.046, 877.032, 800.726, 2.69714, 805.103, 3.79144, 707.712, 13.64, 663.94, 55.2229, 643.149, 1199.85, 607.037 ) -polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 5, 6, 7, 8, 9 ), PoolIntArray( 10, 11, 12, 13, 3, 2 ), PoolIntArray( 8, 14, 15, 16, 17, 9 ), PoolIntArray( 3, 7, 6, 0 ), PoolIntArray( 10, 2, 18 ) ] -outlines = [ PoolVector2Array( 3.79144, 707.712, 13.64, 663.94, 55.2229, 643.149, 85.8629, 647.526, 129.634, 615.792, 488.56, 617.98, 484.183, 645.337, 837.638, 649.714, 832.166, 621.263, 1171.4, 624.546, 1199.85, 607.037, 1265.5, 615.792, 1281.92, 680.354, 1290.67, 816.046, 877.032, 800.726, 863.901, 768.992, 462.297, 766.803, 454.637, 800.726, 2.69714, 805.103 ) ] - -[node name="walkable_area" type="Navigation2D"] -script = ExtResource( 1 ) - -[node name="bridge_open" type="NavigationPolygonInstance" parent="."] -position = Vector2( 6.73163, -264.779 ) -navpoly = SubResource( 1 ) - -[node name="bridge_closed" type="NavigationPolygonInstance" parent="."] -visible = false -position = Vector2( 0, -269.266 ) -navpoly = SubResource( 2 ) -enabled = false diff --git a/game/rooms/room03/background.tscn b/game/rooms/room03/background.tscn deleted file mode 100644 index e1cbdb3a..00000000 --- a/game/rooms/room03/background.tscn +++ /dev/null @@ -1,35 +0,0 @@ -[gd_scene load_steps=3 format=2] - -[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_background.gd" type="Script" id=1] -[ext_resource path="res://game/rooms/room02/bridge.tscn" type="PackedScene" id=2] - -[node name="background" type="TextureRect"] -margin_right = 1300.0 -margin_bottom = 561.0 -mouse_filter = 2 -script = ExtResource( 1 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="l_platform" type="Line2D" parent="."] -position = Vector2( 0, -266 ) -points = PoolVector2Array( -2.96298, 712.01, 129.973, 614.429, 499.081, 611.601, 456.654, 806.761, -4.3772, 811.004, -2.96295, 713.424 ) - -[node name="l_door" type="Line2D" parent="."] -position = Vector2( 0, -266 ) -points = PoolVector2Array( -2.96298, 712.01, 1.85498, 387.294, 87.755, 339.775, 87.5463, 649.784 ) - -[node name="r_platform" type="Line2D" parent="."] -position = Vector2( 0, -266 ) -points = PoolVector2Array( 859.704, 802.519, 815.717, 612.674, 1172.24, 617.258, 1288.21, 675.24, 1293.86, 815.247, 861.118, 808.176 ) - -[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, 1278.31, 672.412, 1184.97, 628.571 ) - -[node name="bridge" parent="." instance=ExtResource( 2 )] -global_id = "r3_bridge" -interact_positions = { -"default": Vector2( 0, 0 ) -} diff --git a/game/rooms/room03/esc/button.esc b/game/rooms/room03/esc/button.esc index b2e4300b..676e7d67 100755 --- a/game/rooms/room03/esc/button.esc +++ b/game/rooms/room03/esc/button.esc @@ -15,7 +15,14 @@ say player "I must USE this." enable_terrain bridge_closed set_global r3_bridge_closed true set_interactive r3_right_platform false - set_interactive r3_bridge false + set_interactive r3_r_exit true + # We start with the collision polygon on the right door disabled + # This lets it act as part of the right platform, which responds + # with "I can't reach it" when the player clicks it with the bridge + # open. + # We use a custom function to enable the collision polygon on the door + # to enable it to work as a door once the bridge is closed. + custom r3_r_exit door_enabler enable_door stop > [!button_broken, r3_bridge_closed] @@ -23,6 +30,9 @@ say player "I must USE this." enable_terrain bridge_open set_global r3_bridge_closed false set_interactive r3_right_platform true + # Disable the door collision so it acts like part of the right + # platform again. + custom r3_r_exit door_enabler disable_door stop > [button_broken] @@ -32,14 +42,14 @@ say player "I must USE this." :talk > [button_broken] say player "Please, will you repair yourself?" - wait 2 + wait 1 set_state r3_button button_repaired set_global button_broken false - wait 2 + wait 1 say player "Oh, it worked!" stop > [!button_broken] - say player "I should not talk to it again. It could break itself back." + say player "I better not talk to it any more, it might break again." :arrived diff --git a/game/rooms/room03/esc/right_platform.esc b/game/rooms/room03/esc/right_platform.esc index 6cc515a8..564997ec 100755 --- a/game/rooms/room03/esc/right_platform.esc +++ b/game/rooms/room03/esc/right_platform.esc @@ -1,5 +1,7 @@ :look +set_angle player 90 say player "That's the other side." :arrived +set_angle player 90 say player "I can't reach it." diff --git a/game/rooms/room03/esc/room03_bridge.esc b/game/rooms/room03/esc/room03_bridge.esc index 47f40318..0f26dca7 100644 --- a/game/rooms/room03/esc/room03_bridge.esc +++ b/game/rooms/room03/esc/room03_bridge.esc @@ -14,10 +14,14 @@ set_state r3_bridge bridge_close true enable_terrain bridge_closed set_interactive r3_right_platform false + set_interactive r3_r_exit true + # We use a custom function to enable the collision polygon on the door + # to enable it to work as a door once the bridge is closed. + custom r3_r_exit door_enabler enable_door > [eq ESC_LAST_SCENE room2] teleport player r3_l_exit - # Set player look right + # Set player look down set_angle player 180 stop > [eq ESC_LAST_SCENE room4] diff --git a/game/rooms/room03/room03.tscn b/game/rooms/room03/room03.tscn index c055b457..613a0e2b 100644 --- a/game/rooms/room03/room03.tscn +++ b/game/rooms/room03/room03.tscn @@ -1,13 +1,146 @@ -[gd_scene load_steps=9 format=2] +[gd_scene load_steps=25 format=2] -[ext_resource path="res://game/rooms/room03/walkable_area.tscn" type="PackedScene" id=1] -[ext_resource path="res://game/rooms/room03/background.tscn" type="PackedScene" id=2] +[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_terrain.gd" type="Script" id=1] [ext_resource path="res://game/fonts/caslonantique.tres" type="DynamicFont" id=3] [ext_resource path="res://game/characters/mark/mark.tscn" type="PackedScene" id=4] [ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=5] [ext_resource path="res://addons/escoria-core/game/core-scripts/esc_room.gd" type="Script" id=6] -[ext_resource path="res://game/items/escitems/button.tscn" type="PackedScene" id=7] [ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=8] +[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_background.gd" type="Script" id=9] +[ext_resource path="res://game/rooms/room03/room3chasm.png" type="Texture" id=10] +[ext_resource path="res://game/rooms/room03/room3bridge.png" type="Texture" id=11] +[ext_resource path="res://game/rooms/room03/room3background.png" type="Texture" id=12] +[ext_resource path="res://game/rooms/room03/smoke.png" type="Texture" id=13] + +[sub_resource type="GDScript" id=15] +script/source = "extends Node2D + +# Currently an empty array is passed as a parameter to the function. No parameters are required. +func enable_door(_notused): + # Enable the collision polygon on the door so it is recognised as an ESCItem + $\"../CollisionPolygon2D\".disabled = false + +# Currently an empty array is passed as a parameter to the function. No parameters are required. +func disable_door(_notused): + # Enable the collision polygon on the door so it is recognised as an ESCItem + $\"../CollisionPolygon2D\".disabled = true +" + +[sub_resource type="Animation" id=10] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath("r3_bridge/Room3Bridge:position") +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": 0, +"values": [ Vector2( 640, 249 ) ] +} + +[sub_resource type="Animation" id=11] +resource_name = "bridge_close" +tracks/0/type = "value" +tracks/0/path = NodePath("r3_bridge/Room3Bridge:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 0.318641, 1 ), +"update": 0, +"values": [ Vector2( 640, 249 ), Vector2( 640, 450 ) ] +} + +[sub_resource type="Animation" id=12] +resource_name = "bridge_open" +tracks/0/type = "value" +tracks/0/path = NodePath("r3_bridge/Room3Bridge:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 2.54912, 1 ), +"update": 0, +"values": [ Vector2( 640, 450 ), Vector2( 640, 249 ) ] +} + +[sub_resource type="Gradient" id=5] +offsets = PoolRealArray( 0, 0.830189 ) +colors = PoolColorArray( 1, 1, 1, 1, 0.353516, 0.353516, 0.353516, 1 ) + +[sub_resource type="GradientTexture" id=2] +gradient = SubResource( 5 ) + +[sub_resource type="Curve" id=6] +_data = [ Vector2( 0, 0.0886364 ), 0.0, 0.0, 0, 0, Vector2( 0.612766, 1 ), 0.0, 0.0, 0, 0, Vector2( 0.770213, 0.95 ), -1.55372, -1.55372, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=4] +curve = SubResource( 6 ) + +[sub_resource type="ParticlesMaterial" id=7] +lifetime_randomness = 0.2 +emission_shape = 1 +emission_sphere_radius = 1.0 +flag_disable_z = true +gravity = Vector3( 0, -9.81, 0 ) +angular_velocity = 14.47 +orbit_velocity = 0.0 +orbit_velocity_random = 1.0 +radial_accel = 3.97 +radial_accel_random = 0.63 +angle = 160.0 +angle_random = 1.0 +scale = 0.5 +scale_random = 0.45 +scale_curve = SubResource( 4 ) +color_ramp = SubResource( 2 ) + +[sub_resource type="Animation" id=8] +resource_name = "button_broken" +tracks/0/type = "value" +tracks/0/path = NodePath("Particles2D:emitting") +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 ] +} + +[sub_resource type="Animation" id=9] +resource_name = "button_repaired" +tracks/0/type = "value" +tracks/0/path = NodePath("Particles2D:emitting") +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 ] +} + +[sub_resource type="NavigationPolygon" id=13] +vertices = PoolVector2Array( 1182, 379, 1184, 338, 1268, 391, 12, 385, 91, 344, 92, 383, 10, 542, 1270, 542, 116, 354, 1157, 357 ) +polygons = [ PoolIntArray( 0, 1, 2 ), PoolIntArray( 3, 4, 5, 6 ), PoolIntArray( 2, 7, 6, 0 ), PoolIntArray( 8, 9, 0, 6, 5 ) ] +outlines = [ PoolVector2Array( 91, 344, 92, 383, 116, 354, 1157, 357, 1182, 379, 1184, 338, 1268, 391, 1270, 542, 10, 542, 12, 385 ) ] + +[sub_resource type="NavigationPolygon" id=14] +vertices = PoolVector2Array( 12, 387, 91, 340, 91, 383, 12, 541, 115, 354, 484, 356, 402, 541 ) +polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 5, 6, 3, 2 ) ] +outlines = [ PoolVector2Array( 91, 340, 91, 383, 115, 354, 484, 356, 402, 541, 12, 541, 12, 387 ) ] [node name="room3" type="Node2D"] script = ExtResource( 6 ) @@ -16,19 +149,6 @@ esc_script = "res://game/rooms/room03/esc/room03_bridge.esc" player_scene = ExtResource( 4 ) camera_limits = [ Rect2( 0, 0, 1289, 555 ) ] -[node name="background" parent="." instance=ExtResource( 2 )] - -[node name="room_label" type="Label" parent="background"] -margin_right = 40.0 -margin_bottom = 14.0 -custom_fonts/font = ExtResource( 3 ) -text = "ROOM 3" -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="walkable_area" parent="." instance=ExtResource( 1 )] - [node name="Hotspots" type="Node2D" parent="."] [node name="r_platform" type="Area2D" parent="Hotspots"] @@ -43,7 +163,8 @@ dialog_color = Color( 1, 1, 1, 1 ) animations = null [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_platform"] -polygon = PoolVector2Array( 870.974, 538.342, 827.536, 353.995, 1181.4, 357.174, 1287.34, 413.325, 1289.46, 545.758 ) +position = Vector2( -21, -3 ) +polygon = PoolVector2Array( 890, 546, 818, 359, 1181.4, 357.174, 1194, 368, 1195, 67, 1300, 112, 1298, 428, 1301, 547 ) __meta__ = { "_editor_description_": "" } @@ -64,17 +185,22 @@ __meta__ = { global_id = "r3_r_exit" esc_script = "res://game/rooms/room03/esc/right_exit.esc" is_exit = true +is_interactive = false tooltip_name = "Exit" dialog_color = Color( 1, 1, 1, 1 ) animations = null [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 ) +polygon = PoolVector2Array( 1174, 356, 1177, 68, 1278, 110, 1279, 419 ) +disabled = true [node name="Position2D" type="Position2D" parent="Hotspots/r_door"] -position = Vector2( 1225.47, 353.99 ) +position = Vector2( 1223, 376 ) script = ExtResource( 8 ) +[node name="door_enabler" type="Node2D" parent="Hotspots/r_door"] +script = SubResource( 15 ) + [node name="l_door" type="Area2D" parent="Hotspots"] pause_mode = 1 script = ExtResource( 5 ) @@ -89,39 +215,137 @@ dialog_color = Color( 1, 1, 1, 1 ) animations = null [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/l_door"] -polygon = PoolVector2Array( -2.71457, 437.818, 6.6293, 121.462, 89.3893, 74.7422, 88.0545, 376.416 ) +polygon = PoolVector2Array( 3, 422, 6, 108, 102, 70, 103, 357 ) [node name="Position2D" type="Position2D" parent="Hotspots/l_door"] position = Vector2( 44.1375, 384.691 ) script = ExtResource( 8 ) -[node name="button" parent="Hotspots" instance=ExtResource( 7 )] -pause_mode = 1 -global_id = "r3_button" -esc_script = "res://game/rooms/room03/esc/button.esc" -animations = null - -[node name="Position2D" type="Position2D" parent="Hotspots/button"] -position = Vector2( 347.767, 378.011 ) -script = ExtResource( 8 ) -__meta__ = { -"_editor_description_": "" -} - -[node name="button_label" type="Label" parent="Hotspots/button"] -margin_left = 398.135 -margin_top = 132.292 -margin_right = 642.135 -margin_bottom = 167.292 -custom_fonts/font = ExtResource( 3 ) -text = "I know, this doesn't sound logical -but you should try talking with this button..." -__meta__ = { -"_edit_use_anchors_": false -} - [node name="player_start" type="Position2D" parent="."] position = Vector2( 63.3074, 444.653 ) script = ExtResource( 8 ) global_id = "r3_player_start" is_start_location = true + +[node name="r3_bridge" type="Area2D" parent="."] +pause_mode = 1 +script = ExtResource( 5 ) +global_id = "r3_bridge" +esc_script = "res://game/rooms/room03/esc/room03_bridge.esc" +inventory_texture = ExtResource( 10 ) +dialog_color = Color( 1, 1, 1, 1 ) +animations = null + +[node name="AnimationPlayer" type="AnimationPlayer" parent="r3_bridge"] +root_node = NodePath("../..") +anims/RESET = SubResource( 10 ) +anims/bridge_close = SubResource( 11 ) +anims/bridge_open = SubResource( 12 ) + +[node name="Room3Chasm" type="Sprite" parent="r3_bridge"] +position = Vector2( 640, 450 ) +texture = ExtResource( 10 ) + +[node name="Room3Bridge" type="Sprite" parent="r3_bridge"] +position = Vector2( 640, 249 ) +texture = ExtResource( 11 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="r3_bridge"] +polygon = PoolVector2Array( 501, 349, 780, 351, 859, 548, 419, 551 ) + +[node name="ESCLocation" type="Position2D" parent="r3_bridge"] +position = Vector2( 434, 441 ) +script = ExtResource( 8 ) + +[node name="ESCBackground" type="TextureRect" parent="."] +margin_right = 1280.0 +margin_bottom = 550.0 +mouse_filter = 2 +texture = ExtResource( 12 ) +script = ExtResource( 9 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Polygon2D" type="Polygon2D" parent="ESCBackground"] +color = Color( 0, 0, 0, 1 ) +polygon = PoolVector2Array( 0, 550, 1280, 550, 1280, 800, 0, 800 ) + +[node name="room_label2" type="Label" parent="ESCBackground"] +margin_left = 17.0 +margin_top = 558.0 +margin_right = 1224.0 +margin_bottom = 627.0 +custom_fonts/font = ExtResource( 3 ) +text = "Room 3 demonstrates a chain of steps to complete a game task. It demonstrates different talk responses based on the state of the button (which sets the + \"broken_button\" variable to true or false respectively). Setting the \"button_repaired\" state automatically plays the button_repaired animation, which turns off +the particle emitter for the button. The custom command shows how to execute functions written in gdscript." +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="room_label" type="Label" parent="ESCBackground"] +margin_right = 82.0 +margin_bottom = 21.0 +custom_fonts/font = ExtResource( 3 ) +text = "ROOM 3" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="r3_button" type="Area2D" parent="."] +pause_mode = 1 +script = ExtResource( 5 ) +global_id = "r3_button" +esc_script = "res://game/rooms/room03/esc/button.esc" +tooltip_name = "Button" +default_action = "use" +dialog_color = Color( 1, 1, 1, 1 ) +animations = null + +[node name="Particles2D" type="Particles2D" parent="r3_button"] +position = Vector2( 374, 154 ) +amount = 16 +lifetime = 4.0 +preprocess = 1.99 +speed_scale = 1.39 +process_material = SubResource( 7 ) +texture = ExtResource( 13 ) +__meta__ = { +"_editor_description_": "" +} + +[node name="AnimationPlayer" type="AnimationPlayer" parent="r3_button"] +anims/button_broken = SubResource( 8 ) +anims/button_repaired = SubResource( 9 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="r3_button"] +position = Vector2( 24, 41 ) +polygon = PoolVector2Array( 317, 120, 317, 181, 379, 181, 380, 119 ) + +[node name="ESCLocation" type="Position2D" parent="r3_button"] +position = Vector2( 349, 380 ) +script = ExtResource( 8 ) + +[node name="button_label" type="Label" parent="r3_button"] +margin_left = 420.0 +margin_top = 158.0 +margin_right = 745.0 +margin_bottom = 203.0 +custom_colors/font_color = Color( 0, 0, 0, 1 ) +custom_fonts/font = ExtResource( 3 ) +text = "I know, this isn't logical - but you +should try talking to this button..." +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="ESCTerrain" type="Navigation2D" parent="."] +script = ExtResource( 1 ) + +[node name="bridge_closed" type="NavigationPolygonInstance" parent="ESCTerrain"] +navpoly = SubResource( 13 ) +enabled = false + +[node name="bridge_open" type="NavigationPolygonInstance" parent="ESCTerrain"] +navpoly = SubResource( 14 ) diff --git a/game/rooms/room03/room3background.png b/game/rooms/room03/room3background.png new file mode 100644 index 0000000000000000000000000000000000000000..d31a9c1af3683feaf96ef85e241d13beea982f96 GIT binary patch literal 7701 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 literal 0 HcmV?d00001 diff --git a/game/rooms/room03/room3chasm.png b/game/rooms/room03/room3chasm.png new file mode 100644 index 0000000000000000000000000000000000000000..4391115a34a87e07e18f7160a6e91865dfb36552 GIT binary patch literal 3040 zcmb7GhhNjz77tPs0TBn-hl+|TY|$b!3W3N7VFVcgf-=G;tU%byFvAXe$P9{*05X1( z5L~Y=v{0;A8e@wUSq)lBp~yquy?KAZ%jcJyn|sea_nhzddrp$?GX`a`1E)%#--6{skFGXSXydKY)W)Ya!gE0 zbaZlLR8mw_QeVL*qh1XhFfT!6C6hK{0_r zF_ggQz`*DLN|b*?QkyK*($=SmpaC)CF$)SDdQ13gF-caH!M4~m<6fUBFoo16b-S3egQUzf|iM3<}1&R3j?SDl=F zoSb|d9LbJOWCsUtdx96i!5feF#M^t?;Yqf3BpX`~TRRUM8~01rZq_z#m#kfJxXZXp zu2#6qmR2rUOQHpqXl~(bfps=Fce-%V@gf`@Fc%!mFa!*SU}|P>Vv090!5bOd8JpM{ z8QU5f*`7DFF*tAioxvr8^Ow$jhdX=L>g+iy{j-*5^s#63E%nY|b@eRt^el9A&9$^I zXzN_m)WT?JnxQpJ(Hdr_(Wa--CMQoBpE_-F;-t~Do7Hnb&^x1SNU zQ~H}j)XwF#ee<y$#$db&lA^gZ5~*49e*`v`id+fP;S%>yjy8^O=x8Oea9@3 zF!RfPu7eLn?zMV4($Qe@AVj@kNHv#wV<}T^O;%89iAbN2<>0ax3oMbBda*gEiYj%Q z_4etym`5hEI=EmCiNd4?dConTLhIlbd=>b!*kB#I@o1yB&q%8`e|zAkV;mM_^~w5r zw)Ugt==WSo((v@u4^;&w@!}SL0z`W9-}EZAzX66VjyalXGf$ zlf;Uu)>Sj+?_#qU2DtdJqUZt~urm zVvGPMTp1HY26wDo_^OJZgtEgs^Q4(nws)HfOylWH-)j;QMx}888?Cg+Q~oQzJcQX1 z89BDdVN>qD3;>)OI31V#^PUW_Obwb8C#gbX$|(`|?(fX9wa7opY$BA~msNvXDI`T@lqlfem=V%^RG0>@_^7+A@eHXWAk{ z8n}hw^Q2uEv2=VuMR^fiGLJ>%fjcanGAUkDR`O&{618dxJdy82`ZOPp#M320Tlf7lM{E6CxC~N0^9%rryA4vC3^u1WY+y=?RD{Qy%6Hn4+=a{kER6sX5p65 z>?jJDi|Q?q9mSSF#rQp{+eK;vi}xjZ>r>!i+HbH-!yqMM1)g}S1)!!imVVqxjaQp1 zb97*T3;*e_;u&SY_9T%{pZmC$muhwvY8hkm*@C2IuniytqA_0Ji>LeNeuQr4H7DuG z_DA}kB*B3E7Wf!9#w3y9_9X3IbMiC&Yd+Pbm1p^0)6dC+V_-?AwyQHY*X)5t`weB+zn}6uiy#KEy0in z(E{~2B#86Z9}-B6I{BEOqYx6HSRy@{s|Ja1U8IgLEpA9bvK9BzwPt0ufw%^UAE<>oid7Z9?6tlXZw6^q9N$5FtU$o2D)hS7diaGhtULF`I6 zA@TM0kCHrhSB?skb0k!t1rDF7k4Fq4@nqZ2)Q?LuH4<#kZn`4gvYfI};b!%QIZE?= z`PY(H7d&{b3;hPO9#Sxxht0y%DxU)+?QQoG^(jbo^06vy^QSt;9Y?X$jo0NJDS=ARvcT!! z`|+uY@dC*3D}_faaSq^YK}G0X*a~OQa{>92EcC3NUlU1#76w8q+qD>LVo`1{kirh=x4t z*!9HByNwRM6G}>}Oo3-GYr54Pr~>*0Tj)X4`qdRmW+?`==8rn-TM~sGP!pv&?E>I% z0zSp9+i%Qlx9YW?|Dt`{VAlE}2t+Q^p4a%#?-FP{)TZlJSZWRmFf$}(Va;VH&@@k% z6;9Zgc7rsT_AadbWs-MwyhErrwLyVOY%wgUM`~BPGGT}s*oP;Dp8%3c+D+8E%Zr9m zdA)Hdyv7sIqx*-KVnlvR7g8+BcSL@5hlPi4eE(9sJM7E1pieW@9^4Q%<-js!qqovG z6OjN}a;774k-k!mvig~Lp{ZKwkvv-_oVOLXq;yQVo|=BJNN#O}w{`fdEO4f&5b#pm zv<1=vzI+~2^fkT`)j_$2MK7#O1R|ZxKY^1d-YQ g`|RWyy!eXJSC{o0wz|Fw{