Feat: New graphics for room 8
This commit is contained in:
committed by
Julian Murgia
parent
7e6fb7b047
commit
7a64c7707f
BIN
game/rooms/room08/door.png
Normal file
BIN
game/rooms/room08/door.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.1 KiB |
@@ -1,10 +1,14 @@
|
|||||||
:look
|
:look
|
||||||
say player "That must be the command to open the door."
|
say player "That's the button to open the door."
|
||||||
|
|
||||||
:use
|
:use
|
||||||
> [!r8_m_door_open]
|
> [!r8_m_door_open]
|
||||||
#superpose_scene "res://game/rooms/room08/puzzle/10_buttons_puzzle.tscn"
|
# Load the puzzle
|
||||||
spawn puzzle "res://game/rooms/room08/puzzle/10_buttons_puzzle.tscn"
|
spawn puzzle "res://game/rooms/room08/puzzle/10_buttons_puzzle.tscn"
|
||||||
|
|
||||||
> [r8_m_door_open]
|
# Currently the button gets disabled when you beat the puzzle, so there's
|
||||||
say player "The door is already open."
|
# no button you can interract with. If you set it up so the button was
|
||||||
|
# still enabled, this code would provide feedback to the user if they
|
||||||
|
# attempted to "use" the already unlocked puzzle.
|
||||||
|
#> [r8_m_door_open]
|
||||||
|
# say player "The door is already open."
|
||||||
|
|||||||
@@ -1,6 +1,18 @@
|
|||||||
:look
|
:look
|
||||||
say player "That must be the command to open the door."
|
say player "That's the button to relock the door."
|
||||||
|
|
||||||
:use
|
:use
|
||||||
set_global r8_m_door_open false
|
> [r8_m_door_open]
|
||||||
set_state r8_m_door door_close
|
# If the door is unlocked, reset the puzzle.
|
||||||
|
# Set the door open to false so the room gets set up
|
||||||
|
# correctly if you exit and reenter
|
||||||
|
set_global r8_m_door_open false
|
||||||
|
# Play the door closing animation to "relock" the door
|
||||||
|
set_state r8_m_door door_close
|
||||||
|
# Reactivate the puzzle button so the player can redo
|
||||||
|
# the puzzle and unlock the door again
|
||||||
|
set_active r8_mini_puzzle_button true
|
||||||
|
stop
|
||||||
|
> [!r8_m_door_open]
|
||||||
|
# Don't reset the puzzle if the door is currently locked
|
||||||
|
say player "The puzzle doesn't need to be reset"
|
||||||
@@ -1,2 +1,14 @@
|
|||||||
|
:look
|
||||||
|
say player "That's the door to room 9"
|
||||||
|
|
||||||
:exit_scene
|
:exit_scene
|
||||||
change_scene "res://game/rooms/room09/room09.tscn"
|
> [r8_m_door_open]
|
||||||
|
# Only let the player into the next room if they've passed the puzzle
|
||||||
|
change_scene "res://game/rooms/room09/room09.tscn"
|
||||||
|
|
||||||
|
> [!r8_m_door_open]
|
||||||
|
# The door is always an exit, but trying to go through it won't change
|
||||||
|
# scenes if you haven't unlocked the puzzle.
|
||||||
|
say player "The door is locked"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,22 @@
|
|||||||
:setup
|
:setup
|
||||||
|
|
||||||
|
# This code will run only the first time you enter the room.
|
||||||
|
> [!room8_visited]
|
||||||
|
set_global room8_visited true
|
||||||
|
set_global r8_m_door_open false
|
||||||
|
# Activate locked puzzle button the first time you enter the room only.
|
||||||
|
# It will keep it's locked/unlocked state on future room entrances.
|
||||||
|
# It should already be active, this is a safety precaution.
|
||||||
|
set_active r8_mini_puzzle_button true
|
||||||
|
|
||||||
> [r8_m_door_open]
|
> [r8_m_door_open]
|
||||||
|
# If the door was previously opened, quickly play the open animation
|
||||||
|
# so you don't see a closed door when the room appears.
|
||||||
set_state r8_m_door door_open true
|
set_state r8_m_door door_open true
|
||||||
|
# Hide locked puzzle icon and make the button non-interactive as
|
||||||
|
# the puzzle was previously unlocked
|
||||||
|
set_active r8_mini_puzzle_button false
|
||||||
|
|
||||||
|
|
||||||
> [eq ESC_LAST_SCENE room7]
|
> [eq ESC_LAST_SCENE room7]
|
||||||
teleport player r8_l_exit
|
teleport player r8_l_exit
|
||||||
|
|||||||
BIN
game/rooms/room08/locked_button.png
Normal file
BIN
game/rooms/room08/locked_button.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 KiB |
@@ -52,6 +52,7 @@ func win():
|
|||||||
escoria.main.current_scene.show()
|
escoria.main.current_scene.show()
|
||||||
escoria.globals_manager.set_global("r8_m_door_open", true)
|
escoria.globals_manager.set_global("r8_m_door_open", true)
|
||||||
escoria.object_manager.get_object("r8_m_door").set_state("door_open")
|
escoria.object_manager.get_object("r8_m_door").set_state("door_open")
|
||||||
|
escoria.object_manager.get_object("r8_mini_puzzle_button").active = false
|
||||||
|
|
||||||
|
|
||||||
func _on_quit_pressed():
|
func _on_quit_pressed():
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=12 format=2]
|
[gd_scene load_steps=18 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_terrain.gd" type="Script" id=1]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_terrain.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_background.gd" type="Script" id=2]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_background.gd" type="Script" id=2]
|
||||||
@@ -7,68 +7,200 @@
|
|||||||
[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_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://addons/escoria-core/game/core-scripts/esc_room.gd" type="Script" id=6]
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=7]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=7]
|
||||||
|
[ext_resource path="res://game/rooms/room08/room8background.png" type="Texture" id=8]
|
||||||
|
[ext_resource path="res://game/rooms/room08/locked_button.png" type="Texture" id=9]
|
||||||
|
[ext_resource path="res://game/rooms/room08/door.png" type="Texture" id=10]
|
||||||
|
[ext_resource path="res://game/rooms/room08/unlocked_button.png" type="Texture" id=11]
|
||||||
|
|
||||||
[sub_resource type="NavigationPolygon" id=1]
|
[sub_resource type="NavigationPolygon" id=1]
|
||||||
vertices = PoolVector2Array( 1143.08, 613.35, 1267.68, 669.029, 1275.03, 799.721, -9.16094, 803.802, -6.44019, 711.297, 84.5821, 654.06, 742.298, 623.672, 581.028, 613.592, 583.548, 574.535, 707.02, 574.535, 714.58, 611.072, 3.15687, 646.051, 59.2201, 628.698, 129.634, 615.792, 530.631, 612.332, 550.79, 623.672, 783.875, 609.812 )
|
vertices = PoolVector2Array( 4.26837, 653.779, 86.2684, 608.779, 87.2684, 635.779, 1260.27, 808.779, 3.26837, 810.779, 112.268, 621.779, 642.268, 624.779, 1259.27, 687.779, 642.268, 586.779, 790.268, 585.779, 791.268, 624.779, 1154.27, 622.779 )
|
||||||
polygons = [ PoolIntArray( 0, 1, 2, 3, 4, 5, 6 ), PoolIntArray( 7, 8, 9, 10 ), PoolIntArray( 4, 11, 12, 5 ), PoolIntArray( 5, 13, 14, 15 ), PoolIntArray( 7, 10, 6, 15 ), PoolIntArray( 6, 16, 0 ), PoolIntArray( 6, 5, 15 ) ]
|
polygons = [ PoolIntArray( 0, 1, 2 ), PoolIntArray( 3, 4, 0, 2 ), PoolIntArray( 3, 2, 5, 6, 7 ), PoolIntArray( 6, 8, 9, 10 ), PoolIntArray( 7, 6, 10 ), PoolIntArray( 7, 10, 11 ) ]
|
||||||
outlines = [ PoolVector2Array( -6.44019, 711.297, 3.15687, 646.051, 59.2201, 628.698, 84.5821, 654.06, 129.634, 615.792, 530.631, 612.332, 550.79, 623.672, 581.028, 613.592, 583.548, 574.535, 707.02, 574.535, 714.58, 611.072, 742.298, 623.672, 783.875, 609.812, 1143.08, 613.35, 1267.68, 669.029, 1275.03, 799.721, -9.16094, 803.802 ) ]
|
outlines = [ PoolVector2Array( 4.26837, 653.779, 86.2684, 608.779, 87.2684, 635.779, 112.268, 621.779, 642.268, 624.779, 642.268, 586.779, 790.268, 585.779, 791.268, 624.779, 1154.27, 622.779, 1259.27, 687.779, 1260.27, 808.779, 3.26837, 810.779 ) ]
|
||||||
|
|
||||||
[sub_resource type="Animation" id=2]
|
[sub_resource type="Animation" id=5]
|
||||||
resource_name = "door_close"
|
length = 0.001
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/path = NodePath("door:polygon")
|
tracks/0/path = NodePath("door1:position")
|
||||||
tracks/0/interp = 1
|
tracks/0/interp = 1
|
||||||
tracks/0/loop_wrap = true
|
tracks/0/loop_wrap = true
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
tracks/0/keys = {
|
tracks/0/keys = {
|
||||||
"times": PoolRealArray( 0, 0.5 ),
|
"times": PoolRealArray( 0 ),
|
||||||
"transitions": PoolRealArray( 1, 1 ),
|
"transitions": PoolRealArray( 1 ),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ PoolVector2Array( 557.104, 45.8, 743.623, 45.8, 744.482, 48.9414, 555.602, 48.274 ), PoolVector2Array( 557.104, 45.8, 743.623, 45.8, 746.798, 345.025, 557.898, 347.406 ) ]
|
"values": [ Vector2( 723, 203 ) ]
|
||||||
}
|
}
|
||||||
tracks/1/type = "value"
|
tracks/1/type = "value"
|
||||||
tracks/1/path = NodePath(".:is_exit")
|
tracks/1/path = NodePath("door2:position")
|
||||||
tracks/1/interp = 1
|
tracks/1/interp = 1
|
||||||
tracks/1/loop_wrap = true
|
tracks/1/loop_wrap = true
|
||||||
tracks/1/imported = false
|
tracks/1/imported = false
|
||||||
tracks/1/enabled = true
|
tracks/1/enabled = true
|
||||||
tracks/1/keys = {
|
tracks/1/keys = {
|
||||||
"times": PoolRealArray( 0.6 ),
|
"times": PoolRealArray( 0 ),
|
||||||
"transitions": PoolRealArray( 1 ),
|
"transitions": PoolRealArray( 1 ),
|
||||||
"update": 1,
|
"update": 0,
|
||||||
"values": [ false ]
|
"values": [ Vector2( 723, 203 ) ]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/path = NodePath("door3: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( 723, 203 ) ]
|
||||||
|
}
|
||||||
|
tracks/3/type = "value"
|
||||||
|
tracks/3/path = NodePath("door4: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( 723, 203 ) ]
|
||||||
|
}
|
||||||
|
tracks/4/type = "value"
|
||||||
|
tracks/4/path = NodePath("door3:texture")
|
||||||
|
tracks/4/interp = 1
|
||||||
|
tracks/4/loop_wrap = true
|
||||||
|
tracks/4/imported = false
|
||||||
|
tracks/4/enabled = true
|
||||||
|
tracks/4/keys = {
|
||||||
|
"times": PoolRealArray( 0 ),
|
||||||
|
"transitions": PoolRealArray( 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ ExtResource( 10 ) ]
|
||||||
|
}
|
||||||
|
tracks/5/type = "value"
|
||||||
|
tracks/5/path = NodePath("door4:texture")
|
||||||
|
tracks/5/interp = 1
|
||||||
|
tracks/5/loop_wrap = true
|
||||||
|
tracks/5/imported = false
|
||||||
|
tracks/5/enabled = true
|
||||||
|
tracks/5/keys = {
|
||||||
|
"times": PoolRealArray( 0 ),
|
||||||
|
"transitions": PoolRealArray( 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ ExtResource( 10 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=2]
|
||||||
|
resource_name = "door_close"
|
||||||
|
length = 1.5
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath("door1:position")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PoolRealArray( 0, 0.2, 1.5 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ Vector2( 547, 203 ), Vector2( 547, 203 ), Vector2( 723, 203 ) ]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/path = NodePath("door2: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.5 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ Vector2( 899, 203 ), Vector2( 899, 203 ), Vector2( 723, 203 ) ]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/path = NodePath("door3:position")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PoolRealArray( 0, 1.3 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ Vector2( 547, 203 ), Vector2( 723, 203 ) ]
|
||||||
|
}
|
||||||
|
tracks/3/type = "value"
|
||||||
|
tracks/3/path = NodePath("door4:position")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PoolRealArray( 0, 1.3 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ Vector2( 899, 203 ), Vector2( 723, 203 ) ]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id=3]
|
[sub_resource type="Animation" id=3]
|
||||||
resource_name = "door_open"
|
resource_name = "door_open"
|
||||||
|
length = 1.5
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/path = NodePath("door:polygon")
|
tracks/0/path = NodePath("door1:position")
|
||||||
tracks/0/interp = 1
|
tracks/0/interp = 1
|
||||||
tracks/0/loop_wrap = true
|
tracks/0/loop_wrap = true
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
tracks/0/keys = {
|
tracks/0/keys = {
|
||||||
"times": PoolRealArray( 0, 0.5 ),
|
"times": PoolRealArray( 0, 0.2, 1.5 ),
|
||||||
"transitions": PoolRealArray( 1, 1 ),
|
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ PoolVector2Array( 557.104, 45.8, 743.623, 45.8, 746.798, 345.025, 557.898, 347.406 ), PoolVector2Array( 557.104, 45.8, 743.623, 45.8, 744.482, 48.9414, 555.602, 48.274 ) ]
|
"values": [ Vector2( 723, 203 ), Vector2( 723, 203 ), Vector2( 547, 203 ) ]
|
||||||
}
|
}
|
||||||
tracks/1/type = "value"
|
tracks/1/type = "value"
|
||||||
tracks/1/path = NodePath(".:is_exit")
|
tracks/1/path = NodePath("door2:position")
|
||||||
tracks/1/interp = 1
|
tracks/1/interp = 1
|
||||||
tracks/1/loop_wrap = true
|
tracks/1/loop_wrap = true
|
||||||
tracks/1/imported = false
|
tracks/1/imported = false
|
||||||
tracks/1/enabled = true
|
tracks/1/enabled = true
|
||||||
tracks/1/keys = {
|
tracks/1/keys = {
|
||||||
"times": PoolRealArray( 0, 0.6 ),
|
"times": PoolRealArray( 0, 0.2, 1.5 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ Vector2( 723, 203 ), Vector2( 723, 203 ), Vector2( 899, 203 ) ]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/path = NodePath("door3:position")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PoolRealArray( 0, 1.3 ),
|
||||||
"transitions": PoolRealArray( 1, 1 ),
|
"transitions": PoolRealArray( 1, 1 ),
|
||||||
"update": 1,
|
"update": 0,
|
||||||
"values": [ false, true ]
|
"values": [ Vector2( 723, 203 ), Vector2( 547, 203 ) ]
|
||||||
|
}
|
||||||
|
tracks/3/type = "value"
|
||||||
|
tracks/3/path = NodePath("door4:position")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PoolRealArray( 0, 1.3 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ Vector2( 723, 203 ), Vector2( 899, 203 ) ]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id=4]
|
[sub_resource type="RectangleShape2D" id=4]
|
||||||
extents = Vector2( 20.3273, 18.0047 )
|
extents = Vector2( 31, 30.5 )
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id=6]
|
||||||
|
extents = Vector2( 31.5, 31 )
|
||||||
|
|
||||||
[node name="room8" type="Node2D"]
|
[node name="room8" type="Node2D"]
|
||||||
script = ExtResource( 6 )
|
script = ExtResource( 6 )
|
||||||
@@ -80,40 +212,6 @@ esc_script = "res://game/rooms/room08/esc/room08.esc"
|
|||||||
player_scene = ExtResource( 4 )
|
player_scene = ExtResource( 4 )
|
||||||
camera_limits = [ Rect2( 0, 0, 1289, 555 ) ]
|
camera_limits = [ Rect2( 0, 0, 1289, 555 ) ]
|
||||||
|
|
||||||
[node name="background" type="TextureRect" parent="."]
|
|
||||||
margin_right = 1289.0
|
|
||||||
margin_bottom = 555.0
|
|
||||||
mouse_filter = 2
|
|
||||||
script = ExtResource( 2 )
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_lock_": true,
|
|
||||||
"_edit_use_anchors_": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="l_platform" type="Line2D" parent="background"]
|
|
||||||
position = Vector2( 2, -266 )
|
|
||||||
points = PoolVector2Array( -2.96298, 712.01, 129.973, 614.429, 1167.5, 612.894, 1274.59, 669.705, 1273.25, 812.694, 2.36697, 811.043, 2.36697, 713.389 )
|
|
||||||
|
|
||||||
[node name="l_door" type="Line2D" parent="background"]
|
|
||||||
position = Vector2( 0, -266 )
|
|
||||||
points = PoolVector2Array( 6.61201, 704.409, 6.61203, 389.558, 87.755, 339.775, 87.5463, 649.784 )
|
|
||||||
__meta__ = {
|
|
||||||
"_editor_description_": ""
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="m_door" type="Line2D" parent="background"]
|
|
||||||
position = Vector2( 0, -267.828 )
|
|
||||||
points = PoolVector2Array( 555.952, 615.32, 554.538, 311.267, 744.043, 312.679, 746.871, 615.32, 557.367, 616.734 )
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="background"]
|
|
||||||
margin_right = 48.0
|
|
||||||
margin_bottom = 16.0
|
|
||||||
custom_fonts/font = ExtResource( 3 )
|
|
||||||
text = "Room 8"
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="walkable_area" type="Navigation2D" parent="."]
|
[node name="walkable_area" type="Navigation2D" parent="."]
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
@@ -124,6 +222,46 @@ __meta__ = {
|
|||||||
"_editor_description_": ""
|
"_editor_description_": ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[node name="player_start" type="Position2D" parent="."]
|
||||||
|
position = Vector2( 76.7617, 437.649 )
|
||||||
|
script = ExtResource( 7 )
|
||||||
|
global_id = "r8_player_start"
|
||||||
|
is_start_location = true
|
||||||
|
|
||||||
|
[node name="background" type="TextureRect" parent="."]
|
||||||
|
margin_right = 1289.0
|
||||||
|
margin_bottom = 555.0
|
||||||
|
mouse_filter = 2
|
||||||
|
texture = ExtResource( 8 )
|
||||||
|
script = ExtResource( 2 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_lock_": true,
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="background"]
|
||||||
|
margin_right = 48.0
|
||||||
|
margin_bottom = 16.0
|
||||||
|
custom_fonts/font = ExtResource( 3 )
|
||||||
|
text = "Room 8"
|
||||||
|
|
||||||
|
[node name="Label2" type="Label" parent="background"]
|
||||||
|
margin_left = 835.0
|
||||||
|
margin_top = 12.0
|
||||||
|
margin_right = 1133.0
|
||||||
|
margin_bottom = 201.0
|
||||||
|
custom_fonts/font = ExtResource( 3 )
|
||||||
|
text = "This room demonstrates mixing Escoria
|
||||||
|
with an external GDScript puzzle.
|
||||||
|
Global variables are set by the puzzle
|
||||||
|
when completed that are referenced
|
||||||
|
by future Escoria script code to animate
|
||||||
|
the door opening etc.
|
||||||
|
|
||||||
|
Unlocking the puzzle disables (and
|
||||||
|
hides) the locked button, showing the
|
||||||
|
unlocked graphic underneath."
|
||||||
|
|
||||||
[node name="Hotspots" type="Node" parent="."]
|
[node name="Hotspots" type="Node" parent="."]
|
||||||
|
|
||||||
[node name="l_door" type="Area2D" parent="Hotspots"]
|
[node name="l_door" type="Area2D" parent="Hotspots"]
|
||||||
@@ -140,7 +278,7 @@ dialog_color = Color( 1, 1, 1, 1 )
|
|||||||
animations = null
|
animations = null
|
||||||
|
|
||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/l_door"]
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/l_door"]
|
||||||
polygon = PoolVector2Array( 2.93237, 447.051, 2.93237, 127.051, 88.9324, 71.0505, 90.9324, 379.051 )
|
polygon = PoolVector2Array( 1, 420, 1, 107, 105, 63, 108, 352 )
|
||||||
|
|
||||||
[node name="Position2D" type="Position2D" parent="Hotspots/l_door"]
|
[node name="Position2D" type="Position2D" parent="Hotspots/l_door"]
|
||||||
position = Vector2( 45.47, 383.99 )
|
position = Vector2( 45.47, 383.99 )
|
||||||
@@ -148,65 +286,101 @@ script = ExtResource( 7 )
|
|||||||
|
|
||||||
[node name="m_door" type="Area2D" parent="Hotspots"]
|
[node name="m_door" type="Area2D" parent="Hotspots"]
|
||||||
pause_mode = 1
|
pause_mode = 1
|
||||||
|
position = Vector2( 0, -1 )
|
||||||
script = ExtResource( 5 )
|
script = ExtResource( 5 )
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_editor_description_": ""
|
"_editor_description_": ""
|
||||||
}
|
}
|
||||||
global_id = "r8_m_door"
|
global_id = "r8_m_door"
|
||||||
esc_script = "res://game/rooms/room08/esc/middle_exit.esc"
|
esc_script = "res://game/rooms/room08/esc/middle_exit.esc"
|
||||||
|
is_exit = true
|
||||||
tooltip_name = "Exit"
|
tooltip_name = "Exit"
|
||||||
|
inventory_texture = ExtResource( 10 )
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
animations = null
|
animations = null
|
||||||
|
|
||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/m_door"]
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/m_door"]
|
||||||
visible = false
|
polygon = PoolVector2Array( 630, 349, 628, 51, 815, 51, 815, 349 )
|
||||||
polygon = PoolVector2Array( 557.522, 348.813, 551.222, 42.6524, 743.99, 43.9123, 750.289, 345.033 )
|
|
||||||
|
|
||||||
[node name="Position2D" type="Position2D" parent="Hotspots/m_door"]
|
[node name="Position2D" type="Position2D" parent="Hotspots/m_door"]
|
||||||
position = Vector2( 653.466, 366.589 )
|
position = Vector2( 724, 354 )
|
||||||
script = ExtResource( 7 )
|
script = ExtResource( 7 )
|
||||||
|
|
||||||
[node name="door" type="Polygon2D" parent="Hotspots/m_door"]
|
|
||||||
color = Color( 0.4, 0.501961, 1, 1 )
|
|
||||||
polygon = PoolVector2Array( 557.104, 45.8, 743.623, 45.8, 746.798, 345.025, 557.898, 347.406 )
|
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="Hotspots/m_door"]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="Hotspots/m_door"]
|
||||||
|
anims/RESET = SubResource( 5 )
|
||||||
anims/door_close = SubResource( 2 )
|
anims/door_close = SubResource( 2 )
|
||||||
anims/door_open = SubResource( 3 )
|
anims/door_open = SubResource( 3 )
|
||||||
|
|
||||||
|
[node name="door1" type="Sprite" parent="Hotspots/m_door"]
|
||||||
|
position = Vector2( 723, 203 )
|
||||||
|
z_index = -1
|
||||||
|
texture = ExtResource( 10 )
|
||||||
|
|
||||||
|
[node name="door2" type="Sprite" parent="Hotspots/m_door"]
|
||||||
|
position = Vector2( 723, 203 )
|
||||||
|
scale = Vector2( -1, -1 )
|
||||||
|
z_index = -1
|
||||||
|
texture = ExtResource( 10 )
|
||||||
|
|
||||||
|
[node name="door3" type="Sprite" parent="Hotspots/m_door"]
|
||||||
|
position = Vector2( 723, 203 )
|
||||||
|
scale = Vector2( 1, -1 )
|
||||||
|
z_index = -1
|
||||||
|
texture = ExtResource( 10 )
|
||||||
|
|
||||||
|
[node name="door4" type="Sprite" parent="Hotspots/m_door"]
|
||||||
|
position = Vector2( 723, 203 )
|
||||||
|
scale = Vector2( -1, 1 )
|
||||||
|
z_index = -1
|
||||||
|
texture = ExtResource( 10 )
|
||||||
|
|
||||||
|
[node name="door_background" type="Polygon2D" parent="Hotspots/m_door"]
|
||||||
|
z_index = -2
|
||||||
|
color = Color( 0, 0, 0, 1 )
|
||||||
|
polygon = PoolVector2Array( 635, 55, 810, 56, 810, 350, 634, 350 )
|
||||||
|
|
||||||
|
[node name="r8_mini_puzzle_unlocked" type="Area2D" parent="Hotspots"]
|
||||||
|
pause_mode = 1
|
||||||
|
script = ExtResource( 5 )
|
||||||
|
global_id = "r8_mini_puzzle_unlocked"
|
||||||
|
inventory_texture = ExtResource( 11 )
|
||||||
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
animations = null
|
||||||
|
|
||||||
|
[node name="unlocked_button" type="Sprite" parent="Hotspots/r8_mini_puzzle_unlocked"]
|
||||||
|
position = Vector2( 527, 190 )
|
||||||
|
texture = ExtResource( 11 )
|
||||||
|
|
||||||
[node name="r8_mini_puzzle_button" type="Area2D" parent="Hotspots"]
|
[node name="r8_mini_puzzle_button" type="Area2D" parent="Hotspots"]
|
||||||
pause_mode = 1
|
pause_mode = 1
|
||||||
script = ExtResource( 5 )
|
script = ExtResource( 5 )
|
||||||
global_id = "r8_button_puzzle"
|
global_id = "r8_mini_puzzle_button"
|
||||||
esc_script = "res://game/rooms/room08/esc/button_puzzle.esc"
|
esc_script = "res://game/rooms/room08/esc/button_puzzle.esc"
|
||||||
tooltip_name = "Button"
|
tooltip_name = "Button"
|
||||||
default_action = "use"
|
default_action = "use"
|
||||||
|
inventory_texture = ExtResource( 9 )
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
animations = null
|
animations = null
|
||||||
|
|
||||||
[node name="button" type="Line2D" parent="Hotspots/r8_mini_puzzle_button"]
|
[node name="locked_button" type="Sprite" parent="Hotspots/r8_mini_puzzle_button"]
|
||||||
position = Vector2( -588.313, 5.65686 )
|
position = Vector2( 527, 190 )
|
||||||
points = PoolVector2Array( 1048.39, 178.619, 1048.39, 208.814, 1076.99, 208.814, 1078.05, 183.387, 1052.09, 183.916 )
|
texture = ExtResource( 9 )
|
||||||
default_color = Color( 0.4, 0.501961, 1, 1 )
|
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hotspots/r8_mini_puzzle_button"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hotspots/r8_mini_puzzle_button"]
|
||||||
position = Vector2( 474.343, 201.414 )
|
position = Vector2( 526, 191.5 )
|
||||||
shape = SubResource( 4 )
|
shape = SubResource( 4 )
|
||||||
|
|
||||||
[node name="Position2D" type="Position2D" parent="Hotspots/r8_mini_puzzle_button"]
|
[node name="Position2D" type="Position2D" parent="Hotspots/r8_mini_puzzle_button"]
|
||||||
position = Vector2( 474.801, 369.29 )
|
position = Vector2( 532, 370 )
|
||||||
script = ExtResource( 7 )
|
script = ExtResource( 7 )
|
||||||
|
|
||||||
[node name="button_puzzle" type="Label" parent="Hotspots/r8_mini_puzzle_button"]
|
[node name="button_puzzle" type="Label" parent="Hotspots/r8_mini_puzzle_button"]
|
||||||
margin_left = 445.617
|
margin_left = 488.0
|
||||||
margin_top = 166.124
|
margin_top = 128.0
|
||||||
margin_right = 508.617
|
margin_right = 572.0
|
||||||
margin_bottom = 182.124
|
margin_bottom = 149.0
|
||||||
custom_fonts/font = ExtResource( 3 )
|
custom_fonts/font = ExtResource( 3 )
|
||||||
text = "Run puzzle"
|
text = "Run puzzle"
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="r8_reset_puzzle_button" type="Area2D" parent="Hotspots"]
|
[node name="r8_reset_puzzle_button" type="Area2D" parent="Hotspots"]
|
||||||
pause_mode = 1
|
pause_mode = 1
|
||||||
@@ -219,32 +393,23 @@ default_action = "use"
|
|||||||
dialog_color = Color( 1, 1, 1, 1 )
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
animations = null
|
animations = null
|
||||||
|
|
||||||
[node name="button" type="Line2D" parent="Hotspots/r8_reset_puzzle_button"]
|
|
||||||
position = Vector2( -588.313, 5.65686 )
|
|
||||||
points = PoolVector2Array( 1048.39, 178.619, 1048.39, 208.814, 1076.99, 208.814, 1078.05, 183.387, 1052.09, 183.916 )
|
|
||||||
default_color = Color( 0.4, 0.501961, 1, 1 )
|
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hotspots/r8_reset_puzzle_button"]
|
|
||||||
position = Vector2( 474.343, 201.414 )
|
|
||||||
shape = SubResource( 4 )
|
|
||||||
|
|
||||||
[node name="Position2D" type="Position2D" parent="Hotspots/r8_reset_puzzle_button"]
|
[node name="Position2D" type="Position2D" parent="Hotspots/r8_reset_puzzle_button"]
|
||||||
position = Vector2( 474.801, 369.29 )
|
position = Vector2( 511.185, 370 )
|
||||||
script = ExtResource( 7 )
|
script = ExtResource( 7 )
|
||||||
|
|
||||||
[node name="reset_puzzle" type="Label" parent="Hotspots/r8_reset_puzzle_button"]
|
[node name="reset_puzzle" type="Label" parent="Hotspots/r8_reset_puzzle_button"]
|
||||||
margin_left = 441.128
|
margin_left = 466.185
|
||||||
margin_top = 166.124
|
margin_top = 126.0
|
||||||
margin_right = 512.128
|
margin_right = 560.185
|
||||||
margin_bottom = 182.124
|
margin_bottom = 147.0
|
||||||
custom_fonts/font = ExtResource( 3 )
|
custom_fonts/font = ExtResource( 3 )
|
||||||
text = "Reset puzzle"
|
text = "Reset puzzle"
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="player_start" type="Position2D" parent="."]
|
[node name="Sprite3" type="Sprite" parent="Hotspots/r8_reset_puzzle_button"]
|
||||||
position = Vector2( 76.7617, 437.649 )
|
position = Vector2( 139.185, 0 )
|
||||||
script = ExtResource( 7 )
|
|
||||||
global_id = "r8_player_start"
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hotspots/r8_reset_puzzle_button"]
|
||||||
is_start_location = true
|
position = Vector2( 510.685, 190 )
|
||||||
|
shape = SubResource( 6 )
|
||||||
|
|
||||||
|
[node name="Node" type="Node" parent="Hotspots"]
|
||||||
|
|||||||
BIN
game/rooms/room08/room8background.png
Normal file
BIN
game/rooms/room08/room8background.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 144 KiB |
BIN
game/rooms/room08/unlocked_button.png
Normal file
BIN
game/rooms/room08/unlocked_button.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
Reference in New Issue
Block a user