From 326618df180a72f700f9917e1139f246abae918e Mon Sep 17 00:00:00 2001 From: Duncan Brown Date: Sun, 6 Feb 2022 05:24:55 -0500 Subject: [PATCH 1/9] fix: set a proper guard in case of no speaking animations (#488) + correct the upper limit check for the speaking index Co-authored-by: Duncan Brown --- addons/escoria-core/game/core-scripts/esc_item.gd | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/addons/escoria-core/game/core-scripts/esc_item.gd b/addons/escoria-core/game/core-scripts/esc_item.gd index e3f3f3ed..65b72347 100644 --- a/addons/escoria-core/game/core-scripts/esc_item.gd +++ b/addons/escoria-core/game/core-scripts/esc_item.gd @@ -452,9 +452,11 @@ func turn_to(object: Node, wait: float = 0.0): # Play the talking animation func start_talking(): - if get_animation_player() and \ - _movable.last_dir >= 0 and \ - _movable.last_dir <= animations.speaks.size(): + # Only start the speaking animation if we actually have them setup + if animations.speaks.size() > 0 \ + and get_animation_player() \ + and _movable.last_dir >= 0 \ + and _movable.last_dir < animations.speaks.size(): if get_animation_player().is_playing(): get_animation_player().stop() get_animation_player().play( @@ -464,9 +466,10 @@ func start_talking(): # Stop playing the talking animation func stop_talking(): - if get_animation_player() and \ - _movable.last_dir >= 0 and \ - _movable.last_dir <= animations.idles.size(): + if animations.speaks.size() > 0 \ + and get_animation_player() \ + and _movable.last_dir >= 0 \ + and _movable.last_dir < animations.speaks.size(): if get_animation_player().is_playing(): get_animation_player().stop() get_animation_player().play( From 12b18ca8686c63cde57ce9acfb59a7f2f391f695 Mon Sep 17 00:00:00 2001 From: StraToN Date: Sun, 6 Feb 2022 10:25:23 +0000 Subject: [PATCH 2/9] chore: storing version and changelog --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 90f32f27..bd5f8101 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +## [4.0.0-alpha.91](https://github.com/godot-escoria/escoria-demo-game/compare/v0.0.0...v4.0.0-alpha.91) (2022-02-06) + + +### Bug Fixes + +* set a proper guard in case of no speaking animations ([#488](https://github.com/godot-escoria/escoria-demo-game/issues/488)) ([326618d](https://github.com/godot-escoria/escoria-demo-game/commit/326618df180a72f700f9917e1139f246abae918e)) + + + ## [4.0.0-alpha.90](https://github.com/godot-escoria/escoria-demo-game/compare/v0.0.0...v4.0.0-alpha.90) (2022-02-04) From 5005267e0dba684b6e4036023bd344a60e3ccccd Mon Sep 17 00:00:00 2001 From: balloonpopper <5151242+balloonpopper@users.noreply.github.com> Date: Sun, 13 Feb 2022 07:09:48 +1100 Subject: [PATCH 3/9] feat: Updated room 1 graphics (#491) Co-authored-by: Balloonpopper --- README.md | 1 + game/assets_sources/worker/worker.png | Bin 6472 -> 4852 bytes game/rooms/room01/art1.png | Bin 0 -> 7680 bytes game/rooms/room01/art2.png | Bin 0 -> 7405 bytes game/rooms/room01/background.tscn | 20 --- game/rooms/room01/esc/trigger.esc | 2 +- game/rooms/room01/item.tscn | 27 ---- game/rooms/room01/r_door.tscn | 26 ---- game/rooms/room01/room01.tscn | 176 ++++++++++++++++++-------- game/rooms/room01/room1background.png | Bin 0 -> 2072 bytes game/rooms/room01/walkable_area.tscn | 18 --- 11 files changed, 123 insertions(+), 147 deletions(-) create mode 100644 game/rooms/room01/art1.png create mode 100644 game/rooms/room01/art2.png delete mode 100644 game/rooms/room01/background.tscn delete mode 100644 game/rooms/room01/item.tscn delete mode 100644 game/rooms/room01/r_door.tscn create mode 100644 game/rooms/room01/room1background.png delete mode 100644 game/rooms/room01/walkable_area.tscn diff --git a/README.md b/README.md index e8ae1820..fd3d3e60 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ This is the demo game that acts as a testing ground for future Escoria developme ### Items * Generic items by Kenney +* Animal pack redux by Kenney Licence: CC0 Licence https://www.kenney.nl/assets/generic-items diff --git a/game/assets_sources/worker/worker.png b/game/assets_sources/worker/worker.png index bb83fd8656161fa87650ac0e6908c6f7845800e4..dce2539eba032e45bc518cb21b39e6f22eabbc70 100644 GIT binary patch literal 4852 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 diff --git a/game/rooms/room01/art1.png b/game/rooms/room01/art1.png new file mode 100644 index 0000000000000000000000000000000000000000..21ad184acee9c5c141c47669bec02f96ddf5ad16 GIT binary patch literal 7680 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 OiJ~N@2Ca}W4f!vZSQ{V! literal 0 HcmV?d00001 diff --git a/game/rooms/room01/background.tscn b/game/rooms/room01/background.tscn deleted file mode 100644 index 993665d2..00000000 --- a/game/rooms/room01/background.tscn +++ /dev/null @@ -1,20 +0,0 @@ -[gd_scene load_steps=2 format=2] - -[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_background.gd" type="Script" id=1] - -[node name="background" type="TextureRect"] -margin_right = 1289.0 -margin_bottom = 555.0 -mouse_filter = 2 -script = ExtResource( 1 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="l_platform" type="Line2D" parent="."] -position = Vector2( 2, -266 ) -points = PoolVector2Array( -2.96298, 712.01, 129.973, 614.429, 1167.5, 612.894, 1281.5, 668.894, 1281.5, 812.894, -4.3772, 811.004, -2.96295, 713.424 ) - -[node name="r_door" type="Line2D" parent="."] -position = Vector2( 0, -267.828 ) -points = PoolVector2Array( 1175.07, 620.086, 1171.24, 311.267, 1274.8, 356.87, 1278.31, 672.412, 1188.64, 624.843 ) diff --git a/game/rooms/room01/esc/trigger.esc b/game/rooms/room01/esc/trigger.esc index 5ed0e1de..8540ae75 100644 --- a/game/rooms/room01/esc/trigger.esc +++ b/game/rooms/room01/esc/trigger.esc @@ -2,4 +2,4 @@ :trigger_out -say player "About to leave..." +say player "I'm about to leave..." diff --git a/game/rooms/room01/item.tscn b/game/rooms/room01/item.tscn deleted file mode 100644 index 6ec39df1..00000000 --- a/game/rooms/room01/item.tscn +++ /dev/null @@ -1,27 +0,0 @@ -[gd_scene load_steps=3 format=2] - -[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=1] -[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=2] - -[node name="item" type="Area2D"] -pause_mode = 1 -script = ExtResource( 1 ) -tooltip_name = "Item on the wall" -default_action = "look" -dialog_color = Color( 1, 1, 1, 1 ) -animations = null - -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] -position = Vector2( -652.737, -162.85 ) -polygon = PoolVector2Array( 635.586, 253.345, 568.928, 60.1716, 709.047, 120.028, 699.524, 247.903 ) - -[node name="Line2D" type="Line2D" parent="."] -position = Vector2( -655.406, -430.678 ) -points = PoolVector2Array( 634.097, 516.751, 578.861, 335.008, 701.805, 386.68, 696.459, 509.624, 634.097, 516.751 ) -__meta__ = { -"_editor_description_": "" -} - -[node name="ESCLocation" type="Position2D" parent="."] -position = Vector2( 0, 236.681 ) -script = ExtResource( 2 ) diff --git a/game/rooms/room01/r_door.tscn b/game/rooms/room01/r_door.tscn deleted file mode 100644 index 5fb1e616..00000000 --- a/game/rooms/room01/r_door.tscn +++ /dev/null @@ -1,26 +0,0 @@ -[gd_scene load_steps=3 format=2] - -[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=1] -[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=2] - -[node name="r_door" type="Area2D"] -pause_mode = 1 -script = ExtResource( 1 ) -__meta__ = { -"_editor_description_": "" -} -global_id = "r1_r_exit" -esc_script = "res://game/rooms/room01/esc/right_exit.esc" -is_exit = true -tooltip_name = "Exit" -default_action = "walk" -dialog_color = Color( 1, 1, 1, 1 ) -animations = null - -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] -position = Vector2( -1229.68, -223.006 ) -polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 ) - -[node name="Position2D" type="Position2D" parent="."] -position = Vector2( -0.432617, 124.685 ) -script = ExtResource( 2 ) diff --git a/game/rooms/room01/room01.tscn b/game/rooms/room01/room01.tscn index 6ce91917..bd600029 100644 --- a/game/rooms/room01/room01.tscn +++ b/game/rooms/room01/room01.tscn @@ -1,14 +1,20 @@ -[gd_scene load_steps=10 format=2] +[gd_scene load_steps=12 format=2] -[ext_resource path="res://game/rooms/room01/walkable_area.tscn" type="PackedScene" id=1] -[ext_resource path="res://game/rooms/room01/background.tscn" type="PackedScene" id=2] +[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_terrain.gd" type="Script" id=1] +[ext_resource path="res://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://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=5] [ext_resource path="res://addons/escoria-core/game/core-scripts/esc_room.gd" type="Script" id=6] [ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=7] -[ext_resource path="res://game/rooms/room01/r_door.tscn" type="PackedScene" id=8] -[ext_resource path="res://game/rooms/room01/item.tscn" type="PackedScene" id=9] +[ext_resource path="res://game/rooms/room01/room1background.png" type="Texture" id=8] +[ext_resource path="res://game/rooms/room01/art2.png" type="Texture" id=9] +[ext_resource path="res://game/rooms/room01/art1.png" type="Texture" id=10] + +[sub_resource type="NavigationPolygon" id=1] +vertices = PoolVector2Array( 125, 357, 1170, 355, 1277, 417, 1279, 550, -1, 548, 0, 449 ) +polygons = [ PoolIntArray( 0, 1, 2, 3, 4, 5 ) ] +outlines = [ PoolVector2Array( 125, 357, 1170, 355, 1277, 417, 1279, 550, -1, 548, 0, 449 ) ] [node name="room1" type="Node2D"] script = ExtResource( 6 ) @@ -21,15 +27,48 @@ player_scene = ExtResource( 4 ) camera_limits = [ Rect2( 0, 0, 1285, 550 ) ] editor_debug_mode = 1 -[node name="background" parent="." instance=ExtResource( 2 )] +[node name="ESCBackground" type="TextureRect" parent="."] +margin_right = 40.0 +margin_bottom = 40.0 +mouse_filter = 2 +texture = ExtResource( 8 ) +script = ExtResource( 2 ) +__meta__ = { +"_edit_use_anchors_": false +} -[node name="advice" type="Label" parent="background"] +[node name="advice2" type="Label" parent="ESCBackground"] +anchor_right = 0.023274 +anchor_bottom = 0.018018 +margin_left = 90.2752 +margin_top = 170.824 +margin_right = 298.275 +margin_bottom = 215.824 +custom_fonts/font = ExtResource( 3 ) +text = "Move : left click +Fast move : double left click" +__meta__ = { +"_edit_use_anchors_": false +} + +[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_fonts/font = ExtResource( 3 ) +text = "ROOM 1" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="advice" type="Label" parent="ESCBackground"] anchor_right = 0.023274 anchor_bottom = 0.018018 margin_left = 90.0 margin_top = 59.0 -margin_right = 338.0 -margin_bottom = 118.0 +margin_right = 368.0 +margin_bottom = 128.0 custom_fonts/font = ExtResource( 3 ) text = "Don't click immediately! Player will walk around the room, @@ -38,70 +77,99 @@ __meta__ = { "_edit_use_anchors_": false } -[node name="advice2" type="Label" parent="background"] -anchor_right = 0.023274 -anchor_bottom = 0.018018 -margin_left = 90.2752 -margin_top = 170.824 -margin_right = 270.275 -margin_bottom = 205.824 -custom_fonts/font = ExtResource( 3 ) -text = "Move : left click -Fast move : double left click" -__meta__ = { -"_edit_use_anchors_": false -} +[node name="walkable_area" type="Navigation2D" parent="."] +script = ExtResource( 1 ) -[node name="room_label" type="Label" parent="background"] -margin_right = 40.0 -margin_bottom = 14.0 -custom_fonts/font = ExtResource( 3 ) -text = "ROOM 1" -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="walkable_area" parent="." instance=ExtResource( 1 )] -position = Vector2( 3.5636, 0 ) +[node name="NavigationPolygonInstance" type="NavigationPolygonInstance" parent="walkable_area"] +navpoly = SubResource( 1 ) [node name="Hotspots" type="Node" parent="."] -[node name="r_door" parent="Hotspots" instance=ExtResource( 8 )] -position = Vector2( 1225.9, 217.966 ) +[node name="r_door" type="Area2D" parent="Hotspots"] +pause_mode = 1 +script = ExtResource( 5 ) +global_id = "r1_r_exit" +esc_script = "res://game/rooms/room01/esc/right_exit.esc" +is_exit = true +tooltip_name = "Exit to room 2" +default_action = "walk" +dialog_color = Color( 1, 1, 1, 1 ) +animations = null + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_door"] +polygon = PoolVector2Array( 1173, 63, 1278, 106, 1278, 420, 1172, 356 ) [node name="ESCLocation" type="Position2D" parent="Hotspots/r_door"] -position = Vector2( 1.35498, 136.453 ) +position = Vector2( 1221, 400 ) script = ExtResource( 7 ) -[node name="item" parent="Hotspots" instance=ExtResource( 9 )] -position = Vector2( 480.542, 146.832 ) +[node name="artwork1" type="Area2D" parent="Hotspots"] +pause_mode = 1 +script = ExtResource( 5 ) global_id = "r1_wall_item1" esc_script = "res://game/rooms/room01/esc/wall_item.esc" +tooltip_name = "Artwork" +default_action = "look" +inventory_texture = ExtResource( 10 ) +dialog_color = Color( 1, 1, 1, 1 ) +animations = null -[node name="Label" type="Label" parent="Hotspots/item"] -margin_left = -105.12 -margin_top = 121.762 -margin_right = 122.88 -margin_bottom = 142.762 +[node name="Art1" type="Sprite" parent="Hotspots/artwork1"] +position = Vector2( 470, 140 ) +texture = ExtResource( 10 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/artwork1"] +position = Vector2( -84, 11.1 ) +polygon = PoolVector2Array( 487, 62, 627, 62, 627, 198, 487, 199 ) + +[node name="ESCLocation" type="Position2D" parent="Hotspots/artwork1"] +position = Vector2( 476, 385 ) +script = ExtResource( 7 ) + +[node name="Label" type="Label" parent="Hotspots/artwork1"] +margin_left = 375.422 +margin_top = 268.594 +margin_right = 657.422 +margin_bottom = 313.594 custom_fonts/font = ExtResource( 3 ) -text = "Character talks with text above" +text = "If you look at this object, the character's +speech will appear above his head" __meta__ = { "_edit_use_anchors_": false, "_editor_description_": "" } -[node name="item2" parent="Hotspots" instance=ExtResource( 9 )] -position = Vector2( 839.614, 147.455 ) +[node name="artwork2" type="Area2D" parent="Hotspots"] +pause_mode = 1 +script = ExtResource( 5 ) global_id = "r1_wall_item2" esc_script = "res://game/rooms/room01/esc/wall_item_popupdialog.esc" +tooltip_name = "Artwork 2" +default_action = "look" +inventory_texture = ExtResource( 9 ) +dialog_color = Color( 1, 1, 1, 1 ) +animations = null -[node name="Label" type="Label" parent="Hotspots/item2"] -margin_left = -105.12 -margin_top = 121.762 -margin_right = 122.88 -margin_bottom = 142.762 +[node name="Art12" type="Sprite" parent="Hotspots/artwork2"] +position = Vector2( 830, 140 ) +texture = ExtResource( 9 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/artwork2"] +position = Vector2( 273, 11 ) +polygon = PoolVector2Array( 487, 62, 627, 62, 627, 198, 487, 199 ) + +[node name="ESCLocation" type="Position2D" parent="Hotspots/artwork2"] +position = Vector2( 829, 379 ) +script = ExtResource( 7 ) + +[node name="Label2" type="Label" parent="Hotspots/artwork2"] +margin_left = 734.0 +margin_top = 269.0 +margin_right = 1020.0 +margin_bottom = 314.0 custom_fonts/font = ExtResource( 3 ) -text = "Character talks with popup" +text = "If you look at this object, the character +will talk via a popup" __meta__ = { "_edit_use_anchors_": false, "_editor_description_": "" @@ -118,7 +186,7 @@ dialog_color = Color( 1, 1, 1, 1 ) animations = null [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/trigger_talk"] -polygon = PoolVector2Array( 1020.6, 348.369, 1155.87, 515.233, 1249.67, 445.131, 1114.4, 347.382 ) +polygon = PoolVector2Array( 1027, 352, 1187, 502, 1249.67, 445.131, 1123, 351 ) [node name="player_start" type="Position2D" parent="."] position = Vector2( 172.471, 434.487 ) @@ -143,5 +211,3 @@ position = Vector2( 660.468, 381.489 ) script = ExtResource( 7 ) global_id = "r1_destination_point3" player_orients_on_arrival = false - -[editable path="Hotspots/item"] diff --git a/game/rooms/room01/room1background.png b/game/rooms/room01/room1background.png new file mode 100644 index 0000000000000000000000000000000000000000..a2d5cd8612cd77976d99a3380a27a39471382400 GIT binary patch literal 2072 zcmeHI?N3uz7(eH>w}lqU3?Oe6x)eb&QkJr)z+!I+tZnQ7I}$V@l~+qLu$^_TL}h1W z31iHON(_XolE_xFB`U^YH-g;GII2@#mdqk$a>+I~;$Seeomk4An|<*Q*q3E~IL~=r ze$VfBo|BWD_OcRPv?N)A5Q;YFi%ba7;8Gbv0c_#!{A$>+-J~l-7slla5C|>W*R==@ zo|J~Fd1y?TvAh^noJCz5J^2u$O{gfx<&c9HY18ksBP6@dFFa-)s6$A6+EAn|cg!r_ zoj;W_7XRAR+3z9`i$0I`7}*;Oq1wyF5Bv41ONmtnmd@F0+>fvAFbBro&r?%%lFn&w zL}wOLqf|1Vq4pCWp&lxI`+ugea&hVf#p-TiRldkP@S(YI)LN`!Be<3AXRvyd-W#`# zc@RW%_l5fTqr^(3FDuzEEPKiAQ9-DjuU$nQ6zvVAa;}ZaaD=4uiIRONjZ>_qVe_u* zR9!fZyFo+NPJEjIorBG5Jm^hQ!G~6C-U*;ppk0Yv77uD5bCS>-ME=l&N*zMlJG+UShx}KW?D;e;R=-0#Y#_fR zU7iMcyOrp8p(PZP4f5+aHOMm;k$2%xvOx`dF*lo$tr*EUp?8l{vU~>ReSi#+on6n( z^E>$0-a&Z+*E(8`!$&>)!zr|z>&Rf~{l`_*E9|ifp_}WS@QK}A+eC%9fjqhS16KWY z^GlphLN&u`W__i1@f(y7Ixw8gh&zLo@qJ;(TrpNTd`ApKrnuUeARN#f^pD5bJWVd~ zZ|IQk9#*+61v^+e*klm_;badGPBudeyALNJq55m7%H@6~br?0z9ASvm zIW!{YS`!*`K(YBw2N2%b4Q47(NJQPfrU{tu?NTrir2xqD+OcZqw*eyz&~`5%9?;0H zXjoc2lLCr^0UF|=MTyPh8QKDh@;_G4#JLG0Ntlhf;v9@~73_@V1epDw9l+wSG#? z_RAU5nzEi4^2oF9Bi$`@<`6P0ob19Gzo664xZkH`35>UJ`llL`sJly`|Hq}$w=$;x cpSf~(1HDv8wCC+Zx%}^KC@v|wP*~OaH`DsTb^rhX literal 0 HcmV?d00001 diff --git a/game/rooms/room01/walkable_area.tscn b/game/rooms/room01/walkable_area.tscn deleted file mode 100644 index 872bfd15..00000000 --- a/game/rooms/room01/walkable_area.tscn +++ /dev/null @@ -1,18 +0,0 @@ -[gd_scene load_steps=3 format=2] - -[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_terrain.gd" type="Script" id=1] - -[sub_resource type="NavigationPolygon" id=1] -vertices = PoolVector2Array( 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, 129.634, 615.792, 1143.08, 613.35, -9.16094, 803.802, -6.44019, 711.297 ) -polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 5, 0, 3, 6, 7 ) ] -outlines = [ PoolVector2Array( -6.44019, 711.297, 129.634, 615.792, 1143.08, 613.35, 1168.92, 640.557, 1182.53, 588.863, 1269.59, 622.872, 1275.03, 799.721, -9.16094, 803.802 ) ] - -[node name="walkable_area" type="Navigation2D"] -script = ExtResource( 1 ) - -[node name="platform" type="NavigationPolygonInstance" parent="."] -position = Vector2( 6.73163, -264.779 ) -navpoly = SubResource( 1 ) -__meta__ = { -"_editor_description_": "" -} From 9071fdc1e57fb85ca77cc006e26434a24f824204 Mon Sep 17 00:00:00 2001 From: StraToN Date: Sat, 12 Feb 2022 20:10:09 +0000 Subject: [PATCH 4/9] chore: storing version and changelog --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bd5f8101..c70fed75 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +## [4.0.0-alpha.92](https://github.com/godot-escoria/escoria-demo-game/compare/v0.0.0...v4.0.0-alpha.92) (2022-02-12) + + +### Features + +* Updated room 1 graphics ([#491](https://github.com/godot-escoria/escoria-demo-game/issues/491)) ([5005267](https://github.com/godot-escoria/escoria-demo-game/commit/5005267e0dba684b6e4036023bd344a60e3ccccd)) + + + ## [4.0.0-alpha.91](https://github.com/godot-escoria/escoria-demo-game/compare/v0.0.0...v4.0.0-alpha.91) (2022-02-06) From 2384127ca4aa7c262d2944885af615c492cab002 Mon Sep 17 00:00:00 2001 From: Julian Murgia Date: Tue, 15 Feb 2022 18:21:19 +0100 Subject: [PATCH 5/9] Fix: use Escoria plugin version from plugin.cfg in savegames (#489) --- .../save_data/esc_save_manager.gd | 11 ++- addons/escoria-core/game/escoria.gd | 3 - .../menus/load_save/load/load_game.gd | 17 ++-- .../menus/load_save/save/save_game.gd | 13 +-- saves/save_001.tres | 91 ----------------- saves/save_002.tres | 86 ---------------- saves/save_003.tres | 97 ------------------- 7 files changed, 25 insertions(+), 293 deletions(-) delete mode 100644 saves/save_001.tres delete mode 100644 saves/save_002.tres delete mode 100644 saves/save_003.tres diff --git a/addons/escoria-core/game/core-scripts/save_data/esc_save_manager.gd b/addons/escoria-core/game/core-scripts/save_data/esc_save_manager.gd index bbadab85..23790d21 100644 --- a/addons/escoria-core/game/core-scripts/save_data/esc_save_manager.gd +++ b/addons/escoria-core/game/core-scripts/save_data/esc_save_manager.gd @@ -164,7 +164,11 @@ func save_game_crash(): # - p_savename: name of the savegame func _do_save_game(p_savename: String) -> ESCSaveGame: var save_game = ESCSaveGame.new() - save_game.escoria_version = escoria.ESCORIA_VERSION + + var plugin_config = ConfigFile.new() + plugin_config.load("res://addons/escoria-core/plugin.cfg") + save_game.escoria_version = plugin_config.get_value("plugin", "version") + save_game.game_version = escoria.project_settings_manager.get_setting( escoria.project_settings_manager.GAME_VERSION ) @@ -383,7 +387,10 @@ func load_game(id: int): # Save the game settings in the settings file. func save_settings(): var settings_res := ESCSaveSettings.new() - settings_res.escoria_version = escoria.ESCORIA_VERSION + var plugin_config = ConfigFile.new() + plugin_config.load("res://addons/escoria-core/plugin.cfg") + + settings_res.escoria_version = plugin_config.get_value("plugin", "version") settings_res.text_lang = escoria.settings.text_lang settings_res.voice_lang = escoria.settings.voice_lang settings_res.speech_enabled = escoria.settings.speech_enabled diff --git a/addons/escoria-core/game/escoria.gd b/addons/escoria-core/game/escoria.gd index 7a1625c7..d936abf3 100644 --- a/addons/escoria-core/game/escoria.gd +++ b/addons/escoria-core/game/escoria.gd @@ -24,9 +24,6 @@ enum GAME_STATE { } -# Escoria version number -const ESCORIA_VERSION = "0.1.0" - # Audio bus indices. const BUS_MASTER = "Master" const BUS_SFX = "SFX" diff --git a/addons/escoria-core/ui_library/menus/load_save/load/load_game.gd b/addons/escoria-core/ui_library/menus/load_save/load/load_game.gd index 42a8d0ef..ae07bb36 100644 --- a/addons/escoria-core/ui_library/menus/load_save/load/load_game.gd +++ b/addons/escoria-core/ui_library/menus/load_save/load/load_game.gd @@ -34,11 +34,12 @@ func refresh_savegames(): $VBoxContainer/ScrollContainer/slots.remove_child(slot) var saves_list = escoria.save_manager.get_saves_list() - for i in saves_list.size(): - var save_data = saves_list[i+1] - var new_slot = slot_ui_scene.instance() - $VBoxContainer/ScrollContainer/slots.add_child( - new_slot - ) - new_slot.set_slot_name_date(save_data["name"], save_data["date"]) - new_slot.connect("pressed", self, "_on_slot_pressed", [i+1]) + for i in range(saves_list.keys().max() + 1): + if saves_list.has(i): + var save_data = saves_list[i] + var new_slot = slot_ui_scene.instance() + $VBoxContainer/ScrollContainer/slots.add_child( + new_slot + ) + new_slot.set_slot_name_date(save_data["name"], save_data["date"]) + new_slot.connect("pressed", self, "_on_slot_pressed", [i]) diff --git a/addons/escoria-core/ui_library/menus/load_save/save/save_game.gd b/addons/escoria-core/ui_library/menus/load_save/save/save_game.gd index ce9c66d5..97644154 100644 --- a/addons/escoria-core/ui_library/menus/load_save/save/save_game.gd +++ b/addons/escoria-core/ui_library/menus/load_save/save/save_game.gd @@ -34,12 +34,13 @@ func refresh_savegames(): _slots.remove_child(slot) var saves_list = escoria.save_manager.get_saves_list() - for i in saves_list.size(): - var save_data = saves_list[i+1] - var new_slot = slot_ui_scene.instance() - _slots.add_child(new_slot) - new_slot.set_slot_name_date(save_data["name"], save_data["date"]) - new_slot.connect("pressed", self, "_on_slot_pressed", [i+1]) + for i in range(saves_list.keys().max() + 1): + if saves_list.has(i): + var save_data = saves_list[i] + var new_slot = slot_ui_scene.instance() + _slots.add_child(new_slot) + new_slot.set_slot_name_date(save_data["name"], save_data["date"]) + new_slot.connect("pressed", self, "_on_slot_pressed", [i]) var datetime = OS.get_datetime() var datetime_string = "%02d/%02d/%02d %02d:%02d" % [ diff --git a/saves/save_001.tres b/saves/save_001.tres deleted file mode 100644 index 5dbb50cc..00000000 --- a/saves/save_001.tres +++ /dev/null @@ -1,91 +0,0 @@ -[gd_resource type="Resource" load_steps=2 format=2] - -[ext_resource path="res://addons/escoria-core/game/core-scripts/save_data/esc_savegame.gd" type="Script" id=1] - -[resource] -script = ExtResource( 1 ) -escoria_version = "0.1.0" -game_version = "0.1.0" -name = "test" -date = "28/11/2021 16:50" -main = { -"current_scene_filename": "res://game/rooms/room01/room01.tscn", -"last_scene_global_id": "" -} -globals = { -"ESC_LAST_SCENE": "", -"FORCE_LAST_SCENE_NULL": false, -"dialog_advance": 0, -"dialog_popup_advance": 0, -"room1_visited": true -} -objects = { -"_camera": { -"active": true, -"interactive": true, -"state": "default" -}, -"_music": { -"active": true, -"interactive": true, -"state": "res://game/sfx/contemplation.ogg" -}, -"_sound": { -"active": true, -"interactive": true, -"state": "default" -}, -"_speech": { -"active": true, -"interactive": true, -"state": "default" -}, -"player": { -"active": true, -"global_transform": Transform2D( 1, 0, 0, 1, 870, 461 ), -"interactive": true, -"last_deg": 71, -"last_dir": 2, -"state": "default" -}, -"r1_destination_point": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_destination_point2": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_destination_point3": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_r_exit": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_start": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_wall_item1": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_wall_item2": { -"active": true, -"interactive": true, -"state": "default" -}, -"trigger_talk": { -"active": true, -"interactive": true, -"state": "default" -} -} diff --git a/saves/save_002.tres b/saves/save_002.tres deleted file mode 100644 index 7b3015c0..00000000 --- a/saves/save_002.tres +++ /dev/null @@ -1,86 +0,0 @@ -[gd_resource type="Resource" load_steps=2 format=2] - -[ext_resource path="res://addons/escoria-core/game/core-scripts/save_data/esc_savegame.gd" type="Script" id=1] - -[resource] -script = ExtResource( 1 ) -escoria_version = "0.1.0" -game_version = "0.1.0" -name = "test2" -date = "28/11/2021 16:50" -main = { -"current_scene_filename": "res://game/rooms/room02/room02.tscn", -"last_scene_global_id": "" -} -globals = { -"ESC_LAST_SCENE": "room1", -"FORCE_LAST_SCENE_NULL": false, -"dialog_advance": 0, -"dialog_popup_advance": 0, -"room1_visited": true -} -objects = { -"_camera": { -"active": true, -"interactive": true, -"state": "default" -}, -"_music": { -"active": true, -"interactive": true, -"state": "res://game/sfx/contemplation.ogg" -}, -"_sound": { -"active": true, -"interactive": true, -"state": "default" -}, -"_speech": { -"active": true, -"interactive": true, -"state": "default" -}, -"player": { -"active": true, -"global_transform": Transform2D( 1, 0, 0, 1, 52.1462, 384.691 ), -"interactive": true, -"last_deg": 161, -"last_dir": 4, -"state": "default" -}, -"r2_bridge": { -"active": true, -"interactive": false, -"state": "default" -}, -"r2_button": { -"active": true, -"interactive": true, -"state": "default" -}, -"r2_button_right": { -"active": true, -"interactive": true, -"state": "default" -}, -"r2_l_exit": { -"active": true, -"interactive": true, -"state": "default" -}, -"r2_player_start": { -"active": true, -"interactive": true, -"state": "default" -}, -"r2_r_exit": { -"active": true, -"interactive": true, -"state": "default" -}, -"r2_right_platform": { -"active": true, -"interactive": true, -"state": "default" -} -} diff --git a/saves/save_003.tres b/saves/save_003.tres deleted file mode 100644 index 6c2a0e20..00000000 --- a/saves/save_003.tres +++ /dev/null @@ -1,97 +0,0 @@ -[gd_resource type="Resource" load_steps=2 format=2] - -[ext_resource path="res://addons/escoria-core/game/core-scripts/save_data/esc_savegame.gd" type="Script" id=1] - -[resource] -script = ExtResource( 1 ) -escoria_version = "0.1.0" -game_version = "0.1.0" -name = "custom data" -date = "13/01/2022 08:09" -main = { -"current_scene_filename": "res://game/rooms/room01/room01.tscn", -"last_scene_global_id": "" -} -globals = { -"ANIMATION_RESOURCES": { -}, -"ESC_CURRENT_SCENE": "room1", -"ESC_LAST_SCENE": "", -"FORCE_LAST_SCENE_NULL": false, -"dialog_advance": 0, -"dialog_popup_advance": 0, -"room1_visited": true -} -objects = { -"_camera": { -"active": true, -"interactive": true, -"state": "default" -}, -"_music": { -"active": true, -"interactive": true, -"state": "res://game/sfx/contemplation.ogg" -}, -"_sound": { -"active": true, -"interactive": true, -"state": "default" -}, -"_speech": { -"active": true, -"interactive": true, -"state": "default" -}, -"player": { -"active": true, -"global_transform": Transform2D( 1, 0, 0, 1, 490, 488 ), -"interactive": true, -"last_deg": 111, -"last_dir": 3, -"state": "default" -}, -"r1_destination_point": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_destination_point2": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_destination_point3": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_r_exit": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_start": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_wall_item1": { -"active": true, -"interactive": true, -"state": "default" -}, -"r1_wall_item2": { -"active": true, -"interactive": true, -"state": "default" -}, -"trigger_talk": { -"active": true, -"interactive": true, -"state": "default" -} -} -custom_data = { -"ui_type": "9verbs" -} From 09ab75a91346bfcc27a8f9a47db020863a061fc4 Mon Sep 17 00:00:00 2001 From: balloonpopper <5151242+balloonpopper@users.noreply.github.com> Date: Wed, 16 Feb 2022 04:21:42 +1100 Subject: [PATCH 6/9] feat: Updated room 2 and 3 graphics (#492) Co-authored-by: Balloonpopper --- game/items/escitems/button.tscn | 9 +- game/rooms/room01/esc/trigger.esc | 2 +- game/rooms/room02/background.tscn | 36 -- game/rooms/room02/bridge.tscn | 54 --- game/rooms/room02/floor1.png | Bin 0 -> 672 bytes game/rooms/room02/floor2.png | Bin 0 -> 402 bytes game/rooms/room02/floor3.png | Bin 0 -> 398 bytes game/rooms/room02/floor4.png | Bin 0 -> 667 bytes game/rooms/room02/room02.tscn | 358 +++++++++++++++--- game/rooms/room02/room2background.png | Bin 0 -> 12864 bytes game/rooms/room02/walkable_area.tscn | 26 -- game/rooms/room03/background.tscn | 35 -- game/rooms/room03/esc/button.esc | 18 +- game/rooms/room03/esc/right_platform.esc | 2 + game/rooms/room03/esc/room03_bridge.esc | 6 +- game/rooms/room03/room03.tscn | 316 +++++++++++++--- game/rooms/room03/room3background.png | Bin 0 -> 7701 bytes game/rooms/room03/room3bridge.png | Bin 0 -> 193 bytes game/rooms/room03/room3chasm.png | Bin 0 -> 3040 bytes .../{room02 => room09}/button/button.tscn | 5 +- game/rooms/room09/room09.tscn | 2 +- game/rooms/room10/room10.tscn | 2 +- 22 files changed, 608 insertions(+), 263 deletions(-) delete mode 100644 game/rooms/room02/background.tscn delete mode 100644 game/rooms/room02/bridge.tscn create mode 100644 game/rooms/room02/floor1.png create mode 100644 game/rooms/room02/floor2.png create mode 100644 game/rooms/room02/floor3.png create mode 100644 game/rooms/room02/floor4.png create mode 100644 game/rooms/room02/room2background.png delete mode 100644 game/rooms/room02/walkable_area.tscn delete mode 100644 game/rooms/room03/background.tscn create mode 100644 game/rooms/room03/room3background.png create mode 100644 game/rooms/room03/room3bridge.png create mode 100644 game/rooms/room03/room3chasm.png rename game/rooms/{room02 => room09}/button/button.tscn (92%) diff --git a/game/items/escitems/button.tscn b/game/items/escitems/button.tscn index 2f891748..2805d274 100644 --- a/game/items/escitems/button.tscn +++ b/game/items/escitems/button.tscn @@ -7,13 +7,13 @@ offsets = PoolRealArray( 0, 0.830189 ) colors = PoolColorArray( 1, 1, 1, 1, 0.353516, 0.353516, 0.353516, 1 ) -[sub_resource type="GradientTexture" id=2] +[sub_resource type="GradientTexture" id=8] gradient = SubResource( 1 ) [sub_resource type="Curve" id=3] _data = [ Vector2( 0, 0.0886364 ), 0.0, 0.0, 0, 0, Vector2( 0.612766, 1 ), 0.0, 0.0, 0, 0, Vector2( 0.770213, 0.95 ), -1.55372, -1.55372, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ] -[sub_resource type="CurveTexture" id=4] +[sub_resource type="CurveTexture" id=9] curve = SubResource( 3 ) [sub_resource type="ParticlesMaterial" id=5] @@ -31,8 +31,8 @@ angle = 160.0 angle_random = 1.0 scale = 0.5 scale_random = 0.45 -scale_curve = SubResource( 4 ) -color_ramp = SubResource( 2 ) +scale_curve = SubResource( 9 ) +color_ramp = SubResource( 8 ) [sub_resource type="Animation" id=6] resource_name = "button_broken" @@ -82,7 +82,6 @@ polygon = PoolVector2Array( 343.993, 396.767, 323.298, 415.689, 344.585, 438.158 [node name="Particles2D" type="Particles2D" parent="."] position = Vector2( 344.768, 142.144 ) -emitting = false amount = 16 lifetime = 4.0 preprocess = 1.99 diff --git a/game/rooms/room01/esc/trigger.esc b/game/rooms/room01/esc/trigger.esc index 8540ae75..0555b052 100644 --- a/game/rooms/room01/esc/trigger.esc +++ b/game/rooms/room01/esc/trigger.esc @@ -2,4 +2,4 @@ :trigger_out -say player "I'm about to leave..." +say player "I'm near the door." diff --git a/game/rooms/room02/background.tscn b/game/rooms/room02/background.tscn deleted file mode 100644 index 4376999d..00000000 --- a/game/rooms/room02/background.tscn +++ /dev/null @@ -1,36 +0,0 @@ -[gd_scene load_steps=3 format=2] - -[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_background.gd" type="Script" id=1] -[ext_resource path="res://game/rooms/room02/bridge.tscn" type="PackedScene" id=2] - -[node name="background" type="TextureRect"] -margin_right = 1298.0 -margin_bottom = 559.0 -mouse_filter = 2 -script = ExtResource( 1 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="l_platform" type="Line2D" parent="."] -position = Vector2( 0, -266 ) -points = PoolVector2Array( -2.96298, 712.01, 129.973, 614.429, 499.081, 611.601, 456.654, 806.761, -4.3772, 811.004, -2.96295, 713.424 ) - -[node name="l_door" type="Line2D" parent="."] -position = Vector2( 0, -266 ) -points = PoolVector2Array( -2.96298, 712.01, 1.85498, 387.294, 87.755, 339.775, 87.5463, 649.784 ) - -[node name="r_platform" type="Line2D" parent="."] -position = Vector2( 0, -266 ) -points = PoolVector2Array( 859.704, 802.519, 815.717, 612.674, 1172.24, 617.258, 1288.21, 675.24, 1293.86, 815.247, 861.118, 808.176 ) - -[node name="r_door" type="Line2D" parent="."] -position = Vector2( 0, -267.828 ) -points = PoolVector2Array( 1175.07, 620.086, 1171.24, 311.267, 1274.8, 356.87, 1278.31, 672.412, 1184.97, 628.571 ) - -[node name="bridge" parent="." instance=ExtResource( 2 )] -interact_positions = { -"default": Vector2( 0, 0 ) -} - -[editable path="bridge"] diff --git a/game/rooms/room02/bridge.tscn b/game/rooms/room02/bridge.tscn deleted file mode 100644 index 4f62dd50..00000000 --- a/game/rooms/room02/bridge.tscn +++ /dev/null @@ -1,54 +0,0 @@ -[gd_scene load_steps=4 format=2] - -[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=1] - -[sub_resource type="Animation" id=1] -resource_name = "bridge_close" -tracks/0/type = "value" -tracks/0/path = NodePath(".:position") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 0, 1 ), -"transitions": PoolRealArray( 1, 1 ), -"update": 0, -"values": [ Vector2( 0, 0 ), Vector2( 1.41716, -160.142 ) ] -} - -[sub_resource type="Animation" id=2] -resource_name = "bridge_open" -tracks/0/type = "value" -tracks/0/path = NodePath(".:position") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PoolRealArray( 0, 1 ), -"transitions": PoolRealArray( 1, 1 ), -"update": 0, -"values": [ Vector2( 1.417, -160.142 ), Vector2( 0, 0 ) ] -} - -[node name="bridge" type="Area2D"] -script = ExtResource( 1 ) -global_id = "r2_bridge" -is_interactive = false -player_orients_on_arrival = false -dialog_color = Color( 1, 1, 1, 1 ) -interact_positions = { -"default": Vector2( 0, 0 ) -} - -[node name="bridge_lines" type="Line2D" parent="."] -position = Vector2( -2.36194, -105.8 ) -points = PoolVector2Array( 496.624, 640.806, 823.362, 644.635, 856.546, 776.097, 468.544, 773.544, 493.688, 640.283 ) - -[node name="AnimationPlayer" type="AnimationPlayer" parent="."] -anims/bridge_close = SubResource( 1 ) -anims/bridge_open = SubResource( 2 ) - -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] -polygon = PoolVector2Array( 493.501, 532.894, 463.501, 670.894, 861.501, 670.894, 823.501, 530.894 ) diff --git a/game/rooms/room02/floor1.png b/game/rooms/room02/floor1.png new file mode 100644 index 0000000000000000000000000000000000000000..8362db51935398c2907a62224128eb20e5dae393 GIT binary patch literal 672 zcmeAS@N?(olHy`uVBq!ia0vp^(}DN|2Q!eoG_yGqNHG=%xjQkeJ16rJ$YDu$^mSxl z*x1kgCy^D%=Lzr$aRt)76K?wYmjf9(OLLxq)RhGJ1^@s5pTR+E=|Qu+v@6t%!N$ zbIY*9;;K6ryr^Gtwv<=AQ&s$0!Q)*S#j%HvCY@|Gy|Y5^QA~Kj#fYNBzZ*LAUd4Qk zwV4(ZQ7(4Yb>8Y--6tk-zn<<|bn*GBw@I6x9ID!&q1U`qYxfGBog3!qG@VXaw@XjY zTW?MMwTerrrs09&Gl9l;m!3;C5BC(G4P>{J9!s?hcNCusWKSu*lWHAqDLx;_?kT;J zY8!4ioe`+n^7V|SYys^l8rOhSNPjGlf>)eQF(EHC+}c?i#lGboII?dd@)gr`MQG z{~xn5b{f!}un66Ca>c4;Gl8CoN`AZh*O{r;Qcq9f&YrsU`76`#py`G{&8642t-c?l z8G8+=!7L(r-MnJel9`*I9J-aXcK5GyQ_rQI2WptS_1P=iaHHwWKn=OqHmwHQ5F-cF zP!{36j-yz$Xy*o?hUD5^NoS@WdwLkCVfxp1T}I(T(}jT=YOmc9O^!vl577Ij8~?>ze8%;zDCK19)nipV9-S4v_4MQNn{1`IRkt`T!D1&gquKewYdFJAjMn~x5H8-Ch$!sY61ca$ynew91*GWUCgU;a+^;;QR? zSu@;=s|q&T%(>hw{q*A;xjQQB8-UCwp#@b1#e0PO`15+g55GL<`?1Tyc86k|=yG=R z!`hF(JaDTh1uAA)KLM!tL1mz%q*x6YA^xuyN=%Y#F4rpwu%Axinrpef6{xh*7O3=8_Mg;G)78&qol`;+0G*ksL;wH) literal 0 HcmV?d00001 diff --git a/game/rooms/room02/floor3.png b/game/rooms/room02/floor3.png new file mode 100644 index 0000000000000000000000000000000000000000..3f53f22a51160b21b2af4036530bbe62d032c600 GIT binary patch literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^`9OSvgBeI(Wb$VLQjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`IRkt`T!D1&gquKewYdFJAjMn~Px#1ZP1_K>z@;j|==^1poj52~bQ_MF0Q*jgZ*@0065OKg9q500VSVPE-H?0N2V5 zK>z>%32;bRa{vGi!T@ zD)Vm*_(cvzeT^H2k4e_B;cEknq^~!*SWbfLtc9?Tu)IA-ODIP%Z=5{z9<9 zuw4BxFjqJ1xF2gUG*>SS&eaJ!-3~Pvo~sWA=<0%1v08 zx|(6vdvOLsb+y7^U5&8YtuTY(y4qmCt|r+1PL#orT`e$ZR|D*EBgkObu6h`_s~Yw^ zA7e0dS1kV5zea2BT}N0!G)A9+o^AU@*Go)G)f1w6OF!|H0^5 zQ^M%l(!nyP+y|p;PX(jvNCV5A@g9t>QwkVe=gP3`3FpD+x>SVGb*%);fA<}Xu3H5d zUH4>|@YQuNx*mxzx}Hfe@!NX;zoM%$;pcRv%Ku$*c@9Qbvh45aN|*b;=yDv4u1pyK zUAfW%+2uDFUD=WZy7HwA1((}kbO|L8bV)rGC70J=bcsC}bjjTvMVHfHbQQWm=qh!U zlwCf9(N*k1p{v~4qHwtkMwg-!hAvHqM&t4rj4o9>hb~>4N9A%Dj4ov>h%Rl5NauQg zFuK&uB)arXCZ+53!RV@JMA22#pmx1I7+p1ehCeLJqZsP_+G+p*002ovPDHLkV1nzt BA`t)p literal 0 HcmV?d00001 diff --git a/game/rooms/room02/room02.tscn b/game/rooms/room02/room02.tscn index 037840f4..79895fc8 100644 --- a/game/rooms/room02/room02.tscn +++ b/game/rooms/room02/room02.tscn @@ -1,34 +1,199 @@ -[gd_scene load_steps=9 format=2] +[gd_scene load_steps=21 format=2] -[ext_resource path="res://game/rooms/room02/walkable_area.tscn" type="PackedScene" id=1] -[ext_resource path="res://game/rooms/room02/background.tscn" type="PackedScene" id=2] [ext_resource path="res://game/fonts/caslonantique.tres" type="DynamicFont" id=3] [ext_resource path="res://game/characters/mark/mark.tscn" type="PackedScene" id=4] -[ext_resource path="res://game/rooms/room02/button/button.tscn" type="PackedScene" id=5] [ext_resource path="res://addons/escoria-core/game/core-scripts/esc_room.gd" type="Script" id=6] [ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=7] [ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=8] +[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_background.gd" type="Script" id=9] +[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_terrain.gd" type="Script" id=10] +[ext_resource path="res://game/rooms/room02/room2background.png" type="Texture" id=11] +[ext_resource path="res://game/rooms/room02/floor3.png" type="Texture" id=12] +[ext_resource path="res://game/rooms/room02/floor1.png" type="Texture" id=13] +[ext_resource path="res://game/rooms/room02/floor4.png" type="Texture" id=14] +[ext_resource path="res://game/rooms/room02/floor2.png" type="Texture" id=15] + +[sub_resource type="NavigationPolygon" id=4] +vertices = PoolVector2Array( 10, 378, 86, 337, 88, 374, 8, 545, 121, 355, 488, 354, 409, 546, 1184, 373, 1185, 343, 1272, 393, 1272, 548, 875, 546, 802, 357, 1161, 358 ) +polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 5, 6, 3, 2 ), PoolIntArray( 7, 8, 9, 10 ), PoolIntArray( 10, 11, 12, 13, 7 ) ] +outlines = [ PoolVector2Array( 121, 355, 488, 354, 409, 546, 8, 545, 10, 378, 86, 337, 88, 374 ), PoolVector2Array( 802, 357, 875, 546, 1272, 548, 1272, 393, 1185, 343, 1184, 373, 1161, 358 ) ] + +[sub_resource type="NavigationPolygon" id=5] +vertices = PoolVector2Array( 10, 378, 88, 335, 86, 373, 8, 542, 1185, 374, 1185, 343, 1270, 395, 1272, 545, 114, 355, 1161, 357 ) +polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 5, 6 ), PoolIntArray( 6, 7, 3, 4 ), PoolIntArray( 8, 9, 4, 3, 2 ) ] +outlines = [ PoolVector2Array( 88, 335, 86, 373, 114, 355, 1161, 357, 1185, 374, 1185, 343, 1270, 395, 1272, 545, 8, 542, 10, 378 ) ] + +[sub_resource type="RectangleShape2D" id=6] +extents = Vector2( 39, 39.5 ) + +[sub_resource type="RectangleShape2D" id=7] +extents = Vector2( 39, 39.5 ) + +[sub_resource type="Animation" id=1] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath("ESCBackground/Floor1:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 495, 650 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("ESCBackground/Floor2:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 585, 650 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("ESCBackground/Floor3:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 696, 650 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("ESCBackground/Floor4:position") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 786, 650 ) ] +} + +[sub_resource type="Animation" id=3] +resource_name = "bridge_close" +length = 1.6 +tracks/0/type = "value" +tracks/0/path = NodePath("ESCBackground/Floor1:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 0.5, 1 ), +"update": 0, +"values": [ Vector2( 495, 650 ), Vector2( 495, 450 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("ESCBackground/Floor2:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.2, 1.2 ), +"transitions": PoolRealArray( 1, 0.5, 1 ), +"update": 0, +"values": [ Vector2( 585, 650 ), Vector2( 585, 650 ), Vector2( 585, 450 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("ESCBackground/Floor4:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.6, 1.6 ), +"transitions": PoolRealArray( 1, 0.5, 1 ), +"update": 0, +"values": [ Vector2( 786, 650 ), Vector2( 786, 650 ), Vector2( 786, 450 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("ESCBackground/Floor3:position") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 0.4, 1.4 ), +"transitions": PoolRealArray( 1, 0.5, 1 ), +"update": 0, +"values": [ Vector2( 696, 650 ), Vector2( 696, 650 ), Vector2( 696, 450 ) ] +} + +[sub_resource type="Animation" id=2] +resource_name = "bridge_open" +length = 1.6 +tracks/0/type = "value" +tracks/0/path = NodePath("ESCBackground/Floor1:position") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.6, 1.6 ), +"transitions": PoolRealArray( 1.94482e-05, 2.05675, 2 ), +"update": 0, +"values": [ Vector2( 495, 450 ), Vector2( 495, 450 ), Vector2( 495, 650 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("ESCBackground/Floor2:position") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.4, 1.4 ), +"transitions": PoolRealArray( 1e-05, 2, 2 ), +"update": 0, +"values": [ Vector2( 585, 450 ), Vector2( 585, 450 ), Vector2( 585, 650 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("ESCBackground/Floor3:position") +tracks/2/interp = 2 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.2, 1.2 ), +"transitions": PoolRealArray( 1e-05, 2, 2 ), +"update": 0, +"values": [ Vector2( 696, 450 ), Vector2( 696, 450 ), Vector2( 696, 650 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("ESCBackground/Floor4:position") +tracks/3/interp = 2 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 2.05675, 2 ), +"update": 0, +"values": [ Vector2( 786, 450 ), Vector2( 786, 650 ) ] +} + +[sub_resource type="CapsuleShape2D" id=8] [node name="room2" type="Node2D"] +position = Vector2( -2, 0 ) script = ExtResource( 6 ) global_id = "room2" esc_script = "res://game/rooms/room02/esc/room02_bridge.esc" player_scene = ExtResource( 4 ) camera_limits = [ Rect2( 0, 0, 1289, 555 ) ] - -[node name="walkable_area" parent="." instance=ExtResource( 1 )] -debug_mode = 1 - -[node name="background" parent="." instance=ExtResource( 2 )] - -[node name="room_label" type="Label" parent="background"] -margin_right = 40.0 -margin_bottom = 14.0 -custom_fonts/font = ExtResource( 3 ) -text = "ROOM 2" -__meta__ = { -"_edit_use_anchors_": false -} +editor_debug_mode = 1 [node name="r_platform" type="Area2D" parent="."] pause_mode = 1 @@ -45,7 +210,7 @@ animations = null polygon = PoolVector2Array( 870.974, 538.342, 827.536, 353.995, 1181.4, 357.174, 1287.34, 413.325, 1289.46, 545.758 ) [node name="action_pos" type="Position2D" parent="r_platform"] -position = Vector2( 430.893, 451.052 ) +position = Vector2( 394, 460 ) script = ExtResource( 8 ) [node name="r_door" type="Area2D" parent="."] @@ -63,7 +228,7 @@ animations = null polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 ) [node name="Position2D" type="Position2D" parent="r_door"] -position = Vector2( 1225.47, 353.99 ) +position = Vector2( 1227, 387 ) script = ExtResource( 8 ) [node name="l_door" type="Area2D" parent="."] @@ -84,38 +249,131 @@ polygon = PoolVector2Array( -1.37926, 443.158, 7.96461, 122.796, 84.0504, 77.411 position = Vector2( 52.1462, 384.691 ) script = ExtResource( 8 ) -[node name="button_right" parent="." instance=ExtResource( 5 )] -pause_mode = 1 -position = Vector2( 958.107, 176.401 ) -global_id = "r2_button_right" -esc_script = "res://game/rooms/room02/esc/button.esc" -dialog_color = Color( 0, 1, 0.109804, 1 ) -animations = null - -[node name="Position2D" type="Position2D" parent="button_right"] -position = Vector2( 29.4302, 195.411 ) -script = ExtResource( 8 ) -__meta__ = { -"_editor_description_": "" -} - -[node name="button_left" parent="." instance=ExtResource( 5 )] -pause_mode = 1 -position = Vector2( 288.82, 171.439 ) -global_id = "r2_button" -esc_script = "res://game/rooms/room02/esc/button.esc" -dialog_color = Color( 0, 1, 0.109804, 1 ) -animations = null - -[node name="Position2D" type="Position2D" parent="button_left"] -position = Vector2( 24.6681, 196.998 ) -script = ExtResource( 8 ) -__meta__ = { -"_editor_description_": "" -} - [node name="player_start" type="Position2D" parent="."] position = Vector2( 76.7617, 437.649 ) script = ExtResource( 8 ) global_id = "r2_player_start" is_start_location = true + +[node name="ESCBackground" type="TextureRect" parent="."] +margin_right = 1280.0 +margin_bottom = 550.0 +mouse_filter = 2 +texture = ExtResource( 11 ) +script = ExtResource( 9 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="room_label" type="Label" parent="ESCBackground"] +margin_left = 18.0 +margin_top = 12.0 +margin_right = 100.0 +margin_bottom = 33.0 +custom_fonts/font = ExtResource( 3 ) +text = "ROOM 2" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Floor1" type="Sprite" parent="ESCBackground"] +position = Vector2( 495, 650 ) +texture = ExtResource( 13 ) + +[node name="Floor2" type="Sprite" parent="ESCBackground"] +position = Vector2( 585, 650 ) +texture = ExtResource( 15 ) + +[node name="Floor4" type="Sprite" parent="ESCBackground"] +position = Vector2( 786, 650 ) +texture = ExtResource( 14 ) + +[node name="Floor3" type="Sprite" parent="ESCBackground"] +position = Vector2( 696, 650 ) +scale = Vector2( 1.01351, 1 ) +texture = ExtResource( 12 ) + +[node name="Polygon2D" type="Polygon2D" parent="ESCBackground"] +color = Color( 0, 0, 0, 1 ) +polygon = PoolVector2Array( 0, 550, 1280, 550, 1280, 800, 0, 800 ) + +[node name="room_label2" type="Label" parent="ESCBackground"] +margin_left = 17.0 +margin_top = 558.0 +margin_right = 99.0 +margin_bottom = 579.0 +custom_fonts/font = ExtResource( 3 ) +text = "Room 2 demonstrates modifying the walkable area of a room. Performing \"use\" on the button will cause the original navmesh (which has a gap +in the middle) with one that covers the whole room (platforms + bridge) - allowing the player to walk from one side to the other. +Setting the state of the r2_bridge variable to \"bridge_open\" or \"bridge_closed\" (see button.esc) automatically runs the animation with the same name." +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="walkable_area" type="Navigation2D" parent="."] +script = ExtResource( 10 ) +debug_mode = 1 + +[node name="bridge_open" type="NavigationPolygonInstance" parent="walkable_area"] +navpoly = SubResource( 4 ) + +[node name="bridge_closed" type="NavigationPolygonInstance" parent="walkable_area"] +visible = false +navpoly = SubResource( 5 ) +enabled = false + +[node name="button_left" type="Area2D" parent="."] +pause_mode = 1 +script = ExtResource( 7 ) +global_id = "r2_button" +esc_script = "res://game/rooms/room02/esc/button.esc" +tooltip_name = "button" +default_action = "use" +dialog_color = Color( 0.196078, 1, 0, 1 ) +animations = null + +[node name="Position2D" type="Position2D" parent="button_left"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="button_left"] +position = Vector2( 370, 190.5 ) +shape = SubResource( 6 ) + +[node name="ESCLocation" type="Position2D" parent="button_left"] +position = Vector2( 369, 375 ) +script = ExtResource( 8 ) + +[node name="button_right2" type="Area2D" parent="."] +pause_mode = 1 +script = ExtResource( 7 ) +global_id = "r2_button_right" +esc_script = "res://game/rooms/room02/esc/button.esc" +tooltip_name = "button" +default_action = "use" +dialog_color = Color( 0.196078, 1, 0, 1 ) +animations = null + +[node name="Position2D" type="Position2D" parent="button_right2"] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="button_right2"] +position = Vector2( 911, 190.5 ) +shape = SubResource( 7 ) + +[node name="ESCLocation" type="Position2D" parent="button_right2"] +position = Vector2( 914, 378 ) +script = ExtResource( 8 ) + +[node name="bridge" type="Area2D" parent="."] +pause_mode = 1 +script = ExtResource( 7 ) +global_id = "r2_bridge" +dialog_color = Color( 1, 1, 1, 1 ) +animations = null + +[node name="AnimationPlayer" type="AnimationPlayer" parent="bridge"] +root_node = NodePath("../..") +anims/RESET = SubResource( 1 ) +anims/bridge_close = SubResource( 3 ) +anims/bridge_open = SubResource( 2 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="bridge"] +shape = SubResource( 8 ) diff --git a/game/rooms/room02/room2background.png b/game/rooms/room02/room2background.png new file mode 100644 index 0000000000000000000000000000000000000000..6d38366f763def8502f1116614040a5d326ba646 GIT binary patch literal 12864 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 Lf92dVdHp{C`*yC^ literal 0 HcmV?d00001 diff --git a/game/rooms/room02/walkable_area.tscn b/game/rooms/room02/walkable_area.tscn deleted file mode 100644 index 86eedaa8..00000000 --- a/game/rooms/room02/walkable_area.tscn +++ /dev/null @@ -1,26 +0,0 @@ -[gd_scene load_steps=4 format=2] - -[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_terrain.gd" type="Script" id=1] - -[sub_resource type="NavigationPolygon" id=1] -vertices = PoolVector2Array( 129.634, 615.792, 488.56, 617.98, 454.637, 800.726, 2.69714, 805.103, 75.8943, 663.384, 3.79144, 707.712, 5.9538, 653.476, 63.1848, 626.267, 1284.99, 804.433, 868.119, 803.394, 828.615, 621.468, 1152.31, 619.946, 1181.97, 640.075, 1260.04, 615.231, 1282.91, 680.724, 1190.39, 590.281 ) -polygons = [ PoolIntArray( 0, 1, 2, 3, 4 ), PoolIntArray( 4, 3, 5, 6, 7 ), PoolIntArray( 8, 9, 10, 11, 12 ), PoolIntArray( 13, 14, 8, 12, 15 ) ] -outlines = [ PoolVector2Array( 3.79144, 707.712, 5.9538, 653.476, 63.1848, 626.267, 75.8943, 663.384, 129.634, 615.792, 488.56, 617.98, 454.637, 800.726, 2.69714, 805.103 ), PoolVector2Array( 828.615, 621.468, 868.119, 803.394, 1284.99, 804.433, 1282.91, 680.724, 1260.04, 615.231, 1190.39, 590.281, 1181.97, 640.075, 1152.31, 619.946 ) ] - -[sub_resource type="NavigationPolygon" id=2] -vertices = PoolVector2Array( 837.638, 649.714, 832.166, 621.263, 1171.4, 624.546, 863.901, 768.992, 129.634, 615.792, 488.56, 617.98, 484.183, 645.337, 462.297, 766.803, 454.637, 800.726, 85.8629, 647.526, 1265.5, 615.792, 1281.92, 680.354, 1290.67, 816.046, 877.032, 800.726, 2.69714, 805.103, 3.79144, 707.712, 13.64, 663.94, 55.2229, 643.149, 1199.85, 607.037 ) -polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 5, 6, 7, 8, 9 ), PoolIntArray( 10, 11, 12, 13, 3, 2 ), PoolIntArray( 8, 14, 15, 16, 17, 9 ), PoolIntArray( 3, 7, 6, 0 ), PoolIntArray( 10, 2, 18 ) ] -outlines = [ PoolVector2Array( 3.79144, 707.712, 13.64, 663.94, 55.2229, 643.149, 85.8629, 647.526, 129.634, 615.792, 488.56, 617.98, 484.183, 645.337, 837.638, 649.714, 832.166, 621.263, 1171.4, 624.546, 1199.85, 607.037, 1265.5, 615.792, 1281.92, 680.354, 1290.67, 816.046, 877.032, 800.726, 863.901, 768.992, 462.297, 766.803, 454.637, 800.726, 2.69714, 805.103 ) ] - -[node name="walkable_area" type="Navigation2D"] -script = ExtResource( 1 ) - -[node name="bridge_open" type="NavigationPolygonInstance" parent="."] -position = Vector2( 6.73163, -264.779 ) -navpoly = SubResource( 1 ) - -[node name="bridge_closed" type="NavigationPolygonInstance" parent="."] -visible = false -position = Vector2( 0, -269.266 ) -navpoly = SubResource( 2 ) -enabled = false diff --git a/game/rooms/room03/background.tscn b/game/rooms/room03/background.tscn deleted file mode 100644 index e1cbdb3a..00000000 --- a/game/rooms/room03/background.tscn +++ /dev/null @@ -1,35 +0,0 @@ -[gd_scene load_steps=3 format=2] - -[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_background.gd" type="Script" id=1] -[ext_resource path="res://game/rooms/room02/bridge.tscn" type="PackedScene" id=2] - -[node name="background" type="TextureRect"] -margin_right = 1300.0 -margin_bottom = 561.0 -mouse_filter = 2 -script = ExtResource( 1 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="l_platform" type="Line2D" parent="."] -position = Vector2( 0, -266 ) -points = PoolVector2Array( -2.96298, 712.01, 129.973, 614.429, 499.081, 611.601, 456.654, 806.761, -4.3772, 811.004, -2.96295, 713.424 ) - -[node name="l_door" type="Line2D" parent="."] -position = Vector2( 0, -266 ) -points = PoolVector2Array( -2.96298, 712.01, 1.85498, 387.294, 87.755, 339.775, 87.5463, 649.784 ) - -[node name="r_platform" type="Line2D" parent="."] -position = Vector2( 0, -266 ) -points = PoolVector2Array( 859.704, 802.519, 815.717, 612.674, 1172.24, 617.258, 1288.21, 675.24, 1293.86, 815.247, 861.118, 808.176 ) - -[node name="r_door" type="Line2D" parent="."] -position = Vector2( 0, -267.828 ) -points = PoolVector2Array( 1175.07, 620.086, 1171.24, 311.267, 1274.8, 356.87, 1278.31, 672.412, 1184.97, 628.571 ) - -[node name="bridge" parent="." instance=ExtResource( 2 )] -global_id = "r3_bridge" -interact_positions = { -"default": Vector2( 0, 0 ) -} diff --git a/game/rooms/room03/esc/button.esc b/game/rooms/room03/esc/button.esc index b2e4300b..676e7d67 100755 --- a/game/rooms/room03/esc/button.esc +++ b/game/rooms/room03/esc/button.esc @@ -15,7 +15,14 @@ say player "I must USE this." enable_terrain bridge_closed set_global r3_bridge_closed true set_interactive r3_right_platform false - set_interactive r3_bridge false + set_interactive r3_r_exit true + # We start with the collision polygon on the right door disabled + # This lets it act as part of the right platform, which responds + # with "I can't reach it" when the player clicks it with the bridge + # open. + # We use a custom function to enable the collision polygon on the door + # to enable it to work as a door once the bridge is closed. + custom r3_r_exit door_enabler enable_door stop > [!button_broken, r3_bridge_closed] @@ -23,6 +30,9 @@ say player "I must USE this." enable_terrain bridge_open set_global r3_bridge_closed false set_interactive r3_right_platform true + # Disable the door collision so it acts like part of the right + # platform again. + custom r3_r_exit door_enabler disable_door stop > [button_broken] @@ -32,14 +42,14 @@ say player "I must USE this." :talk > [button_broken] say player "Please, will you repair yourself?" - wait 2 + wait 1 set_state r3_button button_repaired set_global button_broken false - wait 2 + wait 1 say player "Oh, it worked!" stop > [!button_broken] - say player "I should not talk to it again. It could break itself back." + say player "I better not talk to it any more, it might break again." :arrived diff --git a/game/rooms/room03/esc/right_platform.esc b/game/rooms/room03/esc/right_platform.esc index 6cc515a8..564997ec 100755 --- a/game/rooms/room03/esc/right_platform.esc +++ b/game/rooms/room03/esc/right_platform.esc @@ -1,5 +1,7 @@ :look +set_angle player 90 say player "That's the other side." :arrived +set_angle player 90 say player "I can't reach it." diff --git a/game/rooms/room03/esc/room03_bridge.esc b/game/rooms/room03/esc/room03_bridge.esc index 47f40318..0f26dca7 100644 --- a/game/rooms/room03/esc/room03_bridge.esc +++ b/game/rooms/room03/esc/room03_bridge.esc @@ -14,10 +14,14 @@ set_state r3_bridge bridge_close true enable_terrain bridge_closed set_interactive r3_right_platform false + set_interactive r3_r_exit true + # We use a custom function to enable the collision polygon on the door + # to enable it to work as a door once the bridge is closed. + custom r3_r_exit door_enabler enable_door > [eq ESC_LAST_SCENE room2] teleport player r3_l_exit - # Set player look right + # Set player look down set_angle player 180 stop > [eq ESC_LAST_SCENE room4] diff --git a/game/rooms/room03/room03.tscn b/game/rooms/room03/room03.tscn index c055b457..613a0e2b 100644 --- a/game/rooms/room03/room03.tscn +++ b/game/rooms/room03/room03.tscn @@ -1,13 +1,146 @@ -[gd_scene load_steps=9 format=2] +[gd_scene load_steps=25 format=2] -[ext_resource path="res://game/rooms/room03/walkable_area.tscn" type="PackedScene" id=1] -[ext_resource path="res://game/rooms/room03/background.tscn" type="PackedScene" id=2] +[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_terrain.gd" type="Script" id=1] [ext_resource path="res://game/fonts/caslonantique.tres" type="DynamicFont" id=3] [ext_resource path="res://game/characters/mark/mark.tscn" type="PackedScene" id=4] [ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=5] [ext_resource path="res://addons/escoria-core/game/core-scripts/esc_room.gd" type="Script" id=6] -[ext_resource path="res://game/items/escitems/button.tscn" type="PackedScene" id=7] [ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=8] +[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_background.gd" type="Script" id=9] +[ext_resource path="res://game/rooms/room03/room3chasm.png" type="Texture" id=10] +[ext_resource path="res://game/rooms/room03/room3bridge.png" type="Texture" id=11] +[ext_resource path="res://game/rooms/room03/room3background.png" type="Texture" id=12] +[ext_resource path="res://game/rooms/room03/smoke.png" type="Texture" id=13] + +[sub_resource type="GDScript" id=15] +script/source = "extends Node2D + +# Currently an empty array is passed as a parameter to the function. No parameters are required. +func enable_door(_notused): + # Enable the collision polygon on the door so it is recognised as an ESCItem + $\"../CollisionPolygon2D\".disabled = false + +# Currently an empty array is passed as a parameter to the function. No parameters are required. +func disable_door(_notused): + # Enable the collision polygon on the door so it is recognised as an ESCItem + $\"../CollisionPolygon2D\".disabled = true +" + +[sub_resource type="Animation" id=10] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath("r3_bridge/Room3Bridge:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Vector2( 640, 249 ) ] +} + +[sub_resource type="Animation" id=11] +resource_name = "bridge_close" +tracks/0/type = "value" +tracks/0/path = NodePath("r3_bridge/Room3Bridge:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 0.318641, 1 ), +"update": 0, +"values": [ Vector2( 640, 249 ), Vector2( 640, 450 ) ] +} + +[sub_resource type="Animation" id=12] +resource_name = "bridge_open" +tracks/0/type = "value" +tracks/0/path = NodePath("r3_bridge/Room3Bridge:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 2.54912, 1 ), +"update": 0, +"values": [ Vector2( 640, 450 ), Vector2( 640, 249 ) ] +} + +[sub_resource type="Gradient" id=5] +offsets = PoolRealArray( 0, 0.830189 ) +colors = PoolColorArray( 1, 1, 1, 1, 0.353516, 0.353516, 0.353516, 1 ) + +[sub_resource type="GradientTexture" id=2] +gradient = SubResource( 5 ) + +[sub_resource type="Curve" id=6] +_data = [ Vector2( 0, 0.0886364 ), 0.0, 0.0, 0, 0, Vector2( 0.612766, 1 ), 0.0, 0.0, 0, 0, Vector2( 0.770213, 0.95 ), -1.55372, -1.55372, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ] + +[sub_resource type="CurveTexture" id=4] +curve = SubResource( 6 ) + +[sub_resource type="ParticlesMaterial" id=7] +lifetime_randomness = 0.2 +emission_shape = 1 +emission_sphere_radius = 1.0 +flag_disable_z = true +gravity = Vector3( 0, -9.81, 0 ) +angular_velocity = 14.47 +orbit_velocity = 0.0 +orbit_velocity_random = 1.0 +radial_accel = 3.97 +radial_accel_random = 0.63 +angle = 160.0 +angle_random = 1.0 +scale = 0.5 +scale_random = 0.45 +scale_curve = SubResource( 4 ) +color_ramp = SubResource( 2 ) + +[sub_resource type="Animation" id=8] +resource_name = "button_broken" +tracks/0/type = "value" +tracks/0/path = NodePath("Particles2D:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} + +[sub_resource type="Animation" id=9] +resource_name = "button_repaired" +tracks/0/type = "value" +tracks/0/path = NodePath("Particles2D:emitting") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="NavigationPolygon" id=13] +vertices = PoolVector2Array( 1182, 379, 1184, 338, 1268, 391, 12, 385, 91, 344, 92, 383, 10, 542, 1270, 542, 116, 354, 1157, 357 ) +polygons = [ PoolIntArray( 0, 1, 2 ), PoolIntArray( 3, 4, 5, 6 ), PoolIntArray( 2, 7, 6, 0 ), PoolIntArray( 8, 9, 0, 6, 5 ) ] +outlines = [ PoolVector2Array( 91, 344, 92, 383, 116, 354, 1157, 357, 1182, 379, 1184, 338, 1268, 391, 1270, 542, 10, 542, 12, 385 ) ] + +[sub_resource type="NavigationPolygon" id=14] +vertices = PoolVector2Array( 12, 387, 91, 340, 91, 383, 12, 541, 115, 354, 484, 356, 402, 541 ) +polygons = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 5, 6, 3, 2 ) ] +outlines = [ PoolVector2Array( 91, 340, 91, 383, 115, 354, 484, 356, 402, 541, 12, 541, 12, 387 ) ] [node name="room3" type="Node2D"] script = ExtResource( 6 ) @@ -16,19 +149,6 @@ esc_script = "res://game/rooms/room03/esc/room03_bridge.esc" player_scene = ExtResource( 4 ) camera_limits = [ Rect2( 0, 0, 1289, 555 ) ] -[node name="background" parent="." instance=ExtResource( 2 )] - -[node name="room_label" type="Label" parent="background"] -margin_right = 40.0 -margin_bottom = 14.0 -custom_fonts/font = ExtResource( 3 ) -text = "ROOM 3" -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="walkable_area" parent="." instance=ExtResource( 1 )] - [node name="Hotspots" type="Node2D" parent="."] [node name="r_platform" type="Area2D" parent="Hotspots"] @@ -43,7 +163,8 @@ dialog_color = Color( 1, 1, 1, 1 ) animations = null [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_platform"] -polygon = PoolVector2Array( 870.974, 538.342, 827.536, 353.995, 1181.4, 357.174, 1287.34, 413.325, 1289.46, 545.758 ) +position = Vector2( -21, -3 ) +polygon = PoolVector2Array( 890, 546, 818, 359, 1181.4, 357.174, 1194, 368, 1195, 67, 1300, 112, 1298, 428, 1301, 547 ) __meta__ = { "_editor_description_": "" } @@ -64,17 +185,22 @@ __meta__ = { global_id = "r3_r_exit" esc_script = "res://game/rooms/room03/esc/right_exit.esc" is_exit = true +is_interactive = false tooltip_name = "Exit" dialog_color = Color( 1, 1, 1, 1 ) animations = null [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/r_door"] -polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 ) +polygon = PoolVector2Array( 1174, 356, 1177, 68, 1278, 110, 1279, 419 ) +disabled = true [node name="Position2D" type="Position2D" parent="Hotspots/r_door"] -position = Vector2( 1225.47, 353.99 ) +position = Vector2( 1223, 376 ) script = ExtResource( 8 ) +[node name="door_enabler" type="Node2D" parent="Hotspots/r_door"] +script = SubResource( 15 ) + [node name="l_door" type="Area2D" parent="Hotspots"] pause_mode = 1 script = ExtResource( 5 ) @@ -89,39 +215,137 @@ dialog_color = Color( 1, 1, 1, 1 ) animations = null [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/l_door"] -polygon = PoolVector2Array( -2.71457, 437.818, 6.6293, 121.462, 89.3893, 74.7422, 88.0545, 376.416 ) +polygon = PoolVector2Array( 3, 422, 6, 108, 102, 70, 103, 357 ) [node name="Position2D" type="Position2D" parent="Hotspots/l_door"] position = Vector2( 44.1375, 384.691 ) script = ExtResource( 8 ) -[node name="button" parent="Hotspots" instance=ExtResource( 7 )] -pause_mode = 1 -global_id = "r3_button" -esc_script = "res://game/rooms/room03/esc/button.esc" -animations = null - -[node name="Position2D" type="Position2D" parent="Hotspots/button"] -position = Vector2( 347.767, 378.011 ) -script = ExtResource( 8 ) -__meta__ = { -"_editor_description_": "" -} - -[node name="button_label" type="Label" parent="Hotspots/button"] -margin_left = 398.135 -margin_top = 132.292 -margin_right = 642.135 -margin_bottom = 167.292 -custom_fonts/font = ExtResource( 3 ) -text = "I know, this doesn't sound logical -but you should try talking with this button..." -__meta__ = { -"_edit_use_anchors_": false -} - [node name="player_start" type="Position2D" parent="."] position = Vector2( 63.3074, 444.653 ) script = ExtResource( 8 ) global_id = "r3_player_start" is_start_location = true + +[node name="r3_bridge" type="Area2D" parent="."] +pause_mode = 1 +script = ExtResource( 5 ) +global_id = "r3_bridge" +esc_script = "res://game/rooms/room03/esc/room03_bridge.esc" +inventory_texture = ExtResource( 10 ) +dialog_color = Color( 1, 1, 1, 1 ) +animations = null + +[node name="AnimationPlayer" type="AnimationPlayer" parent="r3_bridge"] +root_node = NodePath("../..") +anims/RESET = SubResource( 10 ) +anims/bridge_close = SubResource( 11 ) +anims/bridge_open = SubResource( 12 ) + +[node name="Room3Chasm" type="Sprite" parent="r3_bridge"] +position = Vector2( 640, 450 ) +texture = ExtResource( 10 ) + +[node name="Room3Bridge" type="Sprite" parent="r3_bridge"] +position = Vector2( 640, 249 ) +texture = ExtResource( 11 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="r3_bridge"] +polygon = PoolVector2Array( 501, 349, 780, 351, 859, 548, 419, 551 ) + +[node name="ESCLocation" type="Position2D" parent="r3_bridge"] +position = Vector2( 434, 441 ) +script = ExtResource( 8 ) + +[node name="ESCBackground" type="TextureRect" parent="."] +margin_right = 1280.0 +margin_bottom = 550.0 +mouse_filter = 2 +texture = ExtResource( 12 ) +script = ExtResource( 9 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Polygon2D" type="Polygon2D" parent="ESCBackground"] +color = Color( 0, 0, 0, 1 ) +polygon = PoolVector2Array( 0, 550, 1280, 550, 1280, 800, 0, 800 ) + +[node name="room_label2" type="Label" parent="ESCBackground"] +margin_left = 17.0 +margin_top = 558.0 +margin_right = 1224.0 +margin_bottom = 627.0 +custom_fonts/font = ExtResource( 3 ) +text = "Room 3 demonstrates a chain of steps to complete a game task. It demonstrates different talk responses based on the state of the button (which sets the + \"broken_button\" variable to true or false respectively). Setting the \"button_repaired\" state automatically plays the button_repaired animation, which turns off +the particle emitter for the button. The custom command shows how to execute functions written in gdscript." +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="room_label" type="Label" parent="ESCBackground"] +margin_right = 82.0 +margin_bottom = 21.0 +custom_fonts/font = ExtResource( 3 ) +text = "ROOM 3" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="r3_button" type="Area2D" parent="."] +pause_mode = 1 +script = ExtResource( 5 ) +global_id = "r3_button" +esc_script = "res://game/rooms/room03/esc/button.esc" +tooltip_name = "Button" +default_action = "use" +dialog_color = Color( 1, 1, 1, 1 ) +animations = null + +[node name="Particles2D" type="Particles2D" parent="r3_button"] +position = Vector2( 374, 154 ) +amount = 16 +lifetime = 4.0 +preprocess = 1.99 +speed_scale = 1.39 +process_material = SubResource( 7 ) +texture = ExtResource( 13 ) +__meta__ = { +"_editor_description_": "" +} + +[node name="AnimationPlayer" type="AnimationPlayer" parent="r3_button"] +anims/button_broken = SubResource( 8 ) +anims/button_repaired = SubResource( 9 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="r3_button"] +position = Vector2( 24, 41 ) +polygon = PoolVector2Array( 317, 120, 317, 181, 379, 181, 380, 119 ) + +[node name="ESCLocation" type="Position2D" parent="r3_button"] +position = Vector2( 349, 380 ) +script = ExtResource( 8 ) + +[node name="button_label" type="Label" parent="r3_button"] +margin_left = 420.0 +margin_top = 158.0 +margin_right = 745.0 +margin_bottom = 203.0 +custom_colors/font_color = Color( 0, 0, 0, 1 ) +custom_fonts/font = ExtResource( 3 ) +text = "I know, this isn't logical - but you +should try talking to this button..." +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="ESCTerrain" type="Navigation2D" parent="."] +script = ExtResource( 1 ) + +[node name="bridge_closed" type="NavigationPolygonInstance" parent="ESCTerrain"] +navpoly = SubResource( 13 ) +enabled = false + +[node name="bridge_open" type="NavigationPolygonInstance" parent="ESCTerrain"] +navpoly = SubResource( 14 ) diff --git a/game/rooms/room03/room3background.png b/game/rooms/room03/room3background.png new file mode 100644 index 0000000000000000000000000000000000000000..d31a9c1af3683feaf96ef85e241d13beea982f96 GIT binary patch literal 7701 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 literal 0 HcmV?d00001 diff --git a/game/rooms/room03/room3chasm.png b/game/rooms/room03/room3chasm.png new file mode 100644 index 0000000000000000000000000000000000000000..4391115a34a87e07e18f7160a6e91865dfb36552 GIT binary patch literal 3040 zcmb7GhhNjz77tPs0TBn-hl+|TY|$b!3W3N7VFVcgf-=G;tU%byFvAXe$P9{*05X1( z5L~Y=v{0;A8e@wUSq)lBp~yquy?KAZ%jcJyn|sea_nhzddrp$?GX`a`1E)%#--6{skFGXSXydKY)W)Ya!gE0 zbaZlLR8mw_QeVL*qh1XhFfT!6C6hK{0_r zF_ggQz`*DLN|b*?QkyK*($=SmpaC)CF$)SDdQ13gF-caH!M4~m<6fUBFoo16b-S3egQUzf|iM3<}1&R3j?SDl=F zoSb|d9LbJOWCsUtdx96i!5feF#M^t?;Yqf3BpX`~TRRUM8~01rZq_z#m#kfJxXZXp zu2#6qmR2rUOQHpqXl~(bfps=Fce-%V@gf`@Fc%!mFa!*SU}|P>Vv090!5bOd8JpM{ z8QU5f*`7DFF*tAioxvr8^Ow$jhdX=L>g+iy{j-*5^s#63E%nY|b@eRt^el9A&9$^I zXzN_m)WT?JnxQpJ(Hdr_(Wa--CMQoBpE_-F;-t~Do7Hnb&^x1SNU zQ~H}j)XwF#ee<y$#$db&lA^gZ5~*49e*`v`id+fP;S%>yjy8^O=x8Oea9@3 zF!RfPu7eLn?zMV4($Qe@AVj@kNHv#wV<}T^O;%89iAbN2<>0ax3oMbBda*gEiYj%Q z_4etym`5hEI=EmCiNd4?dConTLhIlbd=>b!*kB#I@o1yB&q%8`e|zAkV;mM_^~w5r zw)Ugt==WSo((v@u4^;&w@!}SL0z`W9-}EZAzX66VjyalXGf$ zlf;Uu)>Sj+?_#qU2DtdJqUZt~urm zVvGPMTp1HY26wDo_^OJZgtEgs^Q4(nws)HfOylWH-)j;QMx}888?Cg+Q~oQzJcQX1 z89BDdVN>qD3;>)OI31V#^PUW_Obwb8C#gbX$|(`|?(fX9wa7opY$BA~msNvXDI`T@lqlfem=V%^RG0>@_^7+A@eHXWAk{ z8n}hw^Q2uEv2=VuMR^fiGLJ>%fjcanGAUkDR`O&{618dxJdy82`ZOPp#M320Tlf7lM{E6CxC~N0^9%rryA4vC3^u1WY+y=?RD{Qy%6Hn4+=a{kER6sX5p65 z>?jJDi|Q?q9mSSF#rQp{+eK;vi}xjZ>r>!i+HbH-!yqMM1)g}S1)!!imVVqxjaQp1 zb97*T3;*e_;u&SY_9T%{pZmC$muhwvY8hkm*@C2IuniytqA_0Ji>LeNeuQr4H7DuG z_DA}kB*B3E7Wf!9#w3y9_9X3IbMiC&Yd+Pbm1p^0)6dC+V_-?AwyQHY*X)5t`weB+zn}6uiy#KEy0in z(E{~2B#86Z9}-B6I{BEOqYx6HSRy@{s|Ja1U8IgLEpA9bvK9BzwPt0ufw%^UAE<>oid7Z9?6tlXZw6^q9N$5FtU$o2D)hS7diaGhtULF`I6 zA@TM0kCHrhSB?skb0k!t1rDF7k4Fq4@nqZ2)Q?LuH4<#kZn`4gvYfI};b!%QIZE?= z`PY(H7d&{b3;hPO9#Sxxht0y%DxU)+?QQoG^(jbo^06vy^QSt;9Y?X$jo0NJDS=ARvcT!! z`|+uY@dC*3D}_faaSq^YK}G0X*a~OQa{>92EcC3NUlU1#76w8q+qD>LVo`1{kirh=x4t z*!9HByNwRM6G}>}Oo3-GYr54Pr~>*0Tj)X4`qdRmW+?`==8rn-TM~sGP!pv&?E>I% z0zSp9+i%Qlx9YW?|Dt`{VAlE}2t+Q^p4a%#?-FP{)TZlJSZWRmFf$}(Va;VH&@@k% z6;9Zgc7rsT_AadbWs-MwyhErrwLyVOY%wgUM`~BPGGT}s*oP;Dp8%3c+D+8E%Zr9m zdA)Hdyv7sIqx*-KVnlvR7g8+BcSL@5hlPi4eE(9sJM7E1pieW@9^4Q%<-js!qqovG z6OjN}a;774k-k!mvig~Lp{ZKwkvv-_oVOLXq;yQVo|=BJNN#O}w{`fdEO4f&5b#pm zv<1=vzI+~2^fkT`)j_$2MK7#O1R|ZxKY^1d-YQ g`|RWyy!eXJSC{o0wz|Fw{ Date: Tue, 15 Feb 2022 17:21:45 +0000 Subject: [PATCH 7/9] chore: storing version and changelog --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c70fed75..f52b6e02 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +## [4.0.0-alpha.93](https://github.com/godot-escoria/escoria-demo-game/compare/v0.0.0...v4.0.0-alpha.93) (2022-02-15) + + +### Bug Fixes + +* use Escoria plugin version from plugin.cfg in savegames ([#489](https://github.com/godot-escoria/escoria-demo-game/issues/489)) ([2384127](https://github.com/godot-escoria/escoria-demo-game/commit/2384127ca4aa7c262d2944885af615c492cab002)) + + + ## [4.0.0-alpha.92](https://github.com/godot-escoria/escoria-demo-game/compare/v0.0.0...v4.0.0-alpha.92) (2022-02-12) From 5e0e83f23edf4ef782f1a7773f2e5d1d2594faf3 Mon Sep 17 00:00:00 2001 From: balloonpopper <5151242+balloonpopper@users.noreply.github.com> Date: Wed, 16 Feb 2022 04:24:08 +1100 Subject: [PATCH 8/9] feat: Debug set state animations (#495) Co-authored-by: Balloonpopper --- .../game/core-scripts/esc/types/esc_object.gd | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/addons/escoria-core/game/core-scripts/esc/types/esc_object.gd b/addons/escoria-core/game/core-scripts/esc/types/esc_object.gd index 9d6eee0b..43c48213 100644 --- a/addons/escoria-core/game/core-scripts/esc/types/esc_object.gd +++ b/addons/escoria-core/game/core-scripts/esc/types/esc_object.gd @@ -45,9 +45,25 @@ func set_state(p_state: String, immediate: bool = false): var actual_animator if animation_node.has_animation(p_state): if immediate: + escoria.logger.debug( + "State \"%s\" set. Matching immediate animation executing." % [ + p_state + ] + ) animation_node.seek_end(p_state) else: + escoria.logger.debug( + "State \"%s\" set. Matching non-immediate animation executing." % [ + p_state + ] + ) animation_node.play(p_state) + else: + escoria.logger.debug( + "State \"%s\" set. No matching animation found." % [ + p_state + ] + ) # Set the active value, thus hiding or showing the object From 6d87c201691310754451145b8a704b72923d55bb Mon Sep 17 00:00:00 2001 From: StraToN Date: Tue, 15 Feb 2022 17:24:32 +0000 Subject: [PATCH 9/9] chore: storing version and changelog --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f52b6e02..07db20c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +## [4.0.0-alpha.94](https://github.com/godot-escoria/escoria-demo-game/compare/v0.0.0...v4.0.0-alpha.94) (2022-02-15) + + +### Features + +* Debug set state animations ([#495](https://github.com/godot-escoria/escoria-demo-game/issues/495)) ([5e0e83f](https://github.com/godot-escoria/escoria-demo-game/commit/5e0e83f23edf4ef782f1a7773f2e5d1d2594faf3)) + + + ## [4.0.0-alpha.93](https://github.com/godot-escoria/escoria-demo-game/compare/v0.0.0...v4.0.0-alpha.93) (2022-02-15)