feat: Updated room 9 graphics
BIN
game/items/inventory/bottle.png
Normal file
|
After Width: | Height: | Size: 373 B |
@@ -1,10 +1,10 @@
|
||||
[gd_scene load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://game/items/textures/genericItem_color_127.png" type="Texture" id=1]
|
||||
[ext_resource path="res://game/items/inventory/bottle.png" type="Texture" id=2]
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=3]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
extents = Vector2( 28.3873, 74.7806 )
|
||||
extents = Vector2( 12.5, 34 )
|
||||
|
||||
[node name="bottle" type="Area2D"]
|
||||
pause_mode = 1
|
||||
@@ -17,12 +17,13 @@ default_action = "pickup"
|
||||
default_action_inventory = "look"
|
||||
combine_when_selected_action_is_in = PoolStringArray( "use" )
|
||||
use_from_inventory_only = true
|
||||
inventory_texture = ExtResource( 1 )
|
||||
inventory_texture = ExtResource( 2 )
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
animations = null
|
||||
|
||||
[node name="sprite" type="Sprite" parent="."]
|
||||
texture = ExtResource( 1 )
|
||||
texture = ExtResource( 2 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2( -0.5, 1 )
|
||||
shape = SubResource( 1 )
|
||||
|
||||
BIN
game/rooms/room09/button.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
@@ -1,138 +0,0 @@
|
||||
[gd_scene load_steps=5 format=2]
|
||||
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=1]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
extents = Vector2( 66.4415, 154.457 )
|
||||
|
||||
[sub_resource type="Animation" id=2]
|
||||
length = 0.5
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("base/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("base/open: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(".:default_action")
|
||||
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": [ "use" ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=3]
|
||||
resource_name = "open"
|
||||
length = 0.5
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("base/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("base/open: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(".:default_action")
|
||||
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": [ "walk" ]
|
||||
}
|
||||
|
||||
[node name="closet" type="Area2D"]
|
||||
pause_mode = 1
|
||||
script = ExtResource( 1 )
|
||||
default_action = "use"
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
animations = null
|
||||
|
||||
[node name="base" type="Line2D" parent="."]
|
||||
position = Vector2( 1.12247, 0 )
|
||||
points = PoolVector2Array( 1.96387, 306.585, 1.76169, 4.1832, 126.121, 4.93235, 124.623, 302.346, -0.485764, 300.848 )
|
||||
|
||||
[node name="closed" type="Node2D" parent="base"]
|
||||
|
||||
[node name="door" type="Polygon2D" parent="base/closed"]
|
||||
color = Color( 0.4, 0.501961, 1, 1 )
|
||||
polygon = PoolVector2Array( 5.79657, 8.23298, 5.79657, 297.059, 121.893, 299.89, 123.781, 6.34522 )
|
||||
|
||||
[node name="grid" type="Line2D" parent="base/closed"]
|
||||
points = PoolVector2Array( 26.5586, 38.8841, 26.4838, 74.6036, 106.914, 74.7399, 106.643, 43.8883, 27.9821, 43.8883 )
|
||||
default_color = Color( 0.415686, 0.415686, 0.415686, 1 )
|
||||
|
||||
[node name="Polygon2D" type="Polygon2D" parent="base/closed/grid"]
|
||||
show_behind_parent = true
|
||||
color = Color( 0.47451, 0.47451, 0.47451, 1 )
|
||||
polygon = PoolVector2Array( 29.051, 47.3419, 29.9949, 71.8826, 105.033, 71.8826, 104.561, 45.9261 )
|
||||
|
||||
[node name="handle" type="Line2D" parent="base/closed"]
|
||||
points = PoolVector2Array( 106.643, 175.739, 105.894, 144.275 )
|
||||
default_color = Color( 0.478431, 0.478431, 0.478431, 1 )
|
||||
|
||||
[node name="open" type="Node2D" parent="base"]
|
||||
visible = false
|
||||
|
||||
[node name="black" type="Polygon2D" parent="base/open"]
|
||||
color = Color( 0.141176, 0.141176, 0.141176, 1 )
|
||||
polygon = PoolVector2Array( 5.79657, 8.23298, 5.79657, 297.059, 121.893, 299.89, 123.781, 6.34522 )
|
||||
|
||||
[node name="shelf" type="Line2D" parent="base/open"]
|
||||
points = PoolVector2Array( 10.112, 86.2807, 118.234, 86.2807 )
|
||||
default_color = Color( 0.4, 0.501961, 1, 1 )
|
||||
|
||||
[node name="door" type="Polygon2D" parent="base/open"]
|
||||
color = Color( 0.4, 0.501961, 1, 1 )
|
||||
polygon = PoolVector2Array( 1.07718, 7.2891, -37.6216, 23.335, -37.6216, 328.206, 2.02106, 302.722 )
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2( 64.2172, 153.408 )
|
||||
shape = SubResource( 1 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
anims/closed = SubResource( 2 )
|
||||
anims/open = SubResource( 3 )
|
||||
@@ -1,8 +1,25 @@
|
||||
# :SETUP is called EVERY TIME the room is loaded
|
||||
# :READY is called only the FIRST TIME the room is loaded
|
||||
# :SETUP is called EVERY TIME the room is loaded BEFORE ready
|
||||
# :READY is called EVERY TIME the room is loaded AFTER setup
|
||||
|
||||
:use
|
||||
# Set the counter of open closets to 0. Used for the magic bottle appearance.
|
||||
set_global open_closets 0
|
||||
set_state r9_closet_left closed
|
||||
set_state r9_closet_middle closed
|
||||
set_state r9_closet_right closed
|
||||
# Clear the variable holding which closet contains the bottle
|
||||
# (Used for if the player exits then reenters the room)
|
||||
set_global r9_bottle_closet 0
|
||||
|
||||
# If the bottle is active in any cupboard, disable it
|
||||
set_active r9_bottle_left false
|
||||
set_active r9_bottle_middle false
|
||||
set_active r9_bottle_right false
|
||||
|
||||
# Animate all the doors closing
|
||||
set_state r9_closet_left close_door
|
||||
set_state r9_closet_middle close_door
|
||||
set_state r9_closet_right close_door
|
||||
|
||||
# Mark all the doors closed. Used to work out if we ignore the close command
|
||||
# on a closed closet, or the open command on an opened closet.
|
||||
set_global left_closet_open false
|
||||
set_global middle_closet_open false
|
||||
set_global right_closet_open false
|
||||
|
||||
@@ -1,34 +1,79 @@
|
||||
# Magical closet: the object is always in the LAST opened closet
|
||||
|
||||
# We want "use" and "open" to give the same end result
|
||||
# so we duplicate everything for use and open
|
||||
:use
|
||||
> [left_closet_open]
|
||||
# The closet is already open, so exit the command
|
||||
stop
|
||||
|
||||
set_global left_closet_open true
|
||||
# Increment the counter of the number of open closets
|
||||
inc_global open_closets 1
|
||||
|
||||
> [lt open_closets 3]
|
||||
set_state r9_closet_left open
|
||||
stop
|
||||
# Animate the door opening
|
||||
set_state r9_closet_left open_door
|
||||
|
||||
> [eq open_closets 3]
|
||||
set_state r9_closet_left open
|
||||
# After opening this one, we have 3 closets open
|
||||
# Activate the magic bottle in this particular closet
|
||||
> [i/r9_bottle]
|
||||
# If they've already picked up the bottle, don't make it appear
|
||||
stop
|
||||
> [r9_puzzle_complete]
|
||||
# If they've already completed the puzzle, don't make it appear
|
||||
stop
|
||||
set_active r9_bottle_left true
|
||||
# Note which cupboard the bottle is in in case the player
|
||||
# exits then reenters the room
|
||||
set_global r9_bottle_closet 1
|
||||
stop
|
||||
|
||||
|
||||
|
||||
:open
|
||||
> [left_closet_open]
|
||||
# The closet is already open, so exit the command
|
||||
stop
|
||||
|
||||
set_global left_closet_open true
|
||||
# Increment the counter of the number of open closets
|
||||
inc_global open_closets 1
|
||||
|
||||
> [lt open_closets 3]
|
||||
set_state r9_closet_left open
|
||||
stop
|
||||
# Animate the door opening
|
||||
set_state r9_closet_left open_door
|
||||
|
||||
> [eq open_closets 3]
|
||||
set_state r9_closet_left open
|
||||
# After opening this one, we have 3 closets open
|
||||
# Activate the magic bottle in this particular closet
|
||||
> [i/r9_bottle]
|
||||
# If they've already picked up the bottle, don't make it appear
|
||||
stop
|
||||
> [r9_puzzle_complete]
|
||||
# If they've already completed the puzzle, don't make it appear
|
||||
stop
|
||||
set_active r9_bottle_left true
|
||||
# Note which cupboard the bottle is in in case the player
|
||||
# exits then reenters the room
|
||||
set_global r9_bottle_closet 1
|
||||
stop
|
||||
|
||||
:close
|
||||
> [!left_closet_open]
|
||||
# If the closet isn't open, ignore the close command
|
||||
stop
|
||||
|
||||
> [eq open_closets 3]
|
||||
# If there's 3 closets open, the bottle was made active
|
||||
# We don't know which closet it was activated in so lets
|
||||
# deactivate all of them
|
||||
set_active r9_bottle_left false
|
||||
set_active r9_bottle_middle false
|
||||
set_active r9_bottle_right false
|
||||
|
||||
# Animate the door closing
|
||||
set_state r9_closet_left close_door
|
||||
|
||||
set_global left_closet_open false
|
||||
# Decrement the counter of closets open (used to determine when to show
|
||||
# the magic bottle)
|
||||
dec_global open_closets 1
|
||||
@@ -1,34 +1,79 @@
|
||||
# Magical closet: the object is always in the LAST opened closet
|
||||
|
||||
# We want "use" and "open" to give the same end result
|
||||
# so we duplicate everything for use and open
|
||||
:use
|
||||
> [middle_closet_open]
|
||||
# The closet is already open, so exit the command
|
||||
stop
|
||||
|
||||
set_global middle_closet_open true
|
||||
# Increment the counter of the number of open closets
|
||||
inc_global open_closets 1
|
||||
|
||||
> [lt open_closets 3]
|
||||
set_state r9_closet_middle open
|
||||
stop
|
||||
# Animate the door opening
|
||||
set_state r9_closet_middle open_door
|
||||
|
||||
> [eq open_closets 3]
|
||||
set_state r9_closet_middle open
|
||||
# After opening this one, we have 3 closets open
|
||||
# Activate the magic bottle in this particular closet
|
||||
> [i/r9_bottle]
|
||||
# If they've already picked up the bottle, don't make it appear
|
||||
stop
|
||||
> [r9_puzzle_complete]
|
||||
# If they've already completed the puzzle, don't make it appear
|
||||
stop
|
||||
set_active r9_bottle_middle true
|
||||
# Note which cupboard the bottle is in in case the player
|
||||
# exits then reenters the room
|
||||
set_global r9_bottle_closet 2
|
||||
stop
|
||||
|
||||
|
||||
:open
|
||||
> [middle_closet_open]
|
||||
# The closet is already open, so exit the command
|
||||
stop
|
||||
|
||||
set_global middle_closet_open true
|
||||
# Increment the counter of the number of open closets
|
||||
inc_global open_closets 1
|
||||
|
||||
> [lt open_closets 3]
|
||||
set_state r9_closet_middle open
|
||||
stop
|
||||
# Animate the door opening
|
||||
set_state r9_closet_middle open_door
|
||||
|
||||
> [eq open_closets 3]
|
||||
set_state r9_closet_middle open
|
||||
# After opening this one, we have 3 closets open
|
||||
# Activate the magic bottle in this particular closet
|
||||
> [i/r9_bottle]
|
||||
# If they've already picked up the bottle, don't make it appear
|
||||
stop
|
||||
> [r9_puzzle_complete]
|
||||
# If they've already completed the puzzle, don't make it appear
|
||||
stop
|
||||
set_active r9_bottle_middle true
|
||||
# Note which cupboard the bottle is in in case the player
|
||||
# exits then reenters the room
|
||||
set_global r9_bottle_closet 2
|
||||
stop
|
||||
|
||||
:close
|
||||
> [!middle_closet_open]
|
||||
# If the closet isn't open, ignore the close command
|
||||
stop
|
||||
|
||||
> [eq open_closets 3]
|
||||
# If there's 3 closets open, the bottle was made active
|
||||
# We don't know which closet it was activated in so lets
|
||||
# deactivate all of them
|
||||
set_active r9_bottle_left false
|
||||
set_active r9_bottle_middle false
|
||||
set_active r9_bottle_right false
|
||||
|
||||
# Animate the door closing
|
||||
set_state r9_closet_middle close_door
|
||||
|
||||
set_global middle_closet_open false
|
||||
# Decrement the counter of closets open (used to determine when to show
|
||||
# the magic bottle)
|
||||
dec_global open_closets 1
|
||||
@@ -1,34 +1,79 @@
|
||||
# Magical closet: the object is always in the LAST opened closet
|
||||
|
||||
# We want "use" and "open" to give the same end result
|
||||
# so we duplicate everything for use and open
|
||||
:use
|
||||
> [right_closet_open]
|
||||
# The closet is already open, so exit the command
|
||||
stop
|
||||
|
||||
set_global right_closet_open true
|
||||
# Increment the counter of the number of open closets
|
||||
inc_global open_closets 1
|
||||
|
||||
> [lt open_closets 3]
|
||||
set_state r9_closet_right open
|
||||
stop
|
||||
|
||||
# Animate the door opening
|
||||
set_state r9_closet_right open_door
|
||||
|
||||
> [eq open_closets 3]
|
||||
set_state r9_closet_right open
|
||||
# After opening this one, we have 3 closets open
|
||||
# Activate the magic bottle in this particular closet
|
||||
> [i/r9_bottle]
|
||||
# If they've already picked up the bottle, don't make it appear
|
||||
stop
|
||||
> [r9_puzzle_complete]
|
||||
# If they've already completed the puzzle, don't make it appear
|
||||
stop
|
||||
set_active r9_bottle_right true
|
||||
# Note which cupboard the bottle is in in case the player
|
||||
# exits then reenters the room
|
||||
set_global r9_bottle_closet 3
|
||||
stop
|
||||
|
||||
|
||||
:open
|
||||
> [right_closet_open]
|
||||
# The closet is already open, so exit the command
|
||||
stop
|
||||
|
||||
set_global right_closet_open true
|
||||
# Increment the counter of the number of open closets
|
||||
inc_global open_closets 1
|
||||
|
||||
> [lt open_closets 3]
|
||||
set_state r9_closet_right open
|
||||
stop
|
||||
|
||||
# Animate the door opening
|
||||
set_state r9_closet_right open_door
|
||||
|
||||
> [eq open_closets 3]
|
||||
set_state r9_closet_right open
|
||||
# After opening this one, we have 3 closets open
|
||||
# Activate the magic bottle in this particular closet
|
||||
> [i/r9_bottle]
|
||||
# If they've already picked up the bottle, don't make it appear
|
||||
stop
|
||||
> [r9_puzzle_complete]
|
||||
# If they've already completed the puzzle, don't make it appear
|
||||
stop
|
||||
set_active r9_bottle_right true
|
||||
# Note which cupboard the bottle is in in case the player
|
||||
# exits then reenters the room
|
||||
set_global r9_bottle_closet 3
|
||||
stop
|
||||
|
||||
:close
|
||||
> [!right_closet_open]
|
||||
# If the closet isn't open, ignore the close command
|
||||
stop
|
||||
|
||||
> [eq open_closets 3]
|
||||
# If there's 3 closets open, the bottle was made active
|
||||
# We don't know which closet it was activated in so lets
|
||||
# deactivate all of them
|
||||
set_active r9_bottle_left false
|
||||
set_active r9_bottle_middle false
|
||||
set_active r9_bottle_right false
|
||||
|
||||
# Animate the door closing
|
||||
set_state r9_closet_right close_door
|
||||
|
||||
set_global right_closet_open false
|
||||
# Decrement the counter of closets open (used to determine when to show
|
||||
# the magic bottle)
|
||||
dec_global open_closets 1
|
||||
@@ -1,2 +1,7 @@
|
||||
:exit_scene
|
||||
change_scene "res://game/rooms/room10/room10.tscn"
|
||||
> [r9_puzzle_complete]
|
||||
change_scene "res://game/rooms/room10/room10.tscn"
|
||||
|
||||
> [!r9_puzzle_complete]
|
||||
say player "The door is locked"
|
||||
|
||||
|
||||
@@ -1,12 +1,63 @@
|
||||
|
||||
:setup
|
||||
|
||||
# In case the bottle is set to visible in the godot editor, either in a
|
||||
# cupboard or on the stand, hide it regardless.
|
||||
set_active r9_bottle_left false
|
||||
set_active r9_bottle_middle false
|
||||
set_active r9_bottle_right false
|
||||
set_state r9_stand remove_bottle
|
||||
|
||||
# Run all the animations to make sure the closet doors are closed
|
||||
set_state r9_closet_left close_door
|
||||
set_state r9_closet_middle close_door
|
||||
set_state r9_closet_right close_door
|
||||
|
||||
> [room09_visited]
|
||||
> [r9_puzzle_complete]
|
||||
# If the player has been here before and completed the puzzle
|
||||
set_state r9_stand set_bottle
|
||||
# Open the right doorway by using the open_door animation
|
||||
set_state r9_r_exit open_door true
|
||||
|
||||
# Open the closets as they were if the player exits then reenters
|
||||
> [left_closet_open]
|
||||
set_state r9_closet_left open_door
|
||||
> [middle_closet_open]
|
||||
set_state r9_closet_middle open_door
|
||||
> [right_closet_open]
|
||||
set_state r9_closet_right open_door
|
||||
|
||||
# If the player has left everything open but the bottle hasn't been
|
||||
# retrieved, show it where it used to be.
|
||||
> [!i/r9_bottle]
|
||||
# If the player isn't holding the bottle already, draw it if necessary
|
||||
> [eq r9_bottle_closet 1]
|
||||
set_active r9_bottle_left true
|
||||
> [eq r9_bottle_closet 2]
|
||||
set_active r9_bottle_middle true
|
||||
> [eq r9_bottle_closet 3]
|
||||
set_active r9_bottle_right true
|
||||
|
||||
|
||||
|
||||
> [!room09_visited]
|
||||
# Run initial set up steps. This will only happen once per game.
|
||||
set_global room09_visited true
|
||||
|
||||
# Set the count of open closets to 0. Used with the magic bottle.
|
||||
set_global open_closets 0
|
||||
#set_state r9_closet_left closed
|
||||
#set_state r9_closet_middle closed
|
||||
#set_state r9_closet_right closed
|
||||
|
||||
# Run all the animations to make sure the closet doors are closed
|
||||
set_state r9_closet_left close_door
|
||||
set_state r9_closet_middle close_door
|
||||
set_state r9_closet_right close_door
|
||||
|
||||
# Mark the puzzle uncomplete
|
||||
set_global r9_puzzle_complete false
|
||||
# Set up a variable to hold which cupboard contains the bottle
|
||||
# It will be used if the player exits then reenters the room
|
||||
set_global r9_bottle_closet 0
|
||||
|
||||
> [eq ESC_LAST_SCENE room8]
|
||||
teleport player r9_l_exit
|
||||
|
||||
@@ -1,6 +1,27 @@
|
||||
|
||||
:use r9_bottle
|
||||
# Make sure the full sequence completes. Let players speed through the text though.
|
||||
accept_input SKIP
|
||||
say player "This appears to be a magical bottle that unlocks doors."
|
||||
inventory_remove r9_bottle
|
||||
set_state r9_stand set_bottle
|
||||
set_state r9_r_exit r_door_open
|
||||
|
||||
# Place the bottle on the stand (i.e. unhide the placed bottle graphic)
|
||||
set_state r9_stand set_bottle
|
||||
|
||||
# Animate the door unlocking
|
||||
set_state r9_r_exit open_door
|
||||
|
||||
# Mark this room's puzzle as complete. This will stop it resetting and the
|
||||
# bottle from being displayed in a cupboard.
|
||||
set_global r9_puzzle_complete true
|
||||
set_global r9_bottle_closet 0
|
||||
accept_input ALL
|
||||
|
||||
:look
|
||||
> [r9_puzzle_complete]
|
||||
say player "Unlocking a door with a bottle, how strange."
|
||||
stop
|
||||
|
||||
> [!r9_puzzle_complete]
|
||||
say player "That stand looks like the perfect place"
|
||||
say player "to put a bottle."
|
||||
BIN
game/rooms/room09/locker_door_closed.png
Normal file
|
After Width: | Height: | Size: 433 B |
BIN
game/rooms/room09/locker_door_opened.png
Normal file
|
After Width: | Height: | Size: 280 B |
BIN
game/rooms/room09/locker_inside.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
game/rooms/room09/right_door.png
Normal file
|
After Width: | Height: | Size: 723 B |
@@ -1,22 +1,56 @@
|
||||
[gd_scene load_steps=15 format=2]
|
||||
[gd_scene load_steps=32 format=2]
|
||||
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_terrain.gd" type="Script" id=1]
|
||||
[ext_resource path="res://game/rooms/room09/background.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_background.gd" type="Script" 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/room09/closet/magical_closet.tscn" type="PackedScene" id=5]
|
||||
[ext_resource path="res://game/rooms/room09/button.png" type="Texture" 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://game/rooms/room09/button/button.tscn" type="PackedScene" id=8]
|
||||
[ext_resource path="res://game/rooms/room09/r_door.tscn" type="PackedScene" id=9]
|
||||
[ext_resource path="res://game/rooms/room09/locker_door_opened.png" type="Texture" id=8]
|
||||
[ext_resource path="res://game/rooms/room09/room9background.png" type="Texture" id=9]
|
||||
[ext_resource path="res://game/items/textures/genericItem_color_127.png" type="Texture" id=10]
|
||||
[ext_resource path="res://game/items/inventory/r9_bottle.tscn" type="PackedScene" id=11]
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=12]
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_exit.gd" type="Script" id=13]
|
||||
[ext_resource path="res://game/rooms/room09/locker_door_closed.png" type="Texture" id=14]
|
||||
[ext_resource path="res://game/items/inventory/bottle.png" type="Texture" id=15]
|
||||
[ext_resource path="res://game/rooms/room09/right_door.png" type="Texture" id=16]
|
||||
|
||||
[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 ) ]
|
||||
vertices = PoolVector2Array( 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, 820.268, 705.779, -9.16094, 803.802, -6.44019, 711.297, 491.268, 705.779, 129.634, 615.792, 455.268, 618.779, 84.5821, 654.06, 3.15687, 646.051, 59.2201, 628.698, 864.626, 613.518, 1143.08, 613.35 )
|
||||
polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 3, 5, 6, 7 ), PoolIntArray( 8, 9, 7, 10 ), PoolIntArray( 6, 11, 12, 10 ), PoolIntArray( 4, 13, 14, 0, 3 ), PoolIntArray( 7, 6, 10 ) ]
|
||||
outlines = [ PoolVector2Array( -6.44019, 711.297, 3.15687, 646.051, 59.2201, 628.698, 84.5821, 654.06, 129.634, 615.792, 455.268, 618.779, 491.268, 705.779, 820.268, 705.779, 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=11]
|
||||
length = 0.001
|
||||
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": 0,
|
||||
"values": [ false ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=12]
|
||||
resource_name = "remove_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": [ false ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=2]
|
||||
resource_name = "set_bottle"
|
||||
@@ -33,6 +67,343 @@ tracks/0/keys = {
|
||||
"values": [ true ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=13]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Sprite: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( 1227, 244 ) ]
|
||||
}
|
||||
tracks/1/type = "bezier"
|
||||
tracks/1/path = NodePath("Sprite:position:x")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"points": PoolRealArray( 1227, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0 )
|
||||
}
|
||||
tracks/2/type = "bezier"
|
||||
tracks/2/path = NodePath("Sprite:position:y")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/keys = {
|
||||
"points": PoolRealArray( 244, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0 )
|
||||
}
|
||||
tracks/3/type = "bezier"
|
||||
tracks/3/path = NodePath("Sprite:scale:x")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/keys = {
|
||||
"points": PoolRealArray( 1, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0 )
|
||||
}
|
||||
tracks/4/type = "bezier"
|
||||
tracks/4/path = NodePath("Sprite:scale:y")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/keys = {
|
||||
"points": PoolRealArray( 1, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0 )
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/path = NodePath("Sprite:visible")
|
||||
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": [ true ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=14]
|
||||
resource_name = "close_door"
|
||||
length = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("Sprite: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( 1227, 244 ) ]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath("Sprite:scale")
|
||||
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( 1, 1 ) ]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/path = NodePath("Sprite:visible")
|
||||
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 ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=15]
|
||||
resource_name = "open_door"
|
||||
length = 1.1
|
||||
tracks/0/type = "bezier"
|
||||
tracks/0/path = NodePath("Sprite:position:x")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"points": PoolRealArray( 1227, -0.25, 0, 0.25, 0, 1276.43, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1 )
|
||||
}
|
||||
tracks/1/type = "bezier"
|
||||
tracks/1/path = NodePath("Sprite:position:y")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"points": PoolRealArray( 244, -0.25, 0, 0.25, 0, 265.47, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1 )
|
||||
}
|
||||
tracks/2/type = "bezier"
|
||||
tracks/2/path = NodePath("Sprite:scale:x")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/keys = {
|
||||
"points": PoolRealArray( 1, -0.25, 0, 0.25, 0, 0.01, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1 )
|
||||
}
|
||||
tracks/3/type = "bezier"
|
||||
tracks/3/path = NodePath("Sprite:scale:y")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/keys = {
|
||||
"points": PoolRealArray( 1, -0.25, 0, 0.25, 0, 0.88, -0.25, 0, 0.25, 0 ),
|
||||
"times": PoolRealArray( 0, 1 )
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/path = NodePath("Sprite:visible")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/keys = {
|
||||
"times": PoolRealArray( 0, 1.1 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"update": 1,
|
||||
"values": [ true, false ]
|
||||
}
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=3]
|
||||
extents = Vector2( 40, 40 )
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=4]
|
||||
extents = Vector2( 49, 147.5 )
|
||||
|
||||
[sub_resource type="Animation" id=5]
|
||||
resource_name = "close_door"
|
||||
length = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("closed_door: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("opened_door: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 ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=6]
|
||||
resource_name = "open_door"
|
||||
length = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("opened_door: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("closed_door: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 ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=7]
|
||||
resource_name = "close_door"
|
||||
length = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("closed_door: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("opened_door: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 ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=8]
|
||||
resource_name = "open_door"
|
||||
length = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("opened_door: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("closed_door: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 ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=9]
|
||||
resource_name = "close_door"
|
||||
length = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("closed_door: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("opened_door: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 ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=10]
|
||||
resource_name = "open_door"
|
||||
length = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("opened_door: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("closed_door: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 ]
|
||||
}
|
||||
|
||||
[node name="room9" type="Node2D"]
|
||||
script = ExtResource( 6 )
|
||||
__meta__ = {
|
||||
@@ -43,17 +414,6 @@ esc_script = "res://game/rooms/room09/esc/room09.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 = 62.0
|
||||
margin_bottom = 16.0
|
||||
custom_fonts/font = ExtResource( 3 )
|
||||
text = "ROOM 9"
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="walkable_area" type="Navigation2D" parent="."]
|
||||
script = ExtResource( 1 )
|
||||
|
||||
@@ -64,120 +424,46 @@ __meta__ = {
|
||||
"_editor_description_": ""
|
||||
}
|
||||
|
||||
[node name="Hotspots" type="Node" parent="."]
|
||||
[node name="ESCBackground" type="TextureRect" parent="."]
|
||||
margin_right = 1280.0
|
||||
margin_bottom = 550.0
|
||||
mouse_filter = 2
|
||||
texture = ExtResource( 9 )
|
||||
script = ExtResource( 2 )
|
||||
|
||||
[node name="l_door" type="Area2D" parent="Hotspots"]
|
||||
pause_mode = 1
|
||||
script = ExtResource( 7 )
|
||||
global_id = "r9_l_exit"
|
||||
esc_script = "res://game/rooms/room09/esc/left_exit.esc"
|
||||
is_exit = true
|
||||
tooltip_name = "Left exit"
|
||||
default_action = "walk"
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
animations = null
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/l_door"]
|
||||
polygon = PoolVector2Array( 0.328762, 440.897, 1.85199, 119.926, 85.9517, 74.6212, 87.1409, 377.869 )
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Hotspots/l_door"]
|
||||
position = Vector2( 37.4521, 392.045 )
|
||||
script = ExtResource( 12 )
|
||||
|
||||
[node name="r_door" parent="Hotspots" instance=ExtResource( 9 )]
|
||||
pause_mode = 1
|
||||
global_id = "r9_r_exit"
|
||||
esc_script = "res://game/rooms/room09/esc/right_exit.esc"
|
||||
animations = null
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Hotspots/r_door"]
|
||||
position = Vector2( 1198.65, 391.058 )
|
||||
script = ExtResource( 12 )
|
||||
|
||||
[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/room09/esc/closet_left.esc"
|
||||
tooltip_name = "Left closet"
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Hotspots/r9_closet_left"]
|
||||
position = Vector2( 69.9246, 318.898 )
|
||||
script = ExtResource( 12 )
|
||||
|
||||
[node name="bottle_left" parent="Hotspots/r9_closet_left" instance=ExtResource( 11 )]
|
||||
visible = false
|
||||
position = Vector2( 46.4878, 47.8335 )
|
||||
scale = Vector2( 0.5, 0.5 )
|
||||
global_id = "r9_bottle_left"
|
||||
dont_apply_terrain_scaling = true
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Hotspots/r9_closet_left/bottle_left"]
|
||||
position = Vector2( -26.727, 543.448 )
|
||||
script = ExtResource( 12 )
|
||||
|
||||
[node name="r9_closet_middle" parent="Hotspots" instance=ExtResource( 5 )]
|
||||
position = Vector2( 572.963, 65.2113 )
|
||||
global_id = "r9_closet_middle"
|
||||
esc_script = "res://game/rooms/room09/esc/closet_middle.esc"
|
||||
tooltip_name = "Middle closet"
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Hotspots/r9_closet_middle"]
|
||||
position = Vector2( 65.6867, 317.839 )
|
||||
script = ExtResource( 12 )
|
||||
|
||||
[node name="bottle_middle" parent="Hotspots/r9_closet_middle" instance=ExtResource( 11 )]
|
||||
visible = false
|
||||
position = Vector2( 45.9562, 46.774 )
|
||||
scale = Vector2( 0.5, 0.5 )
|
||||
global_id = "r9_bottle_middle"
|
||||
dont_apply_terrain_scaling = true
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Hotspots/r9_closet_middle/bottle_middle"]
|
||||
position = Vector2( -26.727, 543.448 )
|
||||
script = ExtResource( 12 )
|
||||
|
||||
[node name="r9_closet_right" parent="Hotspots" instance=ExtResource( 5 )]
|
||||
position = Vector2( 710.693, 66.2707 )
|
||||
global_id = "r9_closet_right"
|
||||
esc_script = "res://game/rooms/room09/esc/closet_right.esc"
|
||||
tooltip_name = "Right closet"
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Hotspots/r9_closet_right"]
|
||||
position = Vector2( 64.6273, 316.779 )
|
||||
script = ExtResource( 12 )
|
||||
|
||||
[node name="bottle_right" parent="Hotspots/r9_closet_right" instance=ExtResource( 11 )]
|
||||
visible = false
|
||||
position = Vector2( 47.2065, 45.7146 )
|
||||
scale = Vector2( 0.5, 0.5 )
|
||||
global_id = "r9_bottle_right"
|
||||
dont_apply_terrain_scaling = true
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Hotspots/r9_closet_right/bottle_right"]
|
||||
position = Vector2( -26.727, 543.448 )
|
||||
script = ExtResource( 12 )
|
||||
|
||||
[node name="button" parent="Hotspots" instance=ExtResource( 8 )]
|
||||
pause_mode = 1
|
||||
position = Vector2( 240.688, 160.459 )
|
||||
global_id = "r9_button_reset"
|
||||
esc_script = "res://game/rooms/room09/esc/button_reset.esc"
|
||||
animations = null
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Hotspots/button"]
|
||||
position = Vector2( 30.204, 209.54 )
|
||||
script = ExtResource( 12 )
|
||||
|
||||
[node name="Label" type="Label" parent="Hotspots/button"]
|
||||
margin_left = -15.5154
|
||||
margin_top = -23.3368
|
||||
margin_right = 59.4846
|
||||
margin_bottom = -7.33676
|
||||
[node name="room_label" type="Label" parent="ESCBackground"]
|
||||
margin_right = 82.0
|
||||
margin_bottom = 21.0
|
||||
custom_fonts/font = ExtResource( 3 )
|
||||
text = "Reset closets"
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
text = "ROOM 9"
|
||||
|
||||
[node name="Label" type="Label" parent="ESCBackground"]
|
||||
margin_left = 841.0
|
||||
margin_top = 7.0
|
||||
margin_right = 909.0
|
||||
margin_bottom = 21.0
|
||||
custom_colors/font_color = Color( 0, 0, 0, 1 )
|
||||
text = "This room demonstrates a puzzle that changes
|
||||
depending on what the player does. The bottle
|
||||
will appear in whichever closet is opened last.
|
||||
|
||||
The reset has also been set up to only reset if
|
||||
the puzzle hasn't been completed. This differs to
|
||||
the previous room that always resets the puzzle.
|
||||
|
||||
The state of the puzzle is preserved if you leave
|
||||
the room.
|
||||
|
||||
Open all closets, take the bottle, and put it on
|
||||
the stand to complete the room."
|
||||
|
||||
[node name="open_doorway_graphic" type="Polygon2D" parent="."]
|
||||
position = Vector2( -2, 4 )
|
||||
z_index = -2
|
||||
color = Color( 0, 0, 0, 1 )
|
||||
polygon = PoolVector2Array( 1172, 54, 1280, 96, 1278, 422, 1173, 355 )
|
||||
|
||||
[node name="Hotspots" type="Node" parent="."]
|
||||
|
||||
[node name="stand" type="Area2D" parent="Hotspots"]
|
||||
pause_mode = 1
|
||||
@@ -193,24 +479,216 @@ dialog_color = Color( 1, 1, 1, 1 )
|
||||
animations = null
|
||||
|
||||
[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 )
|
||||
position = Vector2( -11.383, 25.1091 )
|
||||
polygon = PoolVector2Array( 1090, 348, 1087.46, 226.857, 1155, 226, 1155, 346 )
|
||||
|
||||
[node name="bottle" type="Sprite" parent="Hotspots/stand"]
|
||||
visible = false
|
||||
position = Vector2( 1110, 193.494 )
|
||||
scale = Vector2( 0.6, 0.6 )
|
||||
texture = ExtResource( 10 )
|
||||
position = Vector2( 1108.62, 235.109 )
|
||||
texture = ExtResource( 15 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="Hotspots/stand"]
|
||||
anims/RESET = SubResource( 11 )
|
||||
anims/remove_bottle = SubResource( 12 )
|
||||
anims/set_bottle = SubResource( 2 )
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Hotspots/stand"]
|
||||
position = Vector2( 1043.27, 359.243 )
|
||||
script = ExtResource( 12 )
|
||||
|
||||
[node name="door_l" type="Area2D" parent="Hotspots"]
|
||||
script = ExtResource( 13 )
|
||||
global_id = "r9_l_exit"
|
||||
esc_script = "res://game/rooms/room09/esc/left_exit.esc"
|
||||
is_exit = true
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/door_l"]
|
||||
polygon = PoolVector2Array( 0, 108, 105, 62, 108, 355, 1, 422 )
|
||||
|
||||
[node name="ESCLocation" type="Position2D" parent="Hotspots/door_l"]
|
||||
position = Vector2( 56, 385 )
|
||||
script = ExtResource( 12 )
|
||||
|
||||
[node name="door_r" type="Area2D" parent="Hotspots"]
|
||||
script = ExtResource( 13 )
|
||||
global_id = "r9_r_exit"
|
||||
esc_script = "res://game/rooms/room09/esc/right_exit.esc"
|
||||
is_exit = true
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/door_r"]
|
||||
polygon = PoolVector2Array( 1174, 61, 1280, 107, 1280, 423, 1172, 353 )
|
||||
|
||||
[node name="ESCLocation" type="Position2D" parent="Hotspots/door_r"]
|
||||
position = Vector2( 1228, 386 )
|
||||
script = ExtResource( 12 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="Hotspots/door_r"]
|
||||
position = Vector2( 1227, 244 )
|
||||
z_index = -1
|
||||
texture = ExtResource( 16 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="Hotspots/door_r"]
|
||||
anims/RESET = SubResource( 13 )
|
||||
anims/close_door = SubResource( 14 )
|
||||
anims/open_door = SubResource( 15 )
|
||||
|
||||
[node name="reset_button" type="Area2D" parent="Hotspots"]
|
||||
pause_mode = 1
|
||||
position = Vector2( 125, 8 )
|
||||
script = ExtResource( 7 )
|
||||
global_id = "r9_reset_button"
|
||||
esc_script = "res://game/rooms/room09/esc/button_reset.esc"
|
||||
tooltip_name = "reset button"
|
||||
default_action = "use"
|
||||
inventory_texture = ExtResource( 5 )
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
animations = null
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hotspots/reset_button"]
|
||||
position = Vector2( 291, 194 )
|
||||
shape = SubResource( 3 )
|
||||
|
||||
[node name="Label" type="Label" parent="Hotspots/reset_button"]
|
||||
margin_left = 242.0
|
||||
margin_top = 233.0
|
||||
margin_right = 339.0
|
||||
margin_bottom = 254.0
|
||||
custom_fonts/font = ExtResource( 3 )
|
||||
text = "Reset closets"
|
||||
|
||||
[node name="ESCLocation" type="Position2D" parent="Hotspots/reset_button"]
|
||||
position = Vector2( 283, 371 )
|
||||
script = ExtResource( 12 )
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="Hotspots/reset_button"]
|
||||
position = Vector2( 290, 193 )
|
||||
texture = ExtResource( 5 )
|
||||
|
||||
[node name="r9_closet_left" type="Area2D" parent="Hotspots"]
|
||||
pause_mode = 1
|
||||
position = Vector2( -1, 0 )
|
||||
script = ExtResource( 7 )
|
||||
global_id = "r9_closet_left"
|
||||
esc_script = "res://game/rooms/room09/esc/closet_left.esc"
|
||||
tooltip_name = "closet"
|
||||
default_action = "open"
|
||||
inventory_texture = ExtResource( 14 )
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
animations = null
|
||||
|
||||
[node name="closed_door" type="Sprite" parent="Hotspots/r9_closet_left"]
|
||||
visible = false
|
||||
position = Vector2( 570, 248 )
|
||||
texture = ExtResource( 14 )
|
||||
|
||||
[node name="opened_door" type="Sprite" parent="Hotspots/r9_closet_left"]
|
||||
position = Vector2( 525, 273 )
|
||||
texture = ExtResource( 8 )
|
||||
|
||||
[node name="ESCLocation" type="Position2D" parent="Hotspots/r9_closet_left"]
|
||||
position = Vector2( 571, 447 )
|
||||
script = ExtResource( 12 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hotspots/r9_closet_left"]
|
||||
position = Vector2( 570, 248.5 )
|
||||
shape = SubResource( 4 )
|
||||
|
||||
[node name="bottle_left" parent="Hotspots/r9_closet_left" instance=ExtResource( 11 )]
|
||||
position = Vector2( 598, 162 )
|
||||
global_id = "r9_bottle_left"
|
||||
dont_apply_terrain_scaling = true
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Hotspots/r9_closet_left/bottle_left"]
|
||||
position = Vector2( -27, 285 )
|
||||
script = ExtResource( 12 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="Hotspots/r9_closet_left"]
|
||||
anims/close_door = SubResource( 5 )
|
||||
anims/open_door = SubResource( 6 )
|
||||
|
||||
[node name="r9_closet_middle" type="Area2D" parent="Hotspots"]
|
||||
pause_mode = 1
|
||||
script = ExtResource( 7 )
|
||||
global_id = "r9_closet_middle"
|
||||
esc_script = "res://game/rooms/room09/esc/closet_middle.esc"
|
||||
tooltip_name = "closet"
|
||||
default_action = "open"
|
||||
inventory_texture = ExtResource( 14 )
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
animations = null
|
||||
|
||||
[node name="closed_door" type="Sprite" parent="Hotspots/r9_closet_middle"]
|
||||
visible = false
|
||||
position = Vector2( 670, 248 )
|
||||
texture = ExtResource( 14 )
|
||||
|
||||
[node name="opened_door" type="Sprite" parent="Hotspots/r9_closet_middle"]
|
||||
position = Vector2( 625, 269 )
|
||||
texture = ExtResource( 8 )
|
||||
|
||||
[node name="ESCLocation" type="Position2D" parent="Hotspots/r9_closet_middle"]
|
||||
position = Vector2( 671, 446.5 )
|
||||
script = ExtResource( 12 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hotspots/r9_closet_middle"]
|
||||
position = Vector2( 670, 248 )
|
||||
shape = SubResource( 4 )
|
||||
|
||||
[node name="bottle_middle" parent="Hotspots/r9_closet_middle" instance=ExtResource( 11 )]
|
||||
position = Vector2( 692, 163 )
|
||||
global_id = "r9_bottle_middle"
|
||||
dont_apply_terrain_scaling = true
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Hotspots/r9_closet_middle/bottle_middle"]
|
||||
position = Vector2( -21, 284 )
|
||||
script = ExtResource( 12 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="Hotspots/r9_closet_middle"]
|
||||
anims/close_door = SubResource( 7 )
|
||||
anims/open_door = SubResource( 8 )
|
||||
|
||||
[node name="r9_closet_right" type="Area2D" parent="Hotspots"]
|
||||
pause_mode = 1
|
||||
position = Vector2( 100, 0 )
|
||||
script = ExtResource( 7 )
|
||||
global_id = "r9_closet_right"
|
||||
esc_script = "res://game/rooms/room09/esc/closet_right.esc"
|
||||
tooltip_name = "closet"
|
||||
default_action = "open"
|
||||
inventory_texture = ExtResource( 14 )
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
animations = null
|
||||
|
||||
[node name="closed_door" type="Sprite" parent="Hotspots/r9_closet_right"]
|
||||
visible = false
|
||||
position = Vector2( 669.5, 248 )
|
||||
texture = ExtResource( 14 )
|
||||
|
||||
[node name="opened_door" type="Sprite" parent="Hotspots/r9_closet_right"]
|
||||
position = Vector2( 625, 268 )
|
||||
texture = ExtResource( 8 )
|
||||
|
||||
[node name="ESCLocation" type="Position2D" parent="Hotspots/r9_closet_right"]
|
||||
position = Vector2( 671, 446.5 )
|
||||
script = ExtResource( 12 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hotspots/r9_closet_right"]
|
||||
position = Vector2( 670, 248 )
|
||||
shape = SubResource( 4 )
|
||||
|
||||
[node name="bottle_right" parent="Hotspots/r9_closet_right" instance=ExtResource( 11 )]
|
||||
position = Vector2( 682, 163 )
|
||||
global_id = "r9_bottle_right"
|
||||
dont_apply_terrain_scaling = true
|
||||
|
||||
[node name="Position2D" type="Position2D" parent="Hotspots/r9_closet_right/bottle_right"]
|
||||
position = Vector2( -11, 284 )
|
||||
script = ExtResource( 12 )
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="Hotspots/r9_closet_right"]
|
||||
anims/close_door = SubResource( 9 )
|
||||
anims/open_door = SubResource( 10 )
|
||||
|
||||
[node name="player_start" type="Position2D" parent="."]
|
||||
position = Vector2( 76.7617, 437.649 )
|
||||
script = ExtResource( 12 )
|
||||
|
||||
BIN
game/rooms/room09/room9background.png
Normal file
|
After Width: | Height: | Size: 9.6 KiB |