commit 25e72421c3cf239c8c5dd63ffa617f5734c1a6c4 Author: chimchooree Date: Fri Sep 8 10:07:22 2023 -0500 coyote hunt diff --git a/.import/179731.png-cb9e3f40d5acb8fdde0a27f8185352f9.md5 b/.import/179731.png-cb9e3f40d5acb8fdde0a27f8185352f9.md5 new file mode 100644 index 0000000..28cad0b --- /dev/null +++ b/.import/179731.png-cb9e3f40d5acb8fdde0a27f8185352f9.md5 @@ -0,0 +1,3 @@ +source_md5="11f423bdd4ed2639a5486bf4e591b1fe" +dest_md5="f3a457935bec02fdf35193bebf7f6d82" + diff --git a/.import/179731.png-cb9e3f40d5acb8fdde0a27f8185352f9.stex b/.import/179731.png-cb9e3f40d5acb8fdde0a27f8185352f9.stex new file mode 100644 index 0000000..5f5dc4f Binary files /dev/null and b/.import/179731.png-cb9e3f40d5acb8fdde0a27f8185352f9.stex differ diff --git a/.import/180056.png-d552677b722b4412bb41f0f16ef4176d.md5 b/.import/180056.png-d552677b722b4412bb41f0f16ef4176d.md5 new file mode 100644 index 0000000..1a42769 --- /dev/null +++ b/.import/180056.png-d552677b722b4412bb41f0f16ef4176d.md5 @@ -0,0 +1,3 @@ +source_md5="7749d705a63fa1cb5ff94a279090d0fb" +dest_md5="2a4254ee95e898914e2ac9278cfc4a07" + diff --git a/.import/180056.png-d552677b722b4412bb41f0f16ef4176d.stex b/.import/180056.png-d552677b722b4412bb41f0f16ef4176d.stex new file mode 100644 index 0000000..ac8ce84 Binary files /dev/null and b/.import/180056.png-d552677b722b4412bb41f0f16ef4176d.stex differ diff --git a/.import/31620.png-22177db0a2dbfd87ca8b91dc2f1259b3.md5 b/.import/31620.png-22177db0a2dbfd87ca8b91dc2f1259b3.md5 new file mode 100644 index 0000000..2ca2284 --- /dev/null +++ b/.import/31620.png-22177db0a2dbfd87ca8b91dc2f1259b3.md5 @@ -0,0 +1,3 @@ +source_md5="c09637a85b57ae4a57a7990047e09dc6" +dest_md5="f7154fde0c16cdb23fc7fe89c34106f3" + diff --git a/.import/31620.png-22177db0a2dbfd87ca8b91dc2f1259b3.stex b/.import/31620.png-22177db0a2dbfd87ca8b91dc2f1259b3.stex new file mode 100644 index 0000000..d3171ed Binary files /dev/null and b/.import/31620.png-22177db0a2dbfd87ca8b91dc2f1259b3.stex differ diff --git a/.import/4005.png-eca863e292da1f933281bc034cafa8ad.md5 b/.import/4005.png-eca863e292da1f933281bc034cafa8ad.md5 new file mode 100644 index 0000000..51d793e --- /dev/null +++ b/.import/4005.png-eca863e292da1f933281bc034cafa8ad.md5 @@ -0,0 +1,3 @@ +source_md5="4a2877b46221d101fe9dc4afd434f8b3" +dest_md5="407ca6c5f931f4f366bfccac1f865f31" + diff --git a/.import/4005.png-eca863e292da1f933281bc034cafa8ad.stex b/.import/4005.png-eca863e292da1f933281bc034cafa8ad.stex new file mode 100644 index 0000000..892c380 Binary files /dev/null and b/.import/4005.png-eca863e292da1f933281bc034cafa8ad.stex differ diff --git a/.import/4006.png-07f867ae2d4e8c2bce3971c2bdc31e0f.md5 b/.import/4006.png-07f867ae2d4e8c2bce3971c2bdc31e0f.md5 new file mode 100644 index 0000000..a94bf6d --- /dev/null +++ b/.import/4006.png-07f867ae2d4e8c2bce3971c2bdc31e0f.md5 @@ -0,0 +1,3 @@ +source_md5="f7b42e3798f5fbc6ffbc08d4bed7b885" +dest_md5="2ac2f63d7f2e21bbf94dfb63cf39dd46" + diff --git a/.import/4006.png-07f867ae2d4e8c2bce3971c2bdc31e0f.stex b/.import/4006.png-07f867ae2d4e8c2bce3971c2bdc31e0f.stex new file mode 100644 index 0000000..2e0f0db Binary files /dev/null and b/.import/4006.png-07f867ae2d4e8c2bce3971c2bdc31e0f.stex differ diff --git a/.import/4008.png-b852fac6fdb55a0e2a028894a449bd0c.md5 b/.import/4008.png-b852fac6fdb55a0e2a028894a449bd0c.md5 new file mode 100644 index 0000000..8c8a9a7 --- /dev/null +++ b/.import/4008.png-b852fac6fdb55a0e2a028894a449bd0c.md5 @@ -0,0 +1,3 @@ +source_md5="bbb0258173637aceab3089ce20a81e6d" +dest_md5="0a54533b694fbbf9e000487ab968844a" + diff --git a/.import/4008.png-b852fac6fdb55a0e2a028894a449bd0c.stex b/.import/4008.png-b852fac6fdb55a0e2a028894a449bd0c.stex new file mode 100644 index 0000000..48aeb65 Binary files /dev/null and b/.import/4008.png-b852fac6fdb55a0e2a028894a449bd0c.stex differ diff --git a/.import/4016.png-6b4f0ebb85bb68cfe101d8ee99977896.md5 b/.import/4016.png-6b4f0ebb85bb68cfe101d8ee99977896.md5 new file mode 100644 index 0000000..88caa3a --- /dev/null +++ b/.import/4016.png-6b4f0ebb85bb68cfe101d8ee99977896.md5 @@ -0,0 +1,3 @@ +source_md5="f6825a9c0fadbafe6af3d4728d62f7fb" +dest_md5="e463d96fe33669c1c036cbdb64ce3e90" + diff --git a/.import/4016.png-6b4f0ebb85bb68cfe101d8ee99977896.stex b/.import/4016.png-6b4f0ebb85bb68cfe101d8ee99977896.stex new file mode 100644 index 0000000..d13a79e Binary files /dev/null and b/.import/4016.png-6b4f0ebb85bb68cfe101d8ee99977896.stex differ diff --git a/.import/4018.png-ef7616c64bfd398aba605b682eaf9bb2.md5 b/.import/4018.png-ef7616c64bfd398aba605b682eaf9bb2.md5 new file mode 100644 index 0000000..19b4f04 --- /dev/null +++ b/.import/4018.png-ef7616c64bfd398aba605b682eaf9bb2.md5 @@ -0,0 +1,3 @@ +source_md5="96dbe5e3b91fa05565170ca1d72df7e5" +dest_md5="8cd30cae90ca9d60d119b903c7f6a767" + diff --git a/.import/4018.png-ef7616c64bfd398aba605b682eaf9bb2.stex b/.import/4018.png-ef7616c64bfd398aba605b682eaf9bb2.stex new file mode 100644 index 0000000..a3917b6 Binary files /dev/null and b/.import/4018.png-ef7616c64bfd398aba605b682eaf9bb2.stex differ diff --git a/.import/4034.png-f2787ee95c2ec2b6cd9c3bb98f945969.md5 b/.import/4034.png-f2787ee95c2ec2b6cd9c3bb98f945969.md5 new file mode 100644 index 0000000..09740bb --- /dev/null +++ b/.import/4034.png-f2787ee95c2ec2b6cd9c3bb98f945969.md5 @@ -0,0 +1,3 @@ +source_md5="e2668f31986a11c869d67282c21ac506" +dest_md5="983dca7cc8e813597ac8d2a1585c006b" + diff --git a/.import/4034.png-f2787ee95c2ec2b6cd9c3bb98f945969.stex b/.import/4034.png-f2787ee95c2ec2b6cd9c3bb98f945969.stex new file mode 100644 index 0000000..7c91289 Binary files /dev/null and b/.import/4034.png-f2787ee95c2ec2b6cd9c3bb98f945969.stex differ diff --git a/.import/4046.png-26e7794369aea976a1bd39fbc3b74c6d.md5 b/.import/4046.png-26e7794369aea976a1bd39fbc3b74c6d.md5 new file mode 100644 index 0000000..c280f5d --- /dev/null +++ b/.import/4046.png-26e7794369aea976a1bd39fbc3b74c6d.md5 @@ -0,0 +1,3 @@ +source_md5="0c8f200205823fbb0552de1abe872893" +dest_md5="959514eae00c06ae8c6300722fbaffd9" + diff --git a/.import/4046.png-26e7794369aea976a1bd39fbc3b74c6d.stex b/.import/4046.png-26e7794369aea976a1bd39fbc3b74c6d.stex new file mode 100644 index 0000000..ea16619 Binary files /dev/null and b/.import/4046.png-26e7794369aea976a1bd39fbc3b74c6d.stex differ diff --git a/.import/4056.png-614d2feb7e89c543c4a4c1ae308db6b2.md5 b/.import/4056.png-614d2feb7e89c543c4a4c1ae308db6b2.md5 new file mode 100644 index 0000000..98857b8 --- /dev/null +++ b/.import/4056.png-614d2feb7e89c543c4a4c1ae308db6b2.md5 @@ -0,0 +1,3 @@ +source_md5="363a4fffe543eb01645f3c16ac0ce1b7" +dest_md5="4ae74020d6a01b7c04a95ae618bcaac9" + diff --git a/.import/4056.png-614d2feb7e89c543c4a4c1ae308db6b2.stex b/.import/4056.png-614d2feb7e89c543c4a4c1ae308db6b2.stex new file mode 100644 index 0000000..e45f3d7 Binary files /dev/null and b/.import/4056.png-614d2feb7e89c543c4a4c1ae308db6b2.stex differ diff --git a/.import/girl.png-5c2af37ae11c98f8397e9a8eaab71dd1.md5 b/.import/girl.png-5c2af37ae11c98f8397e9a8eaab71dd1.md5 new file mode 100644 index 0000000..8e98ead --- /dev/null +++ b/.import/girl.png-5c2af37ae11c98f8397e9a8eaab71dd1.md5 @@ -0,0 +1,3 @@ +source_md5="f90eb2a42a4830f472ae6e7faaed8cd8" +dest_md5="c911b27c9e9aaef63b52f2cf109fc53e" + diff --git a/.import/girl.png-5c2af37ae11c98f8397e9a8eaab71dd1.stex b/.import/girl.png-5c2af37ae11c98f8397e9a8eaab71dd1.stex new file mode 100644 index 0000000..a406bdb Binary files /dev/null and b/.import/girl.png-5c2af37ae11c98f8397e9a8eaab71dd1.stex differ diff --git a/.import/graveyard.png-ce02690c87ca77f6f94fa4f24f015aa8.md5 b/.import/graveyard.png-ce02690c87ca77f6f94fa4f24f015aa8.md5 new file mode 100644 index 0000000..8c8a9a7 --- /dev/null +++ b/.import/graveyard.png-ce02690c87ca77f6f94fa4f24f015aa8.md5 @@ -0,0 +1,3 @@ +source_md5="bbb0258173637aceab3089ce20a81e6d" +dest_md5="0a54533b694fbbf9e000487ab968844a" + diff --git a/.import/graveyard.png-ce02690c87ca77f6f94fa4f24f015aa8.stex b/.import/graveyard.png-ce02690c87ca77f6f94fa4f24f015aa8.stex new file mode 100644 index 0000000..48aeb65 Binary files /dev/null and b/.import/graveyard.png-ce02690c87ca77f6f94fa4f24f015aa8.stex differ diff --git a/.import/grillman.png-c24e905f4dc4b0bc9b80d248d20fd5f8.md5 b/.import/grillman.png-c24e905f4dc4b0bc9b80d248d20fd5f8.md5 new file mode 100644 index 0000000..0206cfd --- /dev/null +++ b/.import/grillman.png-c24e905f4dc4b0bc9b80d248d20fd5f8.md5 @@ -0,0 +1,3 @@ +source_md5="80046739790bbb329462e6c9302446e5" +dest_md5="cdb58b58d6806b3fd27e390c0044bf57" + diff --git a/.import/grillman.png-c24e905f4dc4b0bc9b80d248d20fd5f8.stex b/.import/grillman.png-c24e905f4dc4b0bc9b80d248d20fd5f8.stex new file mode 100644 index 0000000..b948cb0 Binary files /dev/null and b/.import/grillman.png-c24e905f4dc4b0bc9b80d248d20fd5f8.stex differ diff --git a/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 b/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 new file mode 100644 index 0000000..7b61c3e --- /dev/null +++ b/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 @@ -0,0 +1,3 @@ +source_md5="47313fa4c47a9963fddd764e1ec6e4a8" +dest_md5="2ded9e7f9060e2b530aab678b135fc5b" + diff --git a/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex b/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex new file mode 100644 index 0000000..3ca6461 Binary files /dev/null and b/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex differ diff --git a/.import/lake.png-05c24eba17f93b94b17afad1068b707b.md5 b/.import/lake.png-05c24eba17f93b94b17afad1068b707b.md5 new file mode 100644 index 0000000..c280f5d --- /dev/null +++ b/.import/lake.png-05c24eba17f93b94b17afad1068b707b.md5 @@ -0,0 +1,3 @@ +source_md5="0c8f200205823fbb0552de1abe872893" +dest_md5="959514eae00c06ae8c6300722fbaffd9" + diff --git a/.import/lake.png-05c24eba17f93b94b17afad1068b707b.stex b/.import/lake.png-05c24eba17f93b94b17afad1068b707b.stex new file mode 100644 index 0000000..ea16619 Binary files /dev/null and b/.import/lake.png-05c24eba17f93b94b17afad1068b707b.stex differ diff --git a/.import/library.png-7570102310ea890595efa260efa49a5b.md5 b/.import/library.png-7570102310ea890595efa260efa49a5b.md5 new file mode 100644 index 0000000..88caa3a --- /dev/null +++ b/.import/library.png-7570102310ea890595efa260efa49a5b.md5 @@ -0,0 +1,3 @@ +source_md5="f6825a9c0fadbafe6af3d4728d62f7fb" +dest_md5="e463d96fe33669c1c036cbdb64ce3e90" + diff --git a/.import/library.png-7570102310ea890595efa260efa49a5b.stex b/.import/library.png-7570102310ea890595efa260efa49a5b.stex new file mode 100644 index 0000000..d13a79e Binary files /dev/null and b/.import/library.png-7570102310ea890595efa260efa49a5b.stex differ diff --git a/.import/neighbor.png-2e621ef67fcfd4f19668ff0b81af7224.md5 b/.import/neighbor.png-2e621ef67fcfd4f19668ff0b81af7224.md5 new file mode 100644 index 0000000..19b4f04 --- /dev/null +++ b/.import/neighbor.png-2e621ef67fcfd4f19668ff0b81af7224.md5 @@ -0,0 +1,3 @@ +source_md5="96dbe5e3b91fa05565170ca1d72df7e5" +dest_md5="8cd30cae90ca9d60d119b903c7f6a767" + diff --git a/.import/neighbor.png-2e621ef67fcfd4f19668ff0b81af7224.stex b/.import/neighbor.png-2e621ef67fcfd4f19668ff0b81af7224.stex new file mode 100644 index 0000000..a3917b6 Binary files /dev/null and b/.import/neighbor.png-2e621ef67fcfd4f19668ff0b81af7224.stex differ diff --git a/.import/randos.png-4e3607b2f3cdf1500e4bae5ce47ac792.md5 b/.import/randos.png-4e3607b2f3cdf1500e4bae5ce47ac792.md5 new file mode 100644 index 0000000..01a4632 --- /dev/null +++ b/.import/randos.png-4e3607b2f3cdf1500e4bae5ce47ac792.md5 @@ -0,0 +1,3 @@ +source_md5="74ed76981e48b5f246d308f7df03d1ed" +dest_md5="f6667eb9247d96820fe0561f089f7ecf" + diff --git a/.import/randos.png-4e3607b2f3cdf1500e4bae5ce47ac792.stex b/.import/randos.png-4e3607b2f3cdf1500e4bae5ce47ac792.stex new file mode 100644 index 0000000..2ed7d37 Binary files /dev/null and b/.import/randos.png-4e3607b2f3cdf1500e4bae5ce47ac792.stex differ diff --git a/.import/sewers.png-c8c581ec69472520d44800f676cfa99e.md5 b/.import/sewers.png-c8c581ec69472520d44800f676cfa99e.md5 new file mode 100644 index 0000000..09740bb --- /dev/null +++ b/.import/sewers.png-c8c581ec69472520d44800f676cfa99e.md5 @@ -0,0 +1,3 @@ +source_md5="e2668f31986a11c869d67282c21ac506" +dest_md5="983dca7cc8e813597ac8d2a1585c006b" + diff --git a/.import/sewers.png-c8c581ec69472520d44800f676cfa99e.stex b/.import/sewers.png-c8c581ec69472520d44800f676cfa99e.stex new file mode 100644 index 0000000..7c91289 Binary files /dev/null and b/.import/sewers.png-c8c581ec69472520d44800f676cfa99e.stex differ diff --git a/.import/slime.png-e17719a26081aa14f4130feaf6acfe2e.md5 b/.import/slime.png-e17719a26081aa14f4130feaf6acfe2e.md5 new file mode 100644 index 0000000..eaab945 --- /dev/null +++ b/.import/slime.png-e17719a26081aa14f4130feaf6acfe2e.md5 @@ -0,0 +1,3 @@ +source_md5="0875168065f5634b350848e92d201af9" +dest_md5="30c43c641a7e3c098959489f3153641f" + diff --git a/.import/slime.png-e17719a26081aa14f4130feaf6acfe2e.stex b/.import/slime.png-e17719a26081aa14f4130feaf6acfe2e.stex new file mode 100644 index 0000000..f6ef742 Binary files /dev/null and b/.import/slime.png-e17719a26081aa14f4130feaf6acfe2e.stex differ diff --git a/.import/warehouse.png-d6982bccd64eb6fb49faea76f08d16ee.md5 b/.import/warehouse.png-d6982bccd64eb6fb49faea76f08d16ee.md5 new file mode 100644 index 0000000..1a42769 --- /dev/null +++ b/.import/warehouse.png-d6982bccd64eb6fb49faea76f08d16ee.md5 @@ -0,0 +1,3 @@ +source_md5="7749d705a63fa1cb5ff94a279090d0fb" +dest_md5="2a4254ee95e898914e2ac9278cfc4a07" + diff --git a/.import/warehouse.png-d6982bccd64eb6fb49faea76f08d16ee.stex b/.import/warehouse.png-d6982bccd64eb6fb49faea76f08d16ee.stex new file mode 100644 index 0000000..ac8ce84 Binary files /dev/null and b/.import/warehouse.png-d6982bccd64eb6fb49faea76f08d16ee.stex differ diff --git a/.import/wolf.png-c2fcd269881e6c06a187fddcc690bc9a.md5 b/.import/wolf.png-c2fcd269881e6c06a187fddcc690bc9a.md5 new file mode 100644 index 0000000..2ca2284 --- /dev/null +++ b/.import/wolf.png-c2fcd269881e6c06a187fddcc690bc9a.md5 @@ -0,0 +1,3 @@ +source_md5="c09637a85b57ae4a57a7990047e09dc6" +dest_md5="f7154fde0c16cdb23fc7fe89c34106f3" + diff --git a/.import/wolf.png-c2fcd269881e6c06a187fddcc690bc9a.stex b/.import/wolf.png-c2fcd269881e6c06a187fddcc690bc9a.stex new file mode 100644 index 0000000..d3171ed Binary files /dev/null and b/.import/wolf.png-c2fcd269881e6c06a187fddcc690bc9a.stex differ diff --git a/Main.tscn b/Main.tscn new file mode 100644 index 0000000..683622d --- /dev/null +++ b/Main.tscn @@ -0,0 +1,190 @@ +[gd_scene load_steps=29 format=2] + +[ext_resource path="res://res/level/neighbor.png" type="Texture" id=1] +[ext_resource path="res://res/character/girl.png" type="Texture" id=2] +[ext_resource path="res://res/character/randos.png" type="Texture" id=3] +[ext_resource path="res://res/character/wolf.png" type="Texture" id=4] +[ext_resource path="res://entity/KinematicBody2D.gd" type="Script" id=5] +[ext_resource path="res://entity/Girl.gd" type="Script" id=6] + +[sub_resource type="AtlasTexture" id=1] +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 99, 0, 33, 50 ) + +[sub_resource type="AtlasTexture" id=2] +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 99, 50, 33, 50 ) + +[sub_resource type="AtlasTexture" id=3] +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 99, 100, 33, 50 ) + +[sub_resource type="AtlasTexture" id=4] +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 99, 150, 33, 50 ) + +[sub_resource type="AtlasTexture" id=5] +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 99, 200, 33, 50 ) + +[sub_resource type="AtlasTexture" id=6] +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 33, 0, 33, 50 ) + +[sub_resource type="AtlasTexture" id=7] +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 33, 50, 33, 50 ) + +[sub_resource type="AtlasTexture" id=8] +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 33, 100, 33, 50 ) + +[sub_resource type="AtlasTexture" id=9] +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 33, 150, 33, 50 ) + +[sub_resource type="AtlasTexture" id=10] +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 33, 200, 33, 50 ) + +[sub_resource type="AtlasTexture" id=11] +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 66, 0, 33, 50 ) + +[sub_resource type="AtlasTexture" id=12] +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 66, 50, 33, 50 ) + +[sub_resource type="AtlasTexture" id=13] +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 66, 100, 33, 50 ) + +[sub_resource type="AtlasTexture" id=14] +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 66, 150, 33, 50 ) + +[sub_resource type="AtlasTexture" id=15] +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 66, 200, 33, 50 ) + +[sub_resource type="AtlasTexture" id=16] +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 0, 0, 33, 50 ) + +[sub_resource type="AtlasTexture" id=17] +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 0, 50, 33, 50 ) + +[sub_resource type="AtlasTexture" id=18] +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 0, 100, 33, 50 ) + +[sub_resource type="AtlasTexture" id=19] +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 0, 150, 33, 50 ) + +[sub_resource type="AtlasTexture" id=20] +flags = 4 +atlas = ExtResource( 2 ) +region = Rect2( 0, 200, 33, 50 ) + +[sub_resource type="SpriteFrames" id=21] +animations = [ { +"frames": [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ) ], +"loop": true, +"name": "WalkRight", +"speed": 5.0 +}, { +"frames": [ SubResource( 6 ), SubResource( 7 ), SubResource( 8 ), SubResource( 9 ), SubResource( 10 ) ], +"loop": true, +"name": "WalkLeft", +"speed": 5.0 +}, { +"frames": [ SubResource( 11 ), SubResource( 12 ), SubResource( 13 ), SubResource( 14 ), SubResource( 15 ) ], +"loop": true, +"name": "WalkUp", +"speed": 5.0 +}, { +"frames": [ SubResource( 16 ), SubResource( 17 ), SubResource( 18 ), SubResource( 19 ), SubResource( 20 ) ], +"loop": true, +"name": "WalkDown", +"speed": 5.0 +} ] + +[sub_resource type="CapsuleShape2D" id=22] +radius = 7.49152 + +[node name="Node" type="Node"] + +[node name="World" type="Node2D" parent="."] + +[node name="Level" type="Sprite" parent="World"] +texture = ExtResource( 1 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="Enter" type="Position2D" parent="World"] +position = Vector2( 208.579, 63.3655 ) + +[node name="Girl" type="Node" parent="World/Enter"] +script = ExtResource( 6 ) + +[node name="KinematicBody2D" type="KinematicBody2D" parent="World/Enter/Girl"] +position = Vector2( 208.579, 63.3655 ) +script = ExtResource( 5 ) + +[node name="AnimatedSprite" type="AnimatedSprite" parent="World/Enter/Girl/KinematicBody2D"] +frames = SubResource( 21 ) +animation = "WalkDown" + +[node name="CollisionShape2D" type="CollisionShape2D" parent="World/Enter/Girl/KinematicBody2D"] +position = Vector2( 1, -2 ) +shape = SubResource( 22 ) + +[node name="SpawnNPC" type="Position2D" parent="World"] +__meta__ = { +"_edit_lock_": true +} + +[node name="NPC" type="Sprite" parent="World/SpawnNPC"] +texture = ExtResource( 3 ) +region_enabled = true +region_rect = Rect2( 7, 4, 34, 38 ) +region_filter_clip = true +__meta__ = { +"_edit_lock_": true +} + +[node name="SpawnEnemy" type="Position2D" parent="World"] +__meta__ = { +"_edit_lock_": true +} + +[node name="Coyote" type="Sprite" parent="World/SpawnEnemy"] +texture = ExtResource( 4 ) +region_enabled = true +region_rect = Rect2( 0, 3, 38, 39 ) +region_filter_clip = true +__meta__ = { +"_edit_lock_": true +} diff --git a/default_env.tres b/default_env.tres new file mode 100644 index 0000000..20207a4 --- /dev/null +++ b/default_env.tres @@ -0,0 +1,7 @@ +[gd_resource type="Environment" load_steps=2 format=2] + +[sub_resource type="ProceduralSky" id=1] + +[resource] +background_mode = 2 +background_sky = SubResource( 1 ) diff --git a/entity/Girl.gd b/entity/Girl.gd new file mode 100644 index 0000000..90d574e --- /dev/null +++ b/entity/Girl.gd @@ -0,0 +1,3 @@ +extends Node + +# Variables diff --git a/entity/KinematicBody2D.gd b/entity/KinematicBody2D.gd new file mode 100644 index 0000000..65064a8 --- /dev/null +++ b/entity/KinematicBody2D.gd @@ -0,0 +1,74 @@ +extends KinematicBody2D + +# Variables +## Speed +export (int) var base_speed = 200 setget set_base_speed, get_base_speed # Character's speed (scalar) +export (int) var speed setget , get_speed # Character's speed (scalar) +var speed_mod = 1 +var speed_ceil = 5 +var speed_floor = .01 +## Velocity +var can_move = true setget set_can_move, get_can_move +export (Vector2) var velocity = Vector2(0,0) setget set_velocity, get_velocity # Character's directional velocity (vector) +var internal_velocity = Vector2(0,0) setget set_internal_velocity, get_internal_velocity +var external_velocity = Vector2(0,0) setget set_external_velocity, get_external_velocity +var velocity_mod = 1 + +# Setters + Getters +func set_base_speed(new_speed): + base_speed = new_speed +func get_base_speed(): + return base_speed +func set_can_move(new_bool): + can_move = new_bool +func get_can_move(): + return can_move +func set_external_velocity(new_velocity): + external_velocity = new_velocity +func get_external_velocity(): + return external_velocity +func set_internal_velocity(new_velocity): + internal_velocity = new_velocity +func get_internal_velocity(): + if not get_can_move(): + return Vector2(0.0,0.0) + return internal_velocity +func get_speed(): + if !get_can_move(): + return 0 + else: + return base_speed * get_speed_mod() +func get_speed_mod(): + if speed_mod < speed_floor: + return speed_floor + elif speed_mod > speed_ceil: + return speed_ceil + else: + return speed_mod +func set_velocity(new_velocity): + velocity = new_velocity +func get_velocity(): + return get_internal_velocity().normalized() +func get_velocity_angle(): + return get_velocity().angle() +func get_velocity_length(): + return get_velocity().length() +func get_user(): + return get_parent() + +# Logic + +func _process(delta): + var v = get_velocity() * get_speed() * delta * KnowledgeBase.logic_time + print(move_and_collide(v)) + if v != Vector2(0,0): + MessageBus.publish("moved", get_user()) + +#func _on_input_event(viewport, event, shape_idx): +# get_physics_body_node()._on_input_event(viewport, event, shape_idx) + +func _setup(): + set_process(true) + +func _ready(): + set_process(false) diff --git a/events/knowledge/Encountered.gd b/events/knowledge/Encountered.gd new file mode 100755 index 0000000..376a3d4 --- /dev/null +++ b/events/knowledge/Encountered.gd @@ -0,0 +1,8 @@ +extends Node + +# Event Handler for Encountering Knowledge + +# Learn incoming encountered knowledge +func handle(new_content): + print_debug("KnowledgeBase: encountered " + new_content[0]) + KnowledgeBase.learn(new_content) diff --git a/events/knowledge/Encountered.tscn b/events/knowledge/Encountered.tscn new file mode 100755 index 0000000..d99c060 --- /dev/null +++ b/events/knowledge/Encountered.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://Events/knowledge/Encountered.gd" type="Script" id=1] + +[node name="Encountered" type="Node"] +script = ExtResource( 1 ) diff --git a/events/knowledge/Forgot.gd b/events/knowledge/Forgot.gd new file mode 100755 index 0000000..b566d3f --- /dev/null +++ b/events/knowledge/Forgot.gd @@ -0,0 +1,11 @@ +extends Node + +# Event Handler for Forgetting Knowledge + +# Signals +signal forgot + +# Handle +func handle(knowledge): + if get_tree().get_nodes_in_group("player").size() > 0: + get_tree().get_nodes_in_group("player")[0].think("Forgot: " + knowledge) diff --git a/events/knowledge/Forgot.tscn b/events/knowledge/Forgot.tscn new file mode 100755 index 0000000..854c685 --- /dev/null +++ b/events/knowledge/Forgot.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://Events/knowledge/Forgot.gd" type="Script" id=1] + +[node name="Forgot" type="Node"] +script = ExtResource( 1 ) diff --git a/events/knowledge/Learned.gd b/events/knowledge/Learned.gd new file mode 100755 index 0000000..badf3de --- /dev/null +++ b/events/knowledge/Learned.gd @@ -0,0 +1,16 @@ +extends Node + +# Event Handler for Learning Knowledge + +# Signals +signal learned + +func bingo(knowledge): + if knowledge in KnowledgeBase.bingo_knowledge: + MessageBus.publish("bingo", self) + +# Handle +func handle(knowledge): + if get_tree().get_nodes_in_group("player").size() > 0: + get_tree().get_nodes_in_group("player")[0].think("Learned: " + knowledge) + bingo(knowledge) diff --git a/events/knowledge/Learned.tscn b/events/knowledge/Learned.tscn new file mode 100755 index 0000000..7159395 --- /dev/null +++ b/events/knowledge/Learned.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://Events/knowledge/Learned.gd" type="Script" id=1] + +[node name="Learned" type="Node"] +script = ExtResource( 1 ) diff --git a/events/knowledge/Lost.gd b/events/knowledge/Lost.gd new file mode 100755 index 0000000..715256e --- /dev/null +++ b/events/knowledge/Lost.gd @@ -0,0 +1,12 @@ +extends Node + +# Event Handler for Encountering Knowledge + +# Learn incoming encountered knowledge +func handle(old_content): + print_debug("KnowledgeBase: " + old_content) + KnowledgeBase.forget(old_content) + +# Ready +func _ready(): + MessageBus.subscribe("lost", self) diff --git a/events/knowledge/Lost.tscn b/events/knowledge/Lost.tscn new file mode 100755 index 0000000..805a412 --- /dev/null +++ b/events/knowledge/Lost.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://Events/knowledge/Lost.gd" type="Script" id=1] + +[node name="Lost" type="Node"] +script = ExtResource( 1 ) diff --git a/events/moved/Char.gd b/events/moved/Char.gd new file mode 100644 index 0000000..adcd695 --- /dev/null +++ b/events/moved/Char.gd @@ -0,0 +1,11 @@ +extends "res://events/moved/Moved.gd" + +# Event Handler for Character Moving + +func _arrived(character): # at next + var next = character.get_next() + return next && character.reached_next() + +func _reached(character): # at current dot + var cd = character.get_current_dot() + return cd && character.reached_current_dot() diff --git a/events/moved/Char.tscn b/events/moved/Char.tscn new file mode 100644 index 0000000..03ccff6 --- /dev/null +++ b/events/moved/Char.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://events/moved/Char.gd" type="Script" id=1] + +[node name="Moved" type="Node"] +script = ExtResource( 1 ) diff --git a/events/moved/Moved.gd b/events/moved/Moved.gd new file mode 100644 index 0000000..ecad50c --- /dev/null +++ b/events/moved/Moved.gd @@ -0,0 +1,51 @@ +extends Node + +# Event Handler for Moving + +# Variable +var topic = "moved" +var positions = [] + +func _arrived(_character): + return false + +# are positions the same? +func compare_pos(): + var p1 = positions[0] + for p in positions: + if p != p1: + return false # moving + return true # not moving + +func _reached(_character): + return false + +func track_pos(new_pos): + positions.append(new_pos) + if len(positions) > 50: + positions.pop_front() + +# Handle +func handle(character): + var current_pos = character.get_gpos() + track_pos(current_pos) + if _arrived(character): + character.think("Moved/Arrived") + character.emit_signal("arrived") + return + elif _reached(character): + character.think("Moved/Reached Dot") + character.emit_signal("reached") + return + elif compare_pos(): + character.think("Moved/Not Moving") + character.emit_signal("not_moving") + return + #elif character.get_internal_velocity() != Vector2(0.0,0.0) and character.get_velocity() != character.get_internal_velocity(): + # var sdfoia = character.get_internal_velocity() + # var posjk = character.get_velocity() + # character.think("Moved/Wrong Directiaon") + # character.emit_signal("wrong_direction") + else: + return + diff --git a/icon.png b/icon.png new file mode 100644 index 0000000..c98fbb6 Binary files /dev/null and b/icon.png differ diff --git a/icon.png.import b/icon.png.import new file mode 100644 index 0000000..96cbf46 --- /dev/null +++ b/icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..9e59f24 --- /dev/null +++ b/project.godot @@ -0,0 +1,64 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ + +} + +[application] + +config/name="CoyoteHunt" +run/main_scene="res://Main.tscn" +config/icon="res://icon.png" + +[autoload] + +KnowledgeBase="*res://singletons/KnowledgeBase.gd" +MessageBus="*res://singletons/MessageBus.gd" + +[display] + +window/size/width=800 + +[input] + +ui_left={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"unicode":0,"echo":false,"script":null) + ] +} +ui_right={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"unicode":0,"echo":false,"script":null) + ] +} +ui_up={ +"deadzone": 0.5, +"events": [ Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"unicode":0,"echo":false,"script":null) + ] +} +ui_down={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"unicode":0,"echo":false,"script":null) + ] +} + +[rendering] + +environment/default_environment="res://default_env.tres" diff --git a/res/character/girl.png b/res/character/girl.png new file mode 100644 index 0000000..8005252 Binary files /dev/null and b/res/character/girl.png differ diff --git a/res/character/girl.png.import b/res/character/girl.png.import new file mode 100644 index 0000000..fc93e28 --- /dev/null +++ b/res/character/girl.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/girl.png-5c2af37ae11c98f8397e9a8eaab71dd1.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://res/character/girl.png" +dest_files=[ "res://.import/girl.png-5c2af37ae11c98f8397e9a8eaab71dd1.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/res/character/grillman.png b/res/character/grillman.png new file mode 100644 index 0000000..c3fd12a Binary files /dev/null and b/res/character/grillman.png differ diff --git a/res/character/grillman.png.import b/res/character/grillman.png.import new file mode 100644 index 0000000..4507095 --- /dev/null +++ b/res/character/grillman.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/grillman.png-c24e905f4dc4b0bc9b80d248d20fd5f8.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://res/character/grillman.png" +dest_files=[ "res://.import/grillman.png-c24e905f4dc4b0bc9b80d248d20fd5f8.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/res/character/randos.png b/res/character/randos.png new file mode 100644 index 0000000..e07266b Binary files /dev/null and b/res/character/randos.png differ diff --git a/res/character/randos.png.import b/res/character/randos.png.import new file mode 100644 index 0000000..b8429b4 --- /dev/null +++ b/res/character/randos.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/randos.png-4e3607b2f3cdf1500e4bae5ce47ac792.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://res/character/randos.png" +dest_files=[ "res://.import/randos.png-4e3607b2f3cdf1500e4bae5ce47ac792.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/res/character/slime.png b/res/character/slime.png new file mode 100644 index 0000000..63441e2 Binary files /dev/null and b/res/character/slime.png differ diff --git a/res/character/slime.png.import b/res/character/slime.png.import new file mode 100644 index 0000000..615da82 --- /dev/null +++ b/res/character/slime.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/slime.png-e17719a26081aa14f4130feaf6acfe2e.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://res/character/slime.png" +dest_files=[ "res://.import/slime.png-e17719a26081aa14f4130feaf6acfe2e.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/res/character/wolf.png b/res/character/wolf.png new file mode 100644 index 0000000..54661b5 Binary files /dev/null and b/res/character/wolf.png differ diff --git a/res/character/wolf.png.import b/res/character/wolf.png.import new file mode 100644 index 0000000..c7718b5 --- /dev/null +++ b/res/character/wolf.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/wolf.png-c2fcd269881e6c06a187fddcc690bc9a.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://res/character/wolf.png" +dest_files=[ "res://.import/wolf.png-c2fcd269881e6c06a187fddcc690bc9a.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/res/level/graveyard.png b/res/level/graveyard.png new file mode 100644 index 0000000..d738088 Binary files /dev/null and b/res/level/graveyard.png differ diff --git a/res/level/graveyard.png.import b/res/level/graveyard.png.import new file mode 100644 index 0000000..6ee19e9 --- /dev/null +++ b/res/level/graveyard.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/graveyard.png-ce02690c87ca77f6f94fa4f24f015aa8.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://res/level/graveyard.png" +dest_files=[ "res://.import/graveyard.png-ce02690c87ca77f6f94fa4f24f015aa8.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/res/level/lake.png b/res/level/lake.png new file mode 100644 index 0000000..86cf629 Binary files /dev/null and b/res/level/lake.png differ diff --git a/res/level/lake.png.import b/res/level/lake.png.import new file mode 100644 index 0000000..32246d2 --- /dev/null +++ b/res/level/lake.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/lake.png-05c24eba17f93b94b17afad1068b707b.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://res/level/lake.png" +dest_files=[ "res://.import/lake.png-05c24eba17f93b94b17afad1068b707b.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/res/level/library.png b/res/level/library.png new file mode 100644 index 0000000..4353bc6 Binary files /dev/null and b/res/level/library.png differ diff --git a/res/level/library.png.import b/res/level/library.png.import new file mode 100644 index 0000000..9a7ec7a --- /dev/null +++ b/res/level/library.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/library.png-7570102310ea890595efa260efa49a5b.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://res/level/library.png" +dest_files=[ "res://.import/library.png-7570102310ea890595efa260efa49a5b.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/res/level/neighbor.png b/res/level/neighbor.png new file mode 100644 index 0000000..24bfe00 Binary files /dev/null and b/res/level/neighbor.png differ diff --git a/res/level/neighbor.png.import b/res/level/neighbor.png.import new file mode 100644 index 0000000..8ed0dc8 --- /dev/null +++ b/res/level/neighbor.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/neighbor.png-2e621ef67fcfd4f19668ff0b81af7224.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://res/level/neighbor.png" +dest_files=[ "res://.import/neighbor.png-2e621ef67fcfd4f19668ff0b81af7224.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/res/level/sewers.png b/res/level/sewers.png new file mode 100644 index 0000000..34f8eaf Binary files /dev/null and b/res/level/sewers.png differ diff --git a/res/level/sewers.png.import b/res/level/sewers.png.import new file mode 100644 index 0000000..36887c7 --- /dev/null +++ b/res/level/sewers.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/sewers.png-c8c581ec69472520d44800f676cfa99e.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://res/level/sewers.png" +dest_files=[ "res://.import/sewers.png-c8c581ec69472520d44800f676cfa99e.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/res/level/warehouse.png b/res/level/warehouse.png new file mode 100644 index 0000000..1645b4c Binary files /dev/null and b/res/level/warehouse.png differ diff --git a/res/level/warehouse.png.import b/res/level/warehouse.png.import new file mode 100644 index 0000000..3d11d32 --- /dev/null +++ b/res/level/warehouse.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/warehouse.png-d6982bccd64eb6fb49faea76f08d16ee.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://res/level/warehouse.png" +dest_files=[ "res://.import/warehouse.png-d6982bccd64eb6fb49faea76f08d16ee.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/singletons/KnowledgeBase.gd b/singletons/KnowledgeBase.gd new file mode 100644 index 0000000..562720b --- /dev/null +++ b/singletons/KnowledgeBase.gd @@ -0,0 +1,107 @@ +extends Node + +# Variables +## Other Data +var logic_time = 1 +var draw_time = 1 +## Handlers +#var encountered_handler = load("res://events/knowledge/Encountered.tscn").instance() +#var lost_handler = load("res://events/knowledge/Lost.tscn").instance() +#var learned_handler = load("res://events/knowledge/Learned.tscn").instance() +#var forgot_handler = load("res://events/knowledge/Forgot.tscn").instance() +## Keys +const bingo_knowledge = [] +const BINGO_IT4_KEY = "smb001" +const BINGO_LVL_KEY = "ml1000" +const CHARACTER_CREATION_KEY = "smc001" +const ACT_GROUP = ['act100','act200','act001','act002'] # Plastic Tub +const IT3_GROUP = ['it3000','it3001','it3002','it3003','it3004'] # Three-Leaf Clover +const IT4_GROUP = ['it4000','it4001','it4002','it4003','it4004'] # Four-Leaf Clover +const CCB_GROUP = ['ccb000','ccb001','ccb002','ccb003'] # Bad Cat +const CCN_GROUP = ['ccn000','ccn001','ccn002','ccn003'] # Neighborhood Cat +const CMC_GROUP = ['cmc000','cmc001','cmc002','cmc003'] # Chloe +const CMN_GROUP = ['cmn000','cmn001','cmn002','cmn003'] # Night +## Knowledge Base +var knowledge = { + # code: ["title", "desc", ["tags"], "source", "learned?"] + 'a00000': ['teacti', 'teacti', ["term"], "", false], # activator + 'ac0000': ['tecont', 'tecont', ["term"], "", false], # container + 'act100': ['actubb', 'deactubb', ["activator"], "", false], # blue plastic tub + 'act200': ['actubg', 'deactubg', ["activator"], "", false], # green plastic tub + 'act001': ['actubb', 'deactubb', ["activator","category"], "", false], # plastic tub category + 'act002': ['actubb', 'deactubb', ["activator","subcategory"], "", false], # plastic tub subcategory + 'c00000': ['techar', 'techar', ["term"], "", false], # character + 'cc0000': ['facata', 'facata', ["faction"], "", false], # cat + 'ccn000': ['chneig', 'dechneig', ["character"], "", false], # neighborhood cat + 'ccn001': ['tecate', 'techar', ["ccb000","category"], "", true], # neighborhood cat category + 'ccn002': ['tefact', 'facata', ["ccb000","faction"], "", false], # neighborhood cat faction + 'ccn003': ['tehost', 'teally', ["ccb000","hostility"], "", false], # neighborhood cat hostility + 'ccb000': ['chbadc', 'dechbadc', ["character"], "", false], # bad cat + 'ccb001': ['tecate', 'techar', ["ccb000","category"], "", true], # bad cat category + 'ccb002': ['tefact', 'facata', ["ccb000","faction"], "", false], # bad cat faction + 'ccb003': ['tehost', 'tefoea', ["ccb000","hostility"], "", false], # bad cat hostility + 'ch0000': ['fahuma', 'fahuma', ["faction"], "", false], # human + 'cmc000': ['chchlo', 'dechchlo', ["character"], "", false], # chloe + 'cmc001': ['tecate', 'techar', ["cmc000","category"], "", true], # chloe category + 'cmc002': ['tefact', 'fashma', ["cmc000","faction"], "", false], # chloe faction + 'cmc003': ['tehost', 'teally', ["cmc000","hostility"], "", false], # chloe hostility + 'cmn000': ['chnigh', 'dechnigh', ["character"], "", false], # night + 'cmn001': ['tecate', 'techar', ["cmc000","category"], "", true], # night category + 'cmn002': ['tefact', 'tedoct', ["cmc000","faction"], "", false], # night faction + 'cmn003': ['tehost', 'teally', ["cmc000","hostility"], "", false], # night hostility + 'cmp001': ['chheli', 'dechheli', ["character"], "", false], # player + 'i00000': ['teitem', 'teitem', ["term"], "", false], # item + 'it0000': ['ictrin', 'ictrin', ["item_category"], "", false], # item + 'it3000': ['it3lea', 'deit3lea', ["item"], "", false], # three-leaf clover + 'it3001': ['tecate', 'caitem', ["it3000","category"], "", true], # three-leaf clover category + 'it3002': ['tesubc', 'ictrin', ["it3000","subcategory"], "", false], # three-leaf clover subcategory + 'it3003': ['terari', 'irmund', ["it3000","rarity"], "", false], # three-leaf clover rarity + 'it3004': ['tevalu', 'tevalu', ["it3000","value"], "", false], # three-leaf clover value + 'it4000': ['it4lea', 'deit4lea', ["item"], "", false], # four-leaf clover + 'it4001': ['tecate', 'caitem', ["it4000","category"], "", true], # four-leaf clover category + 'it4002': ['tesubc', 'ictrin', ["it4000","subcategory"], "", false], # four-leaf clover subcategory + 'it4003': ['terari', 'irrare', ["it4000","rarity"], "", false], # four-leaf clover rarity + 'it4004': ['tevalu', 'tevalu', ["it4000","value"], "", false], # four-leaf clover value + 'ml0000': ['techlv', 'techlv', ["term"], "", true], # level + 'ml1000': ['techle', 'techle', ["techlv"], "", false], # level 1 + 'sm0000': ['wogati', 'wogati', ["term"], "", false], # main story + 'smb000': ['evmibi', 'evmibi', ['sm0000'], "", false], # bingo + 'smb001': ['it4lea', 'deit4lea', ['smb001'], "", false], # bingo - four-leaf clover pickup + 'smc000': ['evchcr', 'evchcr', ["sm0000"], "", false], # character creation + 'smc001': ['evchcr', 'evchcr', ["smc000"], "", false] # character created + } + +func learn(new_content): + knowledge[new_content[0]][3] = new_content[1] # set source + knowledge[new_content[0]][4] = true # set knowledge as learned + MessageBus.publish("learned", new_content[0]) # reap benefits + +func forget(old_content): + print_debug("KnowledgeBase: Forgetting " + old_content) + knowledge[old_content][4] = false # set knowledge as learned + MessageBus.publish("forgot", old_content) # reap benefits + +func do_know(key): + #print_debug(key + " is " + str(knowledge[key][4])) + return knowledge[key][4] + +func has_tag(key,tag): + return tag in knowledge[key][2] + +# Ready +func _ready(): + return +# add_child(learned_handler) +# add_child(forgot_handler) +# add_child(encountered_handler) +# MessageBus.subscribe("learned", learned_handler) +# MessageBus.subscribe("forgot", lost_handler) +# MessageBus.subscribe("encountered", encountered_handler) + +# Serialize +func serialize(): + return knowledge + +# Deserialize +func deserialize(dict): + knowledge = dict diff --git a/singletons/MessageBus.gd b/singletons/MessageBus.gd new file mode 100644 index 0000000..917752a --- /dev/null +++ b/singletons/MessageBus.gd @@ -0,0 +1,82 @@ +extends Node + +# Message Bus + +# Signals +#signal published() + +# Variables +#var Mercur = load("res://entity/Mercur/Mercur.tscn").instance() # mail god +var current_ref_id = -1 +var topicDict = {} +var approached_topic = "approached" +#var approached_handler = load("res://Events/approached/Approach.tscn").instance() +var died_topic = "died" +#var died_handler = load("res://Events/died/Died.tscn").instance() +var duration = "duration" +var earned_xp_topic = "xp_earned" +#var earned_xp_handler = load("res://Events/xp_changed/EarnedXP.tscn").instance() +var equipped_skill_topic = "skill_equipped" +#var equipped_skill_handler = load("res://Events/skill_equipped/EquipSkill.tscn").instance() +var gained_level_topic = "level_gained" +#var gained_level_handler = load("res://Events/xp_changed/GainLevel.tscn").instance() +var interacted_topic = "interacted" +#var interacted_handler = load("res://Events/character_interacted/Interact.tscn").instance() +var item_picked_up_topic = "item_picked_up" +#var learned_item_handler = load("res://Events/item_picked_up/LearnItem/LearnItem.tscn").instance() +var learned_skill_topic = "skill_learned" +#var learned_skill_handler = load("res://Events/skill_learned/LearnSkill.tscn").instance() +var moved_handler = load("res://events/moved/Char.tscn").instance() +var moved_topic = "moved" + +func designate_ref_id(): + current_ref_id += 1 + return current_ref_id + +# Take data + hand off to Event Handlers subscribed to event +func publish(topic, data): + if !topicDict.has(topic): +# print_debug("publish - unknown topic: " + topic) + return + for handler in topicDict[topic]: + handler.handle(data) + +# Handler begins listening for topic +func subscribe(topic, handler): + if !topicDict.has(topic): +# print_debug("subscribe - new topic: " + topic) + topicDict[topic] = [] + #return + topicDict[topic].append(handler) + handler.connect("tree_exited", self, "_on_handler_tree_exited", [topic, handler]) + +# Handler no longer listens for topic +func unsubscribe(topic, handler): + if !topicDict.has(topic): +# print_debug("Cannot unsubscribe handler that does not exist") + return + topicDict[topic].erase(handler) + +func _on_handler_tree_exited(topic, handler): + unsubscribe(topic, handler) + +# if this character exits tree +func _on_tree_exited(): + #unsubscribe(died_topic, died_handler) + #unsubscribe(earned_xp_topic, earned_xp_handler) + #unsubscribe(gained_level_topic, gained_level_handler) + #subscribe(gained_level_topic, gained_level_handler) + #unsubscribe(item_picked_up_topic, learned_item_handler) + #unsubscribe(learned_skill_topic, learned_skill_handler) + unsubscribe(moved_topic, moved_handler) + +func _ready(): + #subscribe(died_topic, died_handler) + #subscribe(earned_xp_topic, earned_xp_handler) + #subscribe(gained_level_topic, gained_level_handler) + #subscribe(interacted_topic, interacted_handler) + #subscribe(item_picked_up_topic, learned_item_handler) + #subscribe(learned_skill_topic, learned_skill_handler) + subscribe(moved_topic, moved_handler) +# connect("tree_exited", self, "_on_tree_exited") +