From 75a78f63e10d1971655bc4e02efa5fc535290cd3 Mon Sep 17 00:00:00 2001 From: Balloonpopper Date: Tue, 15 Feb 2022 21:33:37 +1100 Subject: [PATCH] feat: New graphics for room 7 --- game/rooms/room07/alarm_cone.png | Bin 0 -> 2674 bytes game/rooms/room07/elevator_door.png | Bin 0 -> 2319 bytes game/rooms/room07/elevator_edge.png | Bin 0 -> 234 bytes game/rooms/room07/esc/alarm_cone_floor_1.esc | 5 + game/rooms/room07/esc/alarm_cone_floor_2.esc | 5 + game/rooms/room07/esc/button_follow.esc | 7 - game/rooms/room07/esc/button_push.esc | 12 +- game/rooms/room07/esc/button_set_pos.esc | 21 +- game/rooms/room07/esc/button_shift.esc | 12 +- game/rooms/room07/esc/button_zoom.esc | 16 +- game/rooms/room07/esc/lift_button_floor_1.esc | 14 + game/rooms/room07/esc/lift_button_floor_2.esc | 14 + game/rooms/room07/esc/lift_door_floor_1.esc | 23 + game/rooms/room07/esc/lift_door_floor_2.esc | 23 + game/rooms/room07/esc/lower_stairs.esc | 9 +- game/rooms/room07/esc/room07.esc | 13 +- game/rooms/room07/esc/trigger_left.esc | 4 - game/rooms/room07/esc/trigger_right.esc | 5 - game/rooms/room07/esc/upper_stairs.esc | 19 +- game/rooms/room07/room07.tscn | 1174 +++++++++++++---- game/rooms/room07/room7background.png | Bin 0 -> 30687 bytes 21 files changed, 1083 insertions(+), 293 deletions(-) create mode 100644 game/rooms/room07/alarm_cone.png create mode 100644 game/rooms/room07/elevator_door.png create mode 100644 game/rooms/room07/elevator_edge.png create mode 100644 game/rooms/room07/esc/alarm_cone_floor_1.esc create mode 100644 game/rooms/room07/esc/alarm_cone_floor_2.esc delete mode 100755 game/rooms/room07/esc/button_follow.esc create mode 100644 game/rooms/room07/esc/lift_button_floor_1.esc create mode 100644 game/rooms/room07/esc/lift_button_floor_2.esc create mode 100644 game/rooms/room07/esc/lift_door_floor_1.esc create mode 100644 game/rooms/room07/esc/lift_door_floor_2.esc delete mode 100755 game/rooms/room07/esc/trigger_left.esc delete mode 100755 game/rooms/room07/esc/trigger_right.esc create mode 100644 game/rooms/room07/room7background.png diff --git a/game/rooms/room07/alarm_cone.png b/game/rooms/room07/alarm_cone.png new file mode 100644 index 0000000000000000000000000000000000000000..db06b6250ab46cae94dc7e403cabc3c9447a165b GIT binary patch literal 2674 zcmY+Gc~DbV7{wE0Q7a%a%BDtRHB-l6fdXP61&O$o2(qYQQBa6YS!9bEL@hW?P$*I= z77#{}s;oi64gqmN91vuTz#}LKiU?Kvjd5ABk8+Oej4EW zyu(}fMvzE4_4q~JpyBpCi8Nnp8_U7{sPAZ3XW7#Gi&?IxQrja1nu{D|3-0LC^FHQu zP17F5?y>G4F{o^>2<`pyc_2DPys!St%Xa<{y{9G59-s}!BOxI!&F&xj%@PhBRnVD?kh!ei$)&7-d1uIl&Ujyh^F z^v1)KkGfktjpWlA*SWQKH_r&^v+P@)?of)lg*trdiI>Vpa|1v14|Dh~Z6DIk&Ir+f zN1~`+%A;)Tir+vuo;((XYaLfTHseT@<4WEvdp3?96fv_RIszdN4*EN0Xg{s{f>Qfh zdN8jPH=BBnfOkKx&lY!mB(W| z%)w3`hhQI?BN+n`w0|U+!X%v~ae{Iyl{DZqX}{%(0q*RmDpi_Twr75T)?|>gN*W|= zm90@&t-DOY8i8R-?iTohjlnpC^vW6;F0F$~Q~7u#*_JRiOpRZNOP@fc?~m5u(h;hl z+$Hh30rk7u245hVq=Vdo`PnuE<7rt*QZDzM3TLJk&W+4S6Gpo?K}6+YF*3<9l{x4I zCR*c15hP?D(t)X2k;@b|!`KJaGoWEXtT>5o=56**Fe6Koe>i;8$sli(*#Q$4`O%D1 z;67?^rPrhitd^t0?^igA!J4zg8Wug8J{h!hmQI(@n4fJ%#T&zsmbf%GUd@tbAw3uZA`!*<(o~2dJ;$*!m{dfeW3Tt8 zq^D#KSwbg;hODG2m)nWL__Q!fH5u&$jbalIfS;X2^i)e`-kOsoZ9|Tn37zSMyTNWeP~LNU@bpq@*y>5e zPIUU-F5yuPM!T4xrtyr#Ia!}?qe5{pqS(x#uf&>@GV|@j;M_7i1>RY}6I`!{2@M;@ z7|F_jDxxginho!_PPPy#A@al~<{c6LNxV{}ik_dwX>8&baKF*WgIQB61B>Ns)hQM1 z@jzxCSmI{)ts3&cRVBJ+SA6(XWjY~ec~?`-B+GCb{5S?jRL@(JEQkhF{a{UYIGfADJ$Xa31%|f>7m*;{Ac+ue58T3a1X{_JpP3q_hy!e zG!nx&Cqm&y?_z>;5d8QX6elE zj8yx>h}n3=1>*`N;v>U#5Mo@*W;;;9HvBpOBl&Ro~p1>?JhXJhMyOrF&(QaIjx zmIjHVD*^G%@#ScXb@BJ7&n`)!3b5x1h-VHnA{4Qz`3+c+E2_B=Iiv_69~OI|qdVjA z9F@^wOW*$rT6&5b2f^%WMQ=M`hM!$QhJC#HPNeSp ztU%pgul;!(QupH2zN6QX*XATX*`>EJ5V|fez+QE%fqyQF<_llde%CS2F5{T1f&Yo5 NZJXJwqD}i_{|6iWLTUg2 literal 0 HcmV?d00001 diff --git a/game/rooms/room07/elevator_door.png b/game/rooms/room07/elevator_door.png new file mode 100644 index 0000000000000000000000000000000000000000..dad08f6bb269d126b775641b8cf535900227217d GIT binary patch literal 2319 zcmZveYfw|y7RSRo4~c< zED|~r-HA9H&T(s8OseHh#^J2!cpEJ9JZ#x=St(P60PfN#r0fg>+&+=gO({DOMGEPu7{`~#H-ThLHr@LD2h)~m|A8pQHl$eX zFwaCI6dcXZy`rzAiEKYu&)6rUPIDDL2CJ4Dj^STus{cBEXH3@f5y*JQ`eKkYGmtHm zX4czY6-jALx(Y6_z1I~$YTbDBc?}+^0vL_DFjn=kawhAI@Ik$f#41R#ITOT67(-GJ z=NB!y02!p2I1hfjZf$BJwbnSkxdQGO&5_HqQYcjLWCYzS&We}(9;`6d+6g>i2L^N^ zkvmMA?V)hoBpE&vihxt6B`%zaLW@92Qy^zTzG`HsFCuE2YOIqhu=#)#nbtf6_4LZ4 zBYf51AyyfE`B)ia+4hiW-C>&h3uY1;bQ2Z9vF=EP8@OFh$o;9=y!fF~+ss>lAAU=p ze@8#U!g&;bk)v>Eb+WCCB6zy?1lyV?$LKS!kETHkp$J;*{%9yzvloqNsI54$4`v81 zf$MPTsZhqrY~ndz|2q6deGes5EUEJu`EobvKXRu=@*qG1hbbrmHO+MkzBrUU12j2V z@lq<;VG7@YloZNpa0z)5s$j`p?QN;`k-c!^5yh)K!$Tp1R`>Cgd^wXjp=70ZsW;Wj zhaZ#3|N>(TRsIiAapdzjvh!8f0u)-G7T*7ERk-Ig++jNXwP8PmaFZXe znWC0PJGD~?){za5p|vOUc%{Oq+t$#J)EVu|;x8C~*Cn*xw>{@9tqY^W9Fn066#t-M zKw`1;NFD9v8W3S+Q=5N z651;S-)mh$70u4GzY@VC!C?IQ@j>SUyd!;m(pY{XWz(~471IulHc`p2=nL0FcyBpv zeP~}$TK5dlAuG$MlMkOu{<1uyLq3QJEWXqs@2}$eIZToq_ zg*uo#EoJ6>3ba;yqTYudPNeKt)(DyP|=23DAeM{Dr!oSY2fp4ZqNVy(4 z$p3O*Lb!dXST*Dc3MlFGtBWM)4NC8k&AIwPZ;^|FfptXU_iyg^I;vDeUf)Gfy7o9f zz$I^W$=rwyeM|Z(gJK%U+O5v0=U%MSwQ&Oz%Ejlo#4&{LYL_Zm!9s^LdQ!2#7L8$5 zk06Z{VJu%u`IB8Rj6m9J=hdQm?YVr^UshE#j?lUQ!E74**ABIO3`!od|1%3-lOGZh zVeqdcz(PG~WqTRJzXaw#8nSL9n{29Kfp5cZ;$k+wZiVrJ^MM{({5B)eWwzTQkUQq$ zav;KK8kI1bd~eRAySAxIWH-$91;8k2V9PY~=9Hz(%V|ou52ZJFeFK0pRBTDk=0T zjmSU>QLH6rUcwCm%>9oL-w`PqpJfy6lacin!KOa7%6O-dB(1Z{6vKv0K{ad$BIKQc z{iE0pQd*pPEvWSiQv{=KPFgAy5z5X77%p~v;J1^8HEcTYpvgW`4AeL2+O$4*`Rp`= z=+=`&SUhO=nL-}F?IK*)-+KDgc$Vpl_bv>M(poE8%mfFiA4wAlu8bghG)n3NFt~;G zUWo60ZrL_{ob>J~i@@Hf?djbn46=o))8?i$sm6X@_X6H=iNFh?tZb|>S6j*qS#q)B zEfIc)3ugVp@A8`vi^0x-$HTP_Vff1t)c>5`Y?@neVr^DVLzf*x&{rYv0Nna{%L*U^ zY&@sfIg+c`iGO;lIb?Kd<#{5n8f%HMcBkt-1hc=#W00rGCKTX0+KCsvu&GbxIA!vb zEJIf>C!yh&J4i}Holl=3%@xW=nHuW=?zfbA3#Xtcwzc9cMVN;sR<@mG#^L|cUE7TU z$dh}~ehJ9kFa@nECUTFAC}y!2158UlM1RJR&DTMu`m1yXBa=2@YhsT=4yn;(+9nh8 zrA(c2)NCb`vZ*7X5JorqtPH|+Y};f(#KV}thM8l;e_)j5l9Q;DO3Olz-W0l1HN1{B zWA}`uq)ZlC%DnyGRm{Q7{GFU&y6@Q@TtFDQcSc Sk!-*|E4Zz(qL@p7r2PLSG~F%$ literal 0 HcmV?d00001 diff --git a/game/rooms/room07/elevator_edge.png b/game/rooms/room07/elevator_edge.png new file mode 100644 index 0000000000000000000000000000000000000000..07a2bb978ad78d65133b12723b505bd980bb3911 GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^3m6y}wON>ftkn;vZUj<{#X;^)4C~IxyaaMs(j9#r z85lP9bN@+X1@hSfd_r97?d=&D>_olqTmXu27I;J!GcfQS0%1l`4X*~EV6LZ&V@SoV zw`U9)85lU27ldx8k5qoKQJ6{KLGq~ [eq lift_floor 2] + say r7_lift_door_floor_2 "Ding!" + # Animate the lift changing floors + # Could use set_state for the animation, but then the 2nd "Ding" plays too early as + # the animation needs to block + anim_block r7_lift lift_floor_2_to_1_no_player + # This variable is used so the button knows whether to change the lift floor or not + set_global lift_floor 1 + say r7_lift_door_floor_1 "Ding!" + stop +> [eq lift_floor 1] + say player "The lift is already on level 1." + stop diff --git a/game/rooms/room07/esc/lift_button_floor_2.esc b/game/rooms/room07/esc/lift_button_floor_2.esc new file mode 100644 index 00000000..b4263757 --- /dev/null +++ b/game/rooms/room07/esc/lift_button_floor_2.esc @@ -0,0 +1,14 @@ +:use +> [eq lift_floor 1] + say r7_lift_door_floor_1 "Ding!" + # Animate the lift changing floors + # Could use set_state for the animation, but then the 2nd "Ding" plays too early as + # the animation needs to block + anim_block r7_lift lift_floor_1_to_2_no_player + # This variable is used so the button knows whether to change the lift floor or not + set_global lift_floor 2 + say r7_lift_door_floor_2 "Ding!" + stop +> [eq lift_floor 2] + say player "The lift is already on level 2." + stop diff --git a/game/rooms/room07/esc/lift_door_floor_1.esc b/game/rooms/room07/esc/lift_door_floor_1.esc new file mode 100644 index 00000000..ec427ceb --- /dev/null +++ b/game/rooms/room07/esc/lift_door_floor_1.esc @@ -0,0 +1,23 @@ +:use +> [eq lift_floor 2] + say player "The lift is on another floor." + stop +> [eq lift_floor 1] + # Disable user input + accept_input NONE + # Move the player a long way as there isn't currently a "hide player" command + teleport_pos player 5000 5000 + set_angle player 180 + camera_set_limits 2 + camera_push r7_lift_door_floor_2 3 + anim_block r7_lift lift_floor_1_to_2_with_player + teleport player r7_lift_door_floor_2 + say r7_lift_door_floor_2 "Ding!" + # Focus the camera on the player again + camera_set_target 0 player + enable_terrain upper_platform + # Enable user input again + accept_input ALL + # Keep track of the lift floor so the button can work out whether to summon the lift + set_global lift_floor 2 + stop diff --git a/game/rooms/room07/esc/lift_door_floor_2.esc b/game/rooms/room07/esc/lift_door_floor_2.esc new file mode 100644 index 00000000..f06a5a87 --- /dev/null +++ b/game/rooms/room07/esc/lift_door_floor_2.esc @@ -0,0 +1,23 @@ +:use +> [eq lift_floor 1] + say player "The lift is on another floor." + stop +> [eq lift_floor 2] + # Disable user input + accept_input NONE + # Move the player a long way as there isn't currently a "hide player" command + teleport_pos player 5000 5000 + set_angle player 180 + camera_set_limits 2 + camera_push r7_lift_door_floor_1 3 + anim_block r7_lift lift_floor_2_to_1_with_player + teleport player r7_lift_door_floor_1 + say r7_lift_door_floor_1 "Ding!" + # Focus the camera on the player again + camera_set_target 0 player + enable_terrain lower_platform + # Enable user input again + accept_input ALL + # Keep track of the lift floor so the button can work out whether to summon the lift + set_global lift_floor 1 + stop \ No newline at end of file diff --git a/game/rooms/room07/esc/lower_stairs.esc b/game/rooms/room07/esc/lower_stairs.esc index 917b4fde..2c8e6e7d 100755 --- a/game/rooms/room07/esc/lower_stairs.esc +++ b/game/rooms/room07/esc/lower_stairs.esc @@ -1,13 +1,16 @@ :exit_scene +# Disable user input or else clicking while this is running might result in +# a floor change but the enable terrain command might not get run +accept_input NONE say player "movin up" teleport player r7_upper_stairs set_angle player 270 camera_set_limits 2 -camera_push r7_upper_stairs 1 LINEAR -wait 1 - camera_set_target 0 player +wait 1 camera_set_limits 1 enable_terrain upper_platform +# Reenable player interaction +accept_input ALL \ No newline at end of file diff --git a/game/rooms/room07/esc/room07.esc b/game/rooms/room07/esc/room07.esc index a549397b..cfbe0c4b 100644 --- a/game/rooms/room07/esc/room07.esc +++ b/game/rooms/room07/esc/room07.esc @@ -1,10 +1,13 @@ +:ready +# Set which floor the lift is open on for the first visit to the room only. +set_global lift_floor 1 :setup - -set_state r7_button_push button_repaired true -set_state r7_button_shift button_repaired true -set_state r7_button_follow button_repaired true -set_state r7_button_zoom button_repaired true +set_state r7_alarm_cone_floor_1 camera_not_triggered true +set_state r7_alarm_cone_floor_2 camera_not_triggered true +set_state r7_lift lift_floor_2_to_1_no_player true +camera_set_target 0 player +camera_set_limits 0 > [eq ESC_LAST_SCENE room6] teleport player r7_l_exit diff --git a/game/rooms/room07/esc/trigger_left.esc b/game/rooms/room07/esc/trigger_left.esc deleted file mode 100755 index 8b729508..00000000 --- a/game/rooms/room07/esc/trigger_left.esc +++ /dev/null @@ -1,4 +0,0 @@ -:trigger_in -set_state r7_light_left red - -:trigger_out diff --git a/game/rooms/room07/esc/trigger_right.esc b/game/rooms/room07/esc/trigger_right.esc deleted file mode 100755 index 8e71fa1b..00000000 --- a/game/rooms/room07/esc/trigger_right.esc +++ /dev/null @@ -1,5 +0,0 @@ -:trigger_in -set_state r7_light_right green - -:trigger_out -set_state r7_light_right red diff --git a/game/rooms/room07/esc/upper_stairs.esc b/game/rooms/room07/esc/upper_stairs.esc index 093ba499..a948e5f7 100755 --- a/game/rooms/room07/esc/upper_stairs.esc +++ b/game/rooms/room07/esc/upper_stairs.esc @@ -1,23 +1,16 @@ :exit_scene +# Disable user input or else clicking while this is running might result in +# a floor change but the enable terrain command might not get run +accept_input NONE say player "movin down" - -#camera_push player 1 LINEAR -#camera_set_drag_margin_enabled bool bool -#camera_set_pos real int int -#camera_set_target real -#camera_set_zoom real -#camera_set_zoom_height int -#camera_shift int int - - teleport player r7_lower_stairs set_angle player 270 camera_set_limits 2 -camera_push player 1 LINEAR -wait 1 - camera_set_target 0 player +wait 1 camera_set_limits 0 enable_terrain lower_platform +# Reenable player interaction +accept_input ALL \ No newline at end of file diff --git a/game/rooms/room07/room07.tscn b/game/rooms/room07/room07.tscn index 59de39cc..521d38ff 100644 --- a/game/rooms/room07/room07.tscn +++ b/game/rooms/room07/room07.tscn @@ -1,34 +1,22 @@ -[gd_scene load_steps=17 format=2] +[gd_scene load_steps=26 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/room07/background.tscn" type="PackedScene" id=2] -[ext_resource path="res://game/items/escitems/button.tscn" type="PackedScene" id=3] +[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_background.gd" type="Script" id=2] [ext_resource path="res://game/characters/mark/mark.tscn" type="PackedScene" id=4] [ext_resource path="res://game/fonts/caslonantique.tres" type="DynamicFont" 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://game/rooms/room07/room7background.png" type="Texture" id=9] +[ext_resource path="res://game/rooms/room07/alarm_cone.png" type="Texture" id=10] +[ext_resource path="res://game/rooms/room07/elevator_edge.png" type="Texture" id=11] +[ext_resource path="res://game/rooms/room07/elevator_door.png" type="Texture" id=12] +[ext_resource path="res://game/characters/mark/png/mark.png" type="Texture" id=13] -[sub_resource type="NavigationPolygon" id=1] -vertices = PoolVector2Array( 1976.63, 640.557, 1987.95, 588.863, 2070.07, 622.872, 2066.3, 799.721, 1015.72, 626.818, 1956.81, 616.096, -9.16094, 803.802, -6.44019, 711.297, 911.239, 554.152, 991.239, 554.152, 858.566, 628.405, 741.099, 620.468, 84.5821, 654.06, 3.15687, 646.051, 59.2201, 628.698, 129.634, 615.792 ) -polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 5, 0, 3, 6, 7 ), PoolIntArray( 8, 9, 4, 10 ), PoolIntArray( 10, 4, 7 ), PoolIntArray( 11, 10, 7, 12 ), PoolIntArray( 7, 13, 14, 12 ), PoolIntArray( 11, 12, 15 ) ] -outlines = [ PoolVector2Array( -6.44019, 711.297, 3.15687, 646.051, 59.2201, 628.698, 84.5821, 654.06, 129.634, 615.792, 741.099, 620.468, 858.566, 628.405, 911.239, 554.152, 991.239, 554.152, 1015.72, 626.818, 1956.81, 616.096, 1976.63, 640.557, 1987.95, 588.863, 2070.07, 622.872, 2066.3, 799.721, -9.16094, 803.802 ) ] - -[sub_resource type="NavigationPolygon" id=2] -vertices = PoolVector2Array( 2031.55, -451.45, 135.719, -939.662, 287.172, -941.444, 1235.09, -777.519, 2027.99, -629.63, 1390.1, -752.574, 1343.78, -834.537, 1425.74, -843.446, 1448.12, -803.5 ) -polygons = [ PoolIntArray( 0, 1, 2, 3, 4 ), PoolIntArray( 5, 4, 3 ), PoolIntArray( 5, 3, 6, 7, 8 ) ] -outlines = [ PoolVector2Array( 2027.99, -629.63, 1390.1, -752.574, 1448.12, -803.5, 1425.74, -843.446, 1343.78, -834.537, 1235.09, -777.519, 287.172, -941.444, 135.719, -939.662, 2031.55, -451.45 ) ] - -[sub_resource type="RectangleShape2D" id=3] -extents = Vector2( 79.0288, 129.758 ) - -[sub_resource type="CircleShape2D" id=4] -radius = 35.4361 - -[sub_resource type="Animation" id=5] -resource_name = "green" +[sub_resource type="Animation" id=12] +length = 0.001 tracks/0/type = "value" -tracks/0/path = NodePath("Polygon2D:color") +tracks/0/path = NodePath(".:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false @@ -37,13 +25,587 @@ tracks/0/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ Color( 0.0313726, 0.996078, 0, 1 ) ] +"values": [ Vector2( 1391, 812 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("lift_door_r: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( 119, 148.5 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("elevator_body: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( 79, 149 ) ] +} +tracks/3/type = "bezier" +tracks/3/path = NodePath("lift_door_r:position:x") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"points": PoolRealArray( 119, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/4/type = "bezier" +tracks/4/path = NodePath("lift_door_r:position:y") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"points": PoolRealArray( 148.5, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/5/type = "bezier" +tracks/5/path = NodePath("lift_door_l:position:x") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"points": PoolRealArray( 39, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/6/type = "bezier" +tracks/6/path = NodePath("lift_door_l:position:y") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"points": PoolRealArray( 148.5, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/7/type = "value" +tracks/7/path = NodePath("lift_door_l:scale") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 1, -1 ) ] +} +tracks/8/type = "bezier" +tracks/8/path = NodePath(".:position:x") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/keys = { +"points": PoolRealArray( 1391, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/9/type = "bezier" +tracks/9/path = NodePath(".:position:y") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/keys = { +"points": PoolRealArray( 812, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/10/type = "bezier" +tracks/10/path = NodePath("../door_1_floor_1:position:x") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/keys = { +"points": PoolRealArray( 1510, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/11/type = "bezier" +tracks/11/path = NodePath("../door_1_floor_1:position:y") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/keys = { +"points": PoolRealArray( 960, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/12/type = "bezier" +tracks/12/path = NodePath("../door_2_floor_1:position:x") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/keys = { +"points": PoolRealArray( 1430, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/13/type = "bezier" +tracks/13/path = NodePath("../door_2_floor_1:position:y") +tracks/13/interp = 1 +tracks/13/loop_wrap = true +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/keys = { +"points": PoolRealArray( 960, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/14/type = "bezier" +tracks/14/path = NodePath("../door_2_floor_2:position:x") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/keys = { +"points": PoolRealArray( 1431, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/15/type = "bezier" +tracks/15/path = NodePath("../door_2_floor_2:position:y") +tracks/15/interp = 1 +tracks/15/loop_wrap = true +tracks/15/imported = false +tracks/15/enabled = true +tracks/15/keys = { +"points": PoolRealArray( 251, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/16/type = "bezier" +tracks/16/path = NodePath("../door_1_floor_2:position:x") +tracks/16/interp = 1 +tracks/16/loop_wrap = true +tracks/16/imported = false +tracks/16/enabled = true +tracks/16/keys = { +"points": PoolRealArray( 1510, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/17/type = "bezier" +tracks/17/path = NodePath("../door_1_floor_2:position:y") +tracks/17/interp = 1 +tracks/17/loop_wrap = true +tracks/17/imported = false +tracks/17/enabled = true +tracks/17/keys = { +"points": PoolRealArray( 251, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/18/type = "value" +tracks/18/path = NodePath("player_in_lift_sprite:visible") +tracks/18/interp = 1 +tracks/18/loop_wrap = true +tracks/18/imported = false +tracks/18/enabled = true +tracks/18/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ false ] } -[sub_resource type="Animation" id=6] -resource_name = "red" +[sub_resource type="Animation" id=14] +resource_name = "lift_floor_1_to_2_no_player" +length = 5.5 +tracks/0/type = "bezier" +tracks/0/path = NodePath(".:position:y") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"points": PoolRealArray( 812, -0.25, 0, 0.25, 0, 812, -0.25, 0, 0.25, 0, 812, -0.25, 0, 1.2, -4.05182, 102, -1.5, 1.57617, 0.25, 0 ), +"times": PoolRealArray( 0, 0.5, 2, 3.5 ) +} +tracks/1/type = "bezier" +tracks/1/path = NodePath("lift_door_r:position:x") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"points": PoolRealArray( 198, -0.25, 0, 0.5, 0.00619507, 198, -0.25, 0, 0.5, 0.00619507, 119, -0.7, 0.000434875, 0.25, 0, 119, -0.25, 0, 0.25, 0, 119, -0.25, 0, 0.25, 0, 119, -0.25, 0, 0.25, 0, 198, -0.9, 0.00012207, 0.25, 0 ), +"times": PoolRealArray( 0, 0.5, 1.5, 2, 3.5, 4, 5 ) +} +tracks/2/type = "bezier" +tracks/2/path = NodePath("lift_door_l:position:x") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"points": PoolRealArray( -40, -0.25, 0, 0.5, 0.00728989, -40, -0.25, 0, 0.5, 0.00728989, 39, -0.7, 0.000236511, 0.25, 0, 39, -0.25, 0, 0.25, 0, 39, -0.25, 0, 0.3, -0.00482178, 39, -0.25, 0, 0.3, 0.000236511, -40, -0.8, -0.00528717, 0.25, 0 ), +"times": PoolRealArray( 0, 0.5, 1.5, 2, 3.5, 4, 5 ) +} +tracks/3/type = "bezier" +tracks/3/path = NodePath("../door_1_floor_1:position:x") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"points": PoolRealArray( 1589, -0.25, 0, 0.25, 0, 1510, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0, 1 ) +} +tracks/4/type = "bezier" +tracks/4/path = NodePath("../door_2_floor_1:position:x") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"points": PoolRealArray( 1351, -0.25, 0, 0.25, 0, 1430, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0, 1 ) +} +tracks/5/type = "bezier" +tracks/5/path = NodePath("../door_2_floor_2:position:x") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"points": PoolRealArray( 1431, -0.25, 0, 0.25, 0, 1431, -0.25, 0, 0.25, 0, 1351, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0, 4.5, 5.5 ) +} +tracks/6/type = "bezier" +tracks/6/path = NodePath("../door_1_floor_2:position:x") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"points": PoolRealArray( 1510, -0.25, 0, 0.25, 0, 1510, -0.25, 0, 0.25, 0, 1588, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0, 4.5, 5.5 ) +} +tracks/7/type = "value" +tracks/7/path = NodePath("player_in_lift_sprite:visible") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="Animation" id=18] +resource_name = "lift_floor_1_to_2_with_player" +length = 5.5 +tracks/0/type = "bezier" +tracks/0/path = NodePath(".:position:y") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"points": PoolRealArray( 812, -0.25, 0, 0.25, 0, 812, -0.25, 0, 0.25, 0, 812, -0.25, 0, 1.2, -4.05182, 102, -1.5, 1.57617, 0.25, 0 ), +"times": PoolRealArray( 0, 0.5, 2, 3.5 ) +} +tracks/1/type = "bezier" +tracks/1/path = NodePath("lift_door_r:position:x") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"points": PoolRealArray( 198, -0.25, 0, 0.5, 0.00619507, 198, -0.25, 0, 0.5, 0.00619507, 119, -0.7, 0.000434875, 0.25, 0, 119, -0.25, 0, 0.25, 0, 119, -0.25, 0, 0.25, 0, 119, -0.25, 0, 0.25, 0, 198, -0.9, 0.00012207, 0.25, 0 ), +"times": PoolRealArray( 0, 0.5, 1.5, 2, 3.5, 4, 5 ) +} +tracks/2/type = "bezier" +tracks/2/path = NodePath("lift_door_l:position:x") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"points": PoolRealArray( -40, -0.25, 0, 0.5, 0.00728989, -40, -0.25, 0, 0.5, 0.00728989, 39, -0.7, 0.000236511, 0.25, 0, 39, -0.25, 0, 0.25, 0, 39, -0.25, 0, 0.3, -0.00482178, 39, -0.25, 0, 0.3, 0.000236511, -40, -0.8, -0.00528717, 0.25, 0 ), +"times": PoolRealArray( 0, 0.5, 1.5, 2, 3.5, 4, 5 ) +} +tracks/3/type = "bezier" +tracks/3/path = NodePath("../door_1_floor_1:position:x") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"points": PoolRealArray( 1589, -0.25, 0, 0.25, 0, 1510, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0, 1 ) +} +tracks/4/type = "bezier" +tracks/4/path = NodePath("../door_2_floor_1:position:x") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"points": PoolRealArray( 1351, -0.25, 0, 0.25, 0, 1430, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0, 1 ) +} +tracks/5/type = "bezier" +tracks/5/path = NodePath("../door_2_floor_2:position:x") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"points": PoolRealArray( 1431, -0.25, 0, 0.25, 0, 1431, -0.25, 0, 0.25, 0, 1351, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0, 4.5, 5.5 ) +} +tracks/6/type = "bezier" +tracks/6/path = NodePath("../door_1_floor_2:position:x") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"points": PoolRealArray( 1510, -0.25, 0, 0.25, 0, 1510, -0.25, 0, 0.25, 0, 1588, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0, 4.5, 5.5 ) +} +tracks/7/type = "value" +tracks/7/path = NodePath("player_in_lift_sprite:visible") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0, 5.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ true, false ] +} + +[sub_resource type="Animation" id=15] +resource_name = "lift_floor_2_to_1_no_player" +length = 5.5 +tracks/0/type = "bezier" +tracks/0/path = NodePath(".:position:y") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"points": PoolRealArray( 102, -0.25, 0, 0.25, 0, 102, -0.25, 0, 0.25, 0, 102, -0.2, -2.05635, 1.5, 1.52682, 812, -1.2, 0.00787354, 0.3, 0.00787354, 812, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0, 0.5, 2, 3.5, 5 ) +} +tracks/1/type = "bezier" +tracks/1/path = NodePath("lift_door_r:position:x") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"points": PoolRealArray( 198, -0.895961, 0.331177, 1, 0.00241089, 198, -0.895961, 0.331177, 1, 0.00241089, 119, -0.25, 0, 0.25, 0, 119, -0.2, 0.00127411, 0.7, -0.000419617, 119, -0.2, 0.00127411, 0.7, -0.00211334, 198, -0.5, -0.00366211, 0.2, -0.00364685 ), +"times": PoolRealArray( 0, 0.5, 1.5, 3.5, 4, 5 ) +} +tracks/2/type = "bezier" +tracks/2/path = NodePath("lift_door_l:position:x") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"points": PoolRealArray( -40, -0.8, 0.569336, 0.8, -0.00188828, -40, -0.8, 0.569336, 0.8, -0.00188828, 39, -0.25, 0, 0.3, 0.00193787, 39, -0.2, 0.00193787, 0.7, 0.00193787, 39, -0.2, 0.00193787, 0.7, -0.000499725, -40, -0.5, -0.00188828, 0.2, -0.00188828 ), +"times": PoolRealArray( 0, 0.5, 1.5, 3.5, 4, 5 ) +} +tracks/3/type = "bezier" +tracks/3/path = NodePath("../door_1_floor_2:position:x") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"points": PoolRealArray( 1588, -0.25, 0, 0.25, 0, 1510, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0, 1 ) +} +tracks/4/type = "bezier" +tracks/4/path = NodePath("../door_2_floor_2:position:x") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"points": PoolRealArray( 1351, -0.25, 0, 0.25, 0, 1430, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0, 1 ) +} +tracks/5/type = "bezier" +tracks/5/path = NodePath("../door_1_floor_1:position:x") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"points": PoolRealArray( 1510, -0.25, 0, 0.25, 0, 1510, -0.25, 0, 0.25, 0, 1588, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0, 4.5, 5.5 ) +} +tracks/6/type = "bezier" +tracks/6/path = NodePath("../door_2_floor_1:position:x") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"points": PoolRealArray( 1430, -0.25, 0, 0.25, 0, 1430, -0.25, 0, 0.25, 0, 1352, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0, 4.5, 5.5 ) +} +tracks/7/type = "value" +tracks/7/path = NodePath("player_in_lift_sprite:visible") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="Animation" id=19] +resource_name = "lift_floor_2_to_1_with_player" +length = 5.5 +tracks/0/type = "bezier" +tracks/0/path = NodePath(".:position:y") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"points": PoolRealArray( 102, -0.25, 0, 0.25, 0, 102, -0.25, 0, 0.25, 0, 102, -0.2, -2.05635, 1.5, 1.52682, 812, -1.2, 0.00787354, 0.3, 0.00787354, 812, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0, 0.5, 2, 3.5, 5 ) +} +tracks/1/type = "bezier" +tracks/1/path = NodePath("lift_door_r:position:x") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"points": PoolRealArray( 198, -0.895961, 0.331177, 1, 0.00241089, 198, -0.895961, 0.331177, 1, 0.00241089, 119, -0.25, 0, 0.25, 0, 119, -0.2, 0.00127411, 0.7, -0.000419617, 119, -0.2, 0.00127411, 0.7, -0.00211334, 198, -0.5, -0.00366211, 0.2, -0.00364685 ), +"times": PoolRealArray( 0, 0.5, 1.5, 3.5, 4, 5 ) +} +tracks/2/type = "bezier" +tracks/2/path = NodePath("lift_door_l:position:x") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"points": PoolRealArray( -40, -0.8, 0.569336, 0.8, -0.00188828, -40, -0.8, 0.569336, 0.8, -0.00188828, 39, -0.25, 0, 0.3, 0.00193787, 39, -0.2, 0.00193787, 0.7, 0.00193787, 39, -0.2, 0.00193787, 0.7, -0.000499725, -40, -0.5, -0.00188828, 0.2, -0.00188828 ), +"times": PoolRealArray( 0, 0.5, 1.5, 3.5, 4, 5 ) +} +tracks/3/type = "bezier" +tracks/3/path = NodePath("../door_1_floor_2:position:x") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"points": PoolRealArray( 1588, -0.25, 0, 0.25, 0, 1510, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0, 1 ) +} +tracks/4/type = "bezier" +tracks/4/path = NodePath("../door_2_floor_2:position:x") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"points": PoolRealArray( 1351, -0.25, 0, 0.25, 0, 1430, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0, 1 ) +} +tracks/5/type = "bezier" +tracks/5/path = NodePath("../door_1_floor_1:position:x") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"points": PoolRealArray( 1510, -0.25, 0, 0.25, 0, 1510, -0.25, 0, 0.25, 0, 1588, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0, 4.5, 5.5 ) +} +tracks/6/type = "bezier" +tracks/6/path = NodePath("../door_2_floor_1:position:x") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"points": PoolRealArray( 1430, -0.25, 0, 0.25, 0, 1430, -0.25, 0, 0.25, 0, 1352, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0, 4.5, 5.5 ) +} +tracks/7/type = "value" +tracks/7/path = NodePath("player_in_lift_sprite:visible") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 0, 5.5 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ true, false ] +} + +[sub_resource type="NavigationPolygon" id=1] +vertices = PoolVector2Array( 2161.27, 3.52002, 2166.27, -45.48, 2237.27, 3.52002, 2237.27, 150.52, 6.26837, -11.48, 73.2684, -50.48, 76.2684, 11.52, 3.26837, 147.52, 127.268, -36.48, 1852.27, -39.48, 1954.27, -36.48, 1855.27, -76.48, 1954.27, -76.48, 2104.27, -36.48 ) +polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 5, 6, 7 ), PoolIntArray( 3, 7, 6, 8, 9, 10 ), PoolIntArray( 11, 12, 10, 9 ), PoolIntArray( 3, 10, 13, 0 ) ] +outlines = [ PoolVector2Array( 127.268, -36.48, 1852.27, -39.48, 1855.27, -76.48, 1954.27, -76.48, 1954.27, -36.48, 2104.27, -36.48, 2161.27, 3.52002, 2166.27, -45.48, 2237.27, 3.52002, 2237.27, 150.52, 3.26837, 147.52, 6.26837, -11.48, 73.2684, -50.48, 76.2684, 11.52 ) ] + +[sub_resource type="NavigationPolygon" id=2] +vertices = PoolVector2Array( 2237, -827.26, 14, -822.26, 14, -932.26, 144, -1011.26, 1844, -1005.26, 2240, -926.26, 1844, -1020.26, 1968, -1022.26, 1974, -1005.26, 2126, -1008.26 ) +polygons = [ PoolIntArray( 0, 1, 2, 3, 4, 5 ), PoolIntArray( 4, 6, 7, 8 ), PoolIntArray( 5, 4, 8 ), PoolIntArray( 5, 8, 9 ) ] +outlines = [ PoolVector2Array( 2237, -827.26, 2240, -926.26, 2126, -1008.26, 1974, -1005.26, 1968, -1022.26, 1844, -1020.26, 1844, -1005.26, 144, -1011.26, 14, -932.26, 14, -822.26 ) ] + +[sub_resource type="Animation" id=9] +length = 0.001 tracks/0/type = "value" -tracks/0/path = NodePath("Polygon2D:color") +tracks/0/path = NodePath("AlarmCone:modulate") +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": [ Color( 1, 1, 1, 1 ) ] +} + +[sub_resource type="Animation" id=10] +resource_name = "camera_not_triggered" +length = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("AlarmCone:modulate") +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": [ Color( 1, 1, 1, 1 ) ] +} + +[sub_resource type="Animation" id=11] +resource_name = "camera_triggered" +length = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("AlarmCone:modulate") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false @@ -55,10 +617,10 @@ tracks/0/keys = { "values": [ Color( 1, 0, 0, 1 ) ] } -[sub_resource type="Animation" id=7] -resource_name = "green" +[sub_resource type="Animation" id=20] +length = 0.001 tracks/0/type = "value" -tracks/0/path = NodePath("Polygon2D:color") +tracks/0/path = NodePath("AlarmCone:modulate") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false @@ -67,13 +629,30 @@ tracks/0/keys = { "times": PoolRealArray( 0 ), "transitions": PoolRealArray( 1 ), "update": 0, -"values": [ Color( 0.0313726, 0.996078, 0, 1 ) ] +"values": [ Color( 1, 1, 1, 1 ) ] } -[sub_resource type="Animation" id=8] -resource_name = "red" +[sub_resource type="Animation" id=21] +resource_name = "camera_not_triggered" +length = 0.1 tracks/0/type = "value" -tracks/0/path = NodePath("Polygon2D:color") +tracks/0/path = NodePath("AlarmCone:modulate") +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": [ Color( 1, 1, 1, 1 ) ] +} + +[sub_resource type="Animation" id=22] +resource_name = "camera_triggered" +length = 0.1 +tracks/0/type = "value" +tracks/0/path = NodePath("AlarmCone:modulate") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false @@ -86,6 +665,7 @@ tracks/0/keys = { } [node name="room7" type="Node2D"] +position = Vector2( 1, 0 ) script = ExtResource( 6 ) __meta__ = { "_edit_vertical_guides_": [ ] @@ -93,28 +673,124 @@ __meta__ = { global_id = "room7" esc_script = "res://game/rooms/room07/esc/room07.esc" player_scene = ExtResource( 4 ) -camera_limits = [ Rect2( 0, 1350, 2098, 800 ), Rect2( 0, 0, 2098, 1050 ), Rect2( 0, 0, 2098, 2150 ) ] +camera_limits = [ Rect2( 0, 600, 2260, 1000 ), Rect2( 0, 0, 2260, 1000 ), Rect2( 0, 0, 2260, 2000 ) ] editor_debug_mode = 1 -[node name="background" parent="." instance=ExtResource( 2 )] -margin_right = 2098.0 -margin_bottom = 1961.0 +[node name="lift_shaft" type="Polygon2D" parent="."] +color = Color( 0, 0, 0, 1 ) +polygon = PoolVector2Array( 1377, 61, 1562, 61, 1568, 1127, 1370, 1127 ) -[node name="room_label_1" type="Label" parent="background"] -margin_right = 40.0 -margin_bottom = 14.0 -custom_fonts/font = ExtResource( 5 ) -text = "ROOM 7 - upstairs" +[node name="lift" type="Area2D" parent="."] +pause_mode = 1 +script = ExtResource( 7 ) +global_id = "r7_lift" +is_interactive = false +inventory_texture = ExtResource( 12 ) +dialog_color = Color( 1, 1, 1, 1 ) +animations = null + +[node name="lift" type="Node2D" parent="lift"] +position = Vector2( 1391, 812 ) + +[node name="elevator_body" type="Sprite" parent="lift/lift"] +position = Vector2( 79, 149 ) +texture = ExtResource( 11 ) + +[node name="player_in_lift_sprite" type="Sprite" parent="lift/lift"] +visible = false +position = Vector2( 82, 148 ) +scale = Vector2( 4, 4 ) +texture = ExtResource( 13 ) +hframes = 21 + +[node name="lift_door_r" type="Sprite" parent="lift/lift"] +position = Vector2( 119, 148.5 ) +texture = ExtResource( 12 ) + +[node name="lift_door_l" type="Sprite" parent="lift/lift"] +position = Vector2( 39, 148.5 ) +rotation = -3.14159 +scale = Vector2( 1, -1 ) +texture = ExtResource( 12 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="lift"] +root_node = NodePath("../lift") +anims/RESET = SubResource( 12 ) +anims/lift_floor_1_to_2_no_player = SubResource( 14 ) +anims/lift_floor_1_to_2_with_player = SubResource( 18 ) +anims/lift_floor_2_to_1_no_player = SubResource( 15 ) +anims/lift_floor_2_to_1_with_player = SubResource( 19 ) + +[node name="door_1_floor_2" type="Sprite" parent="lift"] +position = Vector2( 1510, 251 ) +texture = ExtResource( 12 ) + +[node name="door_2_floor_2" type="Sprite" parent="lift"] +position = Vector2( 1431, 251 ) +scale = Vector2( -1, 1 ) +texture = ExtResource( 12 ) + +[node name="door_1_floor_1" type="Sprite" parent="lift"] +position = Vector2( 1510, 960 ) +texture = ExtResource( 12 ) + +[node name="door_2_floor_1" type="Sprite" parent="lift"] +position = Vector2( 1430, 960 ) +scale = Vector2( -1, 1 ) +texture = ExtResource( 12 ) + +[node name="ESCBackground" type="TextureRect" parent="."] +margin_right = 2260.0 +margin_bottom = 1600.0 +mouse_filter = 2 +texture = ExtResource( 9 ) +script = ExtResource( 2 ) __meta__ = { "_edit_use_anchors_": false } -[node name="room_label_2" type="Label" parent="background"] -margin_top = 1354.53 -margin_right = 136.0 -margin_bottom = 1368.53 +[node name="room_label" type="Label" parent="ESCBackground"] +margin_left = 7.0 +margin_top = 3.0 +margin_right = 89.0 +margin_bottom = 24.0 +custom_colors/font_color = Color( 0, 0, 0, 1 ) custom_fonts/font = ExtResource( 5 ) -text = "ROOM 7 - downstairs" +text = "ROOM 7 upper floor" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="room_label2" type="Label" parent="ESCBackground"] +margin_left = 10.0 +margin_top = 628.0 +margin_right = 182.0 +margin_bottom = 649.0 +custom_colors/font_color = Color( 0, 0, 0, 1 ) +custom_fonts/font = ExtResource( 5 ) +text = "ROOM 7 lower floor" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="room_label3" type="Label" parent="ESCBackground"] +margin_left = 275.0 +margin_top = 681.0 +margin_right = 989.0 +margin_bottom = 885.0 +custom_colors/font_color = Color( 0, 0, 0, 1 ) +custom_fonts/font = ExtResource( 5 ) +text = "camera_push : This will point the camera at a specific location. +camera_shift : Moves the camera by an amount of pixels in x and y relative to the current location +camera_zoom : Adjust the zoom level relative to the initial camera zoom +camera_set_pos : Moves the camera to an absolute position. Notice how you get two different + results based on the camera limits that are defined in the room definition. +camera_set_target : This tells the camera to follow a specific item or player as they move. + The buttons for all the above will do a camera_set_target at the end to make + sure the player is visible for playing the level." +__meta__ = { +"_edit_use_anchors_": false +} [node name="walkable_area" type="Navigation2D" parent="."] script = ExtResource( 1 ) @@ -148,10 +824,10 @@ dialog_color = Color( 1, 1, 1, 1 ) animations = null [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/l_exit"] -polygon = PoolVector2Array( 0.328762, 440.897, 1.85199, 119.926, 85.9517, 74.6212, 87.1409, 377.869 ) +polygon = PoolVector2Array( 9, -245.59, 5, -555.59, 107, -597.59, 111, -309.59 ) [node name="Position2D" type="Position2D" parent="Hotspots/l_exit"] -position = Vector2( 37.4521, 392.045 ) +position = Vector2( 51, -279.59 ) script = ExtResource( 8 ) [node name="r_exit" type="Area2D" parent="Hotspots"] @@ -170,51 +846,18 @@ dialog_color = Color( 1, 1, 1, 1 ) animations = null [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_exit"] -polygon = PoolVector2Array( 1982.34, 349.116, 1980.1, 46.0513, 2081.12, 86.4599, 2075, 394 ) +polygon = PoolVector2Array( 2150, -303.59, 2150, -601.59, 2258, -554.59, 2253, -241.59 ) [node name="Position2D" type="Position2D" parent="Hotspots/r_exit"] -position = Vector2( 2038.8, 347.193 ) +position = Vector2( 2209, -272.59 ) script = ExtResource( 8 ) __meta__ = { "_editor_description_": "" } -[node name="object_1" type="Area2D" parent="Hotspots"] -pause_mode = 1 -position = Vector2( 358.099, -1195.07 ) -script = ExtResource( 7 ) -global_id = "r7_object_1" -dialog_color = Color( 1, 1, 1, 1 ) -animations = null - -[node name="Line2D" type="Line2D" parent="Hotspots/object_1"] -position = Vector2( 0, 1345.52 ) -points = PoolVector2Array( 398.738, 142.591, 518.947, 64.809, 516.118, 275.527 ) - -[node name="CollisionShape2D" type="CollisionShape2D" parent="Hotspots/object_1"] -position = Vector2( 460.841, 1515.95 ) -shape = SubResource( 3 ) - -[node name="object2" type="Area2D" parent="Hotspots"] -pause_mode = 1 -position = Vector2( 1770.63, 1358.99 ) -script = ExtResource( 7 ) -__meta__ = { -"_editor_description_": "" -} -global_id = "r7_object2" -dialog_color = Color( 1, 1, 1, 1 ) -animations = null - -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/object2"] -polygon = PoolVector2Array( -112.101, 14.6226, -103.122, 288.503, 130.35, 286.258, 125.861, 16.8675 ) - -[node name="Line2D" type="Line2D" parent="Hotspots/object2"] -points = PoolVector2Array( -74.0056, 70.7457, 2.32182, 28.0921, 89.8739, 77.4804, -82.9853, 268.299, 110.078, 261.564 ) - [node name="lower_stairs" type="Area2D" parent="Hotspots"] pause_mode = 1 -position = Vector2( 0, 1409.59 ) +position = Vector2( 1906, 1096 ) script = ExtResource( 7 ) __meta__ = { "_editor_description_": "" @@ -222,14 +865,17 @@ __meta__ = { global_id = "r7_lower_stairs" esc_script = "res://game/rooms/room07/esc/lower_stairs.esc" is_exit = true +tooltip_name = "stairs" +default_action = "walk" dialog_color = Color( 1, 1, 1, 1 ) animations = null [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/lower_stairs"] -polygon = PoolVector2Array( 831.375, 344.577, 829.788, 19.1602, 1058.37, 19.1602, 1052.02, 347.752 ) +position = Vector2( -1908, 314 ) +polygon = PoolVector2Array( 1819, -309.59, 1820, -598, 2000, -598, 2000, -311 ) [node name="Position2D" type="Position2D" parent="Hotspots/lower_stairs"] -position = Vector2( 953.985, 315.526 ) +position = Vector2( 1, 0 ) script = ExtResource( 8 ) [node name="upper_stairs" type="Area2D" parent="Hotspots"] @@ -240,172 +886,163 @@ global_id = "r7_upper_stairs" esc_script = "res://game/rooms/room07/esc/upper_stairs.esc" is_exit = true tooltip_name = "Stairs" +default_action = "walk" dialog_color = Color( 1, 1, 1, 1 ) animations = null [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/upper_stairs"] position = Vector2( -1334.92, 936.565 ) -polygon = PoolVector2Array( 1221.86, -804.627, 1220.52, -1158.36, 1450.46, -1134.88, 1454.12, -757.908 ) +polygon = PoolVector2Array( 1805.28, -1020.59, 1806.28, -1304.59, 1982.28, -1304.59, 1983.28, -1019.59 ) [node name="Position2D" type="Position2D" parent="Hotspots/upper_stairs"] -position = Vector2( 27.5337, 131.767 ) +position = Vector2( 558.36, -82.026 ) script = ExtResource( 8 ) -[node name="button_camera_push" parent="Hotspots" instance=ExtResource( 3 )] -position = Vector2( -167.43, 1463.23 ) +[node name="button_camera_push" type="Area2D" parent="Hotspots"] +pause_mode = 1 +script = ExtResource( 7 ) global_id = "r7_button_push" esc_script = "res://game/rooms/room07/esc/button_push.esc" +tooltip_name = "button" +default_action = "use" +dialog_color = Color( 1, 1, 1, 1 ) +animations = null -[node name="Position2D" type="Position2D" parent="Hotspots/button_camera_push"] -position = Vector2( 343.048, 300.613 ) -script = ExtResource( 8 ) -__meta__ = { -"_editor_description_": "" -} +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/button_camera_push"] +polygon = PoolVector2Array( 299, 954, 335, 954, 335, 992, 299, 992 ) [node name="Label" type="Label" parent="Hotspots/button_camera_push"] -margin_left = 304.871 -margin_top = 97.219 -margin_right = 384.871 -margin_bottom = 113.219 +margin_left = 262.0 +margin_top = 993.0 +margin_right = 457.0 +margin_bottom = 1038.0 custom_fonts/font = ExtResource( 5 ) text = "Camera_push" __meta__ = { "_edit_use_anchors_": false } -[node name="button_camera_shift" parent="Hotspots" instance=ExtResource( 3 )] -position = Vector2( 9.393, 1464.03 ) -global_id = "r7_button_shift" -esc_script = "res://game/rooms/room07/esc/button_shift.esc" - -[node name="Position2D" type="Position2D" parent="Hotspots/button_camera_shift"] -position = Vector2( 350.258, 301.616 ) +[node name="ESCLocation" type="Position2D" parent="Hotspots/button_camera_push"] +position = Vector2( 314, 1108 ) script = ExtResource( 8 ) +[node name="button_camera_shift" type="Area2D" parent="Hotspots"] +pause_mode = 1 +position = Vector2( 125, 0 ) +script = ExtResource( 7 ) +global_id = "r7_button_shift" +esc_script = "res://game/rooms/room07/esc/button_shift.esc" +tooltip_name = "button" +default_action = "use" +dialog_color = Color( 1, 1, 1, 1 ) +animations = null + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/button_camera_shift"] +polygon = PoolVector2Array( 299, 954, 335, 954, 335, 992, 299, 992 ) + [node name="Label" type="Label" parent="Hotspots/button_camera_shift"] -margin_left = 305.626 -margin_top = 97.515 -margin_right = 387.626 -margin_bottom = 113.515 +margin_left = 262.0 +margin_top = 993.0 +margin_right = 457.0 +margin_bottom = 1038.0 custom_fonts/font = ExtResource( 5 ) text = "Camera_shift" __meta__ = { "_edit_use_anchors_": false } -[node name="button_camera_follow" parent="Hotspots" instance=ExtResource( 3 )] -position = Vector2( 172.527, 1464.03 ) -global_id = "r7_button_follow" -esc_script = "res://game/rooms/room07/esc/button_follow.esc" - -[node name="Position2D" type="Position2D" parent="Hotspots/button_camera_follow"] -position = Vector2( 350.258, 301.616 ) +[node name="ESCLocation" type="Position2D" parent="Hotspots/button_camera_shift"] +position = Vector2( 311, 1108 ) script = ExtResource( 8 ) -[node name="Label" type="Label" parent="Hotspots/button_camera_follow"] -margin_left = 305.626 -margin_top = 97.515 -margin_right = 387.626 -margin_bottom = 113.515 -custom_fonts/font = ExtResource( 5 ) -text = "Camera_follow" -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="button_camera_zoom" parent="Hotspots" instance=ExtResource( 3 )] -position = Vector2( 332.527, 1464.03 ) +[node name="button_camera_zoom" type="Area2D" parent="Hotspots"] +pause_mode = 1 +position = Vector2( 250, 0 ) +script = ExtResource( 7 ) global_id = "r7_button_zoom" esc_script = "res://game/rooms/room07/esc/button_zoom.esc" +tooltip_name = "button" +default_action = "use" +dialog_color = Color( 1, 1, 1, 1 ) +animations = null -[node name="Position2D" type="Position2D" parent="Hotspots/button_camera_zoom"] -position = Vector2( 350.258, 301.616 ) -script = ExtResource( 8 ) +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/button_camera_zoom"] +polygon = PoolVector2Array( 299, 954, 335, 954, 335, 992, 299, 992 ) [node name="Label" type="Label" parent="Hotspots/button_camera_zoom"] -margin_left = 305.626 -margin_top = 97.515 -margin_right = 387.626 -margin_bottom = 113.515 +margin_left = 262.0 +margin_top = 993.0 +margin_right = 457.0 +margin_bottom = 1038.0 custom_fonts/font = ExtResource( 5 ) text = "Camera_zoom" __meta__ = { "_edit_use_anchors_": false } -[node name="button_camera_set_pos" parent="Hotspots" instance=ExtResource( 3 )] -position = Vector2( 910.482, 1464.03 ) -global_id = "r7_button_set_pos" -esc_script = "res://game/rooms/room07/esc/button_set_pos.esc" - -[node name="Position2D" type="Position2D" parent="Hotspots/button_camera_set_pos"] -position = Vector2( 350.258, 301.616 ) +[node name="ESCLocation" type="Position2D" parent="Hotspots/button_camera_zoom"] +position = Vector2( 316, 1108 ) script = ExtResource( 8 ) +[node name="button_camera_set_pos" type="Area2D" parent="Hotspots"] +pause_mode = 1 +position = Vector2( 375, 0 ) +script = ExtResource( 7 ) +global_id = "r7_button_set_pos" +esc_script = "res://game/rooms/room07/esc/button_set_pos.esc" +tooltip_name = "button" +default_action = "use" +dialog_color = Color( 1, 1, 1, 1 ) +animations = null + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/button_camera_set_pos"] +polygon = PoolVector2Array( 299, 954, 335, 954, 335, 992, 299, 992 ) + [node name="Label" type="Label" parent="Hotspots/button_camera_set_pos"] -margin_left = 292.919 -margin_top = 96.8108 -margin_right = 390.919 -margin_bottom = 112.811 +margin_left = 262.0 +margin_top = 993.0 +margin_right = 457.0 +margin_bottom = 1038.0 custom_fonts/font = ExtResource( 5 ) text = "Camera_set_pos" __meta__ = { "_edit_use_anchors_": false } -[node name="trigger_left" type="Area2D" parent="Hotspots"] +[node name="ESCLocation" type="Position2D" parent="Hotspots/button_camera_set_pos"] +position = Vector2( 315, 1108 ) +script = ExtResource( 8 ) + +[node name="alarm_cone_floor1" type="Area2D" parent="Hotspots"] pause_mode = 1 +script = ExtResource( 7 ) +global_id = "r7_alarm_cone_floor_1" +esc_script = "res://game/rooms/room07/esc/alarm_cone_floor_1.esc" +is_trigger = true +is_interactive = false +player_orients_on_arrival = false +inventory_texture = ExtResource( 10 ) +dialog_color = Color( 1, 1, 1, 1 ) +animations = null + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/alarm_cone_floor1"] position = Vector2( 406, 0 ) -script = ExtResource( 7 ) -global_id = "trigger_left" -esc_script = "res://game/rooms/room07/esc/trigger_left.esc" -is_trigger = true -is_interactive = false -player_orients_on_arrival = false -dialog_color = Color( 1, 1, 1, 1 ) -animations = null +polygon = PoolVector2Array( 598, 1100, 776, 1101, 833, 1300, 541, 1300 ) -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/trigger_left"] -polygon = PoolVector2Array( 724.356, 1944.36, 716.865, 1752.57, 800.77, 1752.57, 814.254, 1942.86 ) +[node name="AlarmCone" type="Sprite" parent="Hotspots/alarm_cone_floor1"] +position = Vector2( 1093, 1055 ) +texture = ExtResource( 10 ) -[node name="Label" type="Label" parent="Hotspots/trigger_left"] -margin_left = 672.764 -margin_top = 1705.64 -margin_right = 812.764 -margin_bottom = 1740.64 -custom_fonts/font = ExtResource( 5 ) -text = "This trigger is activated -once if player walks on it" -__meta__ = { -"_edit_use_anchors_": false -} +[node name="AnimationPlayer" type="AnimationPlayer" parent="Hotspots/alarm_cone_floor1"] +anims/RESET = SubResource( 9 ) +anims/camera_not_triggered = SubResource( 10 ) +anims/camera_triggered = SubResource( 11 ) -[node name="Line2D" type="Line2D" parent="Hotspots/trigger_left"] -points = PoolVector2Array( 718.237, 1756.04, 724.544, 1950.34, 815.761, 1947.51, 801.579, 1756.32, 719.359, 1756.32 ) -width = 2.0 - -[node name="trigger_right" type="Area2D" parent="Hotspots"] -pause_mode = 1 -position = Vector2( 220, 0 ) -script = ExtResource( 7 ) -global_id = "trigger_right" -esc_script = "res://game/rooms/room07/esc/trigger_right.esc" -is_trigger = true -is_interactive = false -player_orients_on_arrival = false -dialog_color = Color( 1, 1, 1, 1 ) -animations = null - -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/trigger_right"] -position = Vector2( 372.68, 4.12805 ) -polygon = PoolVector2Array( 724.356, 1944.36, 716.865, 1752.57, 800.77, 1752.57, 814.254, 1942.86 ) - -[node name="Label" type="Label" parent="Hotspots/trigger_right"] -margin_left = 1068.46 -margin_top = 1707.64 -margin_right = 1218.46 -margin_bottom = 1742.64 +[node name="Label" type="Label" parent="Hotspots/alarm_cone_floor1"] +margin_left = 999.0 +margin_top = 1237.0 +margin_right = 1194.0 +margin_bottom = 1282.0 custom_fonts/font = ExtResource( 5 ) text = "This trigger activates when player walks in AND out" @@ -413,54 +1050,123 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="Line2D" type="Line2D" parent="Hotspots/trigger_right"] -points = PoolVector2Array( 1089.37, 1757.17, 1097.85, 1949.99, 1187.37, 1947.87, 1174.21, 1755.79, 1090.78, 1756.18 ) -width = 2.0 - -[node name="light_left" type="Area2D" parent="Hotspots"] +[node name="alarm_cone_floor2" type="Area2D" parent="Hotspots"] pause_mode = 1 -position = Vector2( 412, 0 ) script = ExtResource( 7 ) -global_id = "r7_light_left" +global_id = "r7_alarm_cone_floor_2" +esc_script = "res://game/rooms/room07/esc/alarm_cone_floor_2.esc" +is_trigger = true is_interactive = false +player_orients_on_arrival = false +inventory_texture = ExtResource( 10 ) dialog_color = Color( 1, 1, 1, 1 ) animations = null -[node name="Polygon2D" type="Polygon2D" parent="Hotspots/light_left"] -color = Color( 0.0313726, 0.996078, 0, 1 ) -polygon = PoolVector2Array( 718.946, 1494.91, 709.047, 1518.24, 717.885, 1540.16, 740.837, 1551.8, 764.908, 1541.57, 774.1, 1519.65, 763.847, 1494.2, 742.336, 1484.38 ) +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/alarm_cone_floor2"] +position = Vector2( 428, -694 ) +polygon = PoolVector2Array( 577, 1085, 753, 1085, 811, 1285, 519, 1286 ) -[node name="CollisionShape2D" type="CollisionShape2D" parent="Hotspots/light_left"] -position = Vector2( 742.194, 1518.8 ) -shape = SubResource( 4 ) +[node name="AlarmCone" type="Sprite" parent="Hotspots/alarm_cone_floor2"] +position = Vector2( 1093, 346 ) +texture = ExtResource( 10 ) -[node name="AnimationPlayer" type="AnimationPlayer" parent="Hotspots/light_left"] -anims/green = SubResource( 5 ) -anims/red = SubResource( 6 ) +[node name="AnimationPlayer" type="AnimationPlayer" parent="Hotspots/alarm_cone_floor2"] +anims/RESET = SubResource( 20 ) +anims/camera_not_triggered = SubResource( 21 ) +anims/camera_triggered = SubResource( 22 ) -[node name="light_right" type="Area2D" parent="Hotspots"] -pause_mode = 1 -position = Vector2( 613.333, -1.13 ) -script = ExtResource( 7 ) -global_id = "r7_light_right" -is_interactive = false -dialog_color = Color( 1, 1, 1, 1 ) -animations = null - -[node name="Polygon2D" type="Polygon2D" parent="Hotspots/light_right"] -color = Color( 1, 0, 0, 1 ) -polygon = PoolVector2Array( 718.946, 1494.91, 709.047, 1518.24, 717.885, 1540.16, 740.837, 1551.8, 764.908, 1541.57, 774.1, 1519.65, 763.847, 1494.2, 742.336, 1484.38 ) - -[node name="CollisionShape2D" type="CollisionShape2D" parent="Hotspots/light_right"] -position = Vector2( 742.194, 1518.8 ) -shape = SubResource( 4 ) - -[node name="AnimationPlayer" type="AnimationPlayer" parent="Hotspots/light_right"] -anims/green = SubResource( 7 ) -anims/red = SubResource( 8 ) +[node name="Label" type="Label" parent="Hotspots/alarm_cone_floor2"] +margin_left = 982.0 +margin_top = 540.0 +margin_right = 1177.0 +margin_bottom = 585.0 +custom_fonts/font = ExtResource( 5 ) +text = "This trigger activates when + player walks out only" +__meta__ = { +"_edit_use_anchors_": false +} [node name="player_start" type="Position2D" parent="."] -position = Vector2( 76.7617, 1847.24 ) +position = Vector2( 1655, 1132 ) script = ExtResource( 8 ) global_id = "r7_player_start" is_start_location = true + +[node name="lift_button_floor_1" type="Area2D" parent="."] +pause_mode = 1 +script = ExtResource( 7 ) +global_id = "r7_lift_button_floor_1" +esc_script = "res://game/rooms/room07/esc/lift_button_floor_1.esc" +tooltip_name = "Lift Button" +default_action = "use" +dialog_color = Color( 1, 1, 1, 1 ) +animations = null + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="lift_button_floor_1"] +polygon = PoolVector2Array( 1311, 954, 1347, 954, 1347, 992, 1311, 992 ) + +[node name="ESCLocation" type="Position2D" parent="lift_button_floor_1"] +position = Vector2( 1329, 1119 ) +script = ExtResource( 8 ) + +[node name="lift_button_floor_2" type="Area2D" parent="."] +pause_mode = 1 +script = ExtResource( 7 ) +global_id = "r7_lift_button_floor_2" +esc_script = "res://game/rooms/room07/esc/lift_button_floor_2.esc" +tooltip_name = "Lift Button" +default_action = "use" +dialog_color = Color( 1, 1, 1, 1 ) +animations = null + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="lift_button_floor_2"] +polygon = PoolVector2Array( 1311, 245, 1347, 245, 1347, 283, 1311, 283 ) + +[node name="ESCLocation" type="Position2D" parent="lift_button_floor_2"] +position = Vector2( 1331, 420 ) +script = ExtResource( 8 ) + +[node name="lift_door_floor_1" type="Area2D" parent="."] +pause_mode = 1 +script = ExtResource( 7 ) +global_id = "r7_lift_door_floor_1" +esc_script = "res://game/rooms/room07/esc/lift_door_floor_1.esc" +tooltip_name = "lift" +default_action = "use" +dialog_color = Color( 1, 1, 1, 1 ) +camera_node = NodePath("camera_node") +animations = null + +[node name="ESCLocation" type="Position2D" parent="lift_door_floor_1"] +position = Vector2( 1470, 1100 ) +script = ExtResource( 8 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="lift_door_floor_1"] +polygon = PoolVector2Array( 1391, 815, 1551, 812, 1551, 1098, 1394, 1101 ) + +[node name="camera_node" type="Position2D" parent="lift_door_floor_1"] +position = Vector2( 1468, 1103 ) +script = ExtResource( 8 ) + +[node name="lift_door_floor_2" type="Area2D" parent="."] +pause_mode = 1 +script = ExtResource( 7 ) +global_id = "r7_lift_door_floor_2" +esc_script = "res://game/rooms/room07/esc/lift_door_floor_2.esc" +tooltip_name = "lift" +default_action = "use" +dialog_color = Color( 1, 1, 1, 1 ) +camera_node = NodePath("camera_node") +animations = null + +[node name="ESCLocation" type="Position2D" parent="lift_door_floor_2"] +position = Vector2( 1472, 398 ) +script = ExtResource( 8 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="lift_door_floor_2"] +polygon = PoolVector2Array( 1389, 100, 1551, 103, 1551, 390, 1392, 390 ) + +[node name="camera_node" type="Position2D" parent="lift_door_floor_2"] +position = Vector2( 1471, 398 ) +script = ExtResource( 8 ) diff --git a/game/rooms/room07/room7background.png b/game/rooms/room07/room7background.png new file mode 100644 index 0000000000000000000000000000000000000000..d59a33cd9435b350e4a09786373629ff728396f4 GIT binary patch literal 30687 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 bcVf?L($h|*_8q)m