commit 285c302f3dc3b435ac1489e004c9fc0432d9b3be Author: altenburger Date: Tue Oct 10 10:28:08 2023 +0200 commit 1 diff --git a/Client/.import/.gdignore b/Client/.import/.gdignore new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Client/.import/.gdignore @@ -0,0 +1 @@ + diff --git a/Client/.import/02.jpg-c7ea5b0e780647a14a4c9a47508a7798.md5 b/Client/.import/02.jpg-c7ea5b0e780647a14a4c9a47508a7798.md5 new file mode 100644 index 0000000..cd35151 --- /dev/null +++ b/Client/.import/02.jpg-c7ea5b0e780647a14a4c9a47508a7798.md5 @@ -0,0 +1,3 @@ +source_md5="94adcab0e6e2712b8c937402a0c33092" +dest_md5="b6cfbb9b93b255c94a98bf2362da6f07" + diff --git a/Client/.import/02.jpg-c7ea5b0e780647a14a4c9a47508a7798.stex b/Client/.import/02.jpg-c7ea5b0e780647a14a4c9a47508a7798.stex new file mode 100644 index 0000000..3ee1582 Binary files /dev/null and b/Client/.import/02.jpg-c7ea5b0e780647a14a4c9a47508a7798.stex differ diff --git a/Client/.import/196782359-fb3988e1-19e4-4010-af5a-97e800408cee.png-a4bf87545ab67dbe4f72f14e1613e9f1.md5 b/Client/.import/196782359-fb3988e1-19e4-4010-af5a-97e800408cee.png-a4bf87545ab67dbe4f72f14e1613e9f1.md5 new file mode 100644 index 0000000..10fd371 --- /dev/null +++ b/Client/.import/196782359-fb3988e1-19e4-4010-af5a-97e800408cee.png-a4bf87545ab67dbe4f72f14e1613e9f1.md5 @@ -0,0 +1,3 @@ +source_md5="d1cad96dd9e44d37fc620cb21e1a8f15" +dest_md5="a35c8ad1ea512185a2f41c292b1c4be2" + diff --git a/Client/.import/196782359-fb3988e1-19e4-4010-af5a-97e800408cee.png-a4bf87545ab67dbe4f72f14e1613e9f1.stex b/Client/.import/196782359-fb3988e1-19e4-4010-af5a-97e800408cee.png-a4bf87545ab67dbe4f72f14e1613e9f1.stex new file mode 100644 index 0000000..21fced7 Binary files /dev/null and b/Client/.import/196782359-fb3988e1-19e4-4010-af5a-97e800408cee.png-a4bf87545ab67dbe4f72f14e1613e9f1.stex differ diff --git a/Client/.import/196792940-a9ce2d04-aed7-424a-a9ff-9e035078bedf.png-9a4b31a39bbdc22ad14ef40b0edda1b9.md5 b/Client/.import/196792940-a9ce2d04-aed7-424a-a9ff-9e035078bedf.png-9a4b31a39bbdc22ad14ef40b0edda1b9.md5 new file mode 100644 index 0000000..511b90e --- /dev/null +++ b/Client/.import/196792940-a9ce2d04-aed7-424a-a9ff-9e035078bedf.png-9a4b31a39bbdc22ad14ef40b0edda1b9.md5 @@ -0,0 +1,3 @@ +source_md5="531dd2a70fab6cde784fcfcd62bf945f" +dest_md5="263361222f8e921866776212636fd330" + diff --git a/Client/.import/196792940-a9ce2d04-aed7-424a-a9ff-9e035078bedf.png-9a4b31a39bbdc22ad14ef40b0edda1b9.stex b/Client/.import/196792940-a9ce2d04-aed7-424a-a9ff-9e035078bedf.png-9a4b31a39bbdc22ad14ef40b0edda1b9.stex new file mode 100644 index 0000000..f666418 Binary files /dev/null and b/Client/.import/196792940-a9ce2d04-aed7-424a-a9ff-9e035078bedf.png-9a4b31a39bbdc22ad14ef40b0edda1b9.stex differ diff --git a/Client/.import/5_3.png-ba1d77a750a190115587242ac86deee4.md5 b/Client/.import/5_3.png-ba1d77a750a190115587242ac86deee4.md5 new file mode 100644 index 0000000..e2cb753 --- /dev/null +++ b/Client/.import/5_3.png-ba1d77a750a190115587242ac86deee4.md5 @@ -0,0 +1,3 @@ +source_md5="3728dec6e3c6487a7531a3c1eccb8c45" +dest_md5="a080722ea4fe98ce2288d8bdeea2f421" + diff --git a/Client/.import/5_3.png-ba1d77a750a190115587242ac86deee4.stex b/Client/.import/5_3.png-ba1d77a750a190115587242ac86deee4.stex new file mode 100644 index 0000000..985f918 Binary files /dev/null and b/Client/.import/5_3.png-ba1d77a750a190115587242ac86deee4.stex differ diff --git a/Client/.import/Animal.bmp-3522f3ccc3bc4efd982090da10371a73.md5 b/Client/.import/Animal.bmp-3522f3ccc3bc4efd982090da10371a73.md5 new file mode 100644 index 0000000..d1a062a --- /dev/null +++ b/Client/.import/Animal.bmp-3522f3ccc3bc4efd982090da10371a73.md5 @@ -0,0 +1,3 @@ +source_md5="c9b989c84064e54d60b2f617e36899c7" +dest_md5="21c6af0b2dfddc2506994413a2972d87" + diff --git a/Client/.import/Animal.bmp-3522f3ccc3bc4efd982090da10371a73.stex b/Client/.import/Animal.bmp-3522f3ccc3bc4efd982090da10371a73.stex new file mode 100644 index 0000000..25c7b6b Binary files /dev/null and b/Client/.import/Animal.bmp-3522f3ccc3bc4efd982090da10371a73.stex differ diff --git a/Client/.import/Animal1.bmp-484f6285cec597ced611104e208fbe69.md5 b/Client/.import/Animal1.bmp-484f6285cec597ced611104e208fbe69.md5 new file mode 100644 index 0000000..c334108 --- /dev/null +++ b/Client/.import/Animal1.bmp-484f6285cec597ced611104e208fbe69.md5 @@ -0,0 +1,3 @@ +source_md5="709737d122a4b0d2a155d8a373441ef0" +dest_md5="da9dba9021c713b3e48e1c3863457eaa" + diff --git a/Client/.import/Animal1.bmp-484f6285cec597ced611104e208fbe69.stex b/Client/.import/Animal1.bmp-484f6285cec597ced611104e208fbe69.stex new file mode 100644 index 0000000..d213a21 Binary files /dev/null and b/Client/.import/Animal1.bmp-484f6285cec597ced611104e208fbe69.stex differ diff --git a/Client/.import/Animal2.bmp-95f2d79e534ec99e841a04a16cd90664.md5 b/Client/.import/Animal2.bmp-95f2d79e534ec99e841a04a16cd90664.md5 new file mode 100644 index 0000000..016dd03 --- /dev/null +++ b/Client/.import/Animal2.bmp-95f2d79e534ec99e841a04a16cd90664.md5 @@ -0,0 +1,3 @@ +source_md5="c15ade16eaaa0d817931e4ee53f4297c" +dest_md5="a1638693f448e6b2c6fe6538ed0fe885" + diff --git a/Client/.import/Animal2.bmp-95f2d79e534ec99e841a04a16cd90664.stex b/Client/.import/Animal2.bmp-95f2d79e534ec99e841a04a16cd90664.stex new file mode 100644 index 0000000..36f5e5f Binary files /dev/null and b/Client/.import/Animal2.bmp-95f2d79e534ec99e841a04a16cd90664.stex differ diff --git a/Client/.import/Animal3.bmp-f28cce3a91397dec074f80be0964da19.md5 b/Client/.import/Animal3.bmp-f28cce3a91397dec074f80be0964da19.md5 new file mode 100644 index 0000000..275f60a --- /dev/null +++ b/Client/.import/Animal3.bmp-f28cce3a91397dec074f80be0964da19.md5 @@ -0,0 +1,3 @@ +source_md5="c571418f5f68d7ab76c39f2e08b87da2" +dest_md5="3e155678ccb2edd9fa100e07b268bb35" + diff --git a/Client/.import/Animal3.bmp-f28cce3a91397dec074f80be0964da19.stex b/Client/.import/Animal3.bmp-f28cce3a91397dec074f80be0964da19.stex new file mode 100644 index 0000000..6dee646 Binary files /dev/null and b/Client/.import/Animal3.bmp-f28cce3a91397dec074f80be0964da19.stex differ diff --git a/Client/.import/Animal4.bmp-94095bcc5938ffa45079f119a3af0de0.md5 b/Client/.import/Animal4.bmp-94095bcc5938ffa45079f119a3af0de0.md5 new file mode 100644 index 0000000..6272c6e --- /dev/null +++ b/Client/.import/Animal4.bmp-94095bcc5938ffa45079f119a3af0de0.md5 @@ -0,0 +1,3 @@ +source_md5="8e763fa3b6abe1daeac4169651dc7d1a" +dest_md5="30d3d28cbda5e83cf3a16a55de98d4b7" + diff --git a/Client/.import/Animal4.bmp-94095bcc5938ffa45079f119a3af0de0.stex b/Client/.import/Animal4.bmp-94095bcc5938ffa45079f119a3af0de0.stex new file mode 100644 index 0000000..11b296b Binary files /dev/null and b/Client/.import/Animal4.bmp-94095bcc5938ffa45079f119a3af0de0.stex differ diff --git a/Client/.import/AnimalBite1.bmp-c1f83c1a96aff18edd186a13b04634d0.md5 b/Client/.import/AnimalBite1.bmp-c1f83c1a96aff18edd186a13b04634d0.md5 new file mode 100644 index 0000000..bd562b9 --- /dev/null +++ b/Client/.import/AnimalBite1.bmp-c1f83c1a96aff18edd186a13b04634d0.md5 @@ -0,0 +1,3 @@ +source_md5="8a81a2c24e96aa08919344cf175c9d6e" +dest_md5="a84146f22078c198d811968d84a37c96" + diff --git a/Client/.import/AnimalBite1.bmp-c1f83c1a96aff18edd186a13b04634d0.stex b/Client/.import/AnimalBite1.bmp-c1f83c1a96aff18edd186a13b04634d0.stex new file mode 100644 index 0000000..c48d2c1 Binary files /dev/null and b/Client/.import/AnimalBite1.bmp-c1f83c1a96aff18edd186a13b04634d0.stex differ diff --git a/Client/.import/AnimalBite2.bmp-0a4ad3eadc25e6f2c33b64df7252ca96.md5 b/Client/.import/AnimalBite2.bmp-0a4ad3eadc25e6f2c33b64df7252ca96.md5 new file mode 100644 index 0000000..b11d18b --- /dev/null +++ b/Client/.import/AnimalBite2.bmp-0a4ad3eadc25e6f2c33b64df7252ca96.md5 @@ -0,0 +1,3 @@ +source_md5="c368592ff4066b5f80fff3521b79a923" +dest_md5="ac993aa82ad4160c22973735e5311b7b" + diff --git a/Client/.import/AnimalBite2.bmp-0a4ad3eadc25e6f2c33b64df7252ca96.stex b/Client/.import/AnimalBite2.bmp-0a4ad3eadc25e6f2c33b64df7252ca96.stex new file mode 100644 index 0000000..a4b5db3 Binary files /dev/null and b/Client/.import/AnimalBite2.bmp-0a4ad3eadc25e6f2c33b64df7252ca96.stex differ diff --git a/Client/.import/AnimalBite3.bmp-bac61400c89ecb220deb7115419b5008.md5 b/Client/.import/AnimalBite3.bmp-bac61400c89ecb220deb7115419b5008.md5 new file mode 100644 index 0000000..2200954 --- /dev/null +++ b/Client/.import/AnimalBite3.bmp-bac61400c89ecb220deb7115419b5008.md5 @@ -0,0 +1,3 @@ +source_md5="546b3fbe7a9d3a5756a27e25053909db" +dest_md5="6be76d4b6e9a66591562679d961af5a8" + diff --git a/Client/.import/AnimalBite3.bmp-bac61400c89ecb220deb7115419b5008.stex b/Client/.import/AnimalBite3.bmp-bac61400c89ecb220deb7115419b5008.stex new file mode 100644 index 0000000..a0a1bd0 Binary files /dev/null and b/Client/.import/AnimalBite3.bmp-bac61400c89ecb220deb7115419b5008.stex differ diff --git a/Client/.import/AnimalWalk1.bmp-958f199cd39125f4c0a1ca03f9ca5103.md5 b/Client/.import/AnimalWalk1.bmp-958f199cd39125f4c0a1ca03f9ca5103.md5 new file mode 100644 index 0000000..c334108 --- /dev/null +++ b/Client/.import/AnimalWalk1.bmp-958f199cd39125f4c0a1ca03f9ca5103.md5 @@ -0,0 +1,3 @@ +source_md5="709737d122a4b0d2a155d8a373441ef0" +dest_md5="da9dba9021c713b3e48e1c3863457eaa" + diff --git a/Client/.import/AnimalWalk1.bmp-958f199cd39125f4c0a1ca03f9ca5103.stex b/Client/.import/AnimalWalk1.bmp-958f199cd39125f4c0a1ca03f9ca5103.stex new file mode 100644 index 0000000..d213a21 Binary files /dev/null and b/Client/.import/AnimalWalk1.bmp-958f199cd39125f4c0a1ca03f9ca5103.stex differ diff --git a/Client/.import/AnimalWalk2.bmp-12b4abbfc0d0d223d5a72b9087405a0d.md5 b/Client/.import/AnimalWalk2.bmp-12b4abbfc0d0d223d5a72b9087405a0d.md5 new file mode 100644 index 0000000..016dd03 --- /dev/null +++ b/Client/.import/AnimalWalk2.bmp-12b4abbfc0d0d223d5a72b9087405a0d.md5 @@ -0,0 +1,3 @@ +source_md5="c15ade16eaaa0d817931e4ee53f4297c" +dest_md5="a1638693f448e6b2c6fe6538ed0fe885" + diff --git a/Client/.import/AnimalWalk2.bmp-12b4abbfc0d0d223d5a72b9087405a0d.stex b/Client/.import/AnimalWalk2.bmp-12b4abbfc0d0d223d5a72b9087405a0d.stex new file mode 100644 index 0000000..36f5e5f Binary files /dev/null and b/Client/.import/AnimalWalk2.bmp-12b4abbfc0d0d223d5a72b9087405a0d.stex differ diff --git a/Client/.import/AnimalWalk3.bmp-47cfb2fb4d594c8cef49d70a23d949fe.md5 b/Client/.import/AnimalWalk3.bmp-47cfb2fb4d594c8cef49d70a23d949fe.md5 new file mode 100644 index 0000000..275f60a --- /dev/null +++ b/Client/.import/AnimalWalk3.bmp-47cfb2fb4d594c8cef49d70a23d949fe.md5 @@ -0,0 +1,3 @@ +source_md5="c571418f5f68d7ab76c39f2e08b87da2" +dest_md5="3e155678ccb2edd9fa100e07b268bb35" + diff --git a/Client/.import/AnimalWalk3.bmp-47cfb2fb4d594c8cef49d70a23d949fe.stex b/Client/.import/AnimalWalk3.bmp-47cfb2fb4d594c8cef49d70a23d949fe.stex new file mode 100644 index 0000000..6dee646 Binary files /dev/null and b/Client/.import/AnimalWalk3.bmp-47cfb2fb4d594c8cef49d70a23d949fe.stex differ diff --git a/Client/.import/AnimalWalk4.bmp-d61b52afd8c158bc9762d6ee6d47e5be.md5 b/Client/.import/AnimalWalk4.bmp-d61b52afd8c158bc9762d6ee6d47e5be.md5 new file mode 100644 index 0000000..6272c6e --- /dev/null +++ b/Client/.import/AnimalWalk4.bmp-d61b52afd8c158bc9762d6ee6d47e5be.md5 @@ -0,0 +1,3 @@ +source_md5="8e763fa3b6abe1daeac4169651dc7d1a" +dest_md5="30d3d28cbda5e83cf3a16a55de98d4b7" + diff --git a/Client/.import/AnimalWalk4.bmp-d61b52afd8c158bc9762d6ee6d47e5be.stex b/Client/.import/AnimalWalk4.bmp-d61b52afd8c158bc9762d6ee6d47e5be.stex new file mode 100644 index 0000000..11b296b Binary files /dev/null and b/Client/.import/AnimalWalk4.bmp-d61b52afd8c158bc9762d6ee6d47e5be.stex differ diff --git a/Client/.import/Menu.png-52f583372807917b5904b192544d8367.md5 b/Client/.import/Menu.png-52f583372807917b5904b192544d8367.md5 new file mode 100644 index 0000000..9e80d3e --- /dev/null +++ b/Client/.import/Menu.png-52f583372807917b5904b192544d8367.md5 @@ -0,0 +1,3 @@ +source_md5="de5f2cc0e7bf62a05c3fce8d23d28b03" +dest_md5="1a2444408128401dedd9efabd321a992" + diff --git a/Client/.import/Menu.png-52f583372807917b5904b192544d8367.stex b/Client/.import/Menu.png-52f583372807917b5904b192544d8367.stex new file mode 100644 index 0000000..c79e94b Binary files /dev/null and b/Client/.import/Menu.png-52f583372807917b5904b192544d8367.stex differ diff --git a/Client/.import/Neue Bitmap.bmp-a92ba4f9cfd35c1e0ce4e2fd187dd43f.md5 b/Client/.import/Neue Bitmap.bmp-a92ba4f9cfd35c1e0ce4e2fd187dd43f.md5 new file mode 100644 index 0000000..cfe73d6 --- /dev/null +++ b/Client/.import/Neue Bitmap.bmp-a92ba4f9cfd35c1e0ce4e2fd187dd43f.md5 @@ -0,0 +1 @@ +source_md5="d41d8cd98f00b204e9800998ecf8427e" diff --git a/Client/.import/NormalMap(1) copy 2.png-cef6c2c1f557140bb274a5aee92a2435.md5 b/Client/.import/NormalMap(1) copy 2.png-cef6c2c1f557140bb274a5aee92a2435.md5 new file mode 100644 index 0000000..e289518 --- /dev/null +++ b/Client/.import/NormalMap(1) copy 2.png-cef6c2c1f557140bb274a5aee92a2435.md5 @@ -0,0 +1,3 @@ +source_md5="79ad6481acdf2f58c180c0ca36dac866" +dest_md5="72fb98c6703d3d42ab1682f66b78753c" + diff --git a/Client/.import/NormalMap(1) copy 2.png-cef6c2c1f557140bb274a5aee92a2435.stex b/Client/.import/NormalMap(1) copy 2.png-cef6c2c1f557140bb274a5aee92a2435.stex new file mode 100644 index 0000000..b6766cb Binary files /dev/null and b/Client/.import/NormalMap(1) copy 2.png-cef6c2c1f557140bb274a5aee92a2435.stex differ diff --git a/Client/.import/NormalMap(1) copy 3.png-14d12b1b55471da78ddfd2f843d50196.md5 b/Client/.import/NormalMap(1) copy 3.png-14d12b1b55471da78ddfd2f843d50196.md5 new file mode 100644 index 0000000..b0af597 --- /dev/null +++ b/Client/.import/NormalMap(1) copy 3.png-14d12b1b55471da78ddfd2f843d50196.md5 @@ -0,0 +1,3 @@ +source_md5="3f2c6c86b28ff4f4ed1933dcfe893fad" +dest_md5="94da9a588dbaaf805e77709d516b50ac" + diff --git a/Client/.import/NormalMap(1) copy 3.png-14d12b1b55471da78ddfd2f843d50196.stex b/Client/.import/NormalMap(1) copy 3.png-14d12b1b55471da78ddfd2f843d50196.stex new file mode 100644 index 0000000..74c1a23 Binary files /dev/null and b/Client/.import/NormalMap(1) copy 3.png-14d12b1b55471da78ddfd2f843d50196.stex differ diff --git a/Client/.import/NormalMap(1) copy.png-3678957c0e36f19d8f0383e82251051a.md5 b/Client/.import/NormalMap(1) copy.png-3678957c0e36f19d8f0383e82251051a.md5 new file mode 100644 index 0000000..af63420 --- /dev/null +++ b/Client/.import/NormalMap(1) copy.png-3678957c0e36f19d8f0383e82251051a.md5 @@ -0,0 +1,3 @@ +source_md5="4f6c927e585b190142a7fcd601ecf29e" +dest_md5="f8a7ea200c1e94fbb139b87b741e1570" + diff --git a/Client/.import/NormalMap(1) copy.png-3678957c0e36f19d8f0383e82251051a.stex b/Client/.import/NormalMap(1) copy.png-3678957c0e36f19d8f0383e82251051a.stex new file mode 100644 index 0000000..c81c38b Binary files /dev/null and b/Client/.import/NormalMap(1) copy.png-3678957c0e36f19d8f0383e82251051a.stex differ diff --git a/Client/.import/NormalMap(1).png-e9b5a8aec80aae8752f7ca2eb046d39f.md5 b/Client/.import/NormalMap(1).png-e9b5a8aec80aae8752f7ca2eb046d39f.md5 new file mode 100644 index 0000000..9d907ba --- /dev/null +++ b/Client/.import/NormalMap(1).png-e9b5a8aec80aae8752f7ca2eb046d39f.md5 @@ -0,0 +1,3 @@ +source_md5="8b476f33b04fee97ee0d4be1bc5076a5" +dest_md5="465299916e16a940555f6e4a72f72458" + diff --git a/Client/.import/NormalMap(1).png-e9b5a8aec80aae8752f7ca2eb046d39f.stex b/Client/.import/NormalMap(1).png-e9b5a8aec80aae8752f7ca2eb046d39f.stex new file mode 100644 index 0000000..00c299e Binary files /dev/null and b/Client/.import/NormalMap(1).png-e9b5a8aec80aae8752f7ca2eb046d39f.stex differ diff --git a/Client/.import/Oger 24.bmp-285ba435edf9c9f1e28b8f07fa25bbe5.md5 b/Client/.import/Oger 24.bmp-285ba435edf9c9f1e28b8f07fa25bbe5.md5 new file mode 100644 index 0000000..c58562d --- /dev/null +++ b/Client/.import/Oger 24.bmp-285ba435edf9c9f1e28b8f07fa25bbe5.md5 @@ -0,0 +1,3 @@ +source_md5="9c0b4d8c61fda7f24327d0dce4d20be7" +dest_md5="42c7a4a526c62efd4acc0efe0a3a6391" + diff --git a/Client/.import/Oger 24.bmp-285ba435edf9c9f1e28b8f07fa25bbe5.stex b/Client/.import/Oger 24.bmp-285ba435edf9c9f1e28b8f07fa25bbe5.stex new file mode 100644 index 0000000..a3351d4 Binary files /dev/null and b/Client/.import/Oger 24.bmp-285ba435edf9c9f1e28b8f07fa25bbe5.stex differ diff --git a/Client/.import/Oger 24.bmp-da669da6beffb8ef611f311a07ac06b7.md5 b/Client/.import/Oger 24.bmp-da669da6beffb8ef611f311a07ac06b7.md5 new file mode 100644 index 0000000..c58562d --- /dev/null +++ b/Client/.import/Oger 24.bmp-da669da6beffb8ef611f311a07ac06b7.md5 @@ -0,0 +1,3 @@ +source_md5="9c0b4d8c61fda7f24327d0dce4d20be7" +dest_md5="42c7a4a526c62efd4acc0efe0a3a6391" + diff --git a/Client/.import/Oger 24.bmp-da669da6beffb8ef611f311a07ac06b7.stex b/Client/.import/Oger 24.bmp-da669da6beffb8ef611f311a07ac06b7.stex new file mode 100644 index 0000000..a3351d4 Binary files /dev/null and b/Client/.import/Oger 24.bmp-da669da6beffb8ef611f311a07ac06b7.stex differ diff --git a/Client/.import/Oger 25.bmp-0bcca61a154beb5e3002217f8834a351.md5 b/Client/.import/Oger 25.bmp-0bcca61a154beb5e3002217f8834a351.md5 new file mode 100644 index 0000000..381fe67 --- /dev/null +++ b/Client/.import/Oger 25.bmp-0bcca61a154beb5e3002217f8834a351.md5 @@ -0,0 +1,3 @@ +source_md5="f8cd8c142b330f6fd571ce426ec486cc" +dest_md5="ac49a2cc378d3ca623aa29dcaacd0e89" + diff --git a/Client/.import/Oger 25.bmp-0bcca61a154beb5e3002217f8834a351.stex b/Client/.import/Oger 25.bmp-0bcca61a154beb5e3002217f8834a351.stex new file mode 100644 index 0000000..ee113cd Binary files /dev/null and b/Client/.import/Oger 25.bmp-0bcca61a154beb5e3002217f8834a351.stex differ diff --git a/Client/.import/Oger 25.bmp-fade7613574741a90598303fce9d0a0f.md5 b/Client/.import/Oger 25.bmp-fade7613574741a90598303fce9d0a0f.md5 new file mode 100644 index 0000000..381fe67 --- /dev/null +++ b/Client/.import/Oger 25.bmp-fade7613574741a90598303fce9d0a0f.md5 @@ -0,0 +1,3 @@ +source_md5="f8cd8c142b330f6fd571ce426ec486cc" +dest_md5="ac49a2cc378d3ca623aa29dcaacd0e89" + diff --git a/Client/.import/Oger 25.bmp-fade7613574741a90598303fce9d0a0f.stex b/Client/.import/Oger 25.bmp-fade7613574741a90598303fce9d0a0f.stex new file mode 100644 index 0000000..ee113cd Binary files /dev/null and b/Client/.import/Oger 25.bmp-fade7613574741a90598303fce9d0a0f.stex differ diff --git a/Client/.import/Oger 26.bmp-1a27de0b7e694301fe21ff90f79afd3f.md5 b/Client/.import/Oger 26.bmp-1a27de0b7e694301fe21ff90f79afd3f.md5 new file mode 100644 index 0000000..5fb6e2c --- /dev/null +++ b/Client/.import/Oger 26.bmp-1a27de0b7e694301fe21ff90f79afd3f.md5 @@ -0,0 +1,3 @@ +source_md5="cd7dcc38c43ac90f8121a032d42323fb" +dest_md5="407962e9a8ff1f2e4e964f285e79cf8b" + diff --git a/Client/.import/Oger 26.bmp-1a27de0b7e694301fe21ff90f79afd3f.stex b/Client/.import/Oger 26.bmp-1a27de0b7e694301fe21ff90f79afd3f.stex new file mode 100644 index 0000000..9b40981 Binary files /dev/null and b/Client/.import/Oger 26.bmp-1a27de0b7e694301fe21ff90f79afd3f.stex differ diff --git a/Client/.import/Oger 26.bmp-f592bfb24e1eef3342895a4092ed95f6.md5 b/Client/.import/Oger 26.bmp-f592bfb24e1eef3342895a4092ed95f6.md5 new file mode 100644 index 0000000..5fb6e2c --- /dev/null +++ b/Client/.import/Oger 26.bmp-f592bfb24e1eef3342895a4092ed95f6.md5 @@ -0,0 +1,3 @@ +source_md5="cd7dcc38c43ac90f8121a032d42323fb" +dest_md5="407962e9a8ff1f2e4e964f285e79cf8b" + diff --git a/Client/.import/Oger 26.bmp-f592bfb24e1eef3342895a4092ed95f6.stex b/Client/.import/Oger 26.bmp-f592bfb24e1eef3342895a4092ed95f6.stex new file mode 100644 index 0000000..9b40981 Binary files /dev/null and b/Client/.import/Oger 26.bmp-f592bfb24e1eef3342895a4092ed95f6.stex differ diff --git a/Client/.import/Oger24.bmp-1e0f98e74e9daaafbc77342b8ecb0644.md5 b/Client/.import/Oger24.bmp-1e0f98e74e9daaafbc77342b8ecb0644.md5 new file mode 100644 index 0000000..1fbfb9f --- /dev/null +++ b/Client/.import/Oger24.bmp-1e0f98e74e9daaafbc77342b8ecb0644.md5 @@ -0,0 +1,3 @@ +source_md5="f82d7bdf3eed0f5c4a37e46a78e650be" +dest_md5="d82c7f57f1a44e0161e18a6d8e4f6696" + diff --git a/Client/.import/Oger24.bmp-1e0f98e74e9daaafbc77342b8ecb0644.stex b/Client/.import/Oger24.bmp-1e0f98e74e9daaafbc77342b8ecb0644.stex new file mode 100644 index 0000000..a2b23c7 Binary files /dev/null and b/Client/.import/Oger24.bmp-1e0f98e74e9daaafbc77342b8ecb0644.stex differ diff --git a/Client/.import/Oger25.bmp-ae77f1a5e59d0bacfa167721b2403014.md5 b/Client/.import/Oger25.bmp-ae77f1a5e59d0bacfa167721b2403014.md5 new file mode 100644 index 0000000..9982786 --- /dev/null +++ b/Client/.import/Oger25.bmp-ae77f1a5e59d0bacfa167721b2403014.md5 @@ -0,0 +1,3 @@ +source_md5="9617af1a898fb1f3c2634cafc2975862" +dest_md5="d80fc7aefb530c0868dcfd0bb430dca3" + diff --git a/Client/.import/Oger25.bmp-ae77f1a5e59d0bacfa167721b2403014.stex b/Client/.import/Oger25.bmp-ae77f1a5e59d0bacfa167721b2403014.stex new file mode 100644 index 0000000..6cc3181 Binary files /dev/null and b/Client/.import/Oger25.bmp-ae77f1a5e59d0bacfa167721b2403014.stex differ diff --git a/Client/.import/Oger26.bmp-3ad23c5f9edff9c02a5ed5faf49e31cc.md5 b/Client/.import/Oger26.bmp-3ad23c5f9edff9c02a5ed5faf49e31cc.md5 new file mode 100644 index 0000000..3fd35a9 --- /dev/null +++ b/Client/.import/Oger26.bmp-3ad23c5f9edff9c02a5ed5faf49e31cc.md5 @@ -0,0 +1,3 @@ +source_md5="c67857145918028decb6ccafa317090d" +dest_md5="786c93080f858961bde42d83e1075619" + diff --git a/Client/.import/Oger26.bmp-3ad23c5f9edff9c02a5ed5faf49e31cc.stex b/Client/.import/Oger26.bmp-3ad23c5f9edff9c02a5ed5faf49e31cc.stex new file mode 100644 index 0000000..72ae11b Binary files /dev/null and b/Client/.import/Oger26.bmp-3ad23c5f9edff9c02a5ed5faf49e31cc.stex differ diff --git a/Client/.import/Oger262.bmp-22fd65ab505ddbb290bb94b01791a283.md5 b/Client/.import/Oger262.bmp-22fd65ab505ddbb290bb94b01791a283.md5 new file mode 100644 index 0000000..3fd35a9 --- /dev/null +++ b/Client/.import/Oger262.bmp-22fd65ab505ddbb290bb94b01791a283.md5 @@ -0,0 +1,3 @@ +source_md5="c67857145918028decb6ccafa317090d" +dest_md5="786c93080f858961bde42d83e1075619" + diff --git a/Client/.import/Oger262.bmp-22fd65ab505ddbb290bb94b01791a283.stex b/Client/.import/Oger262.bmp-22fd65ab505ddbb290bb94b01791a283.stex new file mode 100644 index 0000000..72ae11b Binary files /dev/null and b/Client/.import/Oger262.bmp-22fd65ab505ddbb290bb94b01791a283.stex differ diff --git a/Client/.import/OgerWalk.bmp-e9e6bc5c2ebe6729799eee36104e0b49.md5 b/Client/.import/OgerWalk.bmp-e9e6bc5c2ebe6729799eee36104e0b49.md5 new file mode 100644 index 0000000..6198a34 --- /dev/null +++ b/Client/.import/OgerWalk.bmp-e9e6bc5c2ebe6729799eee36104e0b49.md5 @@ -0,0 +1,3 @@ +source_md5="a5369ac478832ae9c00f97921954af8f" +dest_md5="3a678d4b52b6e9ed8d4a0e9c396855f1" + diff --git a/Client/.import/OgerWalk.bmp-e9e6bc5c2ebe6729799eee36104e0b49.stex b/Client/.import/OgerWalk.bmp-e9e6bc5c2ebe6729799eee36104e0b49.stex new file mode 100644 index 0000000..0c8256d Binary files /dev/null and b/Client/.import/OgerWalk.bmp-e9e6bc5c2ebe6729799eee36104e0b49.stex differ diff --git a/Client/.import/OgerWalk0.bmp-26c9162cb92a6b4ca30ea039f3d6e00c.md5 b/Client/.import/OgerWalk0.bmp-26c9162cb92a6b4ca30ea039f3d6e00c.md5 new file mode 100644 index 0000000..8a04bd0 --- /dev/null +++ b/Client/.import/OgerWalk0.bmp-26c9162cb92a6b4ca30ea039f3d6e00c.md5 @@ -0,0 +1,3 @@ +source_md5="eace5ba89fccab190d952ec55230b899" +dest_md5="946449efae79014ca9f71261e02b4a59" + diff --git a/Client/.import/OgerWalk0.bmp-26c9162cb92a6b4ca30ea039f3d6e00c.stex b/Client/.import/OgerWalk0.bmp-26c9162cb92a6b4ca30ea039f3d6e00c.stex new file mode 100644 index 0000000..d086bfd Binary files /dev/null and b/Client/.import/OgerWalk0.bmp-26c9162cb92a6b4ca30ea039f3d6e00c.stex differ diff --git a/Client/.import/OgerWalk1.bmp-ba26fa8f64ba98ed211ce19ce9f1f5b1.md5 b/Client/.import/OgerWalk1.bmp-ba26fa8f64ba98ed211ce19ce9f1f5b1.md5 new file mode 100644 index 0000000..f31cc4a --- /dev/null +++ b/Client/.import/OgerWalk1.bmp-ba26fa8f64ba98ed211ce19ce9f1f5b1.md5 @@ -0,0 +1,3 @@ +source_md5="f6c3869e67a183377800a440dedd8768" +dest_md5="0d5f4ee5bc0cd90c469a0ca42e8ed148" + diff --git a/Client/.import/OgerWalk1.bmp-ba26fa8f64ba98ed211ce19ce9f1f5b1.stex b/Client/.import/OgerWalk1.bmp-ba26fa8f64ba98ed211ce19ce9f1f5b1.stex new file mode 100644 index 0000000..8e528f9 Binary files /dev/null and b/Client/.import/OgerWalk1.bmp-ba26fa8f64ba98ed211ce19ce9f1f5b1.stex differ diff --git a/Client/.import/OgerWalk2.bmp-5473a4ec707bb7930ec15537442dedc3.md5 b/Client/.import/OgerWalk2.bmp-5473a4ec707bb7930ec15537442dedc3.md5 new file mode 100644 index 0000000..4a9d2be --- /dev/null +++ b/Client/.import/OgerWalk2.bmp-5473a4ec707bb7930ec15537442dedc3.md5 @@ -0,0 +1,3 @@ +source_md5="22563064feba96b664beac8e11f2ea11" +dest_md5="c3a2d468c22552ce8d00acf0139b6c77" + diff --git a/Client/.import/OgerWalk2.bmp-5473a4ec707bb7930ec15537442dedc3.stex b/Client/.import/OgerWalk2.bmp-5473a4ec707bb7930ec15537442dedc3.stex new file mode 100644 index 0000000..47ca584 Binary files /dev/null and b/Client/.import/OgerWalk2.bmp-5473a4ec707bb7930ec15537442dedc3.stex differ diff --git a/Client/.import/OgerWalk3.bmp-b3d364fbecb7523c453a42f913f86985.md5 b/Client/.import/OgerWalk3.bmp-b3d364fbecb7523c453a42f913f86985.md5 new file mode 100644 index 0000000..2ac2784 --- /dev/null +++ b/Client/.import/OgerWalk3.bmp-b3d364fbecb7523c453a42f913f86985.md5 @@ -0,0 +1,3 @@ +source_md5="35fa7c020bef4022016bf9e85a9490b5" +dest_md5="d524161b2bde3a2d0de4fa508b54f7d2" + diff --git a/Client/.import/OgerWalk3.bmp-b3d364fbecb7523c453a42f913f86985.stex b/Client/.import/OgerWalk3.bmp-b3d364fbecb7523c453a42f913f86985.stex new file mode 100644 index 0000000..6d76f30 Binary files /dev/null and b/Client/.import/OgerWalk3.bmp-b3d364fbecb7523c453a42f913f86985.stex differ diff --git a/Client/.import/OgerWalk4.bmp-6108c440cc1f5b33e2850eeb0d1d5601.md5 b/Client/.import/OgerWalk4.bmp-6108c440cc1f5b33e2850eeb0d1d5601.md5 new file mode 100644 index 0000000..2a31ad9 --- /dev/null +++ b/Client/.import/OgerWalk4.bmp-6108c440cc1f5b33e2850eeb0d1d5601.md5 @@ -0,0 +1,3 @@ +source_md5="60b6aa1214de0b967c9fb258df2d3688" +dest_md5="f6931563526f75f28d755f77307e1da5" + diff --git a/Client/.import/OgerWalk4.bmp-6108c440cc1f5b33e2850eeb0d1d5601.stex b/Client/.import/OgerWalk4.bmp-6108c440cc1f5b33e2850eeb0d1d5601.stex new file mode 100644 index 0000000..6e3c4ef Binary files /dev/null and b/Client/.import/OgerWalk4.bmp-6108c440cc1f5b33e2850eeb0d1d5601.stex differ diff --git a/Client/.import/Ressource Nodes.png-48dac8994652f7d5abded36fd7f47058.md5 b/Client/.import/Ressource Nodes.png-48dac8994652f7d5abded36fd7f47058.md5 new file mode 100644 index 0000000..96c58e7 --- /dev/null +++ b/Client/.import/Ressource Nodes.png-48dac8994652f7d5abded36fd7f47058.md5 @@ -0,0 +1,3 @@ +source_md5="0f8db215313447c8ad6db17ac3c7b37d" +dest_md5="5e4c4e62b06e567d116d0062b91caada" + diff --git a/Client/.import/Ressource Nodes.png-48dac8994652f7d5abded36fd7f47058.stex b/Client/.import/Ressource Nodes.png-48dac8994652f7d5abded36fd7f47058.stex new file mode 100644 index 0000000..d2fef10 Binary files /dev/null and b/Client/.import/Ressource Nodes.png-48dac8994652f7d5abded36fd7f47058.stex differ diff --git a/Client/.import/Ressources.png-99a132724593a7d6f1ac360b946ba7ce.md5 b/Client/.import/Ressources.png-99a132724593a7d6f1ac360b946ba7ce.md5 new file mode 100644 index 0000000..04802fb --- /dev/null +++ b/Client/.import/Ressources.png-99a132724593a7d6f1ac360b946ba7ce.md5 @@ -0,0 +1,3 @@ +source_md5="e408f8fc7e109fc4cbb4ac8a52894225" +dest_md5="947a4902ef1d4f76cf414757b4600150" + diff --git a/Client/.import/Ressources.png-99a132724593a7d6f1ac360b946ba7ce.stex b/Client/.import/Ressources.png-99a132724593a7d6f1ac360b946ba7ce.stex new file mode 100644 index 0000000..cce7475 Binary files /dev/null and b/Client/.import/Ressources.png-99a132724593a7d6f1ac360b946ba7ce.stex differ diff --git a/Client/.import/Swipe1.bmp-6d3ef650fbf8e069e30e1792145e7a3d.md5 b/Client/.import/Swipe1.bmp-6d3ef650fbf8e069e30e1792145e7a3d.md5 new file mode 100644 index 0000000..3f30d97 --- /dev/null +++ b/Client/.import/Swipe1.bmp-6d3ef650fbf8e069e30e1792145e7a3d.md5 @@ -0,0 +1,3 @@ +source_md5="a4e6d1522c945ada39b03bf2914c5842" +dest_md5="c0afc1cdb448178cc8a63f2ad6905409" + diff --git a/Client/.import/Swipe1.bmp-6d3ef650fbf8e069e30e1792145e7a3d.stex b/Client/.import/Swipe1.bmp-6d3ef650fbf8e069e30e1792145e7a3d.stex new file mode 100644 index 0000000..179034d Binary files /dev/null and b/Client/.import/Swipe1.bmp-6d3ef650fbf8e069e30e1792145e7a3d.stex differ diff --git a/Client/.import/Swipe2.bmp-3da507e7f6c97299cd35d7831d8f132b.md5 b/Client/.import/Swipe2.bmp-3da507e7f6c97299cd35d7831d8f132b.md5 new file mode 100644 index 0000000..2281578 --- /dev/null +++ b/Client/.import/Swipe2.bmp-3da507e7f6c97299cd35d7831d8f132b.md5 @@ -0,0 +1,3 @@ +source_md5="ea1a14bfc08fd83c5a6901c41cc09b22" +dest_md5="69c02e80cc9e611e453f6d716ff0eb5d" + diff --git a/Client/.import/Swipe2.bmp-3da507e7f6c97299cd35d7831d8f132b.stex b/Client/.import/Swipe2.bmp-3da507e7f6c97299cd35d7831d8f132b.stex new file mode 100644 index 0000000..62141e9 Binary files /dev/null and b/Client/.import/Swipe2.bmp-3da507e7f6c97299cd35d7831d8f132b.stex differ diff --git a/Client/.import/Swipe3.bmp-743d0479c3abc0163eb027c2face9bd6.md5 b/Client/.import/Swipe3.bmp-743d0479c3abc0163eb027c2face9bd6.md5 new file mode 100644 index 0000000..3a64c74 --- /dev/null +++ b/Client/.import/Swipe3.bmp-743d0479c3abc0163eb027c2face9bd6.md5 @@ -0,0 +1,3 @@ +source_md5="023d5430ddfd440738a014b05e2eac21" +dest_md5="8307fb5b9a9879eb4401b6f3371fb4d1" + diff --git a/Client/.import/Swipe3.bmp-743d0479c3abc0163eb027c2face9bd6.stex b/Client/.import/Swipe3.bmp-743d0479c3abc0163eb027c2face9bd6.stex new file mode 100644 index 0000000..16e9dc7 Binary files /dev/null and b/Client/.import/Swipe3.bmp-743d0479c3abc0163eb027c2face9bd6.stex differ diff --git a/Client/.import/Swipe4.bmp-971f43cb2988feaf9e36df9842f4a010.md5 b/Client/.import/Swipe4.bmp-971f43cb2988feaf9e36df9842f4a010.md5 new file mode 100644 index 0000000..7fca907 --- /dev/null +++ b/Client/.import/Swipe4.bmp-971f43cb2988feaf9e36df9842f4a010.md5 @@ -0,0 +1,3 @@ +source_md5="69231f9582293ff24c99ee4f68f6e252" +dest_md5="df98c89d77be393127c3e85b46ebdf1f" + diff --git a/Client/.import/Swipe4.bmp-971f43cb2988feaf9e36df9842f4a010.stex b/Client/.import/Swipe4.bmp-971f43cb2988feaf9e36df9842f4a010.stex new file mode 100644 index 0000000..a21276c Binary files /dev/null and b/Client/.import/Swipe4.bmp-971f43cb2988feaf9e36df9842f4a010.stex differ diff --git a/Client/.import/Sword.bmp-7f9b8f36c2ca2d09234c48101d7747b8.md5 b/Client/.import/Sword.bmp-7f9b8f36c2ca2d09234c48101d7747b8.md5 new file mode 100644 index 0000000..d77d7f2 --- /dev/null +++ b/Client/.import/Sword.bmp-7f9b8f36c2ca2d09234c48101d7747b8.md5 @@ -0,0 +1,3 @@ +source_md5="d49d609fd6aacd8b36c06f63e9198631" +dest_md5="fde5aa0fb5c1121b4210e3a0a54ca4d0" + diff --git a/Client/.import/Sword.bmp-7f9b8f36c2ca2d09234c48101d7747b8.stex b/Client/.import/Sword.bmp-7f9b8f36c2ca2d09234c48101d7747b8.stex new file mode 100644 index 0000000..43657c4 Binary files /dev/null and b/Client/.import/Sword.bmp-7f9b8f36c2ca2d09234c48101d7747b8.stex differ diff --git a/Client/.import/Sword1.bmp-f180ae137d8669909830985624e95375.md5 b/Client/.import/Sword1.bmp-f180ae137d8669909830985624e95375.md5 new file mode 100644 index 0000000..c9a8d78 --- /dev/null +++ b/Client/.import/Sword1.bmp-f180ae137d8669909830985624e95375.md5 @@ -0,0 +1,3 @@ +source_md5="b1d92b1b15f90ee5009a7be12bbf8575" +dest_md5="f1560fc4504c2da21c20e590dbf20db8" + diff --git a/Client/.import/Sword1.bmp-f180ae137d8669909830985624e95375.stex b/Client/.import/Sword1.bmp-f180ae137d8669909830985624e95375.stex new file mode 100644 index 0000000..2c5c558 Binary files /dev/null and b/Client/.import/Sword1.bmp-f180ae137d8669909830985624e95375.stex differ diff --git a/Client/.import/Sword2.bmp-3a284bfca21bf128c1539dffe850ca4c.md5 b/Client/.import/Sword2.bmp-3a284bfca21bf128c1539dffe850ca4c.md5 new file mode 100644 index 0000000..a366a58 --- /dev/null +++ b/Client/.import/Sword2.bmp-3a284bfca21bf128c1539dffe850ca4c.md5 @@ -0,0 +1,3 @@ +source_md5="4e4309357ff9e1326c306194fbcea0e5" +dest_md5="8b78145bea0367bc8fd329df30653267" + diff --git a/Client/.import/Sword2.bmp-3a284bfca21bf128c1539dffe850ca4c.stex b/Client/.import/Sword2.bmp-3a284bfca21bf128c1539dffe850ca4c.stex new file mode 100644 index 0000000..50a4c87 Binary files /dev/null and b/Client/.import/Sword2.bmp-3a284bfca21bf128c1539dffe850ca4c.stex differ diff --git a/Client/.import/Sword3.bmp-cb7380e69d12814eef029e9d995c8bea.md5 b/Client/.import/Sword3.bmp-cb7380e69d12814eef029e9d995c8bea.md5 new file mode 100644 index 0000000..ac64eed --- /dev/null +++ b/Client/.import/Sword3.bmp-cb7380e69d12814eef029e9d995c8bea.md5 @@ -0,0 +1,3 @@ +source_md5="68463d45cb71ece88c0bbe77818246e9" +dest_md5="4a2a30ce8a9f497462c7e097816e4f4e" + diff --git a/Client/.import/Sword3.bmp-cb7380e69d12814eef029e9d995c8bea.stex b/Client/.import/Sword3.bmp-cb7380e69d12814eef029e9d995c8bea.stex new file mode 100644 index 0000000..3204e5f Binary files /dev/null and b/Client/.import/Sword3.bmp-cb7380e69d12814eef029e9d995c8bea.stex differ diff --git a/Client/.import/Sword4.bmp-44177fd175ea5ffa9889a1ee88f3d876.md5 b/Client/.import/Sword4.bmp-44177fd175ea5ffa9889a1ee88f3d876.md5 new file mode 100644 index 0000000..4d5012c --- /dev/null +++ b/Client/.import/Sword4.bmp-44177fd175ea5ffa9889a1ee88f3d876.md5 @@ -0,0 +1,3 @@ +source_md5="0bdaac91e38b0198fe789542a51f94cc" +dest_md5="442ef13cb838f8de32f51f54b3f0d3de" + diff --git a/Client/.import/Sword4.bmp-44177fd175ea5ffa9889a1ee88f3d876.stex b/Client/.import/Sword4.bmp-44177fd175ea5ffa9889a1ee88f3d876.stex new file mode 100644 index 0000000..82db547 Binary files /dev/null and b/Client/.import/Sword4.bmp-44177fd175ea5ffa9889a1ee88f3d876.stex differ diff --git a/Client/.import/Sword5.bmp-f88cf909b6825e293fce57a757702f87.md5 b/Client/.import/Sword5.bmp-f88cf909b6825e293fce57a757702f87.md5 new file mode 100644 index 0000000..94b3365 --- /dev/null +++ b/Client/.import/Sword5.bmp-f88cf909b6825e293fce57a757702f87.md5 @@ -0,0 +1,3 @@ +source_md5="586e1cc190e369bd44f799216a45cba3" +dest_md5="1ba24696f87d62ef9cfe113e36c0c64d" + diff --git a/Client/.import/Sword5.bmp-f88cf909b6825e293fce57a757702f87.stex b/Client/.import/Sword5.bmp-f88cf909b6825e293fce57a757702f87.stex new file mode 100644 index 0000000..1486d1c Binary files /dev/null and b/Client/.import/Sword5.bmp-f88cf909b6825e293fce57a757702f87.stex differ diff --git a/Client/.import/Sword6.bmp-6667929c84ed4a3f3626993046426949.md5 b/Client/.import/Sword6.bmp-6667929c84ed4a3f3626993046426949.md5 new file mode 100644 index 0000000..1dca96a --- /dev/null +++ b/Client/.import/Sword6.bmp-6667929c84ed4a3f3626993046426949.md5 @@ -0,0 +1,3 @@ +source_md5="8112b366b5c811d1708c8452e044cf2a" +dest_md5="720edad73cac64318bb94d256cdefc63" + diff --git a/Client/.import/Sword6.bmp-6667929c84ed4a3f3626993046426949.stex b/Client/.import/Sword6.bmp-6667929c84ed4a3f3626993046426949.stex new file mode 100644 index 0000000..f1c0522 Binary files /dev/null and b/Client/.import/Sword6.bmp-6667929c84ed4a3f3626993046426949.stex differ diff --git a/Client/.import/Sword7.bmp-befcd2d400da78ef844677569cf92446.md5 b/Client/.import/Sword7.bmp-befcd2d400da78ef844677569cf92446.md5 new file mode 100644 index 0000000..b02148e --- /dev/null +++ b/Client/.import/Sword7.bmp-befcd2d400da78ef844677569cf92446.md5 @@ -0,0 +1,3 @@ +source_md5="802c04934ceb7e55702b092a985528e5" +dest_md5="fd6ca8945bb9dbda87a2a844e6f4b2f0" + diff --git a/Client/.import/Sword7.bmp-befcd2d400da78ef844677569cf92446.stex b/Client/.import/Sword7.bmp-befcd2d400da78ef844677569cf92446.stex new file mode 100644 index 0000000..bf735d6 Binary files /dev/null and b/Client/.import/Sword7.bmp-befcd2d400da78ef844677569cf92446.stex differ diff --git a/Client/.import/Sword8.bmp-3e0b7dee53f67e43759409276a34a37f.md5 b/Client/.import/Sword8.bmp-3e0b7dee53f67e43759409276a34a37f.md5 new file mode 100644 index 0000000..7cdc0bc --- /dev/null +++ b/Client/.import/Sword8.bmp-3e0b7dee53f67e43759409276a34a37f.md5 @@ -0,0 +1,3 @@ +source_md5="63e5e28ce05de09e744db132b1895538" +dest_md5="e70b1da4ccb2d48f059629accce8d165" + diff --git a/Client/.import/Sword8.bmp-3e0b7dee53f67e43759409276a34a37f.stex b/Client/.import/Sword8.bmp-3e0b7dee53f67e43759409276a34a37f.stex new file mode 100644 index 0000000..4b13520 Binary files /dev/null and b/Client/.import/Sword8.bmp-3e0b7dee53f67e43759409276a34a37f.stex differ diff --git a/Client/.import/Sword9.bmp-b5f98b3cd9fac8376cd726620cf3233e.md5 b/Client/.import/Sword9.bmp-b5f98b3cd9fac8376cd726620cf3233e.md5 new file mode 100644 index 0000000..b4f16ca --- /dev/null +++ b/Client/.import/Sword9.bmp-b5f98b3cd9fac8376cd726620cf3233e.md5 @@ -0,0 +1,3 @@ +source_md5="cf4e4c525839b5a6ea01136f10c553c7" +dest_md5="a40d08dc65d0d701e900a496ac8bf6d8" + diff --git a/Client/.import/Sword9.bmp-b5f98b3cd9fac8376cd726620cf3233e.stex b/Client/.import/Sword9.bmp-b5f98b3cd9fac8376cd726620cf3233e.stex new file mode 100644 index 0000000..50140ac Binary files /dev/null and b/Client/.import/Sword9.bmp-b5f98b3cd9fac8376cd726620cf3233e.stex differ diff --git a/Client/.import/SwordSwipe1.bmp-6f20f7340fb31abf41990c71084a2b6a.md5 b/Client/.import/SwordSwipe1.bmp-6f20f7340fb31abf41990c71084a2b6a.md5 new file mode 100644 index 0000000..19105e2 --- /dev/null +++ b/Client/.import/SwordSwipe1.bmp-6f20f7340fb31abf41990c71084a2b6a.md5 @@ -0,0 +1,3 @@ +source_md5="d0cf9f84b995c957f6fb6850b20b44c5" +dest_md5="808bf884672dd24f6a156dc6531c2de9" + diff --git a/Client/.import/SwordSwipe1.bmp-6f20f7340fb31abf41990c71084a2b6a.stex b/Client/.import/SwordSwipe1.bmp-6f20f7340fb31abf41990c71084a2b6a.stex new file mode 100644 index 0000000..efea183 Binary files /dev/null and b/Client/.import/SwordSwipe1.bmp-6f20f7340fb31abf41990c71084a2b6a.stex differ diff --git a/Client/.import/SwordSwipe2.bmp-0ae5a500c7c18df0bd2db48e798c4877.md5 b/Client/.import/SwordSwipe2.bmp-0ae5a500c7c18df0bd2db48e798c4877.md5 new file mode 100644 index 0000000..41187a0 --- /dev/null +++ b/Client/.import/SwordSwipe2.bmp-0ae5a500c7c18df0bd2db48e798c4877.md5 @@ -0,0 +1,3 @@ +source_md5="0098ca631248a20858035376290f0a46" +dest_md5="42197ebb23438edfde3cb64a471f3d1e" + diff --git a/Client/.import/SwordSwipe2.bmp-0ae5a500c7c18df0bd2db48e798c4877.stex b/Client/.import/SwordSwipe2.bmp-0ae5a500c7c18df0bd2db48e798c4877.stex new file mode 100644 index 0000000..150d23a Binary files /dev/null and b/Client/.import/SwordSwipe2.bmp-0ae5a500c7c18df0bd2db48e798c4877.stex differ diff --git a/Client/.import/SwordSwipe3.bmp-9f1e8fd6b8834af89859e78a18188bc0.md5 b/Client/.import/SwordSwipe3.bmp-9f1e8fd6b8834af89859e78a18188bc0.md5 new file mode 100644 index 0000000..54af9aa --- /dev/null +++ b/Client/.import/SwordSwipe3.bmp-9f1e8fd6b8834af89859e78a18188bc0.md5 @@ -0,0 +1,3 @@ +source_md5="786cea518d2a02fb18783ceee94bca4c" +dest_md5="4eeaac82967f9a2fb09538cf67568446" + diff --git a/Client/.import/SwordSwipe3.bmp-9f1e8fd6b8834af89859e78a18188bc0.stex b/Client/.import/SwordSwipe3.bmp-9f1e8fd6b8834af89859e78a18188bc0.stex new file mode 100644 index 0000000..6fb46e8 Binary files /dev/null and b/Client/.import/SwordSwipe3.bmp-9f1e8fd6b8834af89859e78a18188bc0.stex differ diff --git a/Client/.import/SwordSwipe4.bmp-b580ee8e461f1101d6cca4a55aea3bab.md5 b/Client/.import/SwordSwipe4.bmp-b580ee8e461f1101d6cca4a55aea3bab.md5 new file mode 100644 index 0000000..3cc4d4c --- /dev/null +++ b/Client/.import/SwordSwipe4.bmp-b580ee8e461f1101d6cca4a55aea3bab.md5 @@ -0,0 +1,3 @@ +source_md5="59ee34cd36a51eadbd776341b26631e4" +dest_md5="d581b43b26d24871fe3166bb9215c84b" + diff --git a/Client/.import/SwordSwipe4.bmp-b580ee8e461f1101d6cca4a55aea3bab.stex b/Client/.import/SwordSwipe4.bmp-b580ee8e461f1101d6cca4a55aea3bab.stex new file mode 100644 index 0000000..3e95046 Binary files /dev/null and b/Client/.import/SwordSwipe4.bmp-b580ee8e461f1101d6cca4a55aea3bab.stex differ diff --git a/Client/.import/SwordSwipe5.bmp-1ecb07fcdcf353d950552b3dbc196d32.md5 b/Client/.import/SwordSwipe5.bmp-1ecb07fcdcf353d950552b3dbc196d32.md5 new file mode 100644 index 0000000..ade0038 --- /dev/null +++ b/Client/.import/SwordSwipe5.bmp-1ecb07fcdcf353d950552b3dbc196d32.md5 @@ -0,0 +1,3 @@ +source_md5="edfd90429b4cbe28dcb6fd1486d719ab" +dest_md5="097f6cb8c9f891f0a16ab1c462b0a4be" + diff --git a/Client/.import/SwordSwipe5.bmp-1ecb07fcdcf353d950552b3dbc196d32.stex b/Client/.import/SwordSwipe5.bmp-1ecb07fcdcf353d950552b3dbc196d32.stex new file mode 100644 index 0000000..1f6ec0c Binary files /dev/null and b/Client/.import/SwordSwipe5.bmp-1ecb07fcdcf353d950552b3dbc196d32.stex differ diff --git a/Client/.import/WIN_20200422_18_06_18_Pro.jpg-fbb8d4acafa53acf24891eb8ea5a4d97.md5 b/Client/.import/WIN_20200422_18_06_18_Pro.jpg-fbb8d4acafa53acf24891eb8ea5a4d97.md5 new file mode 100644 index 0000000..37c84ad --- /dev/null +++ b/Client/.import/WIN_20200422_18_06_18_Pro.jpg-fbb8d4acafa53acf24891eb8ea5a4d97.md5 @@ -0,0 +1,3 @@ +source_md5="af0a1b3ba0675a16c2be8ee63e5e56ec" +dest_md5="7424caa713822ff7ad1ff7886618ab79" + diff --git a/Client/.import/WIN_20200422_18_06_18_Pro.jpg-fbb8d4acafa53acf24891eb8ea5a4d97.stex b/Client/.import/WIN_20200422_18_06_18_Pro.jpg-fbb8d4acafa53acf24891eb8ea5a4d97.stex new file mode 100644 index 0000000..0628dc6 Binary files /dev/null and b/Client/.import/WIN_20200422_18_06_18_Pro.jpg-fbb8d4acafa53acf24891eb8ea5a4d97.stex differ diff --git a/Client/.import/WIN_20200422_18_06_41_Pro.jpg-ffb92070fd2a5972e67d079b5c98c9d0.md5 b/Client/.import/WIN_20200422_18_06_41_Pro.jpg-ffb92070fd2a5972e67d079b5c98c9d0.md5 new file mode 100644 index 0000000..b7b6a0d --- /dev/null +++ b/Client/.import/WIN_20200422_18_06_41_Pro.jpg-ffb92070fd2a5972e67d079b5c98c9d0.md5 @@ -0,0 +1,3 @@ +source_md5="c92af2178872605f3bbb50e3ebbb2f58" +dest_md5="060b9b1938109a431a96ea42ec603224" + diff --git a/Client/.import/WIN_20200422_18_06_41_Pro.jpg-ffb92070fd2a5972e67d079b5c98c9d0.stex b/Client/.import/WIN_20200422_18_06_41_Pro.jpg-ffb92070fd2a5972e67d079b5c98c9d0.stex new file mode 100644 index 0000000..d6a5b09 Binary files /dev/null and b/Client/.import/WIN_20200422_18_06_41_Pro.jpg-ffb92070fd2a5972e67d079b5c98c9d0.stex differ diff --git a/Client/.import/WIN_20200422_18_06_51_Pro.jpg-93574cb619a9049cb2257b7fccfdd887.md5 b/Client/.import/WIN_20200422_18_06_51_Pro.jpg-93574cb619a9049cb2257b7fccfdd887.md5 new file mode 100644 index 0000000..7558b01 --- /dev/null +++ b/Client/.import/WIN_20200422_18_06_51_Pro.jpg-93574cb619a9049cb2257b7fccfdd887.md5 @@ -0,0 +1,3 @@ +source_md5="621d45abfaf5f96a24d81ed6f4631bb6" +dest_md5="73ba23c0dcf3e5926ca7fb01d164bb13" + diff --git a/Client/.import/WIN_20200422_18_06_51_Pro.jpg-93574cb619a9049cb2257b7fccfdd887.stex b/Client/.import/WIN_20200422_18_06_51_Pro.jpg-93574cb619a9049cb2257b7fccfdd887.stex new file mode 100644 index 0000000..2607ca3 Binary files /dev/null and b/Client/.import/WIN_20200422_18_06_51_Pro.jpg-93574cb619a9049cb2257b7fccfdd887.stex differ diff --git a/Client/.import/WIN_20200422_18_07_01_Pro.jpg-5e53bfc036c94bc89d0522306247e55c.md5 b/Client/.import/WIN_20200422_18_07_01_Pro.jpg-5e53bfc036c94bc89d0522306247e55c.md5 new file mode 100644 index 0000000..254dd91 --- /dev/null +++ b/Client/.import/WIN_20200422_18_07_01_Pro.jpg-5e53bfc036c94bc89d0522306247e55c.md5 @@ -0,0 +1,3 @@ +source_md5="c2ebabce0af5046075437a916763f8a4" +dest_md5="bb0debdbb1bbd6dde425332772f7087b" + diff --git a/Client/.import/WIN_20200422_18_07_01_Pro.jpg-5e53bfc036c94bc89d0522306247e55c.stex b/Client/.import/WIN_20200422_18_07_01_Pro.jpg-5e53bfc036c94bc89d0522306247e55c.stex new file mode 100644 index 0000000..dca505d Binary files /dev/null and b/Client/.import/WIN_20200422_18_07_01_Pro.jpg-5e53bfc036c94bc89d0522306247e55c.stex differ diff --git a/Client/.import/WIN_20200422_18_07_05_Pro.jpg-313d8c4267c8afc09407b2e21845eed4.md5 b/Client/.import/WIN_20200422_18_07_05_Pro.jpg-313d8c4267c8afc09407b2e21845eed4.md5 new file mode 100644 index 0000000..58431eb --- /dev/null +++ b/Client/.import/WIN_20200422_18_07_05_Pro.jpg-313d8c4267c8afc09407b2e21845eed4.md5 @@ -0,0 +1,3 @@ +source_md5="f4c461b16b84ec00a353a6e5d45701dd" +dest_md5="90d8d88abd7404f78c4413aef9260fc0" + diff --git a/Client/.import/WIN_20200422_18_07_05_Pro.jpg-313d8c4267c8afc09407b2e21845eed4.stex b/Client/.import/WIN_20200422_18_07_05_Pro.jpg-313d8c4267c8afc09407b2e21845eed4.stex new file mode 100644 index 0000000..5469a41 Binary files /dev/null and b/Client/.import/WIN_20200422_18_07_05_Pro.jpg-313d8c4267c8afc09407b2e21845eed4.stex differ diff --git a/Client/.import/WIN_20200422_18_07_20_Pro.jpg-dcf51736424fed61b9c9d0333fe090f1.md5 b/Client/.import/WIN_20200422_18_07_20_Pro.jpg-dcf51736424fed61b9c9d0333fe090f1.md5 new file mode 100644 index 0000000..b1605ec --- /dev/null +++ b/Client/.import/WIN_20200422_18_07_20_Pro.jpg-dcf51736424fed61b9c9d0333fe090f1.md5 @@ -0,0 +1,3 @@ +source_md5="ac9e07a1b96489280741345737115edd" +dest_md5="834a5b771606afbc9c288aef502fcce1" + diff --git a/Client/.import/WIN_20200422_18_07_20_Pro.jpg-dcf51736424fed61b9c9d0333fe090f1.stex b/Client/.import/WIN_20200422_18_07_20_Pro.jpg-dcf51736424fed61b9c9d0333fe090f1.stex new file mode 100644 index 0000000..5d4fdc0 Binary files /dev/null and b/Client/.import/WIN_20200422_18_07_20_Pro.jpg-dcf51736424fed61b9c9d0333fe090f1.stex differ diff --git a/Client/.import/WIN_20200422_18_07_24_Pro.jpg-f2f00e2f7860ee0e23eca0a163131849.md5 b/Client/.import/WIN_20200422_18_07_24_Pro.jpg-f2f00e2f7860ee0e23eca0a163131849.md5 new file mode 100644 index 0000000..65cbff1 --- /dev/null +++ b/Client/.import/WIN_20200422_18_07_24_Pro.jpg-f2f00e2f7860ee0e23eca0a163131849.md5 @@ -0,0 +1,3 @@ +source_md5="a8f0c311badab8d7c6436be67d053804" +dest_md5="3027de56b3b841909e08582010fd6bf5" + diff --git a/Client/.import/WIN_20200422_18_07_24_Pro.jpg-f2f00e2f7860ee0e23eca0a163131849.stex b/Client/.import/WIN_20200422_18_07_24_Pro.jpg-f2f00e2f7860ee0e23eca0a163131849.stex new file mode 100644 index 0000000..dcca95d Binary files /dev/null and b/Client/.import/WIN_20200422_18_07_24_Pro.jpg-f2f00e2f7860ee0e23eca0a163131849.stex differ diff --git a/Client/.import/WIN_20200422_18_07_27_Pro.jpg-9508d8954984f081b3e9a4cf7c842151.md5 b/Client/.import/WIN_20200422_18_07_27_Pro.jpg-9508d8954984f081b3e9a4cf7c842151.md5 new file mode 100644 index 0000000..251eabe --- /dev/null +++ b/Client/.import/WIN_20200422_18_07_27_Pro.jpg-9508d8954984f081b3e9a4cf7c842151.md5 @@ -0,0 +1,3 @@ +source_md5="9b85480df21833e5156b5d851c07a145" +dest_md5="aab76d71d1107eafb337af5dce4cc03a" + diff --git a/Client/.import/WIN_20200422_18_07_27_Pro.jpg-9508d8954984f081b3e9a4cf7c842151.stex b/Client/.import/WIN_20200422_18_07_27_Pro.jpg-9508d8954984f081b3e9a4cf7c842151.stex new file mode 100644 index 0000000..6030c9b Binary files /dev/null and b/Client/.import/WIN_20200422_18_07_27_Pro.jpg-9508d8954984f081b3e9a4cf7c842151.stex differ diff --git a/Client/.import/WIN_20200422_18_07_35_Pro.jpg-b305aa77daa3cbc8c1e785479de68afb.md5 b/Client/.import/WIN_20200422_18_07_35_Pro.jpg-b305aa77daa3cbc8c1e785479de68afb.md5 new file mode 100644 index 0000000..657d13e --- /dev/null +++ b/Client/.import/WIN_20200422_18_07_35_Pro.jpg-b305aa77daa3cbc8c1e785479de68afb.md5 @@ -0,0 +1,3 @@ +source_md5="d1e3bab8f703428934c17dae8658ab02" +dest_md5="94aab1a5e8b60b5e4016661225997818" + diff --git a/Client/.import/WIN_20200422_18_07_35_Pro.jpg-b305aa77daa3cbc8c1e785479de68afb.stex b/Client/.import/WIN_20200422_18_07_35_Pro.jpg-b305aa77daa3cbc8c1e785479de68afb.stex new file mode 100644 index 0000000..ad02fb9 Binary files /dev/null and b/Client/.import/WIN_20200422_18_07_35_Pro.jpg-b305aa77daa3cbc8c1e785479de68afb.stex differ diff --git a/Client/.import/WIN_20200422_18_07_38_Pro.jpg-02192e0a5efe2550520a5ed3a31b43af.md5 b/Client/.import/WIN_20200422_18_07_38_Pro.jpg-02192e0a5efe2550520a5ed3a31b43af.md5 new file mode 100644 index 0000000..a14a302 --- /dev/null +++ b/Client/.import/WIN_20200422_18_07_38_Pro.jpg-02192e0a5efe2550520a5ed3a31b43af.md5 @@ -0,0 +1,3 @@ +source_md5="53410f072f65cafcd5e1fd3a2dd37c4b" +dest_md5="1b745a2c86b82db180c55010aaab515a" + diff --git a/Client/.import/WIN_20200422_18_07_38_Pro.jpg-02192e0a5efe2550520a5ed3a31b43af.stex b/Client/.import/WIN_20200422_18_07_38_Pro.jpg-02192e0a5efe2550520a5ed3a31b43af.stex new file mode 100644 index 0000000..94ac33a Binary files /dev/null and b/Client/.import/WIN_20200422_18_07_38_Pro.jpg-02192e0a5efe2550520a5ed3a31b43af.stex differ diff --git a/Client/.import/WIN_20200422_18_07_41_Pro.jpg-b89aaa54dff17c17211541c40054871d.md5 b/Client/.import/WIN_20200422_18_07_41_Pro.jpg-b89aaa54dff17c17211541c40054871d.md5 new file mode 100644 index 0000000..fc6851a --- /dev/null +++ b/Client/.import/WIN_20200422_18_07_41_Pro.jpg-b89aaa54dff17c17211541c40054871d.md5 @@ -0,0 +1,3 @@ +source_md5="e19fe16dbaf72833aecad9d34c863614" +dest_md5="4f79161a67e44c4a4040394542f2ba28" + diff --git a/Client/.import/WIN_20200422_18_07_41_Pro.jpg-b89aaa54dff17c17211541c40054871d.stex b/Client/.import/WIN_20200422_18_07_41_Pro.jpg-b89aaa54dff17c17211541c40054871d.stex new file mode 100644 index 0000000..fd58aa3 Binary files /dev/null and b/Client/.import/WIN_20200422_18_07_41_Pro.jpg-b89aaa54dff17c17211541c40054871d.stex differ diff --git a/Client/.import/WIN_20200422_18_07_45_Pro.jpg-6fc079cb62a336cc632b626d7f886482.md5 b/Client/.import/WIN_20200422_18_07_45_Pro.jpg-6fc079cb62a336cc632b626d7f886482.md5 new file mode 100644 index 0000000..d959f65 --- /dev/null +++ b/Client/.import/WIN_20200422_18_07_45_Pro.jpg-6fc079cb62a336cc632b626d7f886482.md5 @@ -0,0 +1,3 @@ +source_md5="e9a8315505b78e0ac942cf0d6b358d43" +dest_md5="90227dc52675cbfb950f51faff25ad84" + diff --git a/Client/.import/WIN_20200422_18_07_45_Pro.jpg-6fc079cb62a336cc632b626d7f886482.stex b/Client/.import/WIN_20200422_18_07_45_Pro.jpg-6fc079cb62a336cc632b626d7f886482.stex new file mode 100644 index 0000000..bd4b308 Binary files /dev/null and b/Client/.import/WIN_20200422_18_07_45_Pro.jpg-6fc079cb62a336cc632b626d7f886482.stex differ diff --git a/Client/.import/WIN_20200422_18_07_51_Pro.jpg-249d6580ad823efb487cdb1e44a06442.md5 b/Client/.import/WIN_20200422_18_07_51_Pro.jpg-249d6580ad823efb487cdb1e44a06442.md5 new file mode 100644 index 0000000..90ae308 --- /dev/null +++ b/Client/.import/WIN_20200422_18_07_51_Pro.jpg-249d6580ad823efb487cdb1e44a06442.md5 @@ -0,0 +1,3 @@ +source_md5="296d16e7f5d77531a5be04c856fc946a" +dest_md5="82b619e32d4af0bd9e2e2f87b4a3e08f" + diff --git a/Client/.import/WIN_20200422_18_07_51_Pro.jpg-249d6580ad823efb487cdb1e44a06442.stex b/Client/.import/WIN_20200422_18_07_51_Pro.jpg-249d6580ad823efb487cdb1e44a06442.stex new file mode 100644 index 0000000..b5336f7 Binary files /dev/null and b/Client/.import/WIN_20200422_18_07_51_Pro.jpg-249d6580ad823efb487cdb1e44a06442.stex differ diff --git a/Client/.import/WIN_20200422_18_07_55_Pro.jpg-d6ce827162d94db61ff4a3d9035d26e4.md5 b/Client/.import/WIN_20200422_18_07_55_Pro.jpg-d6ce827162d94db61ff4a3d9035d26e4.md5 new file mode 100644 index 0000000..a216170 --- /dev/null +++ b/Client/.import/WIN_20200422_18_07_55_Pro.jpg-d6ce827162d94db61ff4a3d9035d26e4.md5 @@ -0,0 +1,3 @@ +source_md5="6083dd11876e33ddc93a939066b630ed" +dest_md5="f97ffe53f2994ae21de99d8b7346b6d6" + diff --git a/Client/.import/WIN_20200422_18_07_55_Pro.jpg-d6ce827162d94db61ff4a3d9035d26e4.stex b/Client/.import/WIN_20200422_18_07_55_Pro.jpg-d6ce827162d94db61ff4a3d9035d26e4.stex new file mode 100644 index 0000000..fb9c022 Binary files /dev/null and b/Client/.import/WIN_20200422_18_07_55_Pro.jpg-d6ce827162d94db61ff4a3d9035d26e4.stex differ diff --git a/Client/.import/WIN_20200422_18_07_57_Pro.jpg-6f7ca974f7dcd22ce6495dad4de88ae0.md5 b/Client/.import/WIN_20200422_18_07_57_Pro.jpg-6f7ca974f7dcd22ce6495dad4de88ae0.md5 new file mode 100644 index 0000000..627ea64 --- /dev/null +++ b/Client/.import/WIN_20200422_18_07_57_Pro.jpg-6f7ca974f7dcd22ce6495dad4de88ae0.md5 @@ -0,0 +1,3 @@ +source_md5="0937615d2a1976f7f03680f591bac0ce" +dest_md5="e176526c12ae02f1ff88041cdfe1549a" + diff --git a/Client/.import/WIN_20200422_18_07_57_Pro.jpg-6f7ca974f7dcd22ce6495dad4de88ae0.stex b/Client/.import/WIN_20200422_18_07_57_Pro.jpg-6f7ca974f7dcd22ce6495dad4de88ae0.stex new file mode 100644 index 0000000..5140c0c Binary files /dev/null and b/Client/.import/WIN_20200422_18_07_57_Pro.jpg-6f7ca974f7dcd22ce6495dad4de88ae0.stex differ diff --git a/Client/.import/WIN_20200422_18_08_00_Pro.jpg-c888e31982b20c287d2da967e9f430ae.md5 b/Client/.import/WIN_20200422_18_08_00_Pro.jpg-c888e31982b20c287d2da967e9f430ae.md5 new file mode 100644 index 0000000..43c6f67 --- /dev/null +++ b/Client/.import/WIN_20200422_18_08_00_Pro.jpg-c888e31982b20c287d2da967e9f430ae.md5 @@ -0,0 +1,3 @@ +source_md5="9885bef21c2513966c9667ff46076750" +dest_md5="a69bff8f27dd2f14e01c3dd1d6acadb9" + diff --git a/Client/.import/WIN_20200422_18_08_00_Pro.jpg-c888e31982b20c287d2da967e9f430ae.stex b/Client/.import/WIN_20200422_18_08_00_Pro.jpg-c888e31982b20c287d2da967e9f430ae.stex new file mode 100644 index 0000000..7f7e8b3 Binary files /dev/null and b/Client/.import/WIN_20200422_18_08_00_Pro.jpg-c888e31982b20c287d2da967e9f430ae.stex differ diff --git a/Client/.import/WIN_20200422_18_08_03_Pro.jpg-414775b1576ebdf59eb756352ce8f969.md5 b/Client/.import/WIN_20200422_18_08_03_Pro.jpg-414775b1576ebdf59eb756352ce8f969.md5 new file mode 100644 index 0000000..004ecae --- /dev/null +++ b/Client/.import/WIN_20200422_18_08_03_Pro.jpg-414775b1576ebdf59eb756352ce8f969.md5 @@ -0,0 +1,3 @@ +source_md5="cea4d017c459865dd2c43761ba1939e5" +dest_md5="d81fdf6f1f2a6239fd4ad728a30b63d7" + diff --git a/Client/.import/WIN_20200422_18_08_03_Pro.jpg-414775b1576ebdf59eb756352ce8f969.stex b/Client/.import/WIN_20200422_18_08_03_Pro.jpg-414775b1576ebdf59eb756352ce8f969.stex new file mode 100644 index 0000000..07de1c9 Binary files /dev/null and b/Client/.import/WIN_20200422_18_08_03_Pro.jpg-414775b1576ebdf59eb756352ce8f969.stex differ diff --git a/Client/.import/WIN_20200422_18_08_11_Pro.jpg-7c60efb01ebe061240fdcf09e753425d.md5 b/Client/.import/WIN_20200422_18_08_11_Pro.jpg-7c60efb01ebe061240fdcf09e753425d.md5 new file mode 100644 index 0000000..895883a --- /dev/null +++ b/Client/.import/WIN_20200422_18_08_11_Pro.jpg-7c60efb01ebe061240fdcf09e753425d.md5 @@ -0,0 +1,3 @@ +source_md5="e926ae115ee24d9fcf839cc63ba571af" +dest_md5="e82b1608dd6566627c603e1d6f77b60d" + diff --git a/Client/.import/WIN_20200422_18_08_11_Pro.jpg-7c60efb01ebe061240fdcf09e753425d.stex b/Client/.import/WIN_20200422_18_08_11_Pro.jpg-7c60efb01ebe061240fdcf09e753425d.stex new file mode 100644 index 0000000..22c71e5 Binary files /dev/null and b/Client/.import/WIN_20200422_18_08_11_Pro.jpg-7c60efb01ebe061240fdcf09e753425d.stex differ diff --git a/Client/.import/WIN_20200422_18_08_15_Pro.jpg-0ef689844d9a66a25750f82f28f20bbc.md5 b/Client/.import/WIN_20200422_18_08_15_Pro.jpg-0ef689844d9a66a25750f82f28f20bbc.md5 new file mode 100644 index 0000000..381e279 --- /dev/null +++ b/Client/.import/WIN_20200422_18_08_15_Pro.jpg-0ef689844d9a66a25750f82f28f20bbc.md5 @@ -0,0 +1,3 @@ +source_md5="e05e4a3f3b7dcf5e40e7472c1f5350bd" +dest_md5="c5a90046e5dd0ebdab5206f5bc964e19" + diff --git a/Client/.import/WIN_20200422_18_08_15_Pro.jpg-0ef689844d9a66a25750f82f28f20bbc.stex b/Client/.import/WIN_20200422_18_08_15_Pro.jpg-0ef689844d9a66a25750f82f28f20bbc.stex new file mode 100644 index 0000000..732106f Binary files /dev/null and b/Client/.import/WIN_20200422_18_08_15_Pro.jpg-0ef689844d9a66a25750f82f28f20bbc.stex differ diff --git a/Client/.import/WIN_20200422_18_08_18_Pro.jpg-e4380e5a01d896a81d0695b01bc462fb.md5 b/Client/.import/WIN_20200422_18_08_18_Pro.jpg-e4380e5a01d896a81d0695b01bc462fb.md5 new file mode 100644 index 0000000..1b3a389 --- /dev/null +++ b/Client/.import/WIN_20200422_18_08_18_Pro.jpg-e4380e5a01d896a81d0695b01bc462fb.md5 @@ -0,0 +1,3 @@ +source_md5="557bae56a1b1431e6a8a7db190512165" +dest_md5="9e4383646126717811fdd689ccb79ce4" + diff --git a/Client/.import/WIN_20200422_18_08_18_Pro.jpg-e4380e5a01d896a81d0695b01bc462fb.stex b/Client/.import/WIN_20200422_18_08_18_Pro.jpg-e4380e5a01d896a81d0695b01bc462fb.stex new file mode 100644 index 0000000..7d6cd4c Binary files /dev/null and b/Client/.import/WIN_20200422_18_08_18_Pro.jpg-e4380e5a01d896a81d0695b01bc462fb.stex differ diff --git a/Client/.import/WIN_20200422_18_08_22_Pro.jpg-af7e93c5aee8fa3e0cbb0742105c3a93.md5 b/Client/.import/WIN_20200422_18_08_22_Pro.jpg-af7e93c5aee8fa3e0cbb0742105c3a93.md5 new file mode 100644 index 0000000..4449e06 --- /dev/null +++ b/Client/.import/WIN_20200422_18_08_22_Pro.jpg-af7e93c5aee8fa3e0cbb0742105c3a93.md5 @@ -0,0 +1,3 @@ +source_md5="d30009461a47b294c99336c7b1c17d53" +dest_md5="51a8d9563e8a78d30e0a26aab8d97c30" + diff --git a/Client/.import/WIN_20200422_18_08_22_Pro.jpg-af7e93c5aee8fa3e0cbb0742105c3a93.stex b/Client/.import/WIN_20200422_18_08_22_Pro.jpg-af7e93c5aee8fa3e0cbb0742105c3a93.stex new file mode 100644 index 0000000..f31a12a Binary files /dev/null and b/Client/.import/WIN_20200422_18_08_22_Pro.jpg-af7e93c5aee8fa3e0cbb0742105c3a93.stex differ diff --git a/Client/.import/WorldTiles.png-0c3e8877d279a129ba884ba7fa2fb70a.md5 b/Client/.import/WorldTiles.png-0c3e8877d279a129ba884ba7fa2fb70a.md5 new file mode 100644 index 0000000..d174b5e --- /dev/null +++ b/Client/.import/WorldTiles.png-0c3e8877d279a129ba884ba7fa2fb70a.md5 @@ -0,0 +1,3 @@ +source_md5="a8f2dc25b32c3d14b9f46abc7660f5d3" +dest_md5="b6aac124c4cb330d42638284c9d95d65" + diff --git a/Client/.import/WorldTiles.png-0c3e8877d279a129ba884ba7fa2fb70a.stex b/Client/.import/WorldTiles.png-0c3e8877d279a129ba884ba7fa2fb70a.stex new file mode 100644 index 0000000..e0c2691 Binary files /dev/null and b/Client/.import/WorldTiles.png-0c3e8877d279a129ba884ba7fa2fb70a.stex differ diff --git a/Client/.import/WorldUIBackground.png-d9ea8396048cdc620ef0fa1ddaf72275.md5 b/Client/.import/WorldUIBackground.png-d9ea8396048cdc620ef0fa1ddaf72275.md5 new file mode 100644 index 0000000..90dcd47 --- /dev/null +++ b/Client/.import/WorldUIBackground.png-d9ea8396048cdc620ef0fa1ddaf72275.md5 @@ -0,0 +1,3 @@ +source_md5="0947c156d33c551eb22050e58984f0a3" +dest_md5="b284e685df09cf0502ce7456ca348998" + diff --git a/Client/.import/WorldUIBackground.png-d9ea8396048cdc620ef0fa1ddaf72275.stex b/Client/.import/WorldUIBackground.png-d9ea8396048cdc620ef0fa1ddaf72275.stex new file mode 100644 index 0000000..d621b23 Binary files /dev/null and b/Client/.import/WorldUIBackground.png-d9ea8396048cdc620ef0fa1ddaf72275.stex differ diff --git a/Client/.import/armybutton.png-8169f46c3f431fde5996afbdd799dd64.md5 b/Client/.import/armybutton.png-8169f46c3f431fde5996afbdd799dd64.md5 new file mode 100644 index 0000000..d7cd1ee --- /dev/null +++ b/Client/.import/armybutton.png-8169f46c3f431fde5996afbdd799dd64.md5 @@ -0,0 +1,3 @@ +source_md5="ce454e0ebbaab1de8ac2e1e99c8368b0" +dest_md5="91e4a8fea7ce22bbea075b0b74c6a1b8" + diff --git a/Client/.import/armybutton.png-8169f46c3f431fde5996afbdd799dd64.stex b/Client/.import/armybutton.png-8169f46c3f431fde5996afbdd799dd64.stex new file mode 100644 index 0000000..dcdbed1 Binary files /dev/null and b/Client/.import/armybutton.png-8169f46c3f431fde5996afbdd799dd64.stex differ diff --git a/Client/.import/armybuttonhover.png-c387e972f019a2bf19e110aad4c9cd26.md5 b/Client/.import/armybuttonhover.png-c387e972f019a2bf19e110aad4c9cd26.md5 new file mode 100644 index 0000000..f0a23a0 --- /dev/null +++ b/Client/.import/armybuttonhover.png-c387e972f019a2bf19e110aad4c9cd26.md5 @@ -0,0 +1,3 @@ +source_md5="57d65f49fba79f938426f48a2a8c84db" +dest_md5="a17aa4317251fc0be9fe5f368c54b255" + diff --git a/Client/.import/armybuttonhover.png-c387e972f019a2bf19e110aad4c9cd26.stex b/Client/.import/armybuttonhover.png-c387e972f019a2bf19e110aad4c9cd26.stex new file mode 100644 index 0000000..57df32f Binary files /dev/null and b/Client/.import/armybuttonhover.png-c387e972f019a2bf19e110aad4c9cd26.stex differ diff --git a/Client/.import/armybuttonpressed.png-53f3f6f84e34aa63ef4388805d826feb.md5 b/Client/.import/armybuttonpressed.png-53f3f6f84e34aa63ef4388805d826feb.md5 new file mode 100644 index 0000000..8012715 --- /dev/null +++ b/Client/.import/armybuttonpressed.png-53f3f6f84e34aa63ef4388805d826feb.md5 @@ -0,0 +1,3 @@ +source_md5="26cd54af1c83d21b8962b7b35e757ddd" +dest_md5="ff9510c747f396b70c714cdcce498ac6" + diff --git a/Client/.import/armybuttonpressed.png-53f3f6f84e34aa63ef4388805d826feb.stex b/Client/.import/armybuttonpressed.png-53f3f6f84e34aa63ef4388805d826feb.stex new file mode 100644 index 0000000..816e9c1 Binary files /dev/null and b/Client/.import/armybuttonpressed.png-53f3f6f84e34aa63ef4388805d826feb.stex differ diff --git a/Client/.import/brown BG.png-d04ae44e33c0ead89d4e8e4f5484a79c.md5 b/Client/.import/brown BG.png-d04ae44e33c0ead89d4e8e4f5484a79c.md5 new file mode 100644 index 0000000..55ef18a --- /dev/null +++ b/Client/.import/brown BG.png-d04ae44e33c0ead89d4e8e4f5484a79c.md5 @@ -0,0 +1,3 @@ +source_md5="303533ea72fb630c34f0488f1ad209c5" +dest_md5="3667623cf28e30b94ae57d8afbf0bd55" + diff --git a/Client/.import/brown BG.png-d04ae44e33c0ead89d4e8e4f5484a79c.stex b/Client/.import/brown BG.png-d04ae44e33c0ead89d4e8e4f5484a79c.stex new file mode 100644 index 0000000..aa5ff35 Binary files /dev/null and b/Client/.import/brown BG.png-d04ae44e33c0ead89d4e8e4f5484a79c.stex differ diff --git a/Client/.import/building 3x4.png-c6a7a7bf0c1a85a669585ad554c370be.md5 b/Client/.import/building 3x4.png-c6a7a7bf0c1a85a669585ad554c370be.md5 new file mode 100644 index 0000000..2408279 --- /dev/null +++ b/Client/.import/building 3x4.png-c6a7a7bf0c1a85a669585ad554c370be.md5 @@ -0,0 +1,3 @@ +source_md5="153a2716734e36a3016317b3e60cd5f8" +dest_md5="943d1ce0b7a9f5ff77d94f58472d57d7" + diff --git a/Client/.import/building 3x4.png-c6a7a7bf0c1a85a669585ad554c370be.stex b/Client/.import/building 3x4.png-c6a7a7bf0c1a85a669585ad554c370be.stex new file mode 100644 index 0000000..5782c63 Binary files /dev/null and b/Client/.import/building 3x4.png-c6a7a7bf0c1a85a669585ad554c370be.stex differ diff --git a/Client/.import/building.png-845f6585b62ae9d1a64e438ac939ea21.md5 b/Client/.import/building.png-845f6585b62ae9d1a64e438ac939ea21.md5 new file mode 100644 index 0000000..7ec47c8 --- /dev/null +++ b/Client/.import/building.png-845f6585b62ae9d1a64e438ac939ea21.md5 @@ -0,0 +1,3 @@ +source_md5="64c903dcb10de86d90b274133df3eea1" +dest_md5="6a2723194091c3d3020d32233954c3e7" + diff --git a/Client/.import/building.png-845f6585b62ae9d1a64e438ac939ea21.stex b/Client/.import/building.png-845f6585b62ae9d1a64e438ac939ea21.stex new file mode 100644 index 0000000..911b6c6 Binary files /dev/null and b/Client/.import/building.png-845f6585b62ae9d1a64e438ac939ea21.stex differ diff --git a/Client/.import/dragon.png-344011ea66e84d555ee6c6b716cf50e3.md5 b/Client/.import/dragon.png-344011ea66e84d555ee6c6b716cf50e3.md5 new file mode 100644 index 0000000..88b5b55 --- /dev/null +++ b/Client/.import/dragon.png-344011ea66e84d555ee6c6b716cf50e3.md5 @@ -0,0 +1,3 @@ +source_md5="95f95ec2d0f3c3d335a7e1502482109e" +dest_md5="074ee80a703d2f8ad4997b55486e1cfa" + diff --git a/Client/.import/dragon.png-344011ea66e84d555ee6c6b716cf50e3.stex b/Client/.import/dragon.png-344011ea66e84d555ee6c6b716cf50e3.stex new file mode 100644 index 0000000..7046162 Binary files /dev/null and b/Client/.import/dragon.png-344011ea66e84d555ee6c6b716cf50e3.stex differ diff --git a/Client/.import/headquarter_small.png-b661db6c63cb08befee99e08219ed7e9.md5 b/Client/.import/headquarter_small.png-b661db6c63cb08befee99e08219ed7e9.md5 new file mode 100644 index 0000000..4d35a0f --- /dev/null +++ b/Client/.import/headquarter_small.png-b661db6c63cb08befee99e08219ed7e9.md5 @@ -0,0 +1,3 @@ +source_md5="32aca7dcb45ace06af76490a51f54322" +dest_md5="d26cc40717590aecfda7ac535dfa79d4" + diff --git a/Client/.import/headquarter_small.png-b661db6c63cb08befee99e08219ed7e9.stex b/Client/.import/headquarter_small.png-b661db6c63cb08befee99e08219ed7e9.stex new file mode 100644 index 0000000..24a46d2 Binary files /dev/null and b/Client/.import/headquarter_small.png-b661db6c63cb08befee99e08219ed7e9.stex differ diff --git a/Client/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 b/Client/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 new file mode 100644 index 0000000..f75f542 --- /dev/null +++ b/Client/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 @@ -0,0 +1,3 @@ +source_md5="8dd9ff1eebf38898a54579d8c01b0a88" +dest_md5="da70afec3c66d4e872db67f808e12edb" + diff --git a/Client/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex b/Client/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex new file mode 100644 index 0000000..46e6d2a Binary files /dev/null and b/Client/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex differ diff --git a/Client/.import/regiontiles.png-8814835171d4f3819a1d1a786ad1b120.md5 b/Client/.import/regiontiles.png-8814835171d4f3819a1d1a786ad1b120.md5 new file mode 100644 index 0000000..11d2891 --- /dev/null +++ b/Client/.import/regiontiles.png-8814835171d4f3819a1d1a786ad1b120.md5 @@ -0,0 +1,3 @@ +source_md5="1a56bbe79104703ef662fb2a4bf19c95" +dest_md5="b6d8acf8d4e0b2ef70115e58121ed33d" + diff --git a/Client/.import/regiontiles.png-8814835171d4f3819a1d1a786ad1b120.stex b/Client/.import/regiontiles.png-8814835171d4f3819a1d1a786ad1b120.stex new file mode 100644 index 0000000..5df6ee0 Binary files /dev/null and b/Client/.import/regiontiles.png-8814835171d4f3819a1d1a786ad1b120.stex differ diff --git a/Client/.import/smallerbtn.png-f40aa6a05ffed5a4f105c1902c101117.md5 b/Client/.import/smallerbtn.png-f40aa6a05ffed5a4f105c1902c101117.md5 new file mode 100644 index 0000000..d5cc396 --- /dev/null +++ b/Client/.import/smallerbtn.png-f40aa6a05ffed5a4f105c1902c101117.md5 @@ -0,0 +1,3 @@ +source_md5="029bc626fffde85b248dad26d60578de" +dest_md5="732005d8970658ef6b4a1b6dcbc5ba35" + diff --git a/Client/.import/smallerbtn.png-f40aa6a05ffed5a4f105c1902c101117.stex b/Client/.import/smallerbtn.png-f40aa6a05ffed5a4f105c1902c101117.stex new file mode 100644 index 0000000..081ed1d Binary files /dev/null and b/Client/.import/smallerbtn.png-f40aa6a05ffed5a4f105c1902c101117.stex differ diff --git a/Client/.import/smallerbtnPress.png-a89a89036082e43dd65b0a93eecba655.md5 b/Client/.import/smallerbtnPress.png-a89a89036082e43dd65b0a93eecba655.md5 new file mode 100644 index 0000000..b4b955d --- /dev/null +++ b/Client/.import/smallerbtnPress.png-a89a89036082e43dd65b0a93eecba655.md5 @@ -0,0 +1,3 @@ +source_md5="66235526b21822d8a2e8c34bcf4a88f3" +dest_md5="799840fdb500c17794d4ca23aabb6334" + diff --git a/Client/.import/smallerbtnPress.png-a89a89036082e43dd65b0a93eecba655.stex b/Client/.import/smallerbtnPress.png-a89a89036082e43dd65b0a93eecba655.stex new file mode 100644 index 0000000..50fcbc8 Binary files /dev/null and b/Client/.import/smallerbtnPress.png-a89a89036082e43dd65b0a93eecba655.stex differ diff --git a/Client/.import/smallerbtnhover.png-affb1211294e4fcec5d0383ea8e280b1.md5 b/Client/.import/smallerbtnhover.png-affb1211294e4fcec5d0383ea8e280b1.md5 new file mode 100644 index 0000000..5a696c3 --- /dev/null +++ b/Client/.import/smallerbtnhover.png-affb1211294e4fcec5d0383ea8e280b1.md5 @@ -0,0 +1,3 @@ +source_md5="af757b11f6ce053451e2e7e0c15e9a3c" +dest_md5="01f2c5bef76847c9b4f68167fc95150d" + diff --git a/Client/.import/smallerbtnhover.png-affb1211294e4fcec5d0383ea8e280b1.stex b/Client/.import/smallerbtnhover.png-affb1211294e4fcec5d0383ea8e280b1.stex new file mode 100644 index 0000000..33beade Binary files /dev/null and b/Client/.import/smallerbtnhover.png-affb1211294e4fcec5d0383ea8e280b1.stex differ diff --git a/Client/.import/warrior.png-5a991f2b5a4c70e0a23d758896248915.md5 b/Client/.import/warrior.png-5a991f2b5a4c70e0a23d758896248915.md5 new file mode 100644 index 0000000..6d4567f --- /dev/null +++ b/Client/.import/warrior.png-5a991f2b5a4c70e0a23d758896248915.md5 @@ -0,0 +1,3 @@ +source_md5="478180383f608ee3cc08f5ddce3c84fc" +dest_md5="f4e599dd714e9a8251a151440b217c4a" + diff --git a/Client/.import/warrior.png-5a991f2b5a4c70e0a23d758896248915.stex b/Client/.import/warrior.png-5a991f2b5a4c70e0a23d758896248915.stex new file mode 100644 index 0000000..0b1554b Binary files /dev/null and b/Client/.import/warrior.png-5a991f2b5a4c70e0a23d758896248915.stex differ diff --git a/Client/.import/wizard.png-b613fcd97c82b20d63fc4e834e3577cc.md5 b/Client/.import/wizard.png-b613fcd97c82b20d63fc4e834e3577cc.md5 new file mode 100644 index 0000000..cadba81 --- /dev/null +++ b/Client/.import/wizard.png-b613fcd97c82b20d63fc4e834e3577cc.md5 @@ -0,0 +1,3 @@ +source_md5="098f096079b8dd3e4dfdf64254957207" +dest_md5="60ed2d39abd1e60215aad2c0c92dd871" + diff --git a/Client/.import/wizard.png-b613fcd97c82b20d63fc4e834e3577cc.stex b/Client/.import/wizard.png-b613fcd97c82b20d63fc4e834e3577cc.stex new file mode 100644 index 0000000..be9c709 Binary files /dev/null and b/Client/.import/wizard.png-b613fcd97c82b20d63fc4e834e3577cc.stex differ diff --git a/Client/.import/worldmap.png-6177cce3310464415a2ac8750a3d0794.md5 b/Client/.import/worldmap.png-6177cce3310464415a2ac8750a3d0794.md5 new file mode 100644 index 0000000..4dabae8 --- /dev/null +++ b/Client/.import/worldmap.png-6177cce3310464415a2ac8750a3d0794.md5 @@ -0,0 +1,3 @@ +source_md5="0b9f1600c0cb2585b6a3f1e2fdcaeed6" +dest_md5="d811c9004619590157f0bdacf91714d7" + diff --git a/Client/.import/worldmap.png-6177cce3310464415a2ac8750a3d0794.stex b/Client/.import/worldmap.png-6177cce3310464415a2ac8750a3d0794.stex new file mode 100644 index 0000000..5a6658e Binary files /dev/null and b/Client/.import/worldmap.png-6177cce3310464415a2ac8750a3d0794.stex differ diff --git a/Client/.import/Überraschungsmagier.bmp-9457ee5d94548444410a55e79a7f468a.md5 b/Client/.import/Überraschungsmagier.bmp-9457ee5d94548444410a55e79a7f468a.md5 new file mode 100644 index 0000000..ac045fd --- /dev/null +++ b/Client/.import/Überraschungsmagier.bmp-9457ee5d94548444410a55e79a7f468a.md5 @@ -0,0 +1,3 @@ +source_md5="0e5a3dd6ea6cb638582e0aa884a43677" +dest_md5="0a2a87c9d737211b7bc5e2fb679a073e" + diff --git a/Client/.import/Überraschungsmagier.bmp-9457ee5d94548444410a55e79a7f468a.stex b/Client/.import/Überraschungsmagier.bmp-9457ee5d94548444410a55e79a7f468a.stex new file mode 100644 index 0000000..a99d282 Binary files /dev/null and b/Client/.import/Überraschungsmagier.bmp-9457ee5d94548444410a55e79a7f468a.stex differ diff --git a/Client/.import/ÜberraschungsmagierStartWalk1.bmp-2002b7afff68c79b434af458933925b6.md5 b/Client/.import/ÜberraschungsmagierStartWalk1.bmp-2002b7afff68c79b434af458933925b6.md5 new file mode 100644 index 0000000..9539608 --- /dev/null +++ b/Client/.import/ÜberraschungsmagierStartWalk1.bmp-2002b7afff68c79b434af458933925b6.md5 @@ -0,0 +1,3 @@ +source_md5="6991e5f8e990020b3607808d34524004" +dest_md5="03f58b6906d3c34056c99688fa2affca" + diff --git a/Client/.import/ÜberraschungsmagierStartWalk1.bmp-2002b7afff68c79b434af458933925b6.stex b/Client/.import/ÜberraschungsmagierStartWalk1.bmp-2002b7afff68c79b434af458933925b6.stex new file mode 100644 index 0000000..c86dda9 Binary files /dev/null and b/Client/.import/ÜberraschungsmagierStartWalk1.bmp-2002b7afff68c79b434af458933925b6.stex differ diff --git a/Client/.import/ÜberraschungsmagierStartWalk2.bmp-4b6c0867b6e9c24385dac82e401cd73b.md5 b/Client/.import/ÜberraschungsmagierStartWalk2.bmp-4b6c0867b6e9c24385dac82e401cd73b.md5 new file mode 100644 index 0000000..022bb3f --- /dev/null +++ b/Client/.import/ÜberraschungsmagierStartWalk2.bmp-4b6c0867b6e9c24385dac82e401cd73b.md5 @@ -0,0 +1,3 @@ +source_md5="65079a4590a847a89614c4bfa85931b3" +dest_md5="7e134cee2ac9623cfd2eff5813d63421" + diff --git a/Client/.import/ÜberraschungsmagierStartWalk2.bmp-4b6c0867b6e9c24385dac82e401cd73b.stex b/Client/.import/ÜberraschungsmagierStartWalk2.bmp-4b6c0867b6e9c24385dac82e401cd73b.stex new file mode 100644 index 0000000..2625df1 Binary files /dev/null and b/Client/.import/ÜberraschungsmagierStartWalk2.bmp-4b6c0867b6e9c24385dac82e401cd73b.stex differ diff --git a/Client/.import/ÜberraschungsmagierSword1.bmp-5c326f0d9e5921b1abb58068ca74ab78.md5 b/Client/.import/ÜberraschungsmagierSword1.bmp-5c326f0d9e5921b1abb58068ca74ab78.md5 new file mode 100644 index 0000000..7306407 --- /dev/null +++ b/Client/.import/ÜberraschungsmagierSword1.bmp-5c326f0d9e5921b1abb58068ca74ab78.md5 @@ -0,0 +1,3 @@ +source_md5="641840903650562e83ab2400164c438c" +dest_md5="dd5525a6633d42592c83c715a79c759f" + diff --git a/Client/.import/ÜberraschungsmagierSword1.bmp-5c326f0d9e5921b1abb58068ca74ab78.stex b/Client/.import/ÜberraschungsmagierSword1.bmp-5c326f0d9e5921b1abb58068ca74ab78.stex new file mode 100644 index 0000000..8021f43 Binary files /dev/null and b/Client/.import/ÜberraschungsmagierSword1.bmp-5c326f0d9e5921b1abb58068ca74ab78.stex differ diff --git a/Client/.import/ÜberraschungsmagierSword2.bmp-ac74ec834977c50612410b93d68d26e0.md5 b/Client/.import/ÜberraschungsmagierSword2.bmp-ac74ec834977c50612410b93d68d26e0.md5 new file mode 100644 index 0000000..0cfa92a --- /dev/null +++ b/Client/.import/ÜberraschungsmagierSword2.bmp-ac74ec834977c50612410b93d68d26e0.md5 @@ -0,0 +1,3 @@ +source_md5="13c7ce9d19d1a09a41074ec6a645438a" +dest_md5="2dd078d2d69334fd7bf453f186c0a93b" + diff --git a/Client/.import/ÜberraschungsmagierSword2.bmp-ac74ec834977c50612410b93d68d26e0.stex b/Client/.import/ÜberraschungsmagierSword2.bmp-ac74ec834977c50612410b93d68d26e0.stex new file mode 100644 index 0000000..fdc6da6 Binary files /dev/null and b/Client/.import/ÜberraschungsmagierSword2.bmp-ac74ec834977c50612410b93d68d26e0.stex differ diff --git a/Client/.import/ÜberraschungsmagierSword3.bmp-6f1ff3af02d281aa4029ecf7e6b8ef8c.md5 b/Client/.import/ÜberraschungsmagierSword3.bmp-6f1ff3af02d281aa4029ecf7e6b8ef8c.md5 new file mode 100644 index 0000000..da0fda0 --- /dev/null +++ b/Client/.import/ÜberraschungsmagierSword3.bmp-6f1ff3af02d281aa4029ecf7e6b8ef8c.md5 @@ -0,0 +1,3 @@ +source_md5="553543fa4e3c937f07581c9b421001c3" +dest_md5="1a414edd14a9fd59b1bd4f9044d3ac20" + diff --git a/Client/.import/ÜberraschungsmagierSword3.bmp-6f1ff3af02d281aa4029ecf7e6b8ef8c.stex b/Client/.import/ÜberraschungsmagierSword3.bmp-6f1ff3af02d281aa4029ecf7e6b8ef8c.stex new file mode 100644 index 0000000..15cbbca Binary files /dev/null and b/Client/.import/ÜberraschungsmagierSword3.bmp-6f1ff3af02d281aa4029ecf7e6b8ef8c.stex differ diff --git a/Client/.import/ÜberraschungsmagierSword4.bmp-8d431a75deb486c8816dd4b559955612.md5 b/Client/.import/ÜberraschungsmagierSword4.bmp-8d431a75deb486c8816dd4b559955612.md5 new file mode 100644 index 0000000..fde7677 --- /dev/null +++ b/Client/.import/ÜberraschungsmagierSword4.bmp-8d431a75deb486c8816dd4b559955612.md5 @@ -0,0 +1,3 @@ +source_md5="697d213a26938ea6ab0503574d527ca2" +dest_md5="248666a44ea679abab4cdff8812a8025" + diff --git a/Client/.import/ÜberraschungsmagierSword4.bmp-8d431a75deb486c8816dd4b559955612.stex b/Client/.import/ÜberraschungsmagierSword4.bmp-8d431a75deb486c8816dd4b559955612.stex new file mode 100644 index 0000000..26dee09 Binary files /dev/null and b/Client/.import/ÜberraschungsmagierSword4.bmp-8d431a75deb486c8816dd4b559955612.stex differ diff --git a/Client/.import/ÜberraschungsmagierWalk.bmp-3d15630baa2b1d55d00ae00521734917.md5 b/Client/.import/ÜberraschungsmagierWalk.bmp-3d15630baa2b1d55d00ae00521734917.md5 new file mode 100644 index 0000000..85cf99b --- /dev/null +++ b/Client/.import/ÜberraschungsmagierWalk.bmp-3d15630baa2b1d55d00ae00521734917.md5 @@ -0,0 +1,3 @@ +source_md5="828f5f9c7a82414123dfb8395a29cd12" +dest_md5="5a9021a8b1887c0aa6f2c064b937188d" + diff --git a/Client/.import/ÜberraschungsmagierWalk.bmp-3d15630baa2b1d55d00ae00521734917.stex b/Client/.import/ÜberraschungsmagierWalk.bmp-3d15630baa2b1d55d00ae00521734917.stex new file mode 100644 index 0000000..416c629 Binary files /dev/null and b/Client/.import/ÜberraschungsmagierWalk.bmp-3d15630baa2b1d55d00ae00521734917.stex differ diff --git a/Client/.vscode/settings.json b/Client/.vscode/settings.json new file mode 100644 index 0000000..fe162d2 --- /dev/null +++ b/Client/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "godot_tools.editor_path": "c:\\Users\\ricardo.b\\Desktop\\Godot_v3.3.3-stable_win64.exe\\Godot_v3.3.3-stable_win64.exe" +} \ No newline at end of file diff --git a/Client/ArmyButton.gd b/Client/ArmyButton.gd new file mode 100644 index 0000000..e755867 --- /dev/null +++ b/Client/ArmyButton.gd @@ -0,0 +1,27 @@ +extends TextureButton + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +var diplomacy = '' +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +func _pressed(): + WorldManager.selectedArmy = get_node('lblArmyName').text + WorldManager.selecterArmydiplo = diplomacy + print(WorldManager.selectedArmy) +# print(diplomacy) +# var region = RegionCreater.createRegion('GRASS', 19, 19) +# print("Region:") +# print(region) +# self.add_child(region) + +func text(text, diplo = 'neutral'): + get_node("lblArmyName").text = text + diplomacy = diplo + pass +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Client/ArmyButton.tscn b/Client/ArmyButton.tscn new file mode 100644 index 0000000..306f6f5 --- /dev/null +++ b/Client/ArmyButton.tscn @@ -0,0 +1,29 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://images/button/armybutton.png" type="Texture" id=1] +[ext_resource path="res://images/button/armybuttonpressed.png" type="Texture" id=2] +[ext_resource path="res://images/button/armybuttonhover.png" type="Texture" id=3] +[ext_resource path="res://ArmyButton.gd" type="Script" id=4] +[ext_resource path="res://font/anton.tres" type="DynamicFont" id=5] + +[node name="btnArmy" type="TextureButton"] +texture_normal = ExtResource( 1 ) +texture_pressed = ExtResource( 2 ) +texture_hover = ExtResource( 3 ) +script = ExtResource( 4 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="lblArmyName" type="Label" parent="."] +modulate = Color( 0.827451, 0.145098, 0.145098, 1 ) +margin_left = 6.0 +margin_top = 16.0 +margin_right = 249.0 +margin_bottom = 56.0 +custom_fonts/font = ExtResource( 5 ) +text = "Armeename" +align = 1 +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/Client/ArmyWM.gd b/Client/ArmyWM.gd new file mode 100644 index 0000000..e665993 --- /dev/null +++ b/Client/ArmyWM.gd @@ -0,0 +1,43 @@ +extends KinematicBody2D + + +#army script for tokens on worldmap + + +export var faction = '' +export var armyname = '' + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +func addLeader(leader): + get_node("Leader").add_child(leader) + applyLeaderBuffs() + +func applyLeaderBuffs(): + + #TO DO: figure out how leader buffs army + return + + +func fetchLeader(): + var node = get_node("Leader") + var fetch = node.get_children() + node.free() + applyLeaderBuffs() + return fetch + + + +func goto(x,y): + self.position.x = x + self.position.y = y + pass + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass + diff --git a/Client/ArmyWM.tscn b/Client/ArmyWM.tscn new file mode 100644 index 0000000..d990ea5 --- /dev/null +++ b/Client/ArmyWM.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://ArmyWM.gd" type="Script" id=1] +[ext_resource path="res://images/wizard.png" type="Texture" id=2] + +[sub_resource type="RectangleShape2D" id=1] + +[node name="Army" type="KinematicBody2D"] +script = ExtResource( 1 ) + +[node name="colArmy" type="CollisionShape2D" parent="."] +shape = SubResource( 1 ) + +[node name="sprArmy" type="Sprite" parent="."] +texture = ExtResource( 2 ) diff --git a/Client/Camera2D.gd b/Client/Camera2D.gd new file mode 100644 index 0000000..7e55d0d --- /dev/null +++ b/Client/Camera2D.gd @@ -0,0 +1,130 @@ +extends Camera2D + +export var panSpeed = 10.0 +export var speed = 20.0 +export var zoomspeed = 10.0 +# warning-ignore:unused_class_variable +export var zoommargin = 0.1 + +export var zoomMin = 0.25 +export var zoomMax = 3.0 +export var marginX = 200.0 +export var marginY = 200.0 + +var mousepos = Vector2() +var mouseposGlobal = Vector2() +var start = Vector2() +var startv = Vector2() +var end = Vector2() +var endv = Vector2() +var zoomfactor = 1.0 +var zooming = false +var is_dragging = false +var move_to_point = Vector2() + + + + + +#onready var rectd = $'../UI/Base/draw_rect' + +signal area_selected +signal start_move_selection + +func _ready(): +# connect("area_selected", get_parent(), "area_selected", [self]) +# connect("start_move_selection", get_parent(), "start_move_selection", [self]) + + pass + + +func _process(delta): + #smooth movement + var inpx = (int(Input.is_action_pressed("ui_right")) + - int(Input.is_action_pressed("ui_left"))) + var inpy = (int(Input.is_action_pressed("ui_down")) + - int(Input.is_action_pressed("ui_up"))) + self.position.x = lerp(position.x, position.x + inpx *speed,speed * delta) + self.position.y = lerp(position.y, position.y + inpy *speed,speed * delta) + if Input.is_key_pressed(KEY_CONTROL): + #check mousepos + if mousepos.x < marginX: + position.x = lerp(position.x, position.x - abs(mousepos.x - marginX)/marginX * panSpeed * zoom.x, panSpeed * delta) + elif mousepos.x > OS.window_size.x - marginX: + position.x = lerp(position.x, position.x + abs(mousepos.x - OS.window_size.x + marginX)/marginX * panSpeed * zoom.x, panSpeed * delta) + if mousepos.y < marginY: + position.y = lerp(position.y, position.y - abs(mousepos.y - marginY)/marginY * panSpeed * zoom.y, panSpeed * delta) + elif mousepos.y > OS.window_size.y - marginY: + position.y = lerp(position.y, position.y + abs(mousepos.y - OS.window_size.y + marginY)/marginY * panSpeed * zoom.y, panSpeed * delta) + + if Input.is_action_just_pressed("ui_left_mouse_button"): + start = mouseposGlobal + startv = mousepos + is_dragging = true + if is_dragging: + end = mouseposGlobal + endv = mousepos + draw_area() + if Input.is_action_just_released("ui_left_mouse_button"): + if startv.distance_to(mousepos) > 20: + end = mouseposGlobal + endv = mousepos + is_dragging = false + draw_area(false) + emit_signal("area_selected") + else: + end = start + is_dragging = false + draw_area(false) + if Input.is_action_just_released("ui_right_mouse_button"): + move_to_point = mouseposGlobal + emit_signal("start_move_selection") + + + #zoom in + zoom.x = lerp(zoom.x, zoom.x * zoomfactor, zoomspeed * delta) + zoom.y = lerp(zoom.y, zoom.y * zoomfactor, zoomspeed * delta) + + zoom.x = clamp(zoom.x, zoomMin, zoomMax) + zoom.y = clamp(zoom.y, zoomMin, zoomMax) + + if not zooming: + zoomfactor = 1.0 + + +# warning-ignore:unused_argument +func draw_area(s = true): +# rectd.rect_size = Vector2(abs(startv.x-endv.x), abs(startv.y - endv.y)) +# +## if startv.y <= endv.y and startv.x <= endv.x: # bottom right +## rectd.rect_position = Vector2(startv.x, startv.y - OS.window_size.y) +## elif startv.x >= endv.x and startv.y >= endv.y: # top left +## rectd.rect_position = Vector2(endv.x, endv.y - OS.window_size.y) +## elif startv.x >= endv.x and startv.y <= endv.y: # bottom left +## rectd.rect_position = Vector2(endv.x, startv.y - OS.window_size.y) +## elif startv.x <= endv.x and startv.y >= endv.y: # top right +## rectd.rect_position = Vector2(startv.x, endv.y - OS.window_size.y) +# +# var pos = Vector2() +# pos.x = min(startv.x, endv.x) +# pos.y = min(startv.y, endv.y) +# pos.y -= OS.window_size.y +# rectd.rect_position = pos +# +# rectd.rect_size *= int(s) # true = 1 and false = 0 + pass + +func _input(event): + if event is InputEventMouseButton: + if event.is_pressed(): + zooming = true + if event.button_index == BUTTON_WHEEL_UP: + zoomfactor -= 0.01 * zoomspeed + if event.button_index == BUTTON_WHEEL_DOWN: + zoomfactor += 0.01 * zoomspeed + else: + zooming = false + + if event is InputEventMouse: + mousepos = event.position + mouseposGlobal = get_global_mouse_position() \ No newline at end of file diff --git a/Client/Item.tscn b/Client/Item.tscn new file mode 100644 index 0000000..3f778bc --- /dev/null +++ b/Client/Item.tscn @@ -0,0 +1,29 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://items/items.tres" type="Texture" id=1] +[ext_resource path="res://items/item.gd" type="Script" id=2] +[ext_resource path="res://font/anton.tres" type="DynamicFont" id=3] + +[node name="Item" type="TextureButton"] +texture_normal = ExtResource( 1 ) +script = ExtResource( 2 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="lblItem" type="Label" parent="."] +margin_left = -26.3886 +margin_top = 22.5987 +margin_right = 27.6114 +margin_bottom = 42.5987 +custom_fonts/font = ExtResource( 3 ) + +[node name="conItem" type="Control" parent="."] +margin_left = -48.0 +margin_top = -48.0 +margin_right = 48.0 +margin_bottom = 48.0 +rect_min_size = Vector2( 96, 96 ) +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/Client/Network.gd b/Client/Network.gd new file mode 100644 index 0000000..3499179 --- /dev/null +++ b/Client/Network.gd @@ -0,0 +1,126 @@ +extends Node + +const DEFAULT_IP = '127.0.0.1' +const DEFAULT_PORT = 31400 +const MAX_PLAYERS = 50 + +var ip = '' +var players = { } +var self_data = { name = '', faction = '' } +var pw = '' +var ongoingQry = false +var lastRequest = '' + +signal player_disconnected +signal server_disconnected + +func _ready(): + get_tree().connect('network_peer_disconnected', self, '_on_player_disconnected') + get_tree().connect('network_peer_connected', self, '_on_player_connected') + + +func create_server(response): + self_data.name = response['name'] + self_data.faction = response['faction'] + PlayerManager.authcache['name'] = response['name'] + PlayerManager.authcache['response']= response + players[1] = self_data + var peer = NetworkedMultiplayerENet.new() + peer.create_server(DEFAULT_PORT, MAX_PLAYERS) + get_tree().set_network_peer(peer) + set_network_master(1) + +func connect_to_server(player_nickname,pw): + self_data.name = player_nickname + get_tree().connect('connected_to_server', self, '_connected_to_server') + var peer = NetworkedMultiplayerENet.new() + if ip == '': + ip = DEFAULT_IP + peer.create_client(ip, DEFAULT_PORT) + get_tree().set_network_peer(peer) + PlayerManager.authcache['password']=pw + PlayerManager.authcache['name']=player_nickname + + +func _connected_to_server(): + var local_player_id = get_tree().get_network_unique_id() + players[local_player_id] = self_data + rpc('_send_player_info', local_player_id, self_data) + var name = PlayerManager.authcache['name'] + var pw = PlayerManager.authcache['password'] + rpc_id(1, '_request_auth', local_player_id, name, pw) + +#function that creates needed files and directories in user +#To do: copy preset folder to user, handling should be uniform +func firstStart(): + var dir = Directory.new() + dir.open("user://") + dir.make_dir("armies") + dir.make_dir("factions") + var file = File.new() + file.open("user://armies/known.txt", File.WRITE) + file.store_line("{}") + file.close() + file.open("user://server.txt", File.WRITE) + file.store_line("server was started before") + file.close() + file.open("user://players.sav", File.WRITE) + file.store_line('{"name":"teas","password":"1","faction":"barb"}') + file.close() + + +func _on_player_disconnected(id): + players.erase(id) + PlayerManager.player_disconnected(id) + +func _on_player_connected(connected_player_id): + var local_player_id = get_tree().get_network_unique_id() + if not(get_tree().is_network_server()): + rpc_id(1, '_request_player_info', local_player_id, connected_player_id) + + +#never to be called from server +func request(request): + if not ongoingQry: + lastRequest = request + ongoingQry = true + rpc_id(1, 'respond', request) + return true + return false + +remote func _request_auth(id, name, pw): + var response = PlayerManager.identify_player(id, name, pw) + rpc_id(id, '_receive_auth', response) + + +remote func respond(request): + var response = 'nothing found' + + + rpc_id(get_tree().get_rpc_sender_id(), 'receive', response) + pass + + +func receive(request): + ongoingQry = false + pass + +remote func _receive_auth(response): + PlayerManager.authcache['response']=response + WorldManager.requestServer() + print(response) + + +remote func _request_player_info(request_from_id, player_id): + if get_tree().is_network_server(): + rpc_id(request_from_id, '_send_player_info', player_id, players[player_id]) + +# A function to be used if needed. The purpose is to request all players in the current session. +remote func _request_players(request_from_id): + if get_tree().is_network_server(): + for peer_id in players: + if( peer_id != request_from_id): + rpc_id(request_from_id, '_send_player_info', peer_id, players[peer_id]) + +remote func _send_player_info(id, info): + players[id] = info diff --git a/Client/OFL.txt b/Client/OFL.txt new file mode 100644 index 0000000..1f801a7 --- /dev/null +++ b/Client/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2016 The Anton Project Authors + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/Client/Oger/Walking/Oger 24.pdn b/Client/Oger/Walking/Oger 24.pdn new file mode 100644 index 0000000..73d8439 Binary files /dev/null and b/Client/Oger/Walking/Oger 24.pdn differ diff --git a/Client/Oger/Walking/Oger 25.pdn b/Client/Oger/Walking/Oger 25.pdn new file mode 100644 index 0000000..f246ca7 Binary files /dev/null and b/Client/Oger/Walking/Oger 25.pdn differ diff --git a/Client/Oger/Walking/Oger 26.pdn b/Client/Oger/Walking/Oger 26.pdn new file mode 100644 index 0000000..758dce4 Binary files /dev/null and b/Client/Oger/Walking/Oger 26.pdn differ diff --git a/Client/OgerWalkAnimation.gd b/Client/OgerWalkAnimation.gd new file mode 100644 index 0000000..4b02490 --- /dev/null +++ b/Client/OgerWalkAnimation.gd @@ -0,0 +1,19 @@ +extends Node2D + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func playAnimation(animationname): + $asprPger.play(animationname) + $Sword.play(animationname) diff --git a/Client/PlayerManager.gd b/Client/PlayerManager.gd new file mode 100644 index 0000000..b3eb091 --- /dev/null +++ b/Client/PlayerManager.gd @@ -0,0 +1,140 @@ +extends Node + + +var knownPlayers = {'test':{"password":"pw", "faction":"barbaren"},'judas':{"password":"pw", "faction":"KG"}} +var loaded = false +var authcache = {'name':'', 'password':'', 'response':{"found":false}} +var clients_factions = {} #used to recognize if networkrequest are allowed to do sth {networkid:factionname} +var pathToPlayer = "user://players.sav" +var factions = {} +var playerFaction +var diplomacyStates = {'neutral': 1, 'own' : 2, 'enemies':3, "allies":4} + +func identify_player(id, name, password): + var response = {'name':name, 'found':false, 'auth':false, 'faction':''} + if not loaded: + load_as_server() + if knownPlayers.has(name): + response['found'] = true + var player = knownPlayers[name] + if player['password'] == password: + response['auth'] = true + var playerFaction = player['faction'] + response['faction'] = playerFaction + if factions.has(playerFaction): + response['factiondata'] = factions[playerFaction] + clients_factions[id] = player['faction'] + if loaded: + clients_factions[1] = player['faction'] + clients_factions[0] = player['faction'] + print(name, ' logged in as ', player['faction']) + else: + print('wrong pw') + else: + print('no such name') + return response +# register_player(name, password, "barb2") +# print('registering: '+name+' + '+password) + + +func checkdiplo(factionA, factionB): + var response = 'neutral' + if factionA == factionB: + response = 'own' + else: + if factions.has(factionA): + var factionData = factions[factionA] + if factionData.has('diplomacy'): + var diplo = factionData['diplomacy'] + for key in diplo: + if diplo[key].has(factionB): + response = key + return response + return response + +#returns neutral for neutral, allies for allies, own for own and enemies for enemies +func checkDiplo(faction): + var data = authcache['response'] + var authed = data['found'] + var response = 'neutral' + if faction==data['faction']: + response = 'own' + return response + elif authed: + if data.has('factiondata'): + var factiondata = data['factiondata'] + if factiondata.has('diplomacy'): + var diplo = factiondata['diplomacy'] + for key in diplo: + if diplo[key].has(faction): + response = key + return response +# print("checking diplo") +# print(data, faction) +# print("considered ", response) +# print(" ") +# print("illegal move attempt") + return response + #var diplo = factiondata['diplomacy'] + pass + + +func confirmFaction(id, factionname): + if factionname==clients_factions[id]: + print(id, " is ", factionname) + return true + print(id, " is NOT ", factionname) + return false + +func load_as_server(): + var file = File.new() + file.open(pathToPlayer, file.READ) + while not file.eof_reached(): + var line = file.get_line() + var json_result = JSON.parse(line).result + if json_result: + print(json_result) + knownPlayers[json_result['name']] = {"password":json_result['password'], "faction":json_result["faction"]} + file.close() + print("looking for faction data") + for player in knownPlayers: + var data = knownPlayers[player] + file = File.new() + var path = "user://factions/"+data['faction']+".json" + if file.file_exists(path): + #print("found faction data") + #print(data) + file.open(path, file.READ) + var json = file.get_as_text() +# print('json:'+json) + var json_result = JSON.parse(json).result + #print(json_result) + factions[data['faction']] = json_result + else: + print("FILE NOT FOUND: "+"user://faction/"+data['faction']) + loaded = true + + + +func player_disconnected(id): + if clients_factions[id]: + clients_factions.erase(id) + + +remote func register_player(name, password, faction): + var data = {"name":name,"password":password, "faction":faction} + var file = File.new() + if file.open(pathToPlayer, File.READ_WRITE) != 0: + print("Error opening file") + return + file.seek_end() + file.store_line(JSON.print(data)) + file.close() + + + +remote func register_faction(factionname, playername, race): + var faction = { "factionname": factionname, "playername": playername, 'diplomacy' : '', 'race':race} + pass + + diff --git a/Client/RecruteMenueButton.gd b/Client/RecruteMenueButton.gd new file mode 100644 index 0000000..17e8e4f --- /dev/null +++ b/Client/RecruteMenueButton.gd @@ -0,0 +1,31 @@ +extends TextureButton + + + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +func _pressed(): + var old_node = get_parent() + var parent = get_parent().get_parent() + var newMenu = load('res://menues/RecruteUnits.tscn') + var instanceOne = newMenu.instance() + #get_parent().get_parent().add_child(instanceOne) + parent.add_child(instanceOne) + instanceOne.name = old_node.name + #instanceOne.set_position( Vector2(0, 0)) + + + get_parent().get_parent().remove_child(old_node) + get_parent().queue_free() + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Client/SumpfLicense.txt b/Client/SumpfLicense.txt new file mode 100644 index 0000000..7e80cc9 --- /dev/null +++ b/Client/SumpfLicense.txt @@ -0,0 +1,163 @@ +For all parts of this software not mentioned in another license in this file, the following license applies: + + +PREAMBLE: The goal of this project is to develop new game mechanics for gamers to enjoy and to promote Open Source software. +For technical as well as for ethical reasons, this project considers the integrity of boolean logic of higher significance than copyright law. + +Terms: + +Anathema: A company is considered anathema to this project if that company +opposes the spirit of the project as specified in the preamble. Such companies include but might not be limited to: +Universal Music and any of it's subsidiaries unless specified otherwise. +Electronic Arts and any of it's subsidiaries unless specified otherwise. +Telekom and any of it's subsidiaries unless specified otherwise. + +Eligible for free stuff: A person is considered elegible for free stuff if + +a) you are not currently working for a company that is considered anathema to this project. + +b) you never held a position that could be described as "Lawyer", "Lobbyist" or "Manager" in a company that is considered anathema +to this project, wether directly or as a contractor. + +Gamer: A Gamer is any entity with intent to use this software for entertainment. + +PERMISSION IS HEREBY GRANTED, FREE OF CHARGE, TO ANY GAMER THAT IS ELIGIBLE FOR FREE STUFF TO USE THIS SOFTWARE, MAKE COPIES OF IT AND DISTRIBUTE IT TO ANY OTHER GAMER THAT IS ELIGIBLE FOR FREE STUFF. +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + + + + This game uses Godot Engine, available under the following license: + + Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. Copyright (c) 2014-2020 Godot Engine contributors. + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + +Portions of this software are copyright © 2020 The FreeType Project (www.freetype.org). All rights reserved. + + + +Copyright 2016 The Anton Project Authors + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. + + + + + Copyright (c) 2002-2016 Lee Salzman + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + + + + MBedTLS is Copyright (C) 2013-2019 ARM + + Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. diff --git a/Client/WorldManager.gd b/Client/WorldManager.gd new file mode 100644 index 0000000..32774e2 --- /dev/null +++ b/Client/WorldManager.gd @@ -0,0 +1,205 @@ +extends Node + +signal updateMap +signal updateUI + +var Server = false #true if this is the server isntances +const UIBorder = 1310 +const travelTime = 10 + + +var worldmap + +var worldTiles = {} #currently managed with strings, can be indexed by ints in Godotscript +var selectedRegion = null +var armiesOnMap = {} +var armies = {} +var selectedArmy = null +var selecterArmydiplo = '' + + +func addArmy(from, to, army, armydata, player=true): + var arrive = from['turn'] + travelTime + var regionturn = to['turn'] + if arrive <= regionturn: + var armies = to['armies'] + armies[army] = armydata + if player: + if (to['playerTurnOn'] == -1) or (to['playerTurnOn'] > regionturn): + to['playerTurnOn'] = regionturn + else: + if (to['playerTurnOn'] == -1) or (to['playerTurnOn'] > arrive): + to['turn'] = arrive + var armies = to['armies'] + print(armies) +# if not typeof(armies) == TYPE_DICTIONARY: +# to['armies']={} +# armies = to['armies'] + armies[army] = armydata + setPresent(to) + if player: + to['playerTurnOn'] = regionturn + else: + if not to.has('incomming'): + to['incomming'] = {} + var incomming = to['incomming'] + armydata['arrive'] = arrive + incomming[army] = armydata + if player: + addFaction(to, armydata['faction']) + emit_signal("updateMap") + emit_signal("updateUI") + + +func addTile(response): + var x = '' + if not worldTiles.has(String(response['x'])): + worldTiles[String(response['x'])] = {} + x = worldTiles[String(response['x'])] + x[String(response['y'])] = response + + +func addFaction(tile, factionName): + if not tile.factions.has(factionName): + tile.factions.append(factionName) + +func loadAsServer(): + var path = 'user://worldmap.json' + var directory = Directory.new() + var hasFile = directory.file_exists(path) + var file = File.new() + if !hasFile: + path = directory.get_current_dir()+'preset//worldmap.json' + file.open(path, file.READ) + var json = file.get_as_text() +# print('json:'+json) + var json_result = JSON.parse(json).result + #print(json_result) + for tile in json_result: + #ensure everyone who has an army is counted as present + var present = [] + if tile.has('armies'): + for army in tile['armies']: + if not present.has(army['faction']): + present.append(army['faction']) + tile['present'] = present + WorldManager.addTile(tile) + #to do: function to load regions + + + +func getTileOrNull(x,y): + var tile = null + x = String(x) + y = String(y) + print("find ",x," ", y) + if worldTiles.has(x): + var row = worldTiles[x] + print(row) + if row.has(y): + tile = row[y] + print("tileOrNull not null") + return tile + +func getTileGuaranteed(x, y): + var tile = null + tile = getTileOrNull(x,y) + if tile == null: + tile = { + "x":x, + "y":y, + "terrain":"FOREST", + "factions":[], + "turn":1, + "armies":{}, + "present":{}, + "playerTurnOn":-1 + } + addTile(tile) + return tile + +remote func moveArmy(fromX, fromY, toX, toY, army): + var from = getTileOrNull(fromX, fromY) + print("request army move") + print("tile: ", from) + if not from == null: + if from.has('armies'): + var armies = from['armies'] + if armies.has(army): + var armydata = armies[army] + if PlayerManager.confirmFaction(get_tree().get_rpc_sender_id(), armydata['faction']): + print("confirm move") + var targetTile = getTileGuaranteed(toX, toY) + print("target is: ",targetTile) + from['armies'].erase(army) + removeArmy(from, army) + addArmy(from, targetTile, army, armydata) + pass + +remote func receiveMap(tiles): + for tile in tiles: + addTile(tile) + emit_signal("updateMap") + emit_signal("updateUI") + + +func removeArmy(tile, army): + var armies = tile.armies + armies.erase(army) + setPresent(tile) + + +func requestServer(): + rpc_id(1, 'requestMap', PlayerManager.authcache['response']['faction']) + +func requestArmyMove(moveX=0, moveY=0): + print("move army ", selectedArmy) + #print("from ") + var error = false + if not selectedRegion == null: + print("x: ", selectedRegion.x, "Y: ", selectedRegion.y) + print("to: ", selectedRegion.x + moveX," / ", selectedRegion.y + moveY) + if not selectedArmy == null: + if not Server: + rpc_id(1, 'moveArmy', selectedRegion.x, selectedRegion.y, selectedRegion.x+moveX, selectedRegion.y + moveY, selectedArmy) + else: + moveArmy(selectedRegion.x, selectedRegion.y, selectedRegion.x+moveX, selectedRegion.y + moveY, selectedArmy) + else: + print("regionselecterror") + +remote func requestMap(factionToFind): + if PlayerManager.clients_factions.has(get_tree().get_rpc_sender_id()): + if PlayerManager.clients_factions[get_tree().get_rpc_sender_id()] == factionToFind: + print('right faction') + else: + print('found instead:', PlayerManager.clients_factions[get_tree().get_rpc_sender_id()]) + else: + print('only contains: ', PlayerManager.clients_factions) + var tiles = [] + for x in worldTiles: + var row = worldTiles[x] + for y in row: + var tile = row[y] + #print('looking for map data: ', factionToFind) + #print(tile) + var factions = tile.factions + for faction in factions: + #print('comparing: ', faction, factionToFind) + if faction == factionToFind: + tiles.append(tile) + #print('appending: ',tile) + rpc_id(get_tree().get_rpc_sender_id(), 'receiveMap', tiles) + + +func setPresent(tile): + var armies = tile.armies + var present = {} + for army in armies: + var armyValue = 1#TO DO: have method to calculate army strength + var armydata = armies[army] + var faction = armydata.faction + if present.has(faction): + present.faction += armyValue + else: + present['faction'] = armyValue + return \ No newline at end of file diff --git a/Client/Worldmap.gd b/Client/Worldmap.gd new file mode 100644 index 0000000..405bbc3 --- /dev/null +++ b/Client/Worldmap.gd @@ -0,0 +1,58 @@ +extends Node2D + +#Overlays needed: +# +# Turn for each Region +# +# Regions with my active Turns +#map deco vars: +# used for painting black tiles and setting camera borders +# reduce interval for less surrounding black tiles +var xVisitedMax = 15 +var xVisitedMin = -15 +var yVisitedMax = 15 +var yVisitedMin = -15 +var mapPadding = 10 +var tileSize = 128 + +var loaded = false +onready var map = get_node("worldMapTiles") + + +func _ready(): + WorldManager.connect("updateMap", self, "paintTiles") + PlayerManager.subMenuOpen = false + var tile = {"x":1, "y":0, "terrain":"BLACK", "factions":[],"turn":1} + var x = xVisitedMin + #der folgende loop erstellt schwarzes tile und kopiert das überall hin. + while x <= xVisitedMax: + var y = yVisitedMin + while y <= yVisitedMax: + tile.x = x + tile.y = y + map.addtile(tile) + y += 1 + x += 1 + paintTiles() + print("worldmap ready") + #print(PlayerManager.getPlayerFactionData()) + +func paintTiles(): + var worldTiles = WorldManager.worldTiles + #print("painting: ") + #print(worldTiles) +# var map = get_node("worldMapTiles") + for i in map.get_node("armies").get_children(): + i.queue_free() + for x in worldTiles: + var row = worldTiles[x] + for y in row: + var tile = row[y] + map.addtile(tile) + if tile.has('armies'): + var armies = tile['armies'] + for army in armies: + var armydata = armies[army] + map.addArmy(army, armydata, tile) + #to do: add army on map! + pass diff --git a/Client/Worldmap.tscn b/Client/Worldmap.tscn new file mode 100644 index 0000000..039b52c --- /dev/null +++ b/Client/Worldmap.tscn @@ -0,0 +1,316 @@ +[gd_scene load_steps=15 format=2] + +[ext_resource path="res://Worldmap.gd" type="Script" id=1] +[ext_resource path="res://worldTiles.tres" type="TileSet" id=2] +[ext_resource path="res://worldMapTiles.gd" type="Script" id=3] +[ext_resource path="res://Camera2D.gd" type="Script" id=4] +[ext_resource path="res://WorldmapUI.gd" type="Script" id=5] +[ext_resource path="res://images/WorldUIBackground.png" type="Texture" id=6] +[ext_resource path="res://font/anton.tres" type="DynamicFont" id=7] +[ext_resource path="res://smallbtn.tscn" type="PackedScene" id=8] +[ext_resource path="res://menues/toDesigner.gd" type="Script" id=9] +[ext_resource path="res://openRegion.gd" type="Script" id=10] +[ext_resource path="res://moveOnWorldMap.gd" type="Script" id=11] +[ext_resource path="res://menues/toggleResearch.gd" type="Script" id=12] +[ext_resource path="res://menues/research.tscn" type="PackedScene" id=13] +[ext_resource path="res://smallbtn.gd" type="Script" id=14] + +[node name="Worldmap" type="Node2D"] +script = ExtResource( 1 ) + +[node name="worldMapTiles" type="TileMap" parent="."] +tile_set = ExtResource( 2 ) +cell_size = Vector2( 128, 128 ) +format = 1 +tile_data = PoolIntArray( -196603, 0, 0, -196582, 0, 0, -196576, 4, 0, -131072, 4, 0, -131071, 4, 0, -131070, 4, 0, -131069, 4, 0, -131068, 4, 0, -131067, 4, 0, -131066, 4, 0, -131065, 4, 0, -131064, 4, 0, -131063, 4, 0, -131062, 4, 0, -131061, 4, 0, -131060, 4, 0, -131059, 4, 0, -131058, 4, 0, -131057, 4, 0, -131056, 4, 0, -131055, 4, 0, -131054, 4, 0, -131053, 4, 0, -131052, 4, 0, -131051, 4, 0, -131050, 4, 0, -131049, 4, 0, -131048, 4, 0, -131047, 4, 0, -131046, 4, 0, -131044, 4, 0, -131043, 4, 0, -131041, 4, 0, -131040, 4, 0, -131037, 4, 0, -4, 4, 0, -3, 4, 0, -2, 4, 0, -1, 4, 0, -65536, 2, 0, -65535, 2, 0, -65534, 2, 0, -65533, 2, 0, -65532, 2, 0, -65531, 2, 0, -65530, 2, 0, -65529, 2, 0, -65528, 2, 0, -65527, 2, 0, -65526, 4, 0, -65525, 4, 0, -65524, 4, 0, -65523, 4, 0, -65522, 4, 0, -65521, 4, 0, -65520, 4, 0, -65519, 4, 0, -65518, 4, 0, -65517, 4, 0, -65516, 4, 0, -65515, 4, 0, -65514, 4, 0, -65513, 4, 0, -65512, 4, 0, -65511, 4, 0, -65510, 4, 0, -65509, 4, 0, -65508, 4, 0, -65507, 4, 0, -65505, 4, 0, -65504, 4, 0, -65503, 4, 0, -65502, 4, 0, -65501, 4, 0, 65535, 4, 0, 0, 2, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5, 0, 0, 6, 2, 0, 7, 0, 0, 8, 2, 0, 9, 2, 0, 10, 4, 0, 11, 4, 0, 12, 4, 0, 13, 4, 0, 14, 4, 0, 15, 4, 0, 16, 4, 0, 17, 4, 0, 18, 4, 0, 19, 4, 0, 20, 4, 0, 21, 4, 0, 22, 4, 0, 23, 4, 0, 24, 4, 0, 25, 4, 0, 26, 4, 0, 27, 4, 0, 28, 4, 0, 29, 4, 0, 30, 4, 0, 31, 4, 0, 32, 4, 0, 33, 4, 0, 34, 4, 0, 35, 4, 0, 131063, 4, 0, 131064, 4, 0, 131065, 4, 0, 131066, 4, 0, 131067, 4, 0, 131068, 4, 0, 131069, 4, 0, 131070, 4, 0, 131071, 4, 0, 65536, 0, 0, 65537, 0, 0, 65538, 0, 0, 65539, 1, 0, 65540, 2, 0, 65541, 0, 0, 65542, 0, 0, 65543, 0, 0, 65544, 0, 0, 65545, 2, 0, 65546, 4, 0, 65547, 4, 0, 65548, 4, 0, 65549, 4, 0, 65550, 4, 0, 65551, 4, 0, 65552, 4, 0, 65553, 4, 0, 65554, 4, 0, 65555, 4, 0, 65556, 4, 0, 65557, 4, 0, 65558, 4, 0, 65559, 4, 0, 65560, 4, 0, 65561, 4, 0, 65562, 4, 0, 65563, 4, 0, 65564, 4, 0, 65565, 4, 0, 65566, 4, 0, 65567, 4, 0, 65568, 4, 0, 65569, 4, 0, 65570, 4, 0, 65571, 4, 0, 196607, 4, 0, 131072, 0, 0, 131073, 0, 0, 131074, 2, 0, 131075, 3, 0, 131076, 1, 0, 131077, 1, 0, 131078, 0, 0, 131079, 2, 0, 131080, 0, 0, 131081, 3, 0, 131082, 4, 0, 131083, 4, 0, 131084, 4, 0, 131085, 4, 0, 131086, 4, 0, 131087, 4, 0, 131088, 4, 0, 131089, 4, 0, 131090, 4, 0, 131091, 4, 0, 131092, 4, 0, 131093, 4, 0, 131094, 4, 0, 131095, 4, 0, 131096, 4, 0, 131097, 4, 0, 131098, 4, 0, 131099, 4, 0, 131100, 4, 0, 131101, 4, 0, 131102, 4, 0, 131103, 4, 0, 131104, 4, 0, 131105, 4, 0, 131106, 4, 0, 131107, 4, 0, 262142, 4, 0, 262143, 4, 0, 196608, 0, 0, 196609, 1, 0, 196610, 3, 0, 196611, 1, 0, 196612, 3, 0, 196613, 2, 0, 196614, 2, 0, 196615, 0, 0, 196616, 0, 0, 196617, 1, 0, 196618, 4, 0, 196619, 4, 0, 196620, 4, 0, 196621, 4, 0, 196622, 4, 0, 196623, 4, 0, 196624, 4, 0, 196625, 4, 0, 196626, 4, 0, 196627, 4, 0, 196628, 4, 0, 196629, 4, 0, 196630, 4, 0, 196631, 4, 0, 196632, 4, 0, 196633, 4, 0, 196634, 4, 0, 196635, 4, 0, 196636, 4, 0, 196637, 4, 0, 196638, 4, 0, 196639, 4, 0, 196640, 4, 0, 196641, 4, 0, 196642, 4, 0, 196643, 4, 0, 327672, 0, 0, 327673, 0, 0, 327674, 0, 0, 327675, 0, 0, 327676, 0, 0, 327677, 0, 0, 327678, 0, 0, 327679, 4, 0, 262144, 2, 0, 262145, 2, 0, 262146, 3, 0, 262147, 2, 0, 262148, 2, 0, 262149, 2, 0, 262150, 0, 0, 262151, 0, 0, 262152, 0, 0, 262153, 2, 0, 262154, 4, 0, 262155, 4, 0, 262156, 4, 0, 262157, 4, 0, 262158, 4, 0, 262159, 4, 0, 262160, 4, 0, 262161, 4, 0, 262162, 4, 0, 262163, 4, 0, 262164, 4, 0, 262165, 4, 0, 262166, 4, 0, 262167, 4, 0, 262168, 4, 0, 262169, 4, 0, 262170, 4, 0, 262171, 4, 0, 262172, 4, 0, 262173, 4, 0, 262174, 4, 0, 262175, 4, 0, 262176, 4, 0, 262177, 4, 0, 262178, 4, 0, 262179, 4, 0, 393215, 4, 0, 327680, 2, 0, 327681, 1, 0, 327682, 2, 0, 327683, 2, 0, 327684, 2, 0, 327685, 0, 0, 327686, 2, 0, 327687, 0, 0, 327688, 0, 0, 327689, 2, 0, 327690, 2, 0, 327691, 4, 0, 327692, 4, 0, 327693, 4, 0, 327694, 4, 0, 327695, 4, 0, 327696, 4, 0, 327697, 4, 0, 327698, 4, 0, 327699, 4, 0, 327700, 4, 0, 327701, 4, 0, 327702, 4, 0, 327703, 4, 0, 327704, 4, 0, 327705, 4, 0, 327706, 4, 0, 327707, 4, 0, 327708, 4, 0, 327709, 4, 0, 327710, 4, 0, 327711, 4, 0, 327712, 4, 0, 327713, 4, 0, 327714, 4, 0, 327715, 4, 0, 458751, 4, 0, 393216, 2, 0, 393217, 0, 0, 393218, 0, 0, 393219, 0, 0, 393220, 0, 0, 393221, 0, 0, 393222, 2, 0, 393223, 0, 0, 393224, 0, 0, 393225, 0, 0, 393226, 2, 0, 393227, 4, 0, 393228, 4, 0, 393229, 4, 0, 393230, 4, 0, 393231, 4, 0, 393232, 4, 0, 393233, 4, 0, 393234, 4, 0, 393235, 4, 0, 393236, 4, 0, 393237, 4, 0, 393238, 4, 0, 393239, 4, 0, 393240, 4, 0, 393241, 4, 0, 393242, 4, 0, 393243, 4, 0, 393244, 4, 0, 393245, 4, 0, 393246, 4, 0, 393247, 4, 0, 393248, 4, 0, 393249, 4, 0, 393250, 4, 0, 393251, 4, 0, 524286, 4, 0, 524287, 4, 0, 458752, 0, 0, 458753, 0, 0, 458754, 0, 0, 458755, 0, 0, 458756, 0, 0, 458757, 0, 0, 458758, 0, 0, 458759, 0, 0, 458760, 0, 0, 458761, 0, 0, 458762, 4, 0, 458763, 4, 0, 458764, 4, 0, 458765, 4, 0, 458766, 4, 0, 458767, 4, 0, 458768, 4, 0, 458769, 4, 0, 458770, 4, 0, 458771, 4, 0, 458772, 4, 0, 458773, 4, 0, 458774, 4, 0, 458775, 4, 0, 458776, 4, 0, 458777, 4, 0, 458778, 4, 0, 458779, 4, 0, 458780, 4, 0, 458781, 4, 0, 458782, 4, 0, 458783, 4, 0, 458784, 4, 0, 458785, 4, 0, 458786, 4, 0, 458787, 4, 0, 589822, 4, 0, 589823, 4, 0, 524288, 4, 0, 524289, 4, 0, 524290, 4, 0, 524291, 4, 0, 524292, 4, 0, 524293, 4, 0, 524294, 4, 0, 524295, 4, 0, 524296, 4, 0, 524297, 4, 0, 524298, 4, 0, 524299, 4, 0, 524300, 4, 0, 524301, 4, 0, 524302, 4, 0, 524303, 4, 0, 524304, 4, 0, 524305, 4, 0, 524306, 4, 0, 524307, 4, 0, 524308, 4, 0, 524309, 4, 0, 524310, 4, 0, 524311, 4, 0, 524312, 4, 0, 524313, 4, 0, 524314, 4, 0, 524315, 4, 0, 524316, 4, 0, 524317, 4, 0, 524318, 4, 0, 524319, 4, 0, 524320, 4, 0, 524321, 4, 0, 524322, 4, 0, 524323, 4, 0, 655358, 4, 0, 655359, 4, 0, 589824, 4, 0, 589825, 4, 0, 589826, 4, 0, 589827, 4, 0, 589828, 4, 0, 589829, 4, 0, 589830, 4, 0, 589831, 4, 0, 589832, 4, 0, 589833, 4, 0, 589834, 4, 0, 589835, 4, 0, 589836, 4, 0, 589837, 4, 0, 589838, 4, 0, 589839, 4, 0, 589840, 4, 0, 589841, 4, 0, 589842, 4, 0, 589843, 4, 0, 589844, 4, 0, 589845, 4, 0, 589846, 4, 0, 589847, 4, 0, 589848, 4, 0, 589849, 4, 0, 589850, 4, 0, 589851, 4, 0, 589852, 4, 0, 589853, 4, 0, 589854, 4, 0, 589855, 4, 0, 589856, 4, 0, 589857, 4, 0, 589858, 4, 0, 589859, 4, 0, 720892, 4, 0, 720893, 4, 0, 720894, 4, 0, 720895, 4, 0, 655360, 4, 0, 655361, 4, 0, 655362, 4, 0, 655363, 4, 0, 655364, 4, 0, 655365, 4, 0, 655366, 4, 0, 655367, 4, 0, 655368, 4, 0, 655369, 4, 0, 655370, 4, 0, 655371, 4, 0, 655372, 4, 0, 655373, 4, 0, 655374, 4, 0, 655375, 4, 0, 655376, 4, 0, 655377, 4, 0, 655378, 4, 0, 655379, 4, 0, 655380, 4, 0, 655381, 4, 0, 655382, 4, 0, 655383, 4, 0, 655384, 4, 0, 655385, 4, 0, 655386, 4, 0, 655387, 4, 0, 655388, 4, 0, 655389, 4, 0, 655390, 4, 0, 655391, 4, 0, 655392, 4, 0, 655393, 4, 0, 655394, 4, 0, 655395, 4, 0, 786429, 4, 0, 786430, 4, 0, 786431, 4, 0, 720896, 4, 0, 720897, 4, 0, 720898, 4, 0, 720899, 4, 0, 720900, 4, 0, 720901, 4, 0, 720902, 4, 0, 720903, 4, 0, 720904, 4, 0, 720905, 4, 0, 720906, 4, 0, 720907, 4, 0, 720908, 4, 0, 720909, 4, 0, 720910, 4, 0, 720911, 4, 0, 720912, 4, 0, 720913, 4, 0, 720914, 4, 0, 720915, 4, 0, 720916, 4, 0, 720917, 4, 0, 720918, 4, 0, 720919, 4, 0, 720920, 4, 0, 720921, 4, 0, 720922, 4, 0, 720923, 4, 0, 720924, 4, 0, 720925, 4, 0, 720926, 4, 0, 720927, 4, 0, 720928, 4, 0, 720929, 4, 0, 720930, 4, 0, 720931, 4, 0, 720932, 4, 0, 720933, 4, 0, 720934, 4, 0, 720935, 4, 0, 720936, 4, 0, 720937, 4, 0, 851966, 4, 0, 851967, 4, 0, 786432, 4, 0, 786433, 4, 0, 786434, 4, 0, 786435, 4, 0, 786436, 4, 0, 786437, 4, 0, 786438, 4, 0, 786439, 4, 0, 786440, 4, 0, 786441, 4, 0, 786442, 4, 0, 786443, 4, 0, 786444, 4, 0, 786445, 4, 0, 786446, 4, 0, 786447, 4, 0, 786448, 4, 0, 786449, 4, 0, 786450, 4, 0, 786451, 4, 0, 786452, 4, 0, 786453, 4, 0, 786454, 4, 0, 786455, 4, 0, 786456, 4, 0, 786457, 4, 0, 786458, 4, 0, 786459, 4, 0, 786460, 4, 0, 786461, 4, 0, 786462, 4, 0, 786463, 4, 0, 786464, 4, 0, 786465, 4, 0, 786466, 4, 0, 786467, 4, 0, 786468, 4, 0, 786469, 4, 0, 786470, 4, 0, 786471, 4, 0, 786472, 4, 0, 786473, 4, 0, 786474, 4, 0, 786475, 4, 0, 917503, 4, 0, 851968, 4, 0, 851969, 4, 0, 851970, 4, 0, 851971, 4, 0, 851972, 4, 0, 851973, 4, 0, 851974, 4, 0, 851975, 4, 0, 851976, 4, 0, 851977, 4, 0, 851978, 4, 0, 851979, 4, 0, 851980, 4, 0, 851981, 4, 0, 851982, 4, 0, 851983, 4, 0, 851984, 4, 0, 851985, 4, 0, 851986, 4, 0, 851987, 4, 0, 851988, 4, 0, 851989, 4, 0, 851990, 4, 0, 851991, 4, 0, 851992, 4, 0, 851993, 4, 0, 851994, 4, 0, 851995, 4, 0, 851996, 4, 0, 851997, 4, 0, 851998, 4, 0, 851999, 4, 0, 852000, 4, 0, 852001, 4, 0, 852002, 4, 0, 852003, 4, 0, 852004, 4, 0, 852005, 4, 0, 852006, 4, 0, 852007, 4, 0, 852008, 4, 0, 852009, 4, 0, 852010, 4, 0, 852011, 4, 0, 983037, 4, 0, 983038, 4, 0, 983039, 4, 0, 917504, 4, 0, 917505, 4, 0, 917506, 4, 0, 917507, 4, 0, 917508, 4, 0, 917509, 4, 0, 917510, 4, 0, 917511, 4, 0, 917512, 4, 0, 917513, 4, 0, 917514, 4, 0, 917515, 4, 0, 917516, 4, 0, 917517, 4, 0, 917518, 4, 0, 917519, 4, 0, 917520, 4, 0, 917521, 4, 0, 917522, 4, 0, 917523, 4, 0, 917524, 4, 0, 917525, 4, 0, 917526, 4, 0, 917527, 4, 0, 917528, 4, 0, 917529, 4, 0, 917530, 4, 0, 917531, 4, 0, 917532, 4, 0, 917533, 4, 0, 917534, 4, 0, 917535, 4, 0, 917536, 4, 0, 917537, 4, 0, 917538, 4, 0, 917539, 4, 0, 917540, 4, 0, 917544, 4, 0, 917545, 4, 0, 917546, 4, 0, 917547, 4, 0, 1048570, 4, 0, 1048571, 4, 0, 1048572, 4, 0, 1048573, 4, 0, 1048574, 4, 0, 1048575, 4, 0, 983040, 4, 0, 983041, 4, 0, 983042, 4, 0, 983043, 4, 0, 983044, 4, 0, 983045, 4, 0, 983046, 4, 0, 983047, 4, 0, 983048, 4, 0, 983049, 4, 0, 983050, 4, 0, 983051, 4, 0, 983052, 4, 0, 983053, 4, 0, 983054, 4, 0, 983055, 4, 0, 983056, 4, 0, 983057, 4, 0, 983058, 4, 0, 983059, 4, 0, 983060, 4, 0, 983061, 4, 0, 983062, 4, 0, 983063, 4, 0, 983064, 4, 0, 983065, 4, 0, 983066, 4, 0, 983067, 4, 0, 983068, 4, 0, 983069, 4, 0, 983070, 4, 0, 983071, 4, 0, 983072, 4, 0, 983073, 4, 0, 983074, 4, 0, 983075, 4, 0, 983076, 4, 0, 983077, 4, 0, 983078, 4, 0, 983079, 4, 0, 983080, 4, 0, 983081, 4, 0, 983082, 4, 0, 983083, 4, 0, 1114109, 4, 0, 1114110, 4, 0, 1114111, 4, 0, 1048576, 4, 0, 1048577, 4, 0, 1048578, 4, 0, 1048579, 4, 0, 1048580, 4, 0, 1048581, 4, 0, 1048582, 4, 0, 1048583, 4, 0, 1048584, 4, 0, 1048585, 4, 0, 1048586, 4, 0, 1048587, 4, 0, 1048588, 4, 0, 1048589, 4, 0, 1048590, 4, 0, 1048591, 4, 0, 1048592, 4, 0, 1048593, 4, 0, 1048594, 4, 0, 1048595, 4, 0, 1048596, 4, 0, 1048597, 4, 0, 1048598, 4, 0, 1048599, 4, 0, 1048600, 4, 0, 1048601, 4, 0, 1048602, 4, 0, 1048603, 4, 0, 1048604, 4, 0, 1048605, 4, 0, 1048606, 4, 0, 1048607, 4, 0, 1048608, 4, 0, 1048609, 4, 0, 1048610, 4, 0, 1048611, 4, 0, 1048612, 4, 0, 1048613, 4, 0, 1048614, 4, 0, 1048615, 4, 0, 1048616, 4, 0, 1048617, 4, 0, 1048618, 4, 0, 1048619, 4, 0, 1179647, 4, 0, 1114112, 4, 0, 1114113, 4, 0, 1114114, 4, 0, 1114115, 4, 0, 1114116, 4, 0, 1114117, 4, 0, 1114118, 4, 0, 1114119, 4, 0, 1114120, 4, 0, 1114121, 4, 0, 1114122, 4, 0, 1114123, 4, 0, 1114124, 4, 0, 1114125, 4, 0, 1114126, 4, 0, 1114127, 4, 0, 1114128, 4, 0, 1114129, 4, 0, 1114130, 4, 0, 1114131, 4, 0, 1114132, 4, 0, 1114133, 4, 0, 1114134, 4, 0, 1114135, 4, 0, 1114136, 4, 0, 1114137, 4, 0, 1114138, 4, 0, 1114139, 4, 0, 1114140, 4, 0, 1114141, 4, 0, 1114142, 4, 0, 1114143, 4, 0, 1114144, 4, 0, 1114145, 4, 0, 1114146, 4, 0, 1114147, 4, 0, 1114148, 4, 0, 1114149, 4, 0, 1114150, 4, 0, 1114151, 4, 0, 1114152, 4, 0, 1114153, 4, 0, 1245183, 4, 0, 1179648, 4, 0, 1179649, 4, 0, 1179650, 4, 0, 1179651, 4, 0, 1179652, 4, 0, 1179653, 4, 0, 1179654, 4, 0, 1179655, 4, 0, 1179656, 4, 0, 1179657, 4, 0, 1179658, 4, 0, 1179659, 4, 0, 1179660, 4, 0, 1179661, 4, 0, 1179662, 4, 0, 1179663, 4, 0, 1179664, 4, 0, 1179665, 4, 0, 1179666, 4, 0, 1179667, 4, 0, 1179668, 4, 0, 1179669, 4, 0, 1179670, 4, 0, 1179671, 4, 0, 1179672, 4, 0, 1179673, 4, 0, 1179674, 4, 0, 1179675, 4, 0, 1179676, 4, 0, 1179677, 4, 0, 1179678, 4, 0, 1179679, 4, 0, 1179680, 4, 0, 1179681, 4, 0, 1179682, 4, 0, 1179683, 4, 0, 1179684, 4, 0, 1179685, 4, 0, 1179686, 4, 0, 1179687, 4, 0, 1179688, 4, 0, 1179689, 4, 0, 1179690, 4, 0, 1179691, 4, 0, 1310719, 4, 0, 1245184, 4, 0, 1245185, 4, 0, 1245186, 4, 0, 1245187, 4, 0, 1245188, 4, 0, 1245189, 4, 0, 1245190, 4, 0, 1245191, 4, 0, 1245192, 4, 0, 1245193, 4, 0, 1245194, 4, 0, 1245195, 4, 0, 1245196, 4, 0, 1245197, 4, 0, 1245198, 4, 0, 1245199, 4, 0, 1245200, 4, 0, 1245201, 4, 0, 1245202, 4, 0, 1245203, 4, 0, 1245204, 4, 0, 1245205, 4, 0, 1245206, 4, 0, 1245207, 4, 0, 1245208, 4, 0, 1245209, 4, 0, 1245210, 4, 0, 1245211, 4, 0, 1245212, 4, 0, 1245213, 4, 0, 1245214, 4, 0, 1245215, 4, 0, 1245216, 4, 0, 1245217, 4, 0, 1245218, 4, 0, 1245219, 4, 0, 1245220, 4, 0, 1245221, 4, 0, 1245222, 4, 0, 1245223, 4, 0, 1245224, 4, 0, 1245225, 4, 0, 1245226, 4, 0, 1245227, 4, 0, 1310731, 4, 0, 1310732, 4, 0, 1310733, 4, 0, 1310734, 4, 0, 1310735, 4, 0, 1310736, 4, 0, 1310737, 4, 0, 1310738, 4, 0, 1310739, 4, 0, 1310740, 4, 0, 1310741, 4, 0, 1310742, 4, 0, 1310743, 4, 0, 1310744, 4, 0, 1310745, 4, 0, 1310746, 4, 0, 1310747, 4, 0, 1310748, 4, 0, 1310749, 4, 0, 1310750, 4, 0, 1310751, 4, 0, 1310752, 4, 0, 1310753, 4, 0, 1310754, 4, 0, 1310755, 4, 0, 1310756, 4, 0, 1310757, 4, 0, 1310758, 4, 0, 1310759, 4, 0, 1310760, 4, 0, 1310761, 4, 0, 1310762, 4, 0, 1376273, 4, 0, 1376274, 4, 0, 1376275, 4, 0, 1376276, 4, 0, 1376277, 4, 0, 1376278, 4, 0, 1376279, 4, 0, 1376280, 4, 0, 1376281, 4, 0, 1376282, 4, 0, 1376283, 4, 0, 1376284, 4, 0, 1376285, 4, 0, 1376286, 4, 0, 1376287, 4, 0, 1376288, 4, 0, 1376289, 4, 0, 1376290, 4, 0, 1376291, 4, 0, 1376292, 4, 0, 1376293, 4, 0, 1376294, 4, 0, 1376295, 4, 0, 1376296, 4, 0, 1376297, 4, 0, 1376298, 4, 0, 1376299, 4, 0, 1441820, 4, 0, 1441821, 4, 0, 1441822, 4, 0, 1441823, 4, 0, 1441824, 4, 0, 1441825, 4, 0, 1441826, 4, 0, 1441829, 4, 0, 1441830, 4, 0, 1441831, 4, 0, 1441832, 4, 0, 1507363, 4, 0, 1507364, 4, 0, 1507365, 4, 0, 1507366, 4, 0, 1507367, 4, 0, 1507368, 4, 0, 1507369, 4, 0 ) +script = ExtResource( 3 ) + +[node name="armies" type="Node" parent="worldMapTiles"] + +[node name="Camera2D" type="Camera2D" parent="."] +position = Vector2( 958.512, 510.399 ) +current = true +drag_margin_left = 0.0 +drag_margin_top = 0.0 +drag_margin_right = 0.0 +drag_margin_bottom = 0.0 +script = ExtResource( 4 ) + +[node name="CanvasLayer" type="CanvasLayer" parent="."] + +[node name="conWorldMapUI" type="Control" parent="CanvasLayer"] +margin_left = 1264.0 +margin_right = 1964.0 +margin_bottom = 1015.0 +script = ExtResource( 5 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="UIBG" type="NinePatchRect" parent="CanvasLayer/conWorldMapUI"] +margin_right = 656.0 +margin_bottom = 1022.0 +texture = ExtResource( 6 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="fixedData" type="VBoxContainer" parent="CanvasLayer/conWorldMapUI/UIBG"] +margin_left = 22.0 +margin_top = 24.7542 +margin_right = 581.0 +margin_bottom = 189.754 + +[node name="Spieler" type="Label" parent="CanvasLayer/conWorldMapUI/UIBG/fixedData"] +margin_right = 559.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 7 ) +text = "Spieler" + +[node name="Fraktion" type="Label" parent="CanvasLayer/conWorldMapUI/UIBG/fixedData"] +margin_top = 29.0 +margin_right = 559.0 +margin_bottom = 82.0 +custom_fonts/font = ExtResource( 7 ) +text = "Fraktion +" + +[node name="toDesigner" parent="CanvasLayer/conWorldMapUI/UIBG/fixedData" instance=ExtResource( 8 )] +margin_top = 86.0 +margin_right = 559.0 +margin_bottom = 150.0 +script = ExtResource( 9 ) + +[node name="varData" type="VBoxContainer" parent="CanvasLayer/conWorldMapUI/UIBG"] +margin_left = 21.0 +margin_top = 407.05 +margin_right = 343.0 +margin_bottom = 981.05 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="regionData" type="VBoxContainer" parent="CanvasLayer/conWorldMapUI/UIBG/varData"] +margin_right = 322.0 +margin_bottom = 60.0 + +[node name="lblCords" type="HBoxContainer" parent="CanvasLayer/conWorldMapUI/UIBG/varData/regionData"] +margin_right = 322.0 +margin_bottom = 60.0 + +[node name="terrain" type="Label" parent="CanvasLayer/conWorldMapUI/UIBG/varData/regionData/lblCords"] +margin_right = 150.0 +margin_bottom = 60.0 +rect_min_size = Vector2( 150, 60 ) +custom_fonts/font = ExtResource( 7 ) +text = "Terrain: " + +[node name="cords" type="VBoxContainer" parent="CanvasLayer/conWorldMapUI/UIBG/varData/regionData/lblCords"] +margin_left = 154.0 +margin_right = 179.0 +margin_bottom = 60.0 + +[node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer/conWorldMapUI/UIBG/varData/regionData/lblCords/cords"] +margin_right = 25.0 +margin_bottom = 25.0 + +[node name="n" type="Label" parent="CanvasLayer/conWorldMapUI/UIBG/varData/regionData/lblCords/cords/HBoxContainer"] +margin_right = 16.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 7 ) +text = "X: " + +[node name="x" type="Label" parent="CanvasLayer/conWorldMapUI/UIBG/varData/regionData/lblCords/cords/HBoxContainer"] +margin_left = 20.0 +margin_right = 25.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 7 ) +text = "1" + +[node name="HBoxContainer2" type="HBoxContainer" parent="CanvasLayer/conWorldMapUI/UIBG/varData/regionData/lblCords/cords"] +margin_top = 29.0 +margin_right = 25.0 +margin_bottom = 54.0 + +[node name="n" type="Label" parent="CanvasLayer/conWorldMapUI/UIBG/varData/regionData/lblCords/cords/HBoxContainer2"] +margin_right = 15.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 7 ) +text = "Y: " + +[node name="y" type="Label" parent="CanvasLayer/conWorldMapUI/UIBG/varData/regionData/lblCords/cords/HBoxContainer2"] +margin_left = 19.0 +margin_right = 24.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 7 ) +text = "1" + +[node name="lblMyArmies" type="Label" parent="CanvasLayer/conWorldMapUI/UIBG/varData"] +margin_top = 64.0 +margin_right = 322.0 +margin_bottom = 89.0 +custom_fonts/font = ExtResource( 7 ) +text = "Meine Armeen:" + +[node name="myArmies" type="ScrollContainer" parent="CanvasLayer/conWorldMapUI/UIBG/varData"] +margin_top = 93.0 +margin_right = 322.0 +margin_bottom = 103.0 +scroll_vertical_enabled = false + +[node name="VBoxAlliedArmies" type="VBoxContainer" parent="CanvasLayer/conWorldMapUI/UIBG/varData/myArmies"] +margin_right = 100.0 +margin_bottom = 10.0 +rect_min_size = Vector2( 100, 10 ) + +[node name="lblAlliedArmies" type="Label" parent="CanvasLayer/conWorldMapUI/UIBG/varData"] +margin_top = 107.0 +margin_right = 322.0 +margin_bottom = 132.0 +custom_fonts/font = ExtResource( 7 ) +text = "Verbündete Armeen:" + +[node name="alliedArmies" type="ScrollContainer" parent="CanvasLayer/conWorldMapUI/UIBG/varData"] +margin_top = 136.0 +margin_right = 322.0 +margin_bottom = 146.0 +scroll_vertical_enabled = false + +[node name="VBoxAlliedArmies" type="VBoxContainer" parent="CanvasLayer/conWorldMapUI/UIBG/varData/alliedArmies"] +margin_right = 100.0 +margin_bottom = 10.0 +rect_min_size = Vector2( 100, 10 ) + +[node name="HBoxNeutralArmies" type="HBoxContainer" parent="CanvasLayer/conWorldMapUI/UIBG/varData"] +margin_top = 150.0 +margin_right = 322.0 +margin_bottom = 189.0 + +[node name="VBoxNeutralArmies" type="VBoxContainer" parent="CanvasLayer/conWorldMapUI/UIBG/varData/HBoxNeutralArmies"] +margin_right = 113.0 +margin_bottom = 39.0 + +[node name="neutralArmy" type="Label" parent="CanvasLayer/conWorldMapUI/UIBG/varData/HBoxNeutralArmies/VBoxNeutralArmies"] +margin_right = 113.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 7 ) +text = "neutrale Armeen:" + +[node name="neutralArmies" type="ScrollContainer" parent="CanvasLayer/conWorldMapUI/UIBG/varData/HBoxNeutralArmies/VBoxNeutralArmies"] +margin_top = 29.0 +margin_right = 113.0 +margin_bottom = 39.0 +scroll_vertical_enabled = false + +[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/conWorldMapUI/UIBG/varData/HBoxNeutralArmies/VBoxNeutralArmies/neutralArmies"] +margin_right = 100.0 +margin_bottom = 10.0 +rect_min_size = Vector2( 100, 10 ) + +[node name="HBoxEnemies" type="HBoxContainer" parent="CanvasLayer/conWorldMapUI/UIBG/varData"] +margin_top = 193.0 +margin_right = 322.0 +margin_bottom = 247.0 + +[node name="VBoxEnemies" type="VBoxContainer" parent="CanvasLayer/conWorldMapUI/UIBG/varData/HBoxEnemies"] +margin_right = 120.0 +margin_bottom = 54.0 + +[node name="enemy" type="Label" parent="CanvasLayer/conWorldMapUI/UIBG/varData/HBoxEnemies/VBoxEnemies"] +margin_right = 120.0 +margin_bottom = 40.0 +rect_min_size = Vector2( 120, 40 ) +custom_fonts/font = ExtResource( 7 ) +text = "Feinde :" + +[node name="enemybox" type="ScrollContainer" parent="CanvasLayer/conWorldMapUI/UIBG/varData/HBoxEnemies/VBoxEnemies"] +margin_top = 44.0 +margin_right = 120.0 +margin_bottom = 54.0 +scroll_vertical_enabled = false + +[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/conWorldMapUI/UIBG/varData/HBoxEnemies/VBoxEnemies/enemybox"] +margin_right = 100.0 +margin_bottom = 10.0 +rect_min_size = Vector2( 100, 10 ) + +[node name="openRegion" parent="CanvasLayer/conWorldMapUI/UIBG" instance=ExtResource( 8 )] +margin_left = 340.095 +margin_top = 405.393 +margin_right = 424.095 +margin_bottom = 469.393 +focus_mode = 0 +enabled_focus_mode = 0 +script = ExtResource( 10 ) + +[node name="moveRight" parent="CanvasLayer/conWorldMapUI/UIBG" instance=ExtResource( 8 )] +margin_left = 442.057 +margin_top = 556.563 +margin_right = 526.057 +margin_bottom = 620.563 +script = ExtResource( 11 ) +moveX = 1 + +[node name="moveDown" parent="CanvasLayer/conWorldMapUI/UIBG" instance=ExtResource( 8 )] +margin_left = 391.497 +margin_top = 626.081 +margin_right = 475.497 +margin_bottom = 690.081 +script = ExtResource( 11 ) +moveY = 1 + +[node name="moveLeft" parent="CanvasLayer/conWorldMapUI/UIBG" instance=ExtResource( 8 )] +margin_left = 347.874 +margin_top = 555.455 +margin_right = 431.874 +margin_bottom = 619.455 +script = ExtResource( 11 ) +moveX = -1 + +[node name="moveUp" parent="CanvasLayer/conWorldMapUI/UIBG" instance=ExtResource( 8 )] +margin_left = 394.17 +margin_top = 484.541 +margin_right = 478.17 +margin_bottom = 548.541 +script = ExtResource( 11 ) +moveY = -1 + +[node name="y2" type="Label" parent="CanvasLayer/conWorldMapUI/UIBG"] +margin_left = 277.381 +margin_top = 421.135 +margin_right = 295.381 +margin_bottom = 446.135 +custom_fonts/font = ExtResource( 7 ) +text = "1" + +[node name="lblRounds" type="Label" parent="CanvasLayer/conWorldMapUI/UIBG"] +margin_left = 220.449 +margin_top = 411.363 +margin_right = 308.449 +margin_bottom = 467.363 +custom_fonts/font = ExtResource( 7 ) +text = "Runde:" + +[node name="Research" parent="CanvasLayer/conWorldMapUI/UIBG" instance=ExtResource( 8 )] +anchor_right = 0.2 +margin_left = 115.486 +margin_top = 195.952 +margin_right = 68.2861 +margin_bottom = 259.952 +script = ExtResource( 12 ) + +[node name="ResearchMenu" parent="CanvasLayer/conWorldMapUI/UIBG/Research" instance=ExtResource( 13 )] +visible = false +show_behind_parent = true +margin_left = -1438.62 +margin_top = -152.671 +margin_right = 393.375 +margin_bottom = 782.329 +mouse_filter = 2 + +[node name="debugBtn" parent="." instance=ExtResource( 8 )] +margin_left = 1139.71 +margin_top = 30.8195 +margin_right = 1223.71 +margin_bottom = 94.8195 +script = ExtResource( 14 ) diff --git a/Client/WorldmapUI.gd b/Client/WorldmapUI.gd new file mode 100644 index 0000000..9f3a998 --- /dev/null +++ b/Client/WorldmapUI.gd @@ -0,0 +1,69 @@ +extends Control + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +var armyBtn = preload("res://ArmyButton.tscn") +# Called when the node enters the scene tree for the first time. +func _ready(): + WorldManager.connect("updateUI", self, "updateUI",['fixed']) + get_parent().get_parent().get_node("worldMapTiles").connect("tileSelected",self,"updateUI",['variable']) + print('connected UI') + updateUI('fixed') + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +#diplo can now be acces in playermenu, refactor +func updateUI(mode): + #print("updating UI mode: ", mode) + var cache = PlayerManager.authcache + var data = cache['response'] + var authed = data['found'] + var faction = 'none' + if authed: + faction = data['faction'] + print(faction) + if mode == 'fixed': + get_node('UIBG/fixed data/Spieler').text = cache['name'] + if authed: + get_node('UIBG/fixed data/Fraktion').text = faction + if mode == 'variable': + var region = WorldManager.selectedRegion + get_node('UIBG/varData/regionData/cords_label/cords/HBoxContainer/x').text = String(region['x']) + get_node('UIBG/varData/regionData/cords_label/cords/HBoxContainer2/y').text = String(region['y']) + get_node('UIBG/y2').text = String(region['turn']) + get_node('UIBG/varData/regionData/cords_label/terrain').text = String(region['terrain']) + var myArmyBox = get_node('UIBG/varData/myArmies/VBoxContainer') + var enemyBox = get_node('UIBG/varData/HBoxContainer2/VBoxContainer/enemybox/VBoxContainer') + for i in myArmyBox.get_children(): + i.queue_free() + for i in enemyBox.get_children(): + i.queue_free() + if region.has('armies'): + var armies = region['armies'] + for army in armies: + var armydata = armies[army] + if authed: + var factiondata = data['factiondata'] + #print("authed") + var armyFaction = armydata['faction'] + if armyFaction==faction: + var button = armyBtn.instance() + button.name = army + button.text(army, 'own') + myArmyBox.add_child(button) + #print("diplo: ", factiondata['diplomacy']) + var diplo = factiondata['diplomacy'] + if diplo['enemies'].has(armyFaction): + var button = Button.new() + button.name = army + button.text = army + enemyBox.add_child(button) + + #print('finished ui') + pass + + + diff --git a/Client/appdata/Godot/app_userdata/LegionServer/armies/known.json b/Client/appdata/Godot/app_userdata/LegionServer/armies/known.json new file mode 100644 index 0000000..f62aa1b --- /dev/null +++ b/Client/appdata/Godot/app_userdata/LegionServer/armies/known.json @@ -0,0 +1 @@ +server was started before diff --git a/Client/appdata/Godot/app_userdata/LegionServer/factions/KG.json b/Client/appdata/Godot/app_userdata/LegionServer/factions/KG.json new file mode 100644 index 0000000..1aac3c6 --- /dev/null +++ b/Client/appdata/Godot/app_userdata/LegionServer/factions/KG.json @@ -0,0 +1,3 @@ +{ +"diplomacy":{"allies":[], "enemies":["barbaren","barb"]} +} \ No newline at end of file diff --git a/Client/appdata/Godot/app_userdata/LegionServer/players.sav b/Client/appdata/Godot/app_userdata/LegionServer/players.sav new file mode 100644 index 0000000..dbbf2f1 --- /dev/null +++ b/Client/appdata/Godot/app_userdata/LegionServer/players.sav @@ -0,0 +1 @@ +{"name":"teas","password":"1","faction":"barb"} diff --git a/Client/appdata/Godot/app_userdata/LegionServer/saved_game.sav b/Client/appdata/Godot/app_userdata/LegionServer/saved_game.sav new file mode 100644 index 0000000..6a4b86a --- /dev/null +++ b/Client/appdata/Godot/app_userdata/LegionServer/saved_game.sav @@ -0,0 +1,3 @@ +{"teas":{"password":"","faction":"barb"}} +{"test2":{"password":"asd","faction":"barb"}} +{"bob":{"password":"passs","faction":"barb"}} diff --git a/Client/appdata/Godot/app_userdata/LegionServer/server.txt b/Client/appdata/Godot/app_userdata/LegionServer/server.txt new file mode 100644 index 0000000..f62aa1b --- /dev/null +++ b/Client/appdata/Godot/app_userdata/LegionServer/server.txt @@ -0,0 +1 @@ +server was started before diff --git a/Client/appdata/LegionServer/armies/known.json b/Client/appdata/LegionServer/armies/known.json new file mode 100644 index 0000000..f62aa1b --- /dev/null +++ b/Client/appdata/LegionServer/armies/known.json @@ -0,0 +1 @@ +server was started before diff --git a/Client/appdata/LegionServer/factions/KG.json b/Client/appdata/LegionServer/factions/KG.json new file mode 100644 index 0000000..1aac3c6 --- /dev/null +++ b/Client/appdata/LegionServer/factions/KG.json @@ -0,0 +1,3 @@ +{ +"diplomacy":{"allies":[], "enemies":["barbaren","barb"]} +} \ No newline at end of file diff --git a/Client/appdata/LegionServer/players.sav b/Client/appdata/LegionServer/players.sav new file mode 100644 index 0000000..dbbf2f1 --- /dev/null +++ b/Client/appdata/LegionServer/players.sav @@ -0,0 +1 @@ +{"name":"teas","password":"1","faction":"barb"} diff --git a/Client/appdata/LegionServer/saved_game.sav b/Client/appdata/LegionServer/saved_game.sav new file mode 100644 index 0000000..6a4b86a --- /dev/null +++ b/Client/appdata/LegionServer/saved_game.sav @@ -0,0 +1,3 @@ +{"teas":{"password":"","faction":"barb"}} +{"test2":{"password":"asd","faction":"barb"}} +{"bob":{"password":"passs","faction":"barb"}} diff --git a/Client/appdata/LegionServer/server.txt b/Client/appdata/LegionServer/server.txt new file mode 100644 index 0000000..f62aa1b --- /dev/null +++ b/Client/appdata/LegionServer/server.txt @@ -0,0 +1 @@ +server was started before diff --git a/Client/army/Army.tscn b/Client/army/Army.tscn new file mode 100644 index 0000000..e66920b --- /dev/null +++ b/Client/army/Army.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://ArmyWM.gd" type="Script" id=1] +[ext_resource path="res://army/Stack2x1.tscn" type="PackedScene" id=2] + +[node name="Army" type="Node2D"] +script = ExtResource( 1 ) + +[node name="Leader" type="Node" parent="."] + +[node name="Stacks" type="Node" parent="."] + +[node name="Stack" parent="Stacks" instance=ExtResource( 2 )] + +[node name="Stack2" parent="Stacks" instance=ExtResource( 2 )] +position = Vector2( 0.278293, 61.8525 ) + +[node name="inventory" type="Node" parent="."] diff --git a/Client/army/Buff.gd b/Client/army/Buff.gd new file mode 100644 index 0000000..af547b2 --- /dev/null +++ b/Client/army/Buff.gd @@ -0,0 +1,15 @@ +extends Node2D + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +var duration = 5 +var stats = {} + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Client/army/Buff.tscn b/Client/army/Buff.tscn new file mode 100644 index 0000000..2a4826a --- /dev/null +++ b/Client/army/Buff.tscn @@ -0,0 +1,8 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://army/Buff.gd" type="Script" id=1] + +[node name="Buff" type="Node2D"] +script = ExtResource( 1 ) + +[node name="sprBuff" type="Sprite" parent="."] diff --git a/Client/army/Stack.gd b/Client/army/Stack.gd new file mode 100644 index 0000000..3a95364 --- /dev/null +++ b/Client/army/Stack.gd @@ -0,0 +1,104 @@ +extends KinematicBody2D + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +var stacksize = 1 +var actionPoints = 0 +var fatigue = 0 +var faction = 'KG' + + +var StackType = UnitFactory.UNIT_TYPES['INFANTRY'] +var designName = 'civillian' +var level = 1 +var unitName = 'Mensch' +var unitData = { + "BaseHP":15, + "strength": 5, + "dex":5, + "con":5, + "int":5, + "char":5, + "maxAP":0, + "body":{ + "size":1, + "hand":2, + "torso":1, + "head":1, + "ring":2, + "amulett":1}, + "resist":{ + "physical":20, + }, + "absorb":{ + "blunt":2 + } + } + + + +var equipment = [ +] + +var traits = {} + + + +var buffs = {} + +var resultingStats = {} + + +func attackMeele(): + + return + + +func attackRange(): + + return + + +func calculateStatBasis(): + resultingStats = {} + mergeStats(resultingStats, unitData) + for trait in traits: + if trait.has('stats'): + mergeStats(resultingStats, trait.stats) + for buff in buffs: + mergeStats(resultingStats, buff.stats) + for item in equipment: + mergeStats(resultingStats, item.stats) + return + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func mergeStats(receiver, donor): + for key in donor: + if receiver.has(key): + var tv = receiver[key] + if typeof(tv) == TYPE_DICTIONARY: + mergeStats(tv, donor[key]) + else: + receiver[key] += donor[key] + else: + receiver[key] = donor[key] + +func returnAsJson(): + var node_data = { + "unitName": unitName, + "unitData": unitData, + "equipment" : equipment + + + } + var json = to_json(node_data) + return json diff --git a/Client/army/Stack.tscn b/Client/army/Stack.tscn new file mode 100644 index 0000000..e61b7b5 --- /dev/null +++ b/Client/army/Stack.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://army/Stack.gd" type="Script" id=1] +[ext_resource path="res://images/region/dragon.png" type="Texture" id=2] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 62.4343, 30.7994 ) + +[node name="Stack" type="KinematicBody2D"] +position = Vector2( 0.278293, 0.482198 ) +script = ExtResource( 1 ) + +[node name="colStack" type="CollisionShape2D" parent="."] +position = Vector2( 63.8501, 32 ) +shape = SubResource( 1 ) + +[node name="sprStack" type="Sprite" parent="."] +position = Vector2( 64.0109, 31.8647 ) +texture = ExtResource( 2 ) diff --git a/Client/army/Stack1x1.tscn b/Client/army/Stack1x1.tscn new file mode 100644 index 0000000..ffc2f40 --- /dev/null +++ b/Client/army/Stack1x1.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://army/Stack.gd" type="Script" id=1] +[ext_resource path="res://images/warrior.png" type="Texture" id=2] + + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 32, 32 ) + +[node name="Stack" type="KinematicBody2D"] +position = Vector2( 0.278293, 0.482198 ) +script = ExtResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( 32, 32 ) +shape = SubResource( 1 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 32.353, 31.8647 ) +texture = ExtResource( 2 ) diff --git a/Client/army/Stack2x1.tscn b/Client/army/Stack2x1.tscn new file mode 100644 index 0000000..904bc80 --- /dev/null +++ b/Client/army/Stack2x1.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://army/Stack.gd" type="Script" id=1] +[ext_resource path="res://images/region/dragon.png" type="Texture" id=2] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 62.4343, 30.7994 ) + +[node name="Stack" type="KinematicBody2D"] +position = Vector2( 0.278293, 0.482198 ) +script = ExtResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( 63.8501, 32 ) +shape = SubResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 64.0109, 31.8647 ) +texture = ExtResource( 2 ) diff --git a/Client/army/UnitFactory.gd b/Client/army/UnitFactory.gd new file mode 100644 index 0000000..5271759 --- /dev/null +++ b/Client/army/UnitFactory.gd @@ -0,0 +1,53 @@ +extends Node + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +var Stack2x1 = preload("res://army/Stack2x1.tscn") +#var Stack = preload("res://army/Stack.tscn") + +#itemdatas +#const EQUIP_TYPES = {"MEELE":"Nahkampf", "RANGED":"Fernkampf","SHIELD":"Schild", "OTHER":"Sonstige"} + + +#const fightersForMeeleRange = [300,400,500,600,700,800,900,1000] #TO DO: Formula is 200 + 100*range +#unitdatas + +const UNIT_TYPES = {"INFANTRY":"Infanterie", "CAVALRY":"Kavallerie", "SIEGE":"Belagerungseinheit"} +const maxSizeInfantry = 3000 +const maxSizeHorses = 999 +const maxSizeSiege = 50 + + + +# Called when the node enters the scene tree for the first time. +func _ready(): + + + pass # Replace with function body. + + + +func create(unitDesign): + var stack = Stack2x1.instance() + pass + + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func mergeStats(receiver, donor): + for key in donor: + if receiver.has(key): + var tv = receiver[key] + if typeof(tv) == TYPE_DICTIONARY: + mergeStats(tv, donor[key]) + else: + #array sollte in godot diesen syntax als union interpretieren, + #integers als addition, ansonsten braucht es hier ein: +# elif typeof(tv) == TYPE_ARRAY: +# print('array') + receiver[key] = receiver[key] + donor[key] + else: + receiver[key] = donor[key] diff --git a/Client/autoloads/DataManager.gd b/Client/autoloads/DataManager.gd new file mode 100644 index 0000000..5ce4c7a --- /dev/null +++ b/Client/autoloads/DataManager.gd @@ -0,0 +1,136 @@ +extends Node + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +var techs = {} +var pathToTech = 'res://data/techdata/' + +var buildings = {} +var pathToBuildings = 'res://data/buildings/' + +var items = {} +var pathToItem = 'res://data/Items/' + +var units = {} +var pathToUnit = 'res://data/units/' + +var enchant = {} +var pathToEnchant = 'res://data/enchant/' + +var selectedTile = "" + +# Called when the node enters the scene tree for the first time. +func _ready(): + loadInDict(techs, pathToTech) + loadInDict(buildings, pathToBuildings) + loadInDict(items, pathToItem) + loadInDict(units, pathToUnit) + loadInDict(enchant, pathToEnchant) + print('data ready') + # Replace with function body. var json = file.get_as_text() + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass + +func dir_contents(path): + var dir = Directory.new() + if dir.open(path) == OK: + dir.list_dir_begin() + var file_name = dir.get_next() + while file_name != "": + if dir.current_is_dir(): + print("Found directory: " + file_name) +# if file_name == '.' or file_name == '..': +# print('recursion retarded') +# else: +# var newPath = path+file_name +# dir_contents(path) + else: + print("Found file: " + file_name) + file_name = dir.get_next() + else: + print("An error occurred when trying to access the path.") + + +#func dir_contents_complete(path): +# var dir = Directory.new() +# if dir.open(path) == OK: +# dir.list_dir_begin() +# var file_name = dir.get_next() +# while file_name != "": +# if dir.current_is_dir(): +# if not (file_name == '.' or file_name == '..'): +## print('recursion retarded') +## else: +# print("Found directory: " + file_name) +# var newPath = path+"/"+file_name +# print('calling: ', newPath) +# dir_contents_complete(newPath) +# else: +# print("Found file: " + file_name) +# file_name = dir.get_next() +# else: +# print("An error occurred when trying to access the path.") + + +func dir_path_to_files(path): + var pathes = [] + var dir = Directory.new() + if dir.open(path) == OK: + dir.list_dir_begin() + var file_name = dir.get_next() + while file_name != "": + if dir.current_is_dir(): + + if not (file_name == '.' or file_name == '..'): + + var newPath = path+'/'+file_name + #print('calling: ', newPath) + for stringy in dir_path_to_files(newPath): + pathes.append(stringy) +# else: +# print("Found directory: " + file_name) +# print('recursion retarded') + else: + print("Found file: " + file_name) + pathes.append(path+'/'+file_name) + file_name = dir.get_next() + else: + print("An error occurred when trying to access the path ",path) + return pathes + + + +#func loadInDict(dict, path): +# var pathes = dir_path_to_files(path) +# for key in pathes: +# print(key) +# var file = File.new() +# file.open(key, file.READ) +## var line = file.get_line() +# var json = file.get_as_text() +# var json_result = JSON.parse(json).result +# if json_result: +# print(json_result) +# dict[json_result['name']]={"duration":json_result['duration']} +# file.close() + +func loadInDict(dict, path): + var pathes = dir_path_to_files(path) + for key in pathes: + #print(key) + var file = File.new() + file.open(key, file.READ) +# var line = file.get_line() + var json = file.get_as_text() + var json_result = JSON.parse(json).result + if json_result: + #print(json_result) + var data = {} + for nkey in json_result: + if not nkey == 'name': + data[nkey] = json_result[nkey] + dict[json_result['name']]=data + file.close() diff --git a/Client/autoloads/Network.gd b/Client/autoloads/Network.gd new file mode 100644 index 0000000..bae6096 --- /dev/null +++ b/Client/autoloads/Network.gd @@ -0,0 +1,66 @@ +extends Node + +const DEFAULT_IP = '127.0.0.1' +const DEFAULT_PORT = 31400 +const MAX_PLAYERS = 50 + +var ip = '' +var players = { } +var self_data : Dictionary = { name = '', password = ''} +var password = '' +var ongoingQry = false +var lastRequest = '' +var serverpassword = " " + +signal player_disconnected +signal server_disconnected + +func _ready(): + get_tree().connect('network_peer_disconnected', self, '_on_player_disconnected') + get_tree().connect('network_peer_connected', self, '_on_player_connected') + + + +func connect_to_server(playerName,pw,serverpassword): + self.serverpassword = serverpassword + self_data.name = playerName + self_data.password = pw + var peer = NetworkedMultiplayerENet.new() + if ip == '': + ip = DEFAULT_IP + peer.create_client(ip, DEFAULT_PORT) + get_tree().set_network_peer(peer) +# PlayerManager.authcache['password']=pw +# PlayerManager.authcache['playername']=playerName + + +func _connected_to_server(): + var local_player_id = get_tree().get_network_unique_id() + players[local_player_id] = self_data + rpc('checkServerPassword',serverpassword) # not implemented yet + + print(">>>> CONNECTED TO SERVER <<<<<") + + rpc_id(1, '_request_auth', local_player_id, self_data)# anstatt playerName und pw -> self_data + rpc('_send_player_info', local_player_id, self_data) # requests all player in the current session + + +func _on_player_disconnected(id): + players.erase(id) + PlayerManager.player_disconnected(id) + +func _on_player_connected(connected_player_id): + var local_player_id = get_tree().get_network_unique_id() + rpc_id(1, '_request_player_info', local_player_id, connected_player_id) + + +remote func _receive_auth(response): + print('Client -> _receive_auth erreicht') + PlayerManager.receiveAuth(response) + WorldManager.requestMapfromServer() + WorldManager._load_worldmap() + #print(response) + + +remote func _send_player_info(id, info): + players[id] = info diff --git a/Client/autoloads/PlayerManager.gd b/Client/autoloads/PlayerManager.gd new file mode 100644 index 0000000..f69a656 --- /dev/null +++ b/Client/autoloads/PlayerManager.gd @@ -0,0 +1,114 @@ +extends Node + +var authcache : Dictionary = {'playername':'', 'factionname':'', 'password':'', 'units':'', +'campaigndifficulty':'', 'campaignlength':'', 'response':{"found":false}} +var myFactionData = {} + +var pathToPlayer = "user://players.sav" +var factions = {} + +var diplomacyStates = {'neutral': 1, 'own' : 2, 'enemies':3, "allies":4} + +#client helper data +var subMenuOpen = false + + +func checkdiplo(factionA, factionB): + var response = 'neutral' + if factionA == factionB: + response = 'own' + else: + if factions.has(factionA): + var factionData = factions[factionA] + if factionData.has('diplomacy'): + var diplo = factionData['diplomacy'] + for key in diplo: + if diplo[key].has(factionB): + response = key + return response + return response + +#returns neutral for neutral, allies for allies, own for own and enemies for enemies +func checkDiplo(faction): + var data = authcache['response'] + var authed = data['found'] + var response = 'neutral' + if faction==data['faction']: + response = 'own' + return response + elif authed: + if data.has('factiondata'): + var factiondata = data['factiondata'] + if factiondata.has('diplomacy'): + var diplo = factiondata['diplomacy'] + for key in diplo: + if diplo[key].has(faction): + response = key + return response +# print("checking diplo") +# print(data, faction) +# print("considered ", response) +# print(" ") +# print("illegal move attempt") + return response + #var diplo = factiondata['diplomacy'] + pass + + +func player_disconnected(id): + pass + + +func getPlayerFactionData(): + return myFactionData + + +# Register Player Data + +func setAuthcache(data: Dictionary): + print("> RegisterPlayerData arrived in PlayerManager") + var keys : Array = authcache.keys() # saving the keys into the array to cycle through them in the loop +# print("Keys: ", keys[i]) +# print("Data: ", data[i], "\n") + #print(">> Authcache with RegisterPlayerData: ", authcache) + saveAuthInServer(data) + +func getAuthcache() -> Dictionary: + return authcache + +func getAuthcachePlayerName() -> String: + #print("Auth PlayerName ",authcache["playername"]) + return authcache["playername"] + +func getAuthcacheFactionName() -> String: + #print("Auth FactionName ",authcache["factionname"]) + return authcache["factionname"] + +func requestAuth(): + rpc_id(1, 'identifyPlayer', authcache['playername'], authcache['password']) + +# Register Player Data END + +func saveAuthInServer(data): + var authcacheJSON = JSON.print(data) + rpc('registerPlayer', authcacheJSON) # Network -> PlayerManager + print(authcacheJSON) + +remote func receiveAuth(response): + print('Client receiveAuth response ' + response) + if not response.found: + return + authcache.response = response + print(response) + if response.has('faction'): + myFactionData = response['faction'] + print("faction name is ", myFactionData) + #to do: remove accesses to redundant data and then erase redundant data +# if authcache.response.has('faction'): +# myFactionData = response.faction +# #to do: remove accesses to redundant data and then erase redundant data +# + + + + diff --git a/Client/autoloads/WorldManager.gd b/Client/autoloads/WorldManager.gd new file mode 100644 index 0000000..f11ac2f --- /dev/null +++ b/Client/autoloads/WorldManager.gd @@ -0,0 +1,227 @@ +extends Node + +signal updateMap +signal updateUI + +var Server = false #true if this is the server isntances +const UIBorder = 1310 +const travelTime = 10 + + +var worldmap +var worldmapLoaded = false + + +var worldTiles = {} #currently managed with strings, can be indexed by ints in Godotscript +var selectedRegion = null +var armiesOnMap = {} +var armies = {} +var selectedArmy = null +var selecterArmydiplo = '' + + +func addArmy(from, to, army, armydata, player=true): + var arrive = from['turn'] + travelTime + var regionturn = to['turn'] + if arrive <= regionturn: + var armies = to['armies'] + armies[army] = armydata + setPresent(to) + if player: + if (to['playerTurnOn'] == -1) or (to['playerTurnOn'] > regionturn): + to['playerTurnOn'] = regionturn + else: + if (to['playerTurnOn'] == -1) or (to['playerTurnOn'] > arrive): + to['turn'] = arrive + var armies = to['armies'] + #print(armies) +# if not typeof(armies) == TYPE_DICTIONARY: +# to['armies']={} +# armies = to['armies'] + armies[army] = armydata + setPresent(to) + if player: + to['playerTurnOn'] = regionturn + else: + if not to.has('incomming'): + to['incomming'] = {} + var incomming = to['incomming'] + armydata['arrive'] = arrive + incomming[army] = armydata + if player: + addFaction(to, armydata['faction']) + emit_signal("updateMap") + emit_signal("updateUI") + + +func addTile(response): + var x = '' + if not worldTiles.has(String(response['x'])): + worldTiles[String(response['x'])] = {} + x = worldTiles[String(response['x'])] + x[String(response['y'])] = response + + +func addFaction(tile, factionName): + if not tile.factions.has(factionName): + tile.factions.append(factionName) + +#func loadAsServer(): +# var path = 'user://worldmap.json' +# var directory = Directory.new() +# var hasFile = directory.file_exists(path) +# var file = File.new() #this should be handled in in firstStart +# if !hasFile: +# path = directory.get_current_dir()+'preset//worldmap.json' +# file.open(path, file.READ) +# var json = file.get_as_text() +## print('json:'+json) +# var json_result = JSON.parse(json).result +# #print(json_result) +# for tile in json_result: +# #ensure everyone who has an army is counted as present, can be removed once the player update system is properly implemented +# var present = [] +# if tile.has('armies'): +# for army in tile['armies']: +# if not present.has(army['faction']): +# present.append(army['faction']) +# tile['present'] = present +# WorldManager.addTile(tile) +# #to do: function to load regions + + + +func getTileOrNull(x,y): + var tile = null + x = String(x) + y = String(y) + print("find ",x," ", y) + if worldTiles.has(x): + var row = worldTiles[x] + print(row) + if row.has(y): + tile = row[y] + print("tileOrNull not null") + return tile + +func getTileGuaranteed(x, y): + var tile = null + tile = getTileOrNull(x,y) + if tile == null: + tile = { + "x":x, + "y":y, + "terrain":"FOREST", + "factions":[], + "turn":1, + "armies":{}, + "present":{}, + "playerTurnOn":-1 + } + addTile(tile) + return tile + +remote func moveArmy(fromX, fromY, toX, toY, army): + var from = getTileOrNull(fromX, fromY) + print("request army move") + print("tile: ", from) + if not from == null: + if from.has('armies'): + var armies = from['armies'] + if armies.has(army): + var armydata = armies[army] + if PlayerManager.confirmFaction(get_tree().get_rpc_sender_id(), armydata['faction']): + print("confirm move") + var targetTile = getTileGuaranteed(toX, toY) + print("target is: ",targetTile) + from['armies'].erase(army) + removeArmy(from, army) + addArmy(from, targetTile, army, armydata) + updateLocalPlayers(from) + updateLocalPlayers(targetTile) + pass + +remote func receiveMap(tiles): + for tile in tiles: + addTile(tile) + emit_signal("updateMap") + emit_signal("updateUI") + + +func updateLocalPlayers(tile): + var factions = tile.present + var connections = PlayerManager.clients_factions + for faction in factions: + for connection in connections: + if connections[connection]==faction: + if not ((connection == 1) or (connection==0)): + rpc_id(connection, 'receiveMap', tile) + pass + +func removeArmy(tile, army): + var armies = tile.armies + armies.erase(army) + setPresent(tile) +# addTile(tile) +# print(getTileGuaranteed(0,0)) + + +func requestMapfromServer(): + rpc_id(1, 'requestMap', PlayerManager.authcache['response']['faction']) + +func requestArmyMove(moveX=0, moveY=0): + print("move army ", selectedArmy) + #print("from ") + var error = false + if not selectedRegion == null: + print("x: ", selectedRegion.x, "Y: ", selectedRegion.y) + print("to: ", selectedRegion.x + moveX," / ", selectedRegion.y + moveY) + if not selectedArmy == null: + if not Server: + rpc_id(1, 'moveArmy', selectedRegion.x, selectedRegion.y, selectedRegion.x+moveX, selectedRegion.y + moveY, selectedArmy) + else: + moveArmy(selectedRegion.x, selectedRegion.y, selectedRegion.x+moveX, selectedRegion.y + moveY, selectedArmy) + else: + print("regionselecterror") + +remote func requestMap(factionToFind): + if PlayerManager.clients_factions.has(get_tree().get_rpc_sender_id()): + if PlayerManager.clients_factions[get_tree().get_rpc_sender_id()] == factionToFind: + print('right faction') + else: + print('found instead:', PlayerManager.clients_factions[get_tree().get_rpc_sender_id()]) + else: + print('only contains: ', PlayerManager.clients_factions) + var tiles = [] + for x in worldTiles: + var row = worldTiles[x] + for y in row: + var tile = row[y] + #print('looking for map data: ', factionToFind) + #print(tile) + var factions = tile.factions + for faction in factions: + #print('comparing: ', faction, factionToFind) + if faction == factionToFind: + tiles.append(tile) + #print('appending: ',tile) + rpc_id(get_tree().get_rpc_sender_id(), 'receiveMap', tiles) + + +func setPresent(tile): + var armies = tile.armies + var present = {} + for army in armies: + var armyValue = 1#TO DO: have method to calculate army strength + var armydata = armies[army] + var faction = armydata.faction + if present.has(faction): + present[faction] += armyValue + else: + present[faction] = armyValue + tile['present']=present + return + + +func _load_worldmap(): + get_tree().change_scene('res://Worldmap.tscn') diff --git a/Client/building/Building.tscn b/Client/building/Building.tscn new file mode 100644 index 0000000..4b94a00 --- /dev/null +++ b/Client/building/Building.tscn @@ -0,0 +1,8 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://building/buildingmap.tres" type="Texture" id=1] + +[node name="Building" type="Node2D"] + +[node name="Sprite" type="Sprite" parent="."] +texture = ExtResource( 1 ) diff --git a/Client/building/buildingmap.tres b/Client/building/buildingmap.tres new file mode 100644 index 0000000..c43203d --- /dev/null +++ b/Client/building/buildingmap.tres @@ -0,0 +1,8 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=2] + +[ext_resource path="res://images/region/building.png" type="Texture" id=1] + +[resource] +flags = 4 +atlas = ExtResource( 1 ) +region = Rect2( 0, 0, 256, 256 ) diff --git a/Client/data/DataManager.gd b/Client/data/DataManager.gd new file mode 100644 index 0000000..8df82c8 --- /dev/null +++ b/Client/data/DataManager.gd @@ -0,0 +1,134 @@ +extends Node + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +var techs = {} +var pathToTech = 'res://data/techdata/' + +var buildings = {} +var pathToBuildings = 'res://data/buildings/' + +var items = {} +var pathToItem = 'res://data/Items/' + +var units = {} +var pathToUnit = 'res://data/units/' + +var enchant = {} +var pathToEnchant = 'res://data/enchant/' + +# Called when the node enters the scene tree for the first time. +func _ready(): + loadInDict(techs, pathToTech) + loadInDict(buildings, pathToBuildings) + loadInDict(items, pathToItem) + loadInDict(units, pathToUnit) + loadInDict(enchant, pathToEnchant) + print('data ready') + # Replace with function body. var json = file.get_as_text() + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass + +func dir_contents(path): + var dir = Directory.new() + if dir.open(path) == OK: + dir.list_dir_begin() + var file_name = dir.get_next() + while file_name != "": + if dir.current_is_dir(): + print("Found directory: " + file_name) +# if file_name == '.' or file_name == '..': +# print('recursion retarded') +# else: +# var newPath = path+file_name +# dir_contents(path) + else: + print("Found file: " + file_name) + file_name = dir.get_next() + else: + print("An error occurred when trying to access the path.") + + +#func dir_contents_complete(path): +# var dir = Directory.new() +# if dir.open(path) == OK: +# dir.list_dir_begin() +# var file_name = dir.get_next() +# while file_name != "": +# if dir.current_is_dir(): +# if not (file_name == '.' or file_name == '..'): +## print('recursion retarded') +## else: +# print("Found directory: " + file_name) +# var newPath = path+"/"+file_name +# print('calling: ', newPath) +# dir_contents_complete(newPath) +# else: +# print("Found file: " + file_name) +# file_name = dir.get_next() +# else: +# print("An error occurred when trying to access the path.") + + +func dir_path_to_files(path): + var pathes = [] + var dir = Directory.new() + if dir.open(path) == OK: + dir.list_dir_begin() + var file_name = dir.get_next() + while file_name != "": + if dir.current_is_dir(): + + if not (file_name == '.' or file_name == '..'): + + var newPath = path+'/'+file_name + #print('calling: ', newPath) + for stringy in dir_path_to_files(newPath): + pathes.append(stringy) +# else: +# print("Found directory: " + file_name) +# print('recursion retarded') + else: + print("Found file: " + file_name) + pathes.append(path+'/'+file_name) + file_name = dir.get_next() + else: + print("An error occurred when trying to access the path.") + return pathes + + + +#func loadInDict(dict, path): +# var pathes = dir_path_to_files(path) +# for key in pathes: +# print(key) +# var file = File.new() +# file.open(key, file.READ) +## var line = file.get_line() +# var json = file.get_as_text() +# var json_result = JSON.parse(json).result +# if json_result: +# print(json_result) +# dict[json_result['name']]={"duration":json_result['duration']} +# file.close() + +func loadInDict(dict, path): + var pathes = dir_path_to_files(path) + for key in pathes: + print(key) + var file = File.new() + file.open(key, file.READ) +# var line = file.get_line() + var json = file.get_as_text() + var json_result = JSON.parse(json).result + if json_result: + #print(json_result) + var data = {} + for nkey in json_result: + if not nkey == 'name': + data[nkey] = json_result[nkey] + dict[json_result['name']]=data + file.close() diff --git a/Client/data/Items/Kalkstein.json b/Client/data/Items/Kalkstein.json new file mode 100644 index 0000000..c7e26be --- /dev/null +++ b/Client/data/Items/Kalkstein.json @@ -0,0 +1,13 @@ +{ +"name":"Kalkstein", +"itemType":"Stein", +"stats":{ + "BaseHP":7 + }, +"goldValue":4, +"amount":1, +"hardness":3, +"enables":["Steinbruch", "Kalkstein"], +"row":0, +"column":1 +} diff --git a/Client/data/Items/Marmor.json b/Client/data/Items/Marmor.json new file mode 100644 index 0000000..0c52e92 --- /dev/null +++ b/Client/data/Items/Marmor.json @@ -0,0 +1,13 @@ +{ +"name":"Marmor", +"itemType":"Stein", +"stats":{ + "BaseHP":10 + }, +"goldValue":14, +"amount":1, +"hardness":10, +"enables":["Steinbruch", "Marmor"], +"row":0, +"column":0 +} diff --git a/Client/data/Items/Sandstein.json b/Client/data/Items/Sandstein.json new file mode 100644 index 0000000..5c22359 --- /dev/null +++ b/Client/data/Items/Sandstein.json @@ -0,0 +1,13 @@ +{ +"name":"Sandstein", +"itemType":"Stein", +"stats":{ + "BaseHP":7 + }, +"goldValue":4, +"amount":1, +"hardness":3, +"enables":["Steinbruch", "Sandstein"], +"row":0, +"column":3 +} diff --git a/Client/data/Items/equip/armor/kettenhemd.json b/Client/data/Items/equip/armor/kettenhemd.json new file mode 100644 index 0000000..5788f88 --- /dev/null +++ b/Client/data/Items/equip/armor/kettenhemd.json @@ -0,0 +1,22 @@ +{ +"name":"Kettenhemd", +"itemType":"Ausrüstung", +"category":"armor", +"stats":{ + "resist":{ + "physcal":10 + }, + "absorb":{ + "pierce":3 + } + + }, +"materials":{ + "Metall":6 + }, +"goldValue":4, +"amount":1, +"enables":[], +"row":4, +"column":1 +} diff --git a/Client/data/Items/equip/ranged/Langbogen.json b/Client/data/Items/equip/ranged/Langbogen.json new file mode 100644 index 0000000..1ebbb02 --- /dev/null +++ b/Client/data/Items/equip/ranged/Langbogen.json @@ -0,0 +1,24 @@ +{ +"name":"Langbogen", +"itemType":"Ausrüstung", +"category":"ranged", +"stats":{ + "rangedAttack":{ + "APcost":7, + "damage":{ + "amount":9, + "toRoll":3, + "types":["physical", + "pierce"]} + } + }, +"materials":{ + "Holz":7 + }, +"goldValue":14, +"amount":1, +"enables":["Langbogen"], +"row":4, +"column":1 + +} \ No newline at end of file diff --git a/Client/data/Items/equip/ranged/kurzbogen.json b/Client/data/Items/equip/ranged/kurzbogen.json new file mode 100644 index 0000000..f588319 --- /dev/null +++ b/Client/data/Items/equip/ranged/kurzbogen.json @@ -0,0 +1,24 @@ +{ +"name":"kurzbogen", +"itemType":"Ausrüstung", +"category":"ranged", +"stats":{ + "rangedAttack":{ + "APcost":4, + "damage":{ + "amount":3, + "toRoll":3, + "types":["physical", + "pierce"]} + } + }, +"materials":{ + "Holz":4 + }, +"goldValue":4, +"amount":1, +"enables":[], +"row":4, +"column":1 + +} \ No newline at end of file diff --git a/Client/data/Items/equip/weapon1h/kurzschwert.json b/Client/data/Items/equip/weapon1h/kurzschwert.json new file mode 100644 index 0000000..e61916a --- /dev/null +++ b/Client/data/Items/equip/weapon1h/kurzschwert.json @@ -0,0 +1,24 @@ +{ +"name":"kurzschwert", +"itemType":"Ausrüstung", +"category":"weapon1h", +"stats":{ + "meeleAttack":{ + "range":2, + "APcost":3, + "damage":{ + "amount":4, + "toRoll":2, + "types":["physical", + "cut"]} + } + }, +"materials":{ + "Metall":3 + }, +"goldValue":4, +"amount":1, +"enables":[], +"row":4, +"column":1 +} diff --git a/Client/data/Items/equip/weapon1h/langschwert.json b/Client/data/Items/equip/weapon1h/langschwert.json new file mode 100644 index 0000000..6357b50 --- /dev/null +++ b/Client/data/Items/equip/weapon1h/langschwert.json @@ -0,0 +1,27 @@ +{ + "name": "Langschwert", + "itemType": "Ausrüstung", + "category": "weapon1h", + "stats": { + "meeleAttack": { + "range": 4, + "APcost": 4, + "damage": { + "amount": 6, + "toRoll": 4, + "types": ["physical", + "cut" + ] + } + } + + }, + "materials": { + "Metall": 6 + }, + "goldValue": 4, + "amount": 1, + "enables": [], + "row": 4, + "column": 1 +} \ No newline at end of file diff --git a/Client/data/Items/holz/eiche.json b/Client/data/Items/holz/eiche.json new file mode 100644 index 0000000..eb0092b --- /dev/null +++ b/Client/data/Items/holz/eiche.json @@ -0,0 +1,25 @@ +{ +"name":"Eiche", +"itemType":"Holz", +"statsBuilding":{ + "BaseHP":7 + }, +"statsMeele":{ + "meeleAttack":{ + "damage":2 + + } +}, +"statsRange":{ + "rangedAttack":{ + "range":-2 + } +}, + +"goldValue":4, +"amount":1, +"hardness":3, +"enables":["Holzfäller", "Eiche"], +"row":1, +"column":0 +} diff --git a/Client/data/Items/holz/tanne.json b/Client/data/Items/holz/tanne.json new file mode 100644 index 0000000..c88e91e --- /dev/null +++ b/Client/data/Items/holz/tanne.json @@ -0,0 +1,18 @@ +{ +"name":"Tanne", +"itemType":"Holz", +"statsBuilding":{ + "BaseHP":7 + }, +"statsMeele":{ +}, +"statsRange":{ +}, + +"goldValue":4, +"amount":1, +"hardness":3, +"enables":["Holzfäller", "Tanne"], +"row":1, +"column":1 +} diff --git a/Client/data/Items/metall/eisen.json b/Client/data/Items/metall/eisen.json new file mode 100644 index 0000000..28b9d7a --- /dev/null +++ b/Client/data/Items/metall/eisen.json @@ -0,0 +1,29 @@ +{ + "name": "Eisen", + "itemType": "Metall", + "statsBuilding": { + "BaseHP": 2, + "resist": { + "fire": 15 + } + + }, + "statsMeele": { + "meeleAttack": { + "damage": 2 + + } + }, + "statsRange": { + "rangedAttack": { + "range": -2 + } + }, + + "goldValue": 4, + "amount": 1, + "hardness": 3, + "enables": ["Erzmine", "Eisen"], + "row": 1, + "column": 0 +} \ No newline at end of file diff --git a/Client/data/Items/metall/mithril.json b/Client/data/Items/metall/mithril.json new file mode 100644 index 0000000..3ac1f55 --- /dev/null +++ b/Client/data/Items/metall/mithril.json @@ -0,0 +1,29 @@ +{ + "name": "Mithril", + "itemType": "Metall", + "statsBuilding": { + "BaseHP": 2, + "resist": { + "fire": 80 + } + + }, + "statsMeele": { + "meeleAttack": { + "damage": 1 + + } + }, + "statsRange": { + "rangedAttack": { + "range": 1 + } + }, + + "goldValue": 4, + "amount": 1, + "hardness": 3, + "enables": ["Erzmine", "Mithril"], + "row": 1, + "column": 2 +} \ No newline at end of file diff --git a/Client/data/Items/stein/Kalkstein.json b/Client/data/Items/stein/Kalkstein.json new file mode 100644 index 0000000..1541991 --- /dev/null +++ b/Client/data/Items/stein/Kalkstein.json @@ -0,0 +1,13 @@ +{ +"name":"Kalkstein", +"itemType":"Stein", +"statsBuilding":{ + "BaseHP":7 + }, +"goldValue":4, +"amount":1, +"hardness":3, +"enables":["Steinbruch", "Kalkstein"], +"row":0, +"column":1 +} diff --git a/Client/data/Items/stein/Marmor.json b/Client/data/Items/stein/Marmor.json new file mode 100644 index 0000000..20c3909 --- /dev/null +++ b/Client/data/Items/stein/Marmor.json @@ -0,0 +1,13 @@ +{ +"name":"Marmor", +"itemType":"Stein", +"statsBuilding":{ + "BaseHP":10 + }, +"goldValue":14, +"amount":1, +"hardness":10, +"enables":["Steinbruch", "Marmor"], +"row":0, +"column":0 +} diff --git a/Client/data/Items/stein/Sandstein.json b/Client/data/Items/stein/Sandstein.json new file mode 100644 index 0000000..73955b0 --- /dev/null +++ b/Client/data/Items/stein/Sandstein.json @@ -0,0 +1,13 @@ +{ +"name":"Sandstein", +"itemType":"Stein", +"statsBuilding":{ + "BaseHP":7 + }, +"goldValue":4, +"amount":1, +"hardness":3, +"enables":["Steinbruch", "Sandstein"], +"row":0, +"column":3 +} diff --git a/Client/data/buildings/Steinbruch.json b/Client/data/buildings/Steinbruch.json new file mode 100644 index 0000000..e1bc5ca --- /dev/null +++ b/Client/data/buildings/Steinbruch.json @@ -0,0 +1,5 @@ +{"name":"Steinbruch", +"requires":{ + "Holz":10, + "Metall":5} +} \ No newline at end of file diff --git a/Client/data/techdata/buildings/quarry/Steinbruch.json b/Client/data/techdata/buildings/quarry/Steinbruch.json new file mode 100644 index 0000000..5ae0ca9 --- /dev/null +++ b/Client/data/techdata/buildings/quarry/Steinbruch.json @@ -0,0 +1,4 @@ +{ +"name":"Steinbruch", +"duration":4 +} \ No newline at end of file diff --git a/Client/data/techdata/buildings/woodman/Holzfäller.json b/Client/data/techdata/buildings/woodman/Holzfäller.json new file mode 100644 index 0000000..33dad35 --- /dev/null +++ b/Client/data/techdata/buildings/woodman/Holzfäller.json @@ -0,0 +1,4 @@ +{ +"name":"Holzfäller", +"duration":4 +} \ No newline at end of file diff --git a/Client/data/techdata/ressources/Kalkstein.json b/Client/data/techdata/ressources/Kalkstein.json new file mode 100644 index 0000000..dc5449e --- /dev/null +++ b/Client/data/techdata/ressources/Kalkstein.json @@ -0,0 +1,4 @@ +{ +"name":"Kalkstein", +"duration":3 +} \ No newline at end of file diff --git a/Client/data/techdata/ressources/Marmor.json b/Client/data/techdata/ressources/Marmor.json new file mode 100644 index 0000000..bf9e60a --- /dev/null +++ b/Client/data/techdata/ressources/Marmor.json @@ -0,0 +1,4 @@ +{ +"name":"Marmor", +"duration":3 +} \ No newline at end of file diff --git a/Client/data/techdata/ressources/Sandstein.json b/Client/data/techdata/ressources/Sandstein.json new file mode 100644 index 0000000..014c074 --- /dev/null +++ b/Client/data/techdata/ressources/Sandstein.json @@ -0,0 +1,4 @@ +{ +"name":"Sandstein", +"duration":3 +} \ No newline at end of file diff --git a/Client/data/units/Elf.json b/Client/data/units/Elf.json new file mode 100644 index 0000000..f470a38 --- /dev/null +++ b/Client/data/units/Elf.json @@ -0,0 +1,29 @@ +{ + "name":"Elf", + "stats":{ + "BaseHP":15, + "strength": 5, + "dex":5, + "con":5, + "int":5, + "char":5, + "maxAP":0, + "size":1, + "type":"humanoid", + "resist":{ + "physical":20 + }, + "absorb":{ + "blunt":2 + }, + "graphics":{ + "row":3, + "column":0 + }, + "meeleAttack":{ + }, + "rangedAttack":{ + "range":2 + } + } +} \ No newline at end of file diff --git a/Client/data/units/Mensch.json b/Client/data/units/Mensch.json new file mode 100644 index 0000000..ac9fb1f --- /dev/null +++ b/Client/data/units/Mensch.json @@ -0,0 +1,28 @@ +{ + "name":"Mensch", + "stats":{ + "BaseHP":15, + "strength": 5, + "dex":5, + "con":5, + "int":5, + "char":5, + "maxAP":0, + "size":1, + "type":"humanoid", + "resist":{ + "physical":20 + }, + "absorb":{ + "blunt":2 + }, + "graphics":{ + "row":3, + "column":0 + }, + "meeleAttack":{ + }, + "rangedAttack":{ + } + } +} \ No newline at end of file diff --git a/Client/data/units/Ork.json b/Client/data/units/Ork.json new file mode 100644 index 0000000..6069efb --- /dev/null +++ b/Client/data/units/Ork.json @@ -0,0 +1,29 @@ +{ + "name":"Ork", + "stats":{ + "BaseHP":20, + "strength": 5, + "dex":5, + "con":5, + "int":5, + "char":5, + "maxAP":0, + "size":1, + "type":"humanoid", + "resist":{ + "physical":20 + }, + "absorb":{ + "physical":2, + "blunt":2 + }, + "graphics":{ + "row":3, + "column":0 + }, + "meeleAttack":{ + }, + "rangedAttack":{ + } + } +} \ No newline at end of file diff --git a/Client/data/units/Zwerg.json b/Client/data/units/Zwerg.json new file mode 100644 index 0000000..5012e38 --- /dev/null +++ b/Client/data/units/Zwerg.json @@ -0,0 +1,28 @@ +{ + "name":"Zwerg", + "stats":{ + "BaseHP":15, + "strength": 5, + "dex":5, + "con":5, + "int":5, + "char":5, + "maxAP":0, + "size":1, + "type":"humanoid", + "resist":{ + "physical":20 + }, + "absorb":{ + "blunt":2 + }, + "graphics":{ + "row":3, + "column":0 + }, + "meeleAttack":{ + }, + "rangedAttack":{ + } + } +} \ No newline at end of file diff --git a/Client/default_env.tres b/Client/default_env.tres new file mode 100644 index 0000000..3e42e6f Binary files /dev/null and b/Client/default_env.tres differ diff --git a/Client/font/Anton-Regular.ttf b/Client/font/Anton-Regular.ttf new file mode 100644 index 0000000..8c2caa6 Binary files /dev/null and b/Client/font/Anton-Regular.ttf differ diff --git a/Client/font/Anton.zip b/Client/font/Anton.zip new file mode 100644 index 0000000..755d579 Binary files /dev/null and b/Client/font/Anton.zip differ diff --git a/Client/font/Label1__1_.gd b/Client/font/Label1__1_.gd new file mode 100644 index 0000000..ecc446f --- /dev/null +++ b/Client/font/Label1__1_.gd @@ -0,0 +1,332 @@ +extends Control + +# Variable erstellen, um die Schriftart zukünftig auf dieser Speichern zu können +var bitmapFont: BitmapFont + + +func _ready(): +# Setup für den Loop + var letters = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'] + bitmapFont = BitmapFont.new() + var start = 'res://Files/' + var end = '%8.bmp' + var path + + +# Loop erzeugen und mit diesem alle Zeichen der Schriftart hinzufügen + var a = 47 + var b = -1 + for letter in letters: + print(letter) + path = start+letter+end + bitmapFont.add_texture(load(path)) + a = a + 1 + b = b + 1 + if letter == "A": + a = 65 + b = 10 + bitmapFont.add_char(a, b, Rect2(0,0,150,150), Vector2( 0, 5 ), 70) + + + + var NullFunf = ["7","B","E","H","I","J","K","P","R","S","T","U","Z"] + bitmapFont.add_kerning_pair(ord("0"), ord("5"), -1) + for NullFunfs in NullFunf: + bitmapFont.add_kerning_pair(ord("0"), ord(NullFunfs), 5) + var NullZehn = ["D","M","V","W","Y"] + for NullZehns in NullZehn: + bitmapFont.add_kerning_pair(ord("0"), ord(NullZehns), 10) + bitmapFont.add_kerning_pair(ord("0"), ord("A"), 15) + bitmapFont.add_kerning_pair(ord("0"), ord("X"), 15) + bitmapFont.add_kerning_pair(ord("1"), ord("A"), 35) + bitmapFont.add_kerning_pair(ord("1"), ord("S"), 25) + var ZweiFunfZehn = ["0","4","C","D","E","M","T","W","X","Y"] + for ZweiFunfZehns in ZweiFunfZehn: + bitmapFont.add_kerning_pair(ord("2"), ord(ZweiFunfZehns), 15) + bitmapFont.add_kerning_pair(ord("2"), ord("J"), 5) + bitmapFont.add_kerning_pair(ord("2"), ord("V"), 20) + var DreiZwanzig = ["0","1","7","9","B","D","E","F","I","J","M","P","R","W","X"] + for DreiZwanzigs in DreiZwanzig: + bitmapFont.add_kerning_pair(ord("3"), ord(DreiZwanzigs), 20) + var DreiZwanzigFunf = ["2","A","T","V","Y"] + for DreiZwanzigFunfs in DreiZwanzigFunf: + bitmapFont.add_kerning_pair(ord("3"), ord(DreiZwanzigFunfs), 25) + var VierZwanzig = ["1","2","7","9","B","D","E","M","P","R"] + for VierZwanzigs in VierZwanzig: + bitmapFont.add_kerning_pair(ord("4"), ord(VierZwanzigs), 20) + var VierZwanzigFunf = ["A","T","V","W","X","Y"] + for VierZwanzigFunfs in VierZwanzigFunf: + bitmapFont.add_kerning_pair(ord("4"), ord(VierZwanzigFunfs), 25) + + bitmapFont.add_kerning_pair(ord("5"), ord("5"), 20) + bitmapFont.add_kerning_pair(ord("5"), ord("A"), 30) + bitmapFont.add_kerning_pair(ord("5"), ord("O"), 15) + bitmapFont.add_kerning_pair(ord("5"), ord("Q"), 15) + var SechsZwanzig = ["5","8","B","D","M","P","V","W","X","Y"] + for SechsZwanzigs in SechsZwanzig: + bitmapFont.add_kerning_pair(ord("6"), ord(SechsZwanzigs), 20) + bitmapFont.add_kerning_pair(ord("6"), ord("5"), 10) + bitmapFont.add_kerning_pair(ord("6"), ord("8"), 10) + bitmapFont.add_kerning_pair(ord("6"), ord("A"), 25) + var SiebenZwanzig = ["8","P","M","X"] + for SiebenZwanzigs in SiebenZwanzig: + bitmapFont.add_kerning_pair(ord("7"), ord(SiebenZwanzigs), 20) + bitmapFont.add_kerning_pair(ord("7"), ord("4"), 25) + bitmapFont.add_kerning_pair(ord("7"), ord("5"), 15) + bitmapFont.add_kerning_pair(ord("7"), ord("A"), 40) + bitmapFont.add_kerning_pair(ord("7"), ord("J"), 25) + var AchtZehn = ["1","2","9","B","E","F","I","M","P","S","T","U"] + for AchtZehns in AchtZehn: + bitmapFont.add_kerning_pair(ord("8"), ord(AchtZehns), 10) + bitmapFont.add_kerning_pair(ord("8"), ord("0"), 0) + var NeunZehnFunf = ["0","3","4","8","H","I","R","S","T","W"] + for NeunZehnFunfs in NeunZehnFunf: + bitmapFont.add_kerning_pair(ord("9"), ord(NeunZehnFunfs), 15) + var NeunZwanzig = ["5","A","B","D","E","J","M","P","V","X","Y"] + for NeunZwanzigs in NeunZwanzig: + bitmapFont.add_kerning_pair(ord("9"), ord(NeunZwanzigs), 20) + bitmapFont.add_kerning_pair(ord("9"), ord("5"), 10) + bitmapFont.add_kerning_pair(ord("9"), ord("A"), 30) + var AFunf = ["3","5","C","F","N","U","X"] + for AFunfs in AFunf: + bitmapFont.add_kerning_pair(ord("A"), ord(AFunfs), -5) + var ANull = ["1","4","6","8","9","G","H","M","O","Q"] + for ANulls in ANull: + bitmapFont.add_kerning_pair(ord("A"), ord(ANulls), 0) + var AFunfe = ["0","T","W","Y"] + for AFunfes in AFunfe: + bitmapFont.add_kerning_pair(ord("A"), ord(AFunfes), 5) + bitmapFont.add_kerning_pair(ord("A"), ord("V"), 15) + var BZehn = ["0","2","3","6","8","9","B","C","F","H","I","J"] + for BZehns in BZehn: + bitmapFont.add_kerning_pair(ord("B"), ord(BZehns), -10) + var BFunf = ["0","2","3","6","8","9","A","E","G","K","L","N","O","P","Q","S"] + for BFunfs in BFunf: + bitmapFont.add_kerning_pair(ord("B"), ord(BFunfs), -5) + var BNull = ["1","D","R","T","U","X"] + for BNulls in BNull: + bitmapFont.add_kerning_pair(ord("B"), ord(BNulls), 0) + bitmapFont.add_kerning_pair(ord("B"), ord("M"), 5) + bitmapFont.add_kerning_pair(ord("B"), ord("V"), 10) + bitmapFont.add_kerning_pair(ord("B"), ord("W"), 5) + bitmapFont.add_kerning_pair(ord("B"), ord("Y"), 10) + bitmapFont.add_kerning_pair(ord("B"), ord("Z"), 16) + var CZehn = ["1","2","6","8","9","D","Q","R","T","U","W","X"] + for CZehns in CZehn: + bitmapFont.add_kerning_pair(ord("C"), ord(CZehns), -10) + var CFunf = ["0","4","M","O","V","Y"] + for CFunfs in CFunf: + bitmapFont.add_kerning_pair(ord("C"), ord(CFunfs), -5) + bitmapFont.add_kerning_pair(ord("C"), ord("5"), -15) + var DZehn = ["1","3","6","8","C","G","L"] + for DZehns in DZehn: + bitmapFont.add_kerning_pair(ord("D"), ord(DZehns), -10) + var DFunf = ["A","M","X","W"] + for DFunfs in DFunf: + bitmapFont.add_kerning_pair(ord("D"), ord(DFunfs), 5) + bitmapFont.add_kerning_pair(ord("D"), ord("D"), 0) + bitmapFont.add_kerning_pair(ord("D"), ord("R"), 0) + bitmapFont.add_kerning_pair(ord("D"), ord("T"), 0) + bitmapFont.add_kerning_pair(ord("D"), ord("Y"), 15) + bitmapFont.add_kerning_pair(ord("D"), ord("V"), 10) + var EFunf = ["M","T","W","Y"] + for EFunfs in EFunf: + bitmapFont.add_kerning_pair(ord("E"), ord(EFunfs), 5) + bitmapFont.add_kerning_pair(ord("E"), ord("7"), -10) + bitmapFont.add_kerning_pair(ord("E"), ord("8"), -10) + bitmapFont.add_kerning_pair(ord("E"), ord("R"), 0) + bitmapFont.add_kerning_pair(ord("E"), ord("S"), -10) + bitmapFont.add_kerning_pair(ord("E"), ord("V"), 10) + bitmapFont.add_kerning_pair(ord("E"), ord("X"), 1) + var FFunf = ["0","6","8","M","O","R","S","Q","V","W","X","Y"] + for FFunfs in FFunf: + bitmapFont.add_kerning_pair(ord("F"), ord(FFunfs), 5) + bitmapFont.add_kerning_pair(ord("F"), ord("4"), 10) + bitmapFont.add_kerning_pair(ord("F"), ord("5"), -1) + bitmapFont.add_kerning_pair(ord("F"), ord("A"), 30) + bitmapFont.add_kerning_pair(ord("F"), ord("J"), 10) + var GNull = ["0","A","M","R","V","X","Y"] + for GNulls in GNull: + bitmapFont.add_kerning_pair(ord("G"), ord(GNulls), 0) + var GFunf = ["B","D","S","H","P","T","U"] + for GFunfs in GFunf: + bitmapFont.add_kerning_pair(ord("G"), ord(GFunfs), -5) + bitmapFont.add_kerning_pair(ord("G"), ord("5"), -10) + var HZehn = ["9","A","R","S","T","U","V","W","X","Y"] + for HZehns in HZehn: + bitmapFont.add_kerning_pair(ord("H"), ord(HZehns), 10) + bitmapFont.add_kerning_pair(ord("H"), ord("5"), 5) + bitmapFont.add_kerning_pair(ord("H"), ord("M"), 15) + var IZehn = ["0","9","A","O"] + for IZehns in IZehn: + bitmapFont.add_kerning_pair(ord("H"), ord(IZehns), 10) + bitmapFont.add_kerning_pair(ord("I"), ord("5"), 30) + bitmapFont.add_kerning_pair(ord("J"), ord("1"), 5) + bitmapFont.add_kerning_pair(ord("J"), ord("5"), 5) + bitmapFont.add_kerning_pair(ord("J"), ord("A"), 20) + var KZehn = ["0","1","6","A","C","G","Q"] + for KZehns in KZehn: + bitmapFont.add_kerning_pair(ord("K"), ord(KZehns), 10) + var KFunf = ["5","7","B","E","N"] + for KFunfs in KFunf: + bitmapFont.add_kerning_pair(ord("K"), ord(KFunfs), -5) + bitmapFont.add_kerning_pair(ord("K"), ord("3"), 0) + bitmapFont.add_kerning_pair(ord("K"), ord("4"), 15) + bitmapFont.add_kerning_pair(ord("K"), ord("O"), 15) + var KZwanzig = ["0","1","C","D","G","M","O","Q"] + for KZwanzigs in KZwanzig: + bitmapFont.add_kerning_pair(ord("L"), ord(KZwanzigs), 20) + bitmapFont.add_kerning_pair(ord("L"), ord("4"), 25) + bitmapFont.add_kerning_pair(ord("L"), ord("5"), 10) + bitmapFont.add_kerning_pair(ord("L"), ord("7"), 10) + bitmapFont.add_kerning_pair(ord("L"), ord("T"), 30) + bitmapFont.add_kerning_pair(ord("L"), ord("V"), 35) + bitmapFont.add_kerning_pair(ord("L"), ord("W"), 25) + bitmapFont.add_kerning_pair(ord("L"), ord("Y"), 30) + var MFunf = ["1","2","3","5","7"] + for MFunfs in MFunf: + bitmapFont.add_kerning_pair(ord("M"), ord(MFunfs), -5) + bitmapFont.add_kerning_pair(ord("M"), ord("6"), -1) + bitmapFont.add_kerning_pair(ord("M"), ord("D"), 5) + bitmapFont.add_kerning_pair(ord("N"), ord("5"), -5) + bitmapFont.add_kerning_pair(ord("N"), ord("A"), 5) + bitmapFont.add_kerning_pair(ord("N"), ord("S"), 5) + bitmapFont.add_kerning_pair(ord("N"), ord("V"), 5) + var ONull = ["B","E","J","P","S","T","U"] + for ONulls in ONull: + bitmapFont.add_kerning_pair(ord("O"), ord(ONulls), 0) + var OFunf = ["D","M","R","V","W"] + for OFunfs in OFunf: + bitmapFont.add_kerning_pair(ord("O"), ord(OFunfs), 5) + var OZehn = ["A","X","Y","Z"] + for OZehns in OZehn: + bitmapFont.add_kerning_pair(ord("O"), ord(OZehns), 10) + bitmapFont.add_kerning_pair(ord("O"), ord("6"), -10) + var PFunf = ["8","M","O","P","R","V","X","Y"] + for PFunfs in PFunf: + bitmapFont.add_kerning_pair(ord("P"), ord(PFunfs), 5) + bitmapFont.add_kerning_pair(ord("P"), ord("4"), 10) + bitmapFont.add_kerning_pair(ord("P"), ord("5"), -5) + bitmapFont.add_kerning_pair(ord("P"), ord("A"), 25) + var QZwanzigFunf = ["2","5","6","7","N","J","L","S"] + for QZwanzigFunfs in QZwanzigFunf: + bitmapFont.add_kerning_pair(ord("Q"), ord(QZwanzigFunfs), -25) + bitmapFont.add_kerning_pair(ord("Q"), ord("M"), -15) + bitmapFont.add_kerning_pair(ord("Q"), ord("T"), -15) + bitmapFont.add_kerning_pair(ord("Q"), ord("V"), -5) + bitmapFont.add_kerning_pair(ord("Q"), ord("W"), -15) + bitmapFont.add_kerning_pair(ord("Q"), ord("Y"), -5) + var RFunf = ["1","2","3","5","7","9"] + for RFunfs in RFunf: + bitmapFont.add_kerning_pair(ord("R"), ord(RFunfs), -5) + var RFunfMinus = ["4","M","V","Y"] + for RFunfMinuss in RFunfMinus: + bitmapFont.add_kerning_pair(ord("R"), ord(RFunfMinuss), 5) + bitmapFont.add_kerning_pair(ord("R"), ord("8"), 1) + bitmapFont.add_kerning_pair(ord("R"), ord("O"), 1) + var SFunf = ["1","2","3","5","6","7","9","J"] + for SFunfs in SFunf: + bitmapFont.add_kerning_pair(ord("S"), ord(SFunfs), 5) + var SZehnFunf = ["M","R","V","Y"] + for SZehnFunfs in SZehnFunf: + bitmapFont.add_kerning_pair(ord("S"), ord(SZehnFunfs), 15) + bitmapFont.add_kerning_pair(ord("S"), ord("5"), 3) + var TFunf = ["F","J","P","O","Q"] + for TFunfs in TFunf: + bitmapFont.add_kerning_pair(ord("T"), ord(TFunfs), 5) + bitmapFont.add_kerning_pair(ord("T"), ord("3"), -5) + bitmapFont.add_kerning_pair(ord("T"), ord("4"), 10) + bitmapFont.add_kerning_pair(ord("T"), ord("7"), -1) + bitmapFont.add_kerning_pair(ord("T"), ord("A"), 15) + bitmapFont.add_kerning_pair(ord("T"), ord("W"), -5) + var UFunf = ["0","4","8","F","G","J","O","P","S"] + for UFunfs in UFunf: + bitmapFont.add_kerning_pair(ord("U"), ord(UFunfs), -5) + bitmapFont.add_kerning_pair(ord("U"), ord("A"), 5) + bitmapFont.add_kerning_pair(ord("U"), ord("C"), -1) + var VNull = ["1","2","9","B","H","I","L","U","V","W","X","Y","Z"] + for VNulls in VNull: + bitmapFont.add_kerning_pair(ord("V"), ord(VNulls), 0) + var VFunf = ["3","7","E","K","N"] + for VFunfs in VFunf: + bitmapFont.add_kerning_pair(ord("V"), ord(VFunfs), -5) + bitmapFont.add_kerning_pair(ord("V"), ord("A"), 20) + var WZehnFunf = ["3","5","7","E","L","N","T","U","V","W","X","Y"] + for WZehnFunfs in WZehnFunf: + bitmapFont.add_kerning_pair(ord("W"), ord(WZehnFunfs), -15) + var WZehn = ["1","2","9","F","H","K","Q","R","S"] + for WZehns in WZehn: + bitmapFont.add_kerning_pair(ord("W"), ord(WZehns), -10) + bitmapFont.add_kerning_pair(ord("W"), ord("A"), 10) + var XFunf = ["0","1","4","6","A","C","G"] + for XFunfs in XFunf: + bitmapFont.add_kerning_pair(ord("X"), ord(XFunfs), -5) + bitmapFont.add_kerning_pair(ord("X"), ord("3"), -15) + bitmapFont.add_kerning_pair(ord("X"), ord("5"), -20) + bitmapFont.add_kerning_pair(ord("X"), ord("7"), -15) + bitmapFont.add_kerning_pair(ord("X"), ord("O"), -1) + var YZehn = ["0","1","6","F","G"] + for YZehns in YZehn: + bitmapFont.add_kerning_pair(ord("Y"), ord(YZehns), 10) + var YZehnFunf = ["4","C","Q","O"] + for YZehnFunfs in YZehnFunf: + bitmapFont.add_kerning_pair(ord("Y"), ord(YZehnFunfs), 15) + var YNull = ["3","5","7","D"] + for YNulls in YNull: + bitmapFont.add_kerning_pair(ord("Y"), ord(YNulls), 0) + bitmapFont.add_kerning_pair(ord("Y"), ord("A"), 20) + var ZNull = ["0","D","O","P","R","U"] + for ZNulls in ZNull: + bitmapFont.add_kerning_pair(ord("Z"), ord(ZNulls), 0) + var ZFunf = ["1","A","F","M","T","V","W","Y"] + for ZFunfs in ZFunf: + bitmapFont.add_kerning_pair(ord("Z"), ord(ZFunfs), 5) + + bitmapFont.add_kerning_pair(ord("A"), ord(letter), -10) + bitmapFont.add_kerning_pair(ord("B"), ord(letter), -5) + bitmapFont.add_kerning_pair(ord("C"), ord(letter), -15) + bitmapFont.add_kerning_pair(ord("D"), ord(letter), -5) + bitmapFont.add_kerning_pair(ord("E"), ord(letter), -5) + bitmapFont.add_kerning_pair(ord("G"), ord(letter), -10) + bitmapFont.add_kerning_pair(ord("H"), ord(letter), 5) + bitmapFont.add_kerning_pair(ord("I"), ord(letter), 35) + bitmapFont.add_kerning_pair(ord("J"), ord(letter), 10) + bitmapFont.add_kerning_pair(ord("K"), ord(letter), 5) + bitmapFont.add_kerning_pair(ord("L"), ord(letter), 15) + bitmapFont.add_kerning_pair(ord("O"), ord(letter), -5) + bitmapFont.add_kerning_pair(ord("Q"), ord(letter), -20) + bitmapFont.add_kerning_pair(ord("R"), ord(letter), -1) + bitmapFont.add_kerning_pair(ord("S"), ord(letter), 10) + bitmapFont.add_kerning_pair(ord("U"), ord(letter), -10) + bitmapFont.add_kerning_pair(ord("V"), ord(letter), 5) + bitmapFont.add_kerning_pair(ord("W"), ord(letter), -5) + bitmapFont.add_kerning_pair(ord("X"), ord(letter), -10) + bitmapFont.add_kerning_pair(ord("Y"), ord(letter), 5) + bitmapFont.add_kerning_pair(ord("Z"), ord(letter), -5) + bitmapFont.add_kerning_pair(ord("1"), ord(letter), 30) + bitmapFont.add_kerning_pair(ord("2"), ord(letter), 10) + bitmapFont.add_kerning_pair(ord("3"), ord(letter), 15) + bitmapFont.add_kerning_pair(ord("4"), ord(letter), 15) + bitmapFont.add_kerning_pair(ord("5"), ord(letter), 20) + bitmapFont.add_kerning_pair(ord(letter), ord("5"), -10) + bitmapFont.add_kerning_pair(ord("6"), ord(letter), 15) + bitmapFont.add_kerning_pair(ord("7"), ord(letter), 15) + bitmapFont.add_kerning_pair(ord("8"), ord(letter), 5) + bitmapFont.add_kerning_pair(ord("9"), ord(letter), 10) + + + # Satzzeichen und 0 hinzufügen aus Gründen + bitmapFont.add_texture(load('res://Files/.bmp')) + bitmapFont.add_char(32, 0, Rect2(0,0,100,100), Vector2( 0, 5 ), 70) + bitmapFont.add_texture(load('res://Files/!%8.bmp')) + bitmapFont.add_char(33, 0, Rect2(0,0,100,100), Vector2( 0, 5 ), 70) + bitmapFont.add_texture(load('res://Files/.8-1.bmp')) + bitmapFont.add_char(46, 0, Rect2(0,0,100,100), Vector2( 0, 5 ), 70) + bitmapFont.add_texture(load('res://Files/0%8.bmp')) + bitmapFont.add_char(48, 0, Rect2(0,0,100,100), Vector2( 0, 5 ), 70) + +# Speichern + var resourcePath: String = "res://MyBitmapFont.res" + if(ResourceSaver.save(resourcePath, bitmapFont) == OK): + theme = Theme.new() + theme.default_font = load(resourcePath) diff --git a/Client/font/Leerzeichen.bmp b/Client/font/Leerzeichen.bmp new file mode 100644 index 0000000..cef0b32 Binary files /dev/null and b/Client/font/Leerzeichen.bmp differ diff --git a/Client/font/anton.tres b/Client/font/anton.tres new file mode 100644 index 0000000..3f29579 --- /dev/null +++ b/Client/font/anton.tres @@ -0,0 +1,6 @@ +[gd_resource type="DynamicFont" load_steps=2 format=2] + +[ext_resource path="res://font/Anton-Regular.ttf" type="DynamicFontData" id=1] + +[resource] +font_data = ExtResource( 1 ) diff --git a/Client/icon.png b/Client/icon.png new file mode 100644 index 0000000..2b65815 Binary files /dev/null and b/Client/icon.png differ diff --git a/Client/icon.png.import b/Client/icon.png.import new file mode 100644 index 0000000..96cbf46 --- /dev/null +++ b/Client/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/Client/images/UIStuffs/armyEditBg.pdn b/Client/images/UIStuffs/armyEditBg.pdn new file mode 100644 index 0000000..d342036 Binary files /dev/null and b/Client/images/UIStuffs/armyEditBg.pdn differ diff --git a/Client/images/UIStuffs/brown BG.png b/Client/images/UIStuffs/brown BG.png new file mode 100644 index 0000000..a1084bc Binary files /dev/null and b/Client/images/UIStuffs/brown BG.png differ diff --git a/Client/images/UIStuffs/brown BG.png.import b/Client/images/UIStuffs/brown BG.png.import new file mode 100644 index 0000000..d06ae35 --- /dev/null +++ b/Client/images/UIStuffs/brown BG.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/brown BG.png-d04ae44e33c0ead89d4e8e4f5484a79c.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/UIStuffs/brown BG.png" +dest_files=[ "res://.import/brown BG.png-d04ae44e33c0ead89d4e8e4f5484a79c.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/Client/images/WorldTiles.pdn b/Client/images/WorldTiles.pdn new file mode 100644 index 0000000..3bff049 Binary files /dev/null and b/Client/images/WorldTiles.pdn differ diff --git a/Client/images/WorldTiles.png b/Client/images/WorldTiles.png new file mode 100644 index 0000000..2555654 Binary files /dev/null and b/Client/images/WorldTiles.png differ diff --git a/Client/images/WorldTiles.png.import b/Client/images/WorldTiles.png.import new file mode 100644 index 0000000..624f03a --- /dev/null +++ b/Client/images/WorldTiles.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/WorldTiles.png-0c3e8877d279a129ba884ba7fa2fb70a.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/WorldTiles.png" +dest_files=[ "res://.import/WorldTiles.png-0c3e8877d279a129ba884ba7fa2fb70a.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/Client/images/WorldUI.pdn b/Client/images/WorldUI.pdn new file mode 100644 index 0000000..35723a7 Binary files /dev/null and b/Client/images/WorldUI.pdn differ diff --git a/Client/images/WorldUIBackground.png b/Client/images/WorldUIBackground.png new file mode 100644 index 0000000..44a10a1 Binary files /dev/null and b/Client/images/WorldUIBackground.png differ diff --git a/Client/images/WorldUIBackground.png.import b/Client/images/WorldUIBackground.png.import new file mode 100644 index 0000000..2fd1fe9 --- /dev/null +++ b/Client/images/WorldUIBackground.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/WorldUIBackground.png-d9ea8396048cdc620ef0fa1ddaf72275.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/WorldUIBackground.png" +dest_files=[ "res://.import/WorldUIBackground.png-d9ea8396048cdc620ef0fa1ddaf72275.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/Client/images/building 3x4.pdn b/Client/images/building 3x4.pdn new file mode 100644 index 0000000..2da8fa9 Binary files /dev/null and b/Client/images/building 3x4.pdn differ diff --git a/Client/images/building 3x4.png b/Client/images/building 3x4.png new file mode 100644 index 0000000..ef9c4c0 Binary files /dev/null and b/Client/images/building 3x4.png differ diff --git a/Client/images/building 3x4.png.import b/Client/images/building 3x4.png.import new file mode 100644 index 0000000..13504e3 --- /dev/null +++ b/Client/images/building 3x4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/building 3x4.png-c6a7a7bf0c1a85a669585ad554c370be.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/building 3x4.png" +dest_files=[ "res://.import/building 3x4.png-c6a7a7bf0c1a85a669585ad554c370be.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/Client/images/button/armybutton.pdn b/Client/images/button/armybutton.pdn new file mode 100644 index 0000000..ced4614 Binary files /dev/null and b/Client/images/button/armybutton.pdn differ diff --git a/Client/images/button/armybutton.png b/Client/images/button/armybutton.png new file mode 100644 index 0000000..ff515f3 Binary files /dev/null and b/Client/images/button/armybutton.png differ diff --git a/Client/images/button/armybutton.png.import b/Client/images/button/armybutton.png.import new file mode 100644 index 0000000..de36d1c --- /dev/null +++ b/Client/images/button/armybutton.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/armybutton.png-8169f46c3f431fde5996afbdd799dd64.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/button/armybutton.png" +dest_files=[ "res://.import/armybutton.png-8169f46c3f431fde5996afbdd799dd64.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/Client/images/button/armybuttonhover.pdn b/Client/images/button/armybuttonhover.pdn new file mode 100644 index 0000000..4b36cc8 Binary files /dev/null and b/Client/images/button/armybuttonhover.pdn differ diff --git a/Client/images/button/armybuttonhover.png b/Client/images/button/armybuttonhover.png new file mode 100644 index 0000000..8e07beb Binary files /dev/null and b/Client/images/button/armybuttonhover.png differ diff --git a/Client/images/button/armybuttonhover.png.import b/Client/images/button/armybuttonhover.png.import new file mode 100644 index 0000000..7141f32 --- /dev/null +++ b/Client/images/button/armybuttonhover.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/armybuttonhover.png-c387e972f019a2bf19e110aad4c9cd26.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/button/armybuttonhover.png" +dest_files=[ "res://.import/armybuttonhover.png-c387e972f019a2bf19e110aad4c9cd26.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/Client/images/button/armybuttonpressed.pdn b/Client/images/button/armybuttonpressed.pdn new file mode 100644 index 0000000..8ae1b16 Binary files /dev/null and b/Client/images/button/armybuttonpressed.pdn differ diff --git a/Client/images/button/armybuttonpressed.png b/Client/images/button/armybuttonpressed.png new file mode 100644 index 0000000..16dcbb6 Binary files /dev/null and b/Client/images/button/armybuttonpressed.png differ diff --git a/Client/images/button/armybuttonpressed.png.import b/Client/images/button/armybuttonpressed.png.import new file mode 100644 index 0000000..f3ec26c --- /dev/null +++ b/Client/images/button/armybuttonpressed.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/armybuttonpressed.png-53f3f6f84e34aa63ef4388805d826feb.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/button/armybuttonpressed.png" +dest_files=[ "res://.import/armybuttonpressed.png-53f3f6f84e34aa63ef4388805d826feb.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/Client/images/button/building 3x4.pdn b/Client/images/button/building 3x4.pdn new file mode 100644 index 0000000..fcb08c2 Binary files /dev/null and b/Client/images/button/building 3x4.pdn differ diff --git a/Client/images/button/smallerbtn.pdn b/Client/images/button/smallerbtn.pdn new file mode 100644 index 0000000..23d8196 Binary files /dev/null and b/Client/images/button/smallerbtn.pdn differ diff --git a/Client/images/button/smallerbtn.png b/Client/images/button/smallerbtn.png new file mode 100644 index 0000000..9ea36fc Binary files /dev/null and b/Client/images/button/smallerbtn.png differ diff --git a/Client/images/button/smallerbtn.png.import b/Client/images/button/smallerbtn.png.import new file mode 100644 index 0000000..87b6b32 --- /dev/null +++ b/Client/images/button/smallerbtn.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/smallerbtn.png-f40aa6a05ffed5a4f105c1902c101117.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/button/smallerbtn.png" +dest_files=[ "res://.import/smallerbtn.png-f40aa6a05ffed5a4f105c1902c101117.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/Client/images/button/smallerbtnPress.pdn b/Client/images/button/smallerbtnPress.pdn new file mode 100644 index 0000000..a2bc4b8 Binary files /dev/null and b/Client/images/button/smallerbtnPress.pdn differ diff --git a/Client/images/button/smallerbtnPress.png b/Client/images/button/smallerbtnPress.png new file mode 100644 index 0000000..768ff8e Binary files /dev/null and b/Client/images/button/smallerbtnPress.png differ diff --git a/Client/images/button/smallerbtnPress.png.import b/Client/images/button/smallerbtnPress.png.import new file mode 100644 index 0000000..aff364a --- /dev/null +++ b/Client/images/button/smallerbtnPress.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/smallerbtnPress.png-a89a89036082e43dd65b0a93eecba655.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/button/smallerbtnPress.png" +dest_files=[ "res://.import/smallerbtnPress.png-a89a89036082e43dd65b0a93eecba655.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/Client/images/button/smallerbtnhover.png b/Client/images/button/smallerbtnhover.png new file mode 100644 index 0000000..791457e Binary files /dev/null and b/Client/images/button/smallerbtnhover.png differ diff --git a/Client/images/button/smallerbtnhover.png.import b/Client/images/button/smallerbtnhover.png.import new file mode 100644 index 0000000..492ab3e --- /dev/null +++ b/Client/images/button/smallerbtnhover.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/smallerbtnhover.png-affb1211294e4fcec5d0383ea8e280b1.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/button/smallerbtnhover.png" +dest_files=[ "res://.import/smallerbtnhover.png-affb1211294e4fcec5d0383ea8e280b1.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/Client/images/headquarter_small.pdn b/Client/images/headquarter_small.pdn new file mode 100644 index 0000000..e6eb33d Binary files /dev/null and b/Client/images/headquarter_small.pdn differ diff --git a/Client/images/headquarter_small.png b/Client/images/headquarter_small.png new file mode 100644 index 0000000..271301b Binary files /dev/null and b/Client/images/headquarter_small.png differ diff --git a/Client/images/headquarter_small.png.import b/Client/images/headquarter_small.png.import new file mode 100644 index 0000000..0cd1ac4 --- /dev/null +++ b/Client/images/headquarter_small.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/headquarter_small.png-b661db6c63cb08befee99e08219ed7e9.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/headquarter_small.png" +dest_files=[ "res://.import/headquarter_small.png-b661db6c63cb08befee99e08219ed7e9.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/Client/images/item/Ressources.pdn b/Client/images/item/Ressources.pdn new file mode 100644 index 0000000..41ed92e Binary files /dev/null and b/Client/images/item/Ressources.pdn differ diff --git a/Client/images/item/Ressources.png b/Client/images/item/Ressources.png new file mode 100644 index 0000000..9e8a05c Binary files /dev/null and b/Client/images/item/Ressources.png differ diff --git a/Client/images/item/Ressources.png.import b/Client/images/item/Ressources.png.import new file mode 100644 index 0000000..3231971 --- /dev/null +++ b/Client/images/item/Ressources.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Ressources.png-99a132724593a7d6f1ac360b946ba7ce.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/item/Ressources.png" +dest_files=[ "res://.import/Ressources.png-99a132724593a7d6f1ac360b946ba7ce.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/Client/images/palettes.pdn b/Client/images/palettes.pdn new file mode 100644 index 0000000..95c3484 Binary files /dev/null and b/Client/images/palettes.pdn differ diff --git a/Client/images/region/20200422_181628.pdn b/Client/images/region/20200422_181628.pdn new file mode 100644 index 0000000..caa8e99 Binary files /dev/null and b/Client/images/region/20200422_181628.pdn differ diff --git a/Client/images/region/Ressource Nodes.pdn b/Client/images/region/Ressource Nodes.pdn new file mode 100644 index 0000000..6befb91 Binary files /dev/null and b/Client/images/region/Ressource Nodes.pdn differ diff --git a/Client/images/region/Ressource Nodes.png b/Client/images/region/Ressource Nodes.png new file mode 100644 index 0000000..923e289 Binary files /dev/null and b/Client/images/region/Ressource Nodes.png differ diff --git a/Client/images/region/Ressource Nodes.png.import b/Client/images/region/Ressource Nodes.png.import new file mode 100644 index 0000000..8f4cbb5 --- /dev/null +++ b/Client/images/region/Ressource Nodes.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Ressource Nodes.png-48dac8994652f7d5abded36fd7f47058.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/region/Ressource Nodes.png" +dest_files=[ "res://.import/Ressource Nodes.png-48dac8994652f7d5abded36fd7f47058.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/Client/images/region/building.png b/Client/images/region/building.png new file mode 100644 index 0000000..0588c89 Binary files /dev/null and b/Client/images/region/building.png differ diff --git a/Client/images/region/building.png.import b/Client/images/region/building.png.import new file mode 100644 index 0000000..b15aa24 --- /dev/null +++ b/Client/images/region/building.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/building.png-845f6585b62ae9d1a64e438ac939ea21.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/region/building.png" +dest_files=[ "res://.import/building.png-845f6585b62ae9d1a64e438ac939ea21.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/Client/images/region/dragon.png b/Client/images/region/dragon.png new file mode 100644 index 0000000..d28fb27 Binary files /dev/null and b/Client/images/region/dragon.png differ diff --git a/Client/images/region/dragon.png.import b/Client/images/region/dragon.png.import new file mode 100644 index 0000000..c3bd873 --- /dev/null +++ b/Client/images/region/dragon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/dragon.png-344011ea66e84d555ee6c6b716cf50e3.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/region/dragon.png" +dest_files=[ "res://.import/dragon.png-344011ea66e84d555ee6c6b716cf50e3.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/Client/images/region/regiontiles.pdn b/Client/images/region/regiontiles.pdn new file mode 100644 index 0000000..0358cd1 Binary files /dev/null and b/Client/images/region/regiontiles.pdn differ diff --git a/Client/images/region/regiontiles.png b/Client/images/region/regiontiles.png new file mode 100644 index 0000000..19fb627 Binary files /dev/null and b/Client/images/region/regiontiles.png differ diff --git a/Client/images/region/regiontiles.png.import b/Client/images/region/regiontiles.png.import new file mode 100644 index 0000000..3ec6795 --- /dev/null +++ b/Client/images/region/regiontiles.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/regiontiles.png-8814835171d4f3819a1d1a786ad1b120.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/region/regiontiles.png" +dest_files=[ "res://.import/regiontiles.png-8814835171d4f3819a1d1a786ad1b120.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/Client/images/research/02.jpg b/Client/images/research/02.jpg new file mode 100644 index 0000000..212576d Binary files /dev/null and b/Client/images/research/02.jpg differ diff --git a/Client/images/research/02.jpg.import b/Client/images/research/02.jpg.import new file mode 100644 index 0000000..b4e8d79 --- /dev/null +++ b/Client/images/research/02.jpg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/02.jpg-c7ea5b0e780647a14a4c9a47508a7798.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/research/02.jpg" +dest_files=[ "res://.import/02.jpg-c7ea5b0e780647a14a4c9a47508a7798.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/Client/images/research/02.pdn b/Client/images/research/02.pdn new file mode 100644 index 0000000..1eb8d8d Binary files /dev/null and b/Client/images/research/02.pdn differ diff --git a/Client/images/research/Menu.pdn b/Client/images/research/Menu.pdn new file mode 100644 index 0000000..84a7e15 Binary files /dev/null and b/Client/images/research/Menu.pdn differ diff --git a/Client/images/research/Menu.png b/Client/images/research/Menu.png new file mode 100644 index 0000000..c5e5bf5 Binary files /dev/null and b/Client/images/research/Menu.png differ diff --git a/Client/images/research/Menu.png.import b/Client/images/research/Menu.png.import new file mode 100644 index 0000000..1deb1bc --- /dev/null +++ b/Client/images/research/Menu.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Menu.png-52f583372807917b5904b192544d8367.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/research/Menu.png" +dest_files=[ "res://.import/Menu.png-52f583372807917b5904b192544d8367.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/Client/images/research/source.txt b/Client/images/research/source.txt new file mode 100644 index 0000000..d343363 --- /dev/null +++ b/Client/images/research/source.txt @@ -0,0 +1,3 @@ +Heidi und Hans-Jürgen Koch +1 von 12 +stern.de diff --git a/Client/images/units/Animal.bmp b/Client/images/units/Animal.bmp new file mode 100644 index 0000000..f2ad91e Binary files /dev/null and b/Client/images/units/Animal.bmp differ diff --git a/Client/images/units/Animal.bmp.import b/Client/images/units/Animal.bmp.import new file mode 100644 index 0000000..2ae7b23 --- /dev/null +++ b/Client/images/units/Animal.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Animal.bmp-3522f3ccc3bc4efd982090da10371a73.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Animal.bmp" +dest_files=[ "res://.import/Animal.bmp-3522f3ccc3bc4efd982090da10371a73.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/Client/images/units/AnimalBite1.bmp b/Client/images/units/AnimalBite1.bmp new file mode 100644 index 0000000..ce88c6a Binary files /dev/null and b/Client/images/units/AnimalBite1.bmp differ diff --git a/Client/images/units/AnimalBite1.bmp.import b/Client/images/units/AnimalBite1.bmp.import new file mode 100644 index 0000000..a7bc4bb --- /dev/null +++ b/Client/images/units/AnimalBite1.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/AnimalBite1.bmp-c1f83c1a96aff18edd186a13b04634d0.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/AnimalBite1.bmp" +dest_files=[ "res://.import/AnimalBite1.bmp-c1f83c1a96aff18edd186a13b04634d0.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/Client/images/units/AnimalBite2.bmp b/Client/images/units/AnimalBite2.bmp new file mode 100644 index 0000000..ba83c69 Binary files /dev/null and b/Client/images/units/AnimalBite2.bmp differ diff --git a/Client/images/units/AnimalBite2.bmp.import b/Client/images/units/AnimalBite2.bmp.import new file mode 100644 index 0000000..152d01a --- /dev/null +++ b/Client/images/units/AnimalBite2.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/AnimalBite2.bmp-0a4ad3eadc25e6f2c33b64df7252ca96.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/AnimalBite2.bmp" +dest_files=[ "res://.import/AnimalBite2.bmp-0a4ad3eadc25e6f2c33b64df7252ca96.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/Client/images/units/AnimalBite3.bmp b/Client/images/units/AnimalBite3.bmp new file mode 100644 index 0000000..840816d Binary files /dev/null and b/Client/images/units/AnimalBite3.bmp differ diff --git a/Client/images/units/AnimalBite3.bmp.import b/Client/images/units/AnimalBite3.bmp.import new file mode 100644 index 0000000..54b3139 --- /dev/null +++ b/Client/images/units/AnimalBite3.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/AnimalBite3.bmp-bac61400c89ecb220deb7115419b5008.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/AnimalBite3.bmp" +dest_files=[ "res://.import/AnimalBite3.bmp-bac61400c89ecb220deb7115419b5008.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/Client/images/units/AnimalWalk1.bmp b/Client/images/units/AnimalWalk1.bmp new file mode 100644 index 0000000..458a071 Binary files /dev/null and b/Client/images/units/AnimalWalk1.bmp differ diff --git a/Client/images/units/AnimalWalk1.bmp.import b/Client/images/units/AnimalWalk1.bmp.import new file mode 100644 index 0000000..fe0468f --- /dev/null +++ b/Client/images/units/AnimalWalk1.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/AnimalWalk1.bmp-958f199cd39125f4c0a1ca03f9ca5103.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/AnimalWalk1.bmp" +dest_files=[ "res://.import/AnimalWalk1.bmp-958f199cd39125f4c0a1ca03f9ca5103.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/Client/images/units/AnimalWalk2.bmp b/Client/images/units/AnimalWalk2.bmp new file mode 100644 index 0000000..fb4a2c6 Binary files /dev/null and b/Client/images/units/AnimalWalk2.bmp differ diff --git a/Client/images/units/AnimalWalk2.bmp.import b/Client/images/units/AnimalWalk2.bmp.import new file mode 100644 index 0000000..1785c35 --- /dev/null +++ b/Client/images/units/AnimalWalk2.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/AnimalWalk2.bmp-12b4abbfc0d0d223d5a72b9087405a0d.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/AnimalWalk2.bmp" +dest_files=[ "res://.import/AnimalWalk2.bmp-12b4abbfc0d0d223d5a72b9087405a0d.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/Client/images/units/AnimalWalk3.bmp b/Client/images/units/AnimalWalk3.bmp new file mode 100644 index 0000000..af66ff0 Binary files /dev/null and b/Client/images/units/AnimalWalk3.bmp differ diff --git a/Client/images/units/AnimalWalk3.bmp.import b/Client/images/units/AnimalWalk3.bmp.import new file mode 100644 index 0000000..d83d70a --- /dev/null +++ b/Client/images/units/AnimalWalk3.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/AnimalWalk3.bmp-47cfb2fb4d594c8cef49d70a23d949fe.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/AnimalWalk3.bmp" +dest_files=[ "res://.import/AnimalWalk3.bmp-47cfb2fb4d594c8cef49d70a23d949fe.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/Client/images/units/AnimalWalk4.bmp b/Client/images/units/AnimalWalk4.bmp new file mode 100644 index 0000000..5bea6e8 Binary files /dev/null and b/Client/images/units/AnimalWalk4.bmp differ diff --git a/Client/images/units/AnimalWalk4.bmp.import b/Client/images/units/AnimalWalk4.bmp.import new file mode 100644 index 0000000..163a44b --- /dev/null +++ b/Client/images/units/AnimalWalk4.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/AnimalWalk4.bmp-d61b52afd8c158bc9762d6ee6d47e5be.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/AnimalWalk4.bmp" +dest_files=[ "res://.import/AnimalWalk4.bmp-d61b52afd8c158bc9762d6ee6d47e5be.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/Client/images/units/Oger 24.bmp b/Client/images/units/Oger 24.bmp new file mode 100644 index 0000000..319c239 Binary files /dev/null and b/Client/images/units/Oger 24.bmp differ diff --git a/Client/images/units/Oger 24.bmp.import b/Client/images/units/Oger 24.bmp.import new file mode 100644 index 0000000..d242acb --- /dev/null +++ b/Client/images/units/Oger 24.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Oger 24.bmp-da669da6beffb8ef611f311a07ac06b7.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Oger 24.bmp" +dest_files=[ "res://.import/Oger 24.bmp-da669da6beffb8ef611f311a07ac06b7.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/Client/images/units/Oger 25.bmp b/Client/images/units/Oger 25.bmp new file mode 100644 index 0000000..cf60056 Binary files /dev/null and b/Client/images/units/Oger 25.bmp differ diff --git a/Client/images/units/Oger 25.bmp.import b/Client/images/units/Oger 25.bmp.import new file mode 100644 index 0000000..5624a17 --- /dev/null +++ b/Client/images/units/Oger 25.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Oger 25.bmp-fade7613574741a90598303fce9d0a0f.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Oger 25.bmp" +dest_files=[ "res://.import/Oger 25.bmp-fade7613574741a90598303fce9d0a0f.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/Client/images/units/Oger 26.bmp b/Client/images/units/Oger 26.bmp new file mode 100644 index 0000000..734a326 Binary files /dev/null and b/Client/images/units/Oger 26.bmp differ diff --git a/Client/images/units/Oger 26.bmp.import b/Client/images/units/Oger 26.bmp.import new file mode 100644 index 0000000..79040f9 --- /dev/null +++ b/Client/images/units/Oger 26.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Oger 26.bmp-1a27de0b7e694301fe21ff90f79afd3f.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Oger 26.bmp" +dest_files=[ "res://.import/Oger 26.bmp-1a27de0b7e694301fe21ff90f79afd3f.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/Client/images/units/Oger24.bmp b/Client/images/units/Oger24.bmp new file mode 100644 index 0000000..45a2d0e Binary files /dev/null and b/Client/images/units/Oger24.bmp differ diff --git a/Client/images/units/Oger24.bmp.import b/Client/images/units/Oger24.bmp.import new file mode 100644 index 0000000..81ebe56 --- /dev/null +++ b/Client/images/units/Oger24.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Oger24.bmp-1e0f98e74e9daaafbc77342b8ecb0644.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Oger24.bmp" +dest_files=[ "res://.import/Oger24.bmp-1e0f98e74e9daaafbc77342b8ecb0644.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/Client/images/units/Oger25.bmp b/Client/images/units/Oger25.bmp new file mode 100644 index 0000000..defadf9 Binary files /dev/null and b/Client/images/units/Oger25.bmp differ diff --git a/Client/images/units/Oger25.bmp.import b/Client/images/units/Oger25.bmp.import new file mode 100644 index 0000000..6c74cdb --- /dev/null +++ b/Client/images/units/Oger25.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Oger25.bmp-ae77f1a5e59d0bacfa167721b2403014.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Oger25.bmp" +dest_files=[ "res://.import/Oger25.bmp-ae77f1a5e59d0bacfa167721b2403014.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/Client/images/units/Oger26.bmp b/Client/images/units/Oger26.bmp new file mode 100644 index 0000000..1a6615f Binary files /dev/null and b/Client/images/units/Oger26.bmp differ diff --git a/Client/images/units/Oger26.bmp.import b/Client/images/units/Oger26.bmp.import new file mode 100644 index 0000000..8610c3d --- /dev/null +++ b/Client/images/units/Oger26.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Oger26.bmp-3ad23c5f9edff9c02a5ed5faf49e31cc.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Oger26.bmp" +dest_files=[ "res://.import/Oger26.bmp-3ad23c5f9edff9c02a5ed5faf49e31cc.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/Client/images/units/OgerWalk.bmp b/Client/images/units/OgerWalk.bmp new file mode 100644 index 0000000..2282fe0 Binary files /dev/null and b/Client/images/units/OgerWalk.bmp differ diff --git a/Client/images/units/OgerWalk.bmp.import b/Client/images/units/OgerWalk.bmp.import new file mode 100644 index 0000000..8aab59b --- /dev/null +++ b/Client/images/units/OgerWalk.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/OgerWalk.bmp-e9e6bc5c2ebe6729799eee36104e0b49.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/OgerWalk.bmp" +dest_files=[ "res://.import/OgerWalk.bmp-e9e6bc5c2ebe6729799eee36104e0b49.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/Client/images/units/OgerWalk0.bmp b/Client/images/units/OgerWalk0.bmp new file mode 100644 index 0000000..5e9c2eb Binary files /dev/null and b/Client/images/units/OgerWalk0.bmp differ diff --git a/Client/images/units/OgerWalk0.bmp.import b/Client/images/units/OgerWalk0.bmp.import new file mode 100644 index 0000000..e7dba7c --- /dev/null +++ b/Client/images/units/OgerWalk0.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/OgerWalk0.bmp-26c9162cb92a6b4ca30ea039f3d6e00c.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/OgerWalk0.bmp" +dest_files=[ "res://.import/OgerWalk0.bmp-26c9162cb92a6b4ca30ea039f3d6e00c.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/Client/images/units/OgerWalk1.bmp b/Client/images/units/OgerWalk1.bmp new file mode 100644 index 0000000..231e2ef Binary files /dev/null and b/Client/images/units/OgerWalk1.bmp differ diff --git a/Client/images/units/OgerWalk1.bmp.import b/Client/images/units/OgerWalk1.bmp.import new file mode 100644 index 0000000..52b253f --- /dev/null +++ b/Client/images/units/OgerWalk1.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/OgerWalk1.bmp-ba26fa8f64ba98ed211ce19ce9f1f5b1.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/OgerWalk1.bmp" +dest_files=[ "res://.import/OgerWalk1.bmp-ba26fa8f64ba98ed211ce19ce9f1f5b1.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/Client/images/units/OgerWalk2.bmp b/Client/images/units/OgerWalk2.bmp new file mode 100644 index 0000000..35a5a8e Binary files /dev/null and b/Client/images/units/OgerWalk2.bmp differ diff --git a/Client/images/units/OgerWalk2.bmp.import b/Client/images/units/OgerWalk2.bmp.import new file mode 100644 index 0000000..686bee8 --- /dev/null +++ b/Client/images/units/OgerWalk2.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/OgerWalk2.bmp-5473a4ec707bb7930ec15537442dedc3.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/OgerWalk2.bmp" +dest_files=[ "res://.import/OgerWalk2.bmp-5473a4ec707bb7930ec15537442dedc3.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/Client/images/units/OgerWalk3.bmp b/Client/images/units/OgerWalk3.bmp new file mode 100644 index 0000000..71bba1b Binary files /dev/null and b/Client/images/units/OgerWalk3.bmp differ diff --git a/Client/images/units/OgerWalk3.bmp.import b/Client/images/units/OgerWalk3.bmp.import new file mode 100644 index 0000000..0c12312 --- /dev/null +++ b/Client/images/units/OgerWalk3.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/OgerWalk3.bmp-b3d364fbecb7523c453a42f913f86985.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/OgerWalk3.bmp" +dest_files=[ "res://.import/OgerWalk3.bmp-b3d364fbecb7523c453a42f913f86985.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/Client/images/units/OgerWalk4.bmp b/Client/images/units/OgerWalk4.bmp new file mode 100644 index 0000000..bcc042d Binary files /dev/null and b/Client/images/units/OgerWalk4.bmp differ diff --git a/Client/images/units/OgerWalk4.bmp.import b/Client/images/units/OgerWalk4.bmp.import new file mode 100644 index 0000000..fc47a69 --- /dev/null +++ b/Client/images/units/OgerWalk4.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/OgerWalk4.bmp-6108c440cc1f5b33e2850eeb0d1d5601.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/OgerWalk4.bmp" +dest_files=[ "res://.import/OgerWalk4.bmp-6108c440cc1f5b33e2850eeb0d1d5601.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/Client/images/units/Swipe1.bmp b/Client/images/units/Swipe1.bmp new file mode 100644 index 0000000..7f9f9b9 Binary files /dev/null and b/Client/images/units/Swipe1.bmp differ diff --git a/Client/images/units/Swipe1.bmp.import b/Client/images/units/Swipe1.bmp.import new file mode 100644 index 0000000..787c55a --- /dev/null +++ b/Client/images/units/Swipe1.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Swipe1.bmp-6d3ef650fbf8e069e30e1792145e7a3d.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Swipe1.bmp" +dest_files=[ "res://.import/Swipe1.bmp-6d3ef650fbf8e069e30e1792145e7a3d.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/Client/images/units/Swipe2.bmp b/Client/images/units/Swipe2.bmp new file mode 100644 index 0000000..0102d6d Binary files /dev/null and b/Client/images/units/Swipe2.bmp differ diff --git a/Client/images/units/Swipe2.bmp.import b/Client/images/units/Swipe2.bmp.import new file mode 100644 index 0000000..7d33dbd --- /dev/null +++ b/Client/images/units/Swipe2.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Swipe2.bmp-3da507e7f6c97299cd35d7831d8f132b.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Swipe2.bmp" +dest_files=[ "res://.import/Swipe2.bmp-3da507e7f6c97299cd35d7831d8f132b.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/Client/images/units/Swipe3.bmp b/Client/images/units/Swipe3.bmp new file mode 100644 index 0000000..1a52d84 Binary files /dev/null and b/Client/images/units/Swipe3.bmp differ diff --git a/Client/images/units/Swipe3.bmp.import b/Client/images/units/Swipe3.bmp.import new file mode 100644 index 0000000..1a9bd05 --- /dev/null +++ b/Client/images/units/Swipe3.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Swipe3.bmp-743d0479c3abc0163eb027c2face9bd6.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Swipe3.bmp" +dest_files=[ "res://.import/Swipe3.bmp-743d0479c3abc0163eb027c2face9bd6.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/Client/images/units/Swipe4.bmp b/Client/images/units/Swipe4.bmp new file mode 100644 index 0000000..e529272 Binary files /dev/null and b/Client/images/units/Swipe4.bmp differ diff --git a/Client/images/units/Swipe4.bmp.import b/Client/images/units/Swipe4.bmp.import new file mode 100644 index 0000000..bbc4e75 --- /dev/null +++ b/Client/images/units/Swipe4.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Swipe4.bmp-971f43cb2988feaf9e36df9842f4a010.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Swipe4.bmp" +dest_files=[ "res://.import/Swipe4.bmp-971f43cb2988feaf9e36df9842f4a010.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/Client/images/units/Sword.bmp b/Client/images/units/Sword.bmp new file mode 100644 index 0000000..6e8f27a Binary files /dev/null and b/Client/images/units/Sword.bmp differ diff --git a/Client/images/units/Sword.bmp.import b/Client/images/units/Sword.bmp.import new file mode 100644 index 0000000..81d1ba2 --- /dev/null +++ b/Client/images/units/Sword.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Sword.bmp-7f9b8f36c2ca2d09234c48101d7747b8.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Sword.bmp" +dest_files=[ "res://.import/Sword.bmp-7f9b8f36c2ca2d09234c48101d7747b8.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/Client/images/units/Sword1.bmp b/Client/images/units/Sword1.bmp new file mode 100644 index 0000000..ab357a9 Binary files /dev/null and b/Client/images/units/Sword1.bmp differ diff --git a/Client/images/units/Sword1.bmp.import b/Client/images/units/Sword1.bmp.import new file mode 100644 index 0000000..be82ad8 --- /dev/null +++ b/Client/images/units/Sword1.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Sword1.bmp-f180ae137d8669909830985624e95375.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Sword1.bmp" +dest_files=[ "res://.import/Sword1.bmp-f180ae137d8669909830985624e95375.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/Client/images/units/Sword2.bmp b/Client/images/units/Sword2.bmp new file mode 100644 index 0000000..d306c67 Binary files /dev/null and b/Client/images/units/Sword2.bmp differ diff --git a/Client/images/units/Sword2.bmp.import b/Client/images/units/Sword2.bmp.import new file mode 100644 index 0000000..86bb6c0 --- /dev/null +++ b/Client/images/units/Sword2.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Sword2.bmp-3a284bfca21bf128c1539dffe850ca4c.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Sword2.bmp" +dest_files=[ "res://.import/Sword2.bmp-3a284bfca21bf128c1539dffe850ca4c.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/Client/images/units/Sword3.bmp b/Client/images/units/Sword3.bmp new file mode 100644 index 0000000..9687d69 Binary files /dev/null and b/Client/images/units/Sword3.bmp differ diff --git a/Client/images/units/Sword3.bmp.import b/Client/images/units/Sword3.bmp.import new file mode 100644 index 0000000..9c974b8 --- /dev/null +++ b/Client/images/units/Sword3.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Sword3.bmp-cb7380e69d12814eef029e9d995c8bea.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Sword3.bmp" +dest_files=[ "res://.import/Sword3.bmp-cb7380e69d12814eef029e9d995c8bea.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/Client/images/units/Sword4.bmp b/Client/images/units/Sword4.bmp new file mode 100644 index 0000000..5e1b140 Binary files /dev/null and b/Client/images/units/Sword4.bmp differ diff --git a/Client/images/units/Sword4.bmp.import b/Client/images/units/Sword4.bmp.import new file mode 100644 index 0000000..d0703d0 --- /dev/null +++ b/Client/images/units/Sword4.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Sword4.bmp-44177fd175ea5ffa9889a1ee88f3d876.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Sword4.bmp" +dest_files=[ "res://.import/Sword4.bmp-44177fd175ea5ffa9889a1ee88f3d876.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/Client/images/units/Sword5.bmp b/Client/images/units/Sword5.bmp new file mode 100644 index 0000000..b9ac226 Binary files /dev/null and b/Client/images/units/Sword5.bmp differ diff --git a/Client/images/units/Sword5.bmp.import b/Client/images/units/Sword5.bmp.import new file mode 100644 index 0000000..33ccf56 --- /dev/null +++ b/Client/images/units/Sword5.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Sword5.bmp-f88cf909b6825e293fce57a757702f87.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Sword5.bmp" +dest_files=[ "res://.import/Sword5.bmp-f88cf909b6825e293fce57a757702f87.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/Client/images/units/Sword6.bmp b/Client/images/units/Sword6.bmp new file mode 100644 index 0000000..a050720 Binary files /dev/null and b/Client/images/units/Sword6.bmp differ diff --git a/Client/images/units/Sword6.bmp.import b/Client/images/units/Sword6.bmp.import new file mode 100644 index 0000000..adb4a7e --- /dev/null +++ b/Client/images/units/Sword6.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Sword6.bmp-6667929c84ed4a3f3626993046426949.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Sword6.bmp" +dest_files=[ "res://.import/Sword6.bmp-6667929c84ed4a3f3626993046426949.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/Client/images/units/Sword7.bmp b/Client/images/units/Sword7.bmp new file mode 100644 index 0000000..1e9d465 Binary files /dev/null and b/Client/images/units/Sword7.bmp differ diff --git a/Client/images/units/Sword7.bmp.import b/Client/images/units/Sword7.bmp.import new file mode 100644 index 0000000..dfdfa47 --- /dev/null +++ b/Client/images/units/Sword7.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Sword7.bmp-befcd2d400da78ef844677569cf92446.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Sword7.bmp" +dest_files=[ "res://.import/Sword7.bmp-befcd2d400da78ef844677569cf92446.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/Client/images/units/Sword8.bmp b/Client/images/units/Sword8.bmp new file mode 100644 index 0000000..43a60e3 Binary files /dev/null and b/Client/images/units/Sword8.bmp differ diff --git a/Client/images/units/Sword8.bmp.import b/Client/images/units/Sword8.bmp.import new file mode 100644 index 0000000..63cbe5a --- /dev/null +++ b/Client/images/units/Sword8.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Sword8.bmp-3e0b7dee53f67e43759409276a34a37f.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Sword8.bmp" +dest_files=[ "res://.import/Sword8.bmp-3e0b7dee53f67e43759409276a34a37f.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/Client/images/units/Sword9.bmp b/Client/images/units/Sword9.bmp new file mode 100644 index 0000000..d02e3c1 Binary files /dev/null and b/Client/images/units/Sword9.bmp differ diff --git a/Client/images/units/Sword9.bmp.import b/Client/images/units/Sword9.bmp.import new file mode 100644 index 0000000..9b1613c --- /dev/null +++ b/Client/images/units/Sword9.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Sword9.bmp-b5f98b3cd9fac8376cd726620cf3233e.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Sword9.bmp" +dest_files=[ "res://.import/Sword9.bmp-b5f98b3cd9fac8376cd726620cf3233e.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/Client/images/units/SwordSwipe1.bmp b/Client/images/units/SwordSwipe1.bmp new file mode 100644 index 0000000..caa1e06 Binary files /dev/null and b/Client/images/units/SwordSwipe1.bmp differ diff --git a/Client/images/units/SwordSwipe1.bmp.import b/Client/images/units/SwordSwipe1.bmp.import new file mode 100644 index 0000000..b5738c4 --- /dev/null +++ b/Client/images/units/SwordSwipe1.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/SwordSwipe1.bmp-6f20f7340fb31abf41990c71084a2b6a.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/SwordSwipe1.bmp" +dest_files=[ "res://.import/SwordSwipe1.bmp-6f20f7340fb31abf41990c71084a2b6a.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/Client/images/units/SwordSwipe2.bmp b/Client/images/units/SwordSwipe2.bmp new file mode 100644 index 0000000..4839077 Binary files /dev/null and b/Client/images/units/SwordSwipe2.bmp differ diff --git a/Client/images/units/SwordSwipe2.bmp.import b/Client/images/units/SwordSwipe2.bmp.import new file mode 100644 index 0000000..227f905 --- /dev/null +++ b/Client/images/units/SwordSwipe2.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/SwordSwipe2.bmp-0ae5a500c7c18df0bd2db48e798c4877.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/SwordSwipe2.bmp" +dest_files=[ "res://.import/SwordSwipe2.bmp-0ae5a500c7c18df0bd2db48e798c4877.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/Client/images/units/SwordSwipe3.bmp b/Client/images/units/SwordSwipe3.bmp new file mode 100644 index 0000000..a38889b Binary files /dev/null and b/Client/images/units/SwordSwipe3.bmp differ diff --git a/Client/images/units/SwordSwipe3.bmp.import b/Client/images/units/SwordSwipe3.bmp.import new file mode 100644 index 0000000..9cf88c0 --- /dev/null +++ b/Client/images/units/SwordSwipe3.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/SwordSwipe3.bmp-9f1e8fd6b8834af89859e78a18188bc0.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/SwordSwipe3.bmp" +dest_files=[ "res://.import/SwordSwipe3.bmp-9f1e8fd6b8834af89859e78a18188bc0.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/Client/images/units/SwordSwipe4.bmp b/Client/images/units/SwordSwipe4.bmp new file mode 100644 index 0000000..9d2444e Binary files /dev/null and b/Client/images/units/SwordSwipe4.bmp differ diff --git a/Client/images/units/SwordSwipe4.bmp.import b/Client/images/units/SwordSwipe4.bmp.import new file mode 100644 index 0000000..9e90ef1 --- /dev/null +++ b/Client/images/units/SwordSwipe4.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/SwordSwipe4.bmp-b580ee8e461f1101d6cca4a55aea3bab.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/SwordSwipe4.bmp" +dest_files=[ "res://.import/SwordSwipe4.bmp-b580ee8e461f1101d6cca4a55aea3bab.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/Client/images/units/SwordSwipe5.bmp b/Client/images/units/SwordSwipe5.bmp new file mode 100644 index 0000000..041e4c3 Binary files /dev/null and b/Client/images/units/SwordSwipe5.bmp differ diff --git a/Client/images/units/SwordSwipe5.bmp.import b/Client/images/units/SwordSwipe5.bmp.import new file mode 100644 index 0000000..82c7d35 --- /dev/null +++ b/Client/images/units/SwordSwipe5.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/SwordSwipe5.bmp-1ecb07fcdcf353d950552b3dbc196d32.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/SwordSwipe5.bmp" +dest_files=[ "res://.import/SwordSwipe5.bmp-1ecb07fcdcf353d950552b3dbc196d32.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/Client/images/units/Überraschungsmagier.bmp b/Client/images/units/Überraschungsmagier.bmp new file mode 100644 index 0000000..b9db28e Binary files /dev/null and b/Client/images/units/Überraschungsmagier.bmp differ diff --git a/Client/images/units/Überraschungsmagier.bmp.import b/Client/images/units/Überraschungsmagier.bmp.import new file mode 100644 index 0000000..0f8d90a --- /dev/null +++ b/Client/images/units/Überraschungsmagier.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Überraschungsmagier.bmp-9457ee5d94548444410a55e79a7f468a.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/Überraschungsmagier.bmp" +dest_files=[ "res://.import/Überraschungsmagier.bmp-9457ee5d94548444410a55e79a7f468a.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/Client/images/units/ÜberraschungsmagierStartWalk1.bmp b/Client/images/units/ÜberraschungsmagierStartWalk1.bmp new file mode 100644 index 0000000..bacd45d Binary files /dev/null and b/Client/images/units/ÜberraschungsmagierStartWalk1.bmp differ diff --git a/Client/images/units/ÜberraschungsmagierStartWalk1.bmp.import b/Client/images/units/ÜberraschungsmagierStartWalk1.bmp.import new file mode 100644 index 0000000..31a6a50 --- /dev/null +++ b/Client/images/units/ÜberraschungsmagierStartWalk1.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/ÜberraschungsmagierStartWalk1.bmp-2002b7afff68c79b434af458933925b6.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/ÜberraschungsmagierStartWalk1.bmp" +dest_files=[ "res://.import/ÜberraschungsmagierStartWalk1.bmp-2002b7afff68c79b434af458933925b6.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/Client/images/units/ÜberraschungsmagierStartWalk2.bmp.import b/Client/images/units/ÜberraschungsmagierStartWalk2.bmp.import new file mode 100644 index 0000000..1beef72 --- /dev/null +++ b/Client/images/units/ÜberraschungsmagierStartWalk2.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/ÜberraschungsmagierStartWalk2.bmp-4b6c0867b6e9c24385dac82e401cd73b.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/ÜberraschungsmagierStartWalk2.bmp" +dest_files=[ "res://.import/ÜberraschungsmagierStartWalk2.bmp-4b6c0867b6e9c24385dac82e401cd73b.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/Client/images/units/ÜberraschungsmagierSword1.bmp b/Client/images/units/ÜberraschungsmagierSword1.bmp new file mode 100644 index 0000000..2a9915e Binary files /dev/null and b/Client/images/units/ÜberraschungsmagierSword1.bmp differ diff --git a/Client/images/units/ÜberraschungsmagierSword1.bmp.import b/Client/images/units/ÜberraschungsmagierSword1.bmp.import new file mode 100644 index 0000000..1bc8447 --- /dev/null +++ b/Client/images/units/ÜberraschungsmagierSword1.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/ÜberraschungsmagierSword1.bmp-5c326f0d9e5921b1abb58068ca74ab78.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/ÜberraschungsmagierSword1.bmp" +dest_files=[ "res://.import/ÜberraschungsmagierSword1.bmp-5c326f0d9e5921b1abb58068ca74ab78.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/Client/images/units/ÜberraschungsmagierSword2.bmp b/Client/images/units/ÜberraschungsmagierSword2.bmp new file mode 100644 index 0000000..b6d4b96 Binary files /dev/null and b/Client/images/units/ÜberraschungsmagierSword2.bmp differ diff --git a/Client/images/units/ÜberraschungsmagierSword2.bmp.import b/Client/images/units/ÜberraschungsmagierSword2.bmp.import new file mode 100644 index 0000000..56d5845 --- /dev/null +++ b/Client/images/units/ÜberraschungsmagierSword2.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/ÜberraschungsmagierSword2.bmp-ac74ec834977c50612410b93d68d26e0.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/ÜberraschungsmagierSword2.bmp" +dest_files=[ "res://.import/ÜberraschungsmagierSword2.bmp-ac74ec834977c50612410b93d68d26e0.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/Client/images/units/ÜberraschungsmagierSword3.bmp b/Client/images/units/ÜberraschungsmagierSword3.bmp new file mode 100644 index 0000000..3bf8fa3 Binary files /dev/null and b/Client/images/units/ÜberraschungsmagierSword3.bmp differ diff --git a/Client/images/units/ÜberraschungsmagierSword3.bmp.import b/Client/images/units/ÜberraschungsmagierSword3.bmp.import new file mode 100644 index 0000000..9b1b17e --- /dev/null +++ b/Client/images/units/ÜberraschungsmagierSword3.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/ÜberraschungsmagierSword3.bmp-6f1ff3af02d281aa4029ecf7e6b8ef8c.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/ÜberraschungsmagierSword3.bmp" +dest_files=[ "res://.import/ÜberraschungsmagierSword3.bmp-6f1ff3af02d281aa4029ecf7e6b8ef8c.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/Client/images/units/ÜberraschungsmagierSword4.bmp b/Client/images/units/ÜberraschungsmagierSword4.bmp new file mode 100644 index 0000000..915d1ef Binary files /dev/null and b/Client/images/units/ÜberraschungsmagierSword4.bmp differ diff --git a/Client/images/units/ÜberraschungsmagierSword4.bmp.import b/Client/images/units/ÜberraschungsmagierSword4.bmp.import new file mode 100644 index 0000000..9694c8d --- /dev/null +++ b/Client/images/units/ÜberraschungsmagierSword4.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/ÜberraschungsmagierSword4.bmp-8d431a75deb486c8816dd4b559955612.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/ÜberraschungsmagierSword4.bmp" +dest_files=[ "res://.import/ÜberraschungsmagierSword4.bmp-8d431a75deb486c8816dd4b559955612.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/Client/images/units/ÜberraschungsmagierWalk.bmp b/Client/images/units/ÜberraschungsmagierWalk.bmp new file mode 100644 index 0000000..1cd1cc1 Binary files /dev/null and b/Client/images/units/ÜberraschungsmagierWalk.bmp differ diff --git a/Client/images/units/ÜberraschungsmagierWalk.bmp.import b/Client/images/units/ÜberraschungsmagierWalk.bmp.import new file mode 100644 index 0000000..242298f --- /dev/null +++ b/Client/images/units/ÜberraschungsmagierWalk.bmp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/ÜberraschungsmagierWalk.bmp-3d15630baa2b1d55d00ae00521734917.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/units/ÜberraschungsmagierWalk.bmp" +dest_files=[ "res://.import/ÜberraschungsmagierWalk.bmp-3d15630baa2b1d55d00ae00521734917.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/Client/images/warrior.pdn b/Client/images/warrior.pdn new file mode 100644 index 0000000..a20e7f8 Binary files /dev/null and b/Client/images/warrior.pdn differ diff --git a/Client/images/warrior.png b/Client/images/warrior.png new file mode 100644 index 0000000..e78b4b8 Binary files /dev/null and b/Client/images/warrior.png differ diff --git a/Client/images/warrior.png.import b/Client/images/warrior.png.import new file mode 100644 index 0000000..d693b2e --- /dev/null +++ b/Client/images/warrior.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/warrior.png-5a991f2b5a4c70e0a23d758896248915.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/warrior.png" +dest_files=[ "res://.import/warrior.png-5a991f2b5a4c70e0a23d758896248915.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/Client/images/wizard.pdn b/Client/images/wizard.pdn new file mode 100644 index 0000000..a881bc9 Binary files /dev/null and b/Client/images/wizard.pdn differ diff --git a/Client/images/wizard.png b/Client/images/wizard.png new file mode 100644 index 0000000..75423b5 Binary files /dev/null and b/Client/images/wizard.png differ diff --git a/Client/images/wizard.png.import b/Client/images/wizard.png.import new file mode 100644 index 0000000..9cf1b2d --- /dev/null +++ b/Client/images/wizard.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/wizard.png-b613fcd97c82b20d63fc4e834e3577cc.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/wizard.png" +dest_files=[ "res://.import/wizard.png-b613fcd97c82b20d63fc4e834e3577cc.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/Client/images/worldmap.png b/Client/images/worldmap.png new file mode 100644 index 0000000..4e6e0b4 Binary files /dev/null and b/Client/images/worldmap.png differ diff --git a/Client/images/worldmap.png.import b/Client/images/worldmap.png.import new file mode 100644 index 0000000..5f96ad2 --- /dev/null +++ b/Client/images/worldmap.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/worldmap.png-6177cce3310464415a2ac8750a3d0794.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/worldmap.png" +dest_files=[ "res://.import/worldmap.png-6177cce3310464415a2ac8750a3d0794.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/Client/items/Item.tscn b/Client/items/Item.tscn new file mode 100644 index 0000000..67a8661 --- /dev/null +++ b/Client/items/Item.tscn @@ -0,0 +1,39 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://items/item.gd" type="Script" id=1] +[ext_resource path="res://items/items.tres" type="Texture" id=2] +[ext_resource path="res://font/anton.tres" type="DynamicFont" id=3] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 41.2803, 47.2645 ) + +[node name="Item" type="KinematicBody2D"] +input_pickable = true +script = ExtResource( 1 ) + +[node name="sprItem" type="Sprite" parent="."] +texture = ExtResource( 2 ) +region_rect = Rect2( 0, 0, 96, 96 ) + +[node name="lblItem" type="Label" parent="."] +margin_left = -26.3886 +margin_top = 22.5987 +margin_right = 27.6114 +margin_bottom = 42.5987 +custom_fonts/font = ExtResource( 3 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Control" type="Control" parent="."] +margin_left = -48.0 +margin_top = -48.0 +margin_right = 48.0 +margin_bottom = 48.0 +rect_min_size = Vector2( 96, 96 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="colItem" type="CollisionShape2D" parent="."] +shape = SubResource( 1 ) diff --git a/Client/items/KinematicBody2D.gd b/Client/items/KinematicBody2D.gd new file mode 100644 index 0000000..7621d51 --- /dev/null +++ b/Client/items/KinematicBody2D.gd @@ -0,0 +1,13 @@ +extends KinematicBody2D + +var can_grab = false +var grabbed_offset = Vector2() + +func _input_event(viewport, event, shape_idx): + if event is InputEventMouseButton: + can_grab = event.pressed + grabbed_offset = position - get_global_mouse_position() + +func _process(delta): + if Input.is_mouse_button_pressed(BUTTON_LEFT) and can_grab: + position = get_global_mouse_position() + grabbed_offset diff --git a/Client/items/item.gd b/Client/items/item.gd new file mode 100644 index 0000000..bf28f51 --- /dev/null +++ b/Client/items/item.gd @@ -0,0 +1,82 @@ +extends KinematicBody2D + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +export var itemName = "NAME" +export var itemType = "TYPE" +export var stats = {} +var materials + + +var enables = ["tech"] +export var goldValue = 1 +export var amount = 1 + +#graphics data +var row +var column +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +var can_grab = false +var grabbed_offset = Vector2() + +func loadJson(name, data): + itemName = name + itemType = data['itemType'] + if(data.has('stats')): + stats = data['stats'] + if(data.has('materials')): + materials = data['materials'] + goldValue = data['goldValue'] + amount = data['amount'] + enables = data['enables'] + row = data['row'] + column = data['column'] + setTexture(column,row) + get_node('Label').text = name + + +func setTexture(x,y): + var rect = $Sprite.texture + print("item texture is:") + print(rect.get_region()) + var newTex = Rect2(x*96,y*96,96,96) + print(newTex) + rect.set_region(newTex) + +func getTexture(): + return $Sprite.texture + +func getItemType(): + return itemType + +func getMaterials(): + return materials + +func _input_event(viewport, event, shape_idx): + print("item clicked") + grabbed_offset = position - get_global_mouse_position() + +func _process(delta): + if Input.is_mouse_button_pressed(BUTTON_LEFT) and can_grab: + position = get_global_mouse_position() + grabbed_offset + + +func toText(): + var json = { + "name" : itemName, + "itemType":itemType, + "stats":stats, + "goldValue":goldValue, + "amount":amount, + "enables":enables, + "row":row, + "column":column + } + return json diff --git a/Client/items/items.tres b/Client/items/items.tres new file mode 100644 index 0000000..2d231e7 --- /dev/null +++ b/Client/items/items.tres @@ -0,0 +1,9 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=2] + +[ext_resource path="res://images/item/Ressources.png" type="Texture" id=1] + +[resource] +resource_local_to_scene = true +flags = 4 +atlas = ExtResource( 1 ) +region = Rect2( 0, 0, 96, 96 ) diff --git a/Client/items/meeleWeapon.gd b/Client/items/meeleWeapon.gd new file mode 100644 index 0000000..b793417 --- /dev/null +++ b/Client/items/meeleWeapon.gd @@ -0,0 +1,13 @@ +extends "res://items/item.gd" + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Client/items/metallic_shader/196782359-fb3988e1-19e4-4010-af5a-97e800408cee.png b/Client/items/metallic_shader/196782359-fb3988e1-19e4-4010-af5a-97e800408cee.png new file mode 100644 index 0000000..6bf446a Binary files /dev/null and b/Client/items/metallic_shader/196782359-fb3988e1-19e4-4010-af5a-97e800408cee.png differ diff --git a/Client/items/metallic_shader/196782359-fb3988e1-19e4-4010-af5a-97e800408cee.png.import b/Client/items/metallic_shader/196782359-fb3988e1-19e4-4010-af5a-97e800408cee.png.import new file mode 100644 index 0000000..2401027 --- /dev/null +++ b/Client/items/metallic_shader/196782359-fb3988e1-19e4-4010-af5a-97e800408cee.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/196782359-fb3988e1-19e4-4010-af5a-97e800408cee.png-a4bf87545ab67dbe4f72f14e1613e9f1.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://items/metallic_shader/196782359-fb3988e1-19e4-4010-af5a-97e800408cee.png" +dest_files=[ "res://.import/196782359-fb3988e1-19e4-4010-af5a-97e800408cee.png-a4bf87545ab67dbe4f72f14e1613e9f1.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/Client/items/metallic_shader/196792940-a9ce2d04-aed7-424a-a9ff-9e035078bedf.png b/Client/items/metallic_shader/196792940-a9ce2d04-aed7-424a-a9ff-9e035078bedf.png new file mode 100644 index 0000000..47a5927 Binary files /dev/null and b/Client/items/metallic_shader/196792940-a9ce2d04-aed7-424a-a9ff-9e035078bedf.png differ diff --git a/Client/items/metallic_shader/196792940-a9ce2d04-aed7-424a-a9ff-9e035078bedf.png.import b/Client/items/metallic_shader/196792940-a9ce2d04-aed7-424a-a9ff-9e035078bedf.png.import new file mode 100644 index 0000000..bce8e8a --- /dev/null +++ b/Client/items/metallic_shader/196792940-a9ce2d04-aed7-424a-a9ff-9e035078bedf.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/196792940-a9ce2d04-aed7-424a-a9ff-9e035078bedf.png-9a4b31a39bbdc22ad14ef40b0edda1b9.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://items/metallic_shader/196792940-a9ce2d04-aed7-424a-a9ff-9e035078bedf.png" +dest_files=[ "res://.import/196792940-a9ce2d04-aed7-424a-a9ff-9e035078bedf.png-9a4b31a39bbdc22ad14ef40b0edda1b9.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/Client/items/metallic_shader/5_3.png b/Client/items/metallic_shader/5_3.png new file mode 100644 index 0000000..b33403f Binary files /dev/null and b/Client/items/metallic_shader/5_3.png differ diff --git a/Client/items/metallic_shader/5_3.png.import b/Client/items/metallic_shader/5_3.png.import new file mode 100644 index 0000000..297a8f5 --- /dev/null +++ b/Client/items/metallic_shader/5_3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/5_3.png-ba1d77a750a190115587242ac86deee4.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://items/metallic_shader/5_3.png" +dest_files=[ "res://.import/5_3.png-ba1d77a750a190115587242ac86deee4.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/Client/items/metallic_shader/Node2D.tscn b/Client/items/metallic_shader/Node2D.tscn new file mode 100644 index 0000000..e841d7c --- /dev/null +++ b/Client/items/metallic_shader/Node2D.tscn @@ -0,0 +1,137 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://items/metallic_shader/196782359-fb3988e1-19e4-4010-af5a-97e800408cee.png" type="Texture" id=1] +[ext_resource path="res://items/metallic_shader/NormalMap(1) copy.png" type="Texture" id=2] + +[sub_resource type="Shader" id=1] +code = "shader_type canvas_item; + +const vec2 heightMapResolution = vec2(20000); +const float normalStrength = 8.0; +const float textureOffset = 34.0; + +uniform float t1: hint_range(-1, 1); +uniform float t2: hint_range(-1, 1); + +uniform float k1: hint_range(0, 10); +uniform float k2: hint_range(0, 0.1); + +uniform float light_height: hint_range(0, 0.15); + +uniform float a: hint_range(0, 6.28); + +uniform vec4 color_0: hint_color; +uniform vec4 color_1: hint_color; +uniform vec4 color_2: hint_color; + +uniform sampler2D noise; + +vec2 stdNormalMap(in vec2 uv, float pixelToTexelRatio, sampler2D tex) +{ + float height = texture(tex, uv).r; + return vec2(dFdx(height), dFdy(height)) * pixelToTexelRatio; +} + +vec2 texNormalMap(in vec2 uv, sampler2D tex, sampler2D mask) +{ + vec2 s = 1.0/heightMapResolution.xy; + + float p = texture(tex, uv).x; + float h1 = texture(tex, uv + s * vec2(textureOffset,0)).x; + float v1 = texture(tex, uv + s * vec2(0,textureOffset)).x; + + return (p - vec2(h1, v1)); +} + +void fragment() { + vec2 uv = UV; + vec2 uv_shift = vec2(-cos(a),-sin(a)) * 0.04*k2; + vec3 norm = (texture(NORMAL_TEXTURE, uv).rgb - 0.5) * 2.0; +// norm = vec3(stdNormalMap(uv, 6.9, TEXTURE), 1); + norm = vec3(texNormalMap(uv, TEXTURE, noise), 1); +// norm = (texture(NORMAL_TEXTURE, uv).rgb); + norm = NORMAL; + vec3 fake_light = vec3(cos(a),sin(a),0.5)-vec3(uv-0.5, light_height)*k1; + vec3 fake_light_2 = vec3(cos(a),sin(a),0.5)+vec3(uv-0.5, light_height)*k1; + + vec3 norm2 = norm; + norm2.z = 0.0; + + vec3 fake_light2 = fake_light; + fake_light2.z = 0.0; + + vec3 fake_light3 = fake_light_2; + fake_light3.z = 0.0; + + + fake_light2 = normalize(fake_light2); + fake_light3 = normalize(fake_light3); + + COLOR.rgb = vec3(0); + + float test = dot(reflect(fake_light2, norm2), fake_light2); +// float test = dot(refract(fake_light2, norm, 0.99), norm); + +// test = dot(fake_light, norm); + float k = clamp(dot(fake_light2, norm2), 0, 1); + float k_2 = clamp(dot(fake_light3, norm2), -1, 0.0); +// k = max (0.5, k); + k *= smoothstep(t1, t2, abs(k)); + k_2 *= smoothstep(t1, t2, abs(k_2)); + float k_main = dot(fake_light, norm); + + float tex_a = texture(TEXTURE, uv).r; + + COLOR.rgb = vec3(0.5); + COLOR.rgb = mix(vec3(0.5), vec3(1,1,1), pow(k_main, 1) * 0.5 ); + COLOR.rgb = mix(COLOR.rgb, vec3(1), k); + COLOR.rgb = mix(COLOR.rgb, vec3(0.7), k_2); + + + COLOR.rgb += texture(TEXTURE, uv + uv_shift).r * 0.2 * (1.0-tex_a); + COLOR.rgb -= texture(TEXTURE, uv - uv_shift).r * 0.2 * (1.0-tex_a); + + + + float reflect_dot = dot(refract(fake_light, norm, pow(tex_a, 1)), reflect(vec3(uv - 0.5, 2.0), norm)); +// reflect_dot = dot(refract(fake_light, norm, pow(tex_a, 3)), reflect(vec3(uv - 0.5, 2.0), norm)); +// reflect_dot = dot(refract(fake_light, norm, pow(tex_a, 3)), refract(vec3(1.5*(uv - 0.5), -2.0), norm, tex_a)); + + +// reflect_dot = dot(refract(fake_light, norm, pow(tex_a, 3) - texture(noise, uv).r*0.0), refract(vec3(1.5*(uv - 0.5) + vec2(-cos(a), -sin(a))*k2, -2.0), norm2, tex_a)); + + + COLOR.rgb = vec3(0.1); + COLOR.rgb = mix(vec3(0.1), color_0.rgb, smoothstep(0.0, 0.3, tex_a)); + + COLOR.rgb = mix(COLOR.rgb, color_1.rgb, tex_a * reflect_dot*0.99 ); + + COLOR.rgb = mix(COLOR.rgb, color_2.rgb, tex_a * (1.0-reflect_dot*0.99)); + +// COLOR.rgb = norm; +}" + +[sub_resource type="OpenSimplexNoise" id=2] + +[sub_resource type="NoiseTexture" id=3] +noise = SubResource( 2 ) + +[sub_resource type="ShaderMaterial" id=4] +shader = SubResource( 1 ) +shader_param/t1 = -1.0 +shader_param/t2 = -1.0 +shader_param/k1 = 2.426 +shader_param/k2 = 0.1 +shader_param/light_height = 0.082 +shader_param/a = 5.689 +shader_param/color_0 = Color( 0.239216, 0.121569, 0.105882, 1 ) +shader_param/color_1 = Color( 0.74902, 0.74902, 0.74902, 1 ) +shader_param/color_2 = Color( 0.0313726, 0.141176, 0.215686, 1 ) +shader_param/noise = SubResource( 3 ) + +[node name="Node2D" type="Node2D"] + +[node name="Sprite" type="Sprite" parent="."] +material = SubResource( 4 ) +texture = ExtResource( 1 ) +normal_map = ExtResource( 2 ) diff --git a/Client/items/metallic_shader/NormalMap(1) copy 2.png b/Client/items/metallic_shader/NormalMap(1) copy 2.png new file mode 100644 index 0000000..236aefc Binary files /dev/null and b/Client/items/metallic_shader/NormalMap(1) copy 2.png differ diff --git a/Client/items/metallic_shader/NormalMap(1) copy 2.png.import b/Client/items/metallic_shader/NormalMap(1) copy 2.png.import new file mode 100644 index 0000000..c4420bd --- /dev/null +++ b/Client/items/metallic_shader/NormalMap(1) copy 2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/NormalMap(1) copy 2.png-cef6c2c1f557140bb274a5aee92a2435.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://items/metallic_shader/NormalMap(1) copy 2.png" +dest_files=[ "res://.import/NormalMap(1) copy 2.png-cef6c2c1f557140bb274a5aee92a2435.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/Client/items/metallic_shader/NormalMap(1) copy 3.png b/Client/items/metallic_shader/NormalMap(1) copy 3.png new file mode 100644 index 0000000..4a4e720 Binary files /dev/null and b/Client/items/metallic_shader/NormalMap(1) copy 3.png differ diff --git a/Client/items/metallic_shader/NormalMap(1) copy 3.png.import b/Client/items/metallic_shader/NormalMap(1) copy 3.png.import new file mode 100644 index 0000000..47410c1 --- /dev/null +++ b/Client/items/metallic_shader/NormalMap(1) copy 3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/NormalMap(1) copy 3.png-14d12b1b55471da78ddfd2f843d50196.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://items/metallic_shader/NormalMap(1) copy 3.png" +dest_files=[ "res://.import/NormalMap(1) copy 3.png-14d12b1b55471da78ddfd2f843d50196.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/Client/items/metallic_shader/NormalMap(1) copy.png b/Client/items/metallic_shader/NormalMap(1) copy.png new file mode 100644 index 0000000..cfe25f9 Binary files /dev/null and b/Client/items/metallic_shader/NormalMap(1) copy.png differ diff --git a/Client/items/metallic_shader/NormalMap(1) copy.png.import b/Client/items/metallic_shader/NormalMap(1) copy.png.import new file mode 100644 index 0000000..ea41780 --- /dev/null +++ b/Client/items/metallic_shader/NormalMap(1) copy.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/NormalMap(1) copy.png-3678957c0e36f19d8f0383e82251051a.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://items/metallic_shader/NormalMap(1) copy.png" +dest_files=[ "res://.import/NormalMap(1) copy.png-3678957c0e36f19d8f0383e82251051a.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/Client/items/metallic_shader/NormalMap(1).png b/Client/items/metallic_shader/NormalMap(1).png new file mode 100644 index 0000000..ecae414 Binary files /dev/null and b/Client/items/metallic_shader/NormalMap(1).png differ diff --git a/Client/items/metallic_shader/NormalMap(1).png.import b/Client/items/metallic_shader/NormalMap(1).png.import new file mode 100644 index 0000000..3c08e93 --- /dev/null +++ b/Client/items/metallic_shader/NormalMap(1).png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/NormalMap(1).png-e9b5a8aec80aae8752f7ca2eb046d39f.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://items/metallic_shader/NormalMap(1).png" +dest_files=[ "res://.import/NormalMap(1).png-e9b5a8aec80aae8752f7ca2eb046d39f.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/Client/items/metallic_shader/metallic.tres b/Client/items/metallic_shader/metallic.tres new file mode 100644 index 0000000..29249ad --- /dev/null +++ b/Client/items/metallic_shader/metallic.tres @@ -0,0 +1,127 @@ +[gd_resource type="ShaderMaterial" load_steps=4 format=2] + +[sub_resource type="Shader" id=1] +code = "shader_type canvas_item; + +const vec2 heightMapResolution = vec2(20000); +const float normalStrength = 8.0; +const float textureOffset = 34.0; + +uniform float t1: hint_range(-1, 1); +uniform float t2: hint_range(-1, 1); + +uniform float k1: hint_range(0, 10); +uniform float k2: hint_range(0, 0.1); + +uniform float light_height: hint_range(0, 0.15); + +uniform float a: hint_range(0, 6.28); + +uniform vec4 color_0: hint_color; +uniform vec4 color_1: hint_color; +uniform vec4 color_2: hint_color; + +uniform sampler2D noise; + +vec2 stdNormalMap(in vec2 uv, float pixelToTexelRatio, sampler2D tex) +{ + float height = texture(tex, uv).r; + return vec2(dFdx(height), dFdy(height)) * pixelToTexelRatio; +} + +vec2 texNormalMap(in vec2 uv, sampler2D tex, sampler2D mask) +{ + vec2 s = 1.0/heightMapResolution.xy; + + float p = texture(tex, uv).x; + float h1 = texture(tex, uv + s * vec2(textureOffset,0)).x; + float v1 = texture(tex, uv + s * vec2(0,textureOffset)).x; + + return (p - vec2(h1, v1)); +} + +void fragment() { + vec2 uv = UV; + vec2 uv_shift = vec2(-cos(a),-sin(a)) * 0.04*k2; + vec3 norm = (texture(NORMAL_TEXTURE, uv).rgb - 0.5) * 2.0; +// norm = vec3(stdNormalMap(uv, 6.9, TEXTURE), 1); + norm = vec3(texNormalMap(uv, TEXTURE, noise), 1); +// norm = (texture(NORMAL_TEXTURE, uv).rgb); + norm = NORMAL; + vec3 fake_light = vec3(cos(a),sin(a),0.5)-vec3(uv-0.5, light_height)*k1; + vec3 fake_light_2 = vec3(cos(a),sin(a),0.5)+vec3(uv-0.5, light_height)*k1; + + vec3 norm2 = norm; + norm2.z = 0.0; + + vec3 fake_light2 = fake_light; + fake_light2.z = 0.0; + + vec3 fake_light3 = fake_light_2; + fake_light3.z = 0.0; + + + fake_light2 = normalize(fake_light2); + fake_light3 = normalize(fake_light3); + + COLOR.rgb = vec3(0); + + float test = dot(reflect(fake_light2, norm2), fake_light2); +// float test = dot(refract(fake_light2, norm, 0.99), norm); + +// test = dot(fake_light, norm); + float k = clamp(dot(fake_light2, norm2), 0, 1); + float k_2 = clamp(dot(fake_light3, norm2), -1, 0.0); +// k = max (0.5, k); + k *= smoothstep(t1, t2, abs(k)); + k_2 *= smoothstep(t1, t2, abs(k_2)); + float k_main = dot(fake_light, norm); + + float tex_a = texture(TEXTURE, uv).r; + + COLOR.rgb = vec3(0.5); + COLOR.rgb = mix(vec3(0.5), vec3(1,1,1), pow(k_main, 1) * 0.5 ); + COLOR.rgb = mix(COLOR.rgb, vec3(1), k); + COLOR.rgb = mix(COLOR.rgb, vec3(0.7), k_2); + + + COLOR.rgb += texture(TEXTURE, uv + uv_shift).r * 0.2 * (1.0-tex_a); + COLOR.rgb -= texture(TEXTURE, uv - uv_shift).r * 0.2 * (1.0-tex_a); + + + + float reflect_dot = dot(refract(fake_light, norm, pow(tex_a, 1)), reflect(vec3(uv - 0.5, 2.0), norm)); +// reflect_dot = dot(refract(fake_light, norm, pow(tex_a, 3)), reflect(vec3(uv - 0.5, 2.0), norm)); +// reflect_dot = dot(refract(fake_light, norm, pow(tex_a, 3)), refract(vec3(1.5*(uv - 0.5), -2.0), norm, tex_a)); + + +// reflect_dot = dot(refract(fake_light, norm, pow(tex_a, 3) - texture(noise, uv).r*0.0), refract(vec3(1.5*(uv - 0.5) + vec2(-cos(a), -sin(a))*k2, -2.0), norm2, tex_a)); + + + COLOR.rgb = vec3(0.1); + COLOR.rgb = mix(vec3(0.1), color_0.rgb, smoothstep(0.0, 0.3, tex_a)); + + COLOR.rgb = mix(COLOR.rgb, color_1.rgb, tex_a * reflect_dot*0.99 ); + + COLOR.rgb = mix(COLOR.rgb, color_2.rgb, tex_a * (1.0-reflect_dot*0.99)); + +// COLOR.rgb = norm; +}" + +[sub_resource type="OpenSimplexNoise" id=2] + +[sub_resource type="NoiseTexture" id=3] +noise = SubResource( 2 ) + +[resource] +shader = SubResource( 1 ) +shader_param/t1 = -1.0 +shader_param/t2 = -1.0 +shader_param/k1 = 2.426 +shader_param/k2 = 0.1 +shader_param/light_height = 0.082 +shader_param/a = 5.689 +shader_param/color_0 = Color( 0.239216, 0.121569, 0.105882, 1 ) +shader_param/color_1 = Color( 0.74902, 0.74902, 0.74902, 1 ) +shader_param/color_2 = Color( 0.0313726, 0.141176, 0.215686, 1 ) +shader_param/noise = SubResource( 3 ) diff --git a/Client/menues/ArmyDesigner/ArmyDesigner.gd b/Client/menues/ArmyDesigner/ArmyDesigner.gd new file mode 100644 index 0000000..4d9fa29 --- /dev/null +++ b/Client/menues/ArmyDesigner/ArmyDesigner.gd @@ -0,0 +1,29 @@ +extends Control + +var Item = preload("res://items/Item.tscn") +onready var itemList = $items +onready var rohstoffWahl = $rohstoffWahl + +func _ready(): + rohstoffWahl.setControl(self) + displayItems() + +func displayItems(tech:bool=false): + var items = DataManager.items + + for key in items: + var itemdata = items[key] + var item = Item.instance() + item.loadJson(key, itemdata) + + if(itemdata.itemType == "Ausrüstung"): + itemList.addToList(item) + itemList.add_item(item.itemName,item.getTexture(),true) + else : + rohstoffWahl.addToList(item) + rohstoffWahl.add_item(item.itemName,item.getTexture(),true) + rohstoffWahl.set_item_icon_modulate(0,Color.chartreuse) + return + +func changeRessource(ressourceType): + itemList.specifiedMaterialType(ressourceType) diff --git a/Client/menues/ArmyDesigner/ArmyDesigner.tscn b/Client/menues/ArmyDesigner/ArmyDesigner.tscn new file mode 100644 index 0000000..c903155 --- /dev/null +++ b/Client/menues/ArmyDesigner/ArmyDesigner.tscn @@ -0,0 +1,164 @@ +[gd_scene load_steps=9 format=2] + +[ext_resource path="res://menues/ArmyDesigner/ArmyDesigner.gd" type="Script" id=1] +[ext_resource path="res://images/warrior.png" type="Texture" id=2] +[ext_resource path="res://smallbtn.tscn" type="PackedScene" id=3] +[ext_resource path="res://font/anton.tres" type="DynamicFont" id=4] +[ext_resource path="res://menues/ArmyDesigner/rohstoffWahl.gd" type="Script" id=5] +[ext_resource path="res://menues/ArmyDesigner/ArmyDesigneritems.gd" type="Script" id=6] +[ext_resource path="res://menues/ArmyDesigner/Design.gd" type="Script" id=7] +[ext_resource path="res://menues/ArmyDesigner/designItemSocket.tscn" type="PackedScene" id=8] + +[node name="ArmyDesigner" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource( 1 ) +__meta__ = { +"_edit_horizontal_guides_": [ 173.361, 934.964 ], +"_edit_use_anchors_": false, +"_edit_vertical_guides_": [ 83.3878, 1043.33 ] +} + +[node name="NinePatchRect" type="NinePatchRect" parent="."] +self_modulate = Color( 0.223529, 0.160784, 0.588235, 1 ) +margin_left = 2.0 +margin_top = 0.180447 +margin_right = 1922.0 +margin_bottom = 1020.18 +texture = ExtResource( 2 ) + +[node name="btnWeapon" parent="." instance=ExtResource( 3 )] +margin_left = 308.297 +margin_top = 56.7061 +margin_right = 394.297 +margin_bottom = 120.706 + +[node name="btnUnit" parent="." instance=ExtResource( 3 )] +margin_left = 469.747 +margin_top = 58.2135 +margin_right = 555.747 +margin_bottom = 122.214 + +[node name="cboxLimitTech" type="CheckBox" parent="."] +modulate = Color( 0.905882, 0.0392157, 0.0392157, 1 ) +margin_left = 622.806 +margin_top = 67.5994 +margin_right = 646.806 +margin_bottom = 91.5994 +rect_scale = Vector2( 2, 2 ) + +[node name="lblLimitTech" type="Label" parent="."] +margin_left = 676.32 +margin_top = 79.5919 +margin_right = 896.32 +margin_bottom = 107.592 +custom_fonts/font = ExtResource( 4 ) +text = "Forschung nicht berücksichtigen" + +[node name="lblRessourceDecision" type="Label" parent="."] +margin_left = 1153.0 +margin_top = 30.0 +margin_right = 1702.0 +margin_bottom = 44.0 +rect_pivot_offset = Vector2( -1398.49, -538.719 ) +text = "Wähle einen Rohstoff aus um die Gegenstände dafür für dein Design auszuwählen" +autowrap = true + +[node name="itemlistRessourceDecision" type="ItemList" parent="."] +margin_left = 1122.0 +margin_top = 66.0 +margin_right = 1712.0 +margin_bottom = 312.0 +script = ExtResource( 5 ) + +[node name="lblItems" type="Label" parent="."] +margin_left = 1158.0 +margin_top = 344.0 +margin_right = 1305.0 +margin_bottom = 382.0 +rect_pivot_offset = Vector2( -1398.49, -538.719 ) +text = "Gegenstände:" +autowrap = true + +[node name="itemlistItems" type="ItemList" parent="."] +margin_left = 1132.0 +margin_top = 375.0 +margin_right = 1706.0 +margin_bottom = 698.0 +script = ExtResource( 6 ) + +[node name="itemlistRaces" type="ItemList" parent="."] +margin_left = 1129.0 +margin_top = 782.0 +margin_right = 1702.0 +margin_bottom = 951.0 + +[node name="Design" type="Control" parent="."] +margin_left = 87.5867 +margin_top = 172.24 +margin_right = 1039.59 +margin_bottom = 933.24 +script = ExtResource( 7 ) + +[node name="Race" parent="Design" instance=ExtResource( 8 )] +margin_left = 558.109 +margin_top = 47.7737 +margin_right = 688.109 +margin_bottom = 209.774 + +[node name="MainHand" parent="Design" instance=ExtResource( 8 )] +margin_left = 136.185 +margin_top = 251.923 +margin_right = 266.185 +margin_bottom = 413.923 + +[node name="Title" parent="Design/MainHand" index="0"] +text = "Haupthand" + +[node name="OffHand" parent="Design" instance=ExtResource( 8 )] +margin_left = 459.867 +margin_top = 252.402 +margin_right = 589.867 +margin_bottom = 414.402 + +[node name="Title" parent="Design/OffHand" index="0"] +text = "Zweithand" + +[node name="SecondaryWeapon" parent="Design" instance=ExtResource( 8 )] +margin_left = 654.508 +margin_top = 249.436 +margin_right = 784.508 +margin_bottom = 411.436 + +[node name="Title" parent="Design/SecondaryWeapon" index="0"] +text = "Zweitwaffe" + +[node name="Armor" parent="Design" instance=ExtResource( 8 )] +margin_left = 288.122 +margin_top = 250.186 +margin_right = 418.122 +margin_bottom = 412.186 + +[node name="Title" parent="Design/Armor" index="0"] +text = "Rüstung" + +[node name="Mount" parent="Design" instance=ExtResource( 8 )] +margin_left = 414.437 +margin_top = 403.094 +margin_right = 544.437 +margin_bottom = 565.094 + +[node name="Title" parent="Design/Mount" index="0"] +text = "Reittier" + +[node name="tbtnEnter" parent="Design" instance=ExtResource( 3 )] +margin_left = 765.651 +margin_top = 628.255 +margin_right = 849.651 +margin_bottom = 692.255 + +[editable path="Design/MainHand"] +[editable path="Design/OffHand"] +[editable path="Design/SecondaryWeapon"] +[editable path="Design/Armor"] +[editable path="Design/Mount"] diff --git a/Client/menues/ArmyDesigner/ArmyDesigneritems.gd b/Client/menues/ArmyDesigner/ArmyDesigneritems.gd new file mode 100644 index 0000000..4134428 --- /dev/null +++ b/Client/menues/ArmyDesigner/ArmyDesigneritems.gd @@ -0,0 +1,41 @@ +extends ItemList + +var equipment = [] + +func _ready(): + self.max_columns = 9 + self.fixed_icon_size = Vector2(96,96) + self.icon_mode = ItemList.ICON_MODE_TOP + +func get_drag_data(_pos): + var index = get_item_at_position(_pos) + if(is_item_disabled(index)): + return + var texture = get_item_icon(index) + var itemname = get_item_text(index) + + var preview = TextureRect.new() + preview.set_texture(texture) + set_drag_preview(preview) + return equipment[index] + +func specifiedMaterialType(material): + var equip + for i in range(0, equipment.size()): + equip = equipment[i] + if(!equip.getMaterials().has(material)): + set_item_disabled(i,true) + set_item_icon_modulate(i,Color.chartreuse) + set_item_custom_bg_color(i,Color.chartreuse) + else: + set_item_disabled(i,false) + set_item_icon(i,equipment[i].getTexture()) + +func addToList(item): + equipment.append(item) + +func get_item(index): + var texture = get_item_icon(index) + var itemname = get_item_text(index) + return [itemname, texture] + diff --git a/Client/menues/ArmyDesigner/Design.gd b/Client/menues/ArmyDesigner/Design.gd new file mode 100644 index 0000000..417ef89 --- /dev/null +++ b/Client/menues/ArmyDesigner/Design.gd @@ -0,0 +1,44 @@ +extends Control + +onready var race = $Race +onready var mainHand = $MainHand +onready var OffHand = $OffHand +onready var SecondaryWeapon = $SecondaryWeapon +onready var armor = $armor +onready var Mount = $Mount + +var ARMOR_CATEGORY = "armor" +var RANGED_CATEGORY = "ranged" +var ONEHANDED_CATEGORY = "weapon1h" + +func _ready(): + + pass # Replace with function body. + +func can_drop_data(pos,data): + match data.category: + RANGED_CATEGORY: + return checkWeaponSockets(pos) + ONEHANDED_CATEGORY: + return checkWeaponSockets(pos) + ARMOR_CATEGORY: + return true + _: + return false + +func drop_data(position, data): + match data.category: + ARMOR_CATEGORY: + armor.description = data.itemName + armor.picture.set_texture(data.getTexture()) + +func checkWeaponSockets(pos): + #print(pos) + if( posInItemSocket(mainHand,pos) || + posInItemSocket(OffHand,pos) || + posInItemSocket(SecondaryWeapon,pos)): + return true + +func posInItemSocket(socket,pos): + if(pos > socket.rect_global_position && pos < (socket.rect_global_position + socket.rect_size)): + return true diff --git a/Client/menues/ArmyDesigner/designItemSocket.gd b/Client/menues/ArmyDesigner/designItemSocket.gd new file mode 100644 index 0000000..ce33dc5 --- /dev/null +++ b/Client/menues/ArmyDesigner/designItemSocket.gd @@ -0,0 +1,13 @@ +extends Control + +onready var picture = $itempicture +onready var description = $itemdescription + +func _ready(): + pass # Replace with function body. + +func can_drop_data(position, data): + return get_parent().can_drop_data(get_global_mouse_position(),data) + +func drop_data(position, data): + return get_parent().drop_data(get_global_mouse_position(),data) \ No newline at end of file diff --git a/Client/menues/ArmyDesigner/designItemSocket.tscn b/Client/menues/ArmyDesigner/designItemSocket.tscn new file mode 100644 index 0000000..7930e33 --- /dev/null +++ b/Client/menues/ArmyDesigner/designItemSocket.tscn @@ -0,0 +1,41 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://images/button/smallerbtn.png" type="Texture" id=1] + +[node name="Control" type="Control"] +margin_left = 530.0 +margin_top = 1.0 +margin_right = 660.0 +margin_bottom = 163.0 +__meta__ = { +"_edit_horizontal_guides_": [ 160.805 ], +"_edit_use_anchors_": false, +"_edit_vertical_guides_": [ 530.574, 662.53 ] +} + +[node name="lblTitle" type="Label" parent="."] +margin_left = 24.9453 +margin_top = 14.4509 +margin_right = 101.945 +margin_bottom = 39.4509 +text = "Volk" +align = 1 + +[node name="itempicture" type="TextureRect" parent="."] +margin_left = 79.0 +margin_top = 6.0 +margin_right = 156.0 +margin_bottom = 60.0 + +[node name="lblDescription" type="Label" parent="."] +margin_left = 25.6661 +margin_top = 118.136 +margin_right = 106.666 +margin_bottom = 150.136 + +[node name="TextureRect" type="TextureRect" parent="."] +margin_left = 22.1077 +margin_top = 47.9735 +margin_right = 106.108 +margin_bottom = 111.973 +texture = ExtResource( 1 ) diff --git a/Client/menues/ArmyDesigner/designItemSocketChilds.gd b/Client/menues/ArmyDesigner/designItemSocketChilds.gd new file mode 100644 index 0000000..0560438 --- /dev/null +++ b/Client/menues/ArmyDesigner/designItemSocketChilds.gd @@ -0,0 +1,11 @@ +extends Control + +func _ready(): + pass + + +func can_drop_data(position, data): + return get_parent().can_drop_data(get_global_mouse_position(),data) + +func drop_data(position, data): + return get_parent().drop_data(get_global_mouse_position(),data) \ No newline at end of file diff --git a/Client/menues/ArmyDesigner/rohstoffWahl.gd b/Client/menues/ArmyDesigner/rohstoffWahl.gd new file mode 100644 index 0000000..65b7f70 --- /dev/null +++ b/Client/menues/ArmyDesigner/rohstoffWahl.gd @@ -0,0 +1,22 @@ +extends ItemList + +#To safe calculating time the indizes of ressources should correspond to those of the items +#in the itemlist +var ressources = [] +var control + +func _ready(): + self.max_columns = 9 + self.fixed_icon_size = Vector2(96,96) + self.icon_mode = ItemList.ICON_MODE_TOP + self.connect('item_activated', self, 'ressource_selected') + self.connect('item_selected', self, 'ressource_selected') + +func setControl(control): + self.control = control + +func addToList(item): + ressources.append(item) + +func ressource_selected (index): + control.changeRessource(ressources[index].getItemType()) diff --git a/Client/menues/BuildBuildings.tscn b/Client/menues/BuildBuildings.tscn new file mode 100644 index 0000000..df37dc5 --- /dev/null +++ b/Client/menues/BuildBuildings.tscn @@ -0,0 +1,216 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://smallbtn.tscn" type="PackedScene" id=1] +[ext_resource path="res://toWorldMap.gd" type="Script" id=2] +[ext_resource path="res://images/WorldUIBackground.png" type="Texture" id=3] +[ext_resource path="res://ArmeeSelcetorHBox1.gd" type="Script" id=4] + +[node name="Node2D" type="CanvasLayer"] + +[node name="NinePatchRect" type="NinePatchRect" parent="."] +margin_left = 1227.0 +margin_right = 1920.0 +margin_bottom = 1019.0 +texture = ExtResource( 3 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="TextureButton" parent="NinePatchRect" instance=ExtResource( 1 )] +margin_left = 46.876 +margin_top = 634.783 +margin_right = 130.876 +margin_bottom = 698.783 +script = ExtResource( 2 ) + +[node name="TextureButton2" parent="NinePatchRect" instance=ExtResource( 1 )] +margin_left = 146.989 +margin_top = 634.783 +margin_right = 230.989 +margin_bottom = 698.783 +script = ExtResource( 2 ) + +[node name="TextureButton3" parent="NinePatchRect" instance=ExtResource( 1 )] +margin_left = 150.993 +margin_top = 545.348 +margin_right = 234.993 +margin_bottom = 609.348 +script = ExtResource( 2 ) + +[node name="TextureButton4" parent="NinePatchRect" instance=ExtResource( 1 )] +margin_left = 252.441 +margin_top = 641.457 +margin_right = 336.441 +margin_bottom = 705.457 +script = ExtResource( 2 ) + +[node name="TextureButton5" parent="NinePatchRect" instance=ExtResource( 1 )] +margin_left = 146.989 +margin_top = 725.552 +margin_right = 230.989 +margin_bottom = 789.552 +script = ExtResource( 2 ) + +[node name="tabs" type="Container" parent="NinePatchRect"] +anchor_top = 0.395 +anchor_bottom = 0.395 +margin_left = -46.0 +margin_top = -12.505 +margin_right = 3.0 +margin_bottom = 198.495 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="ScrollContainer2" type="ScrollContainer" parent="NinePatchRect"] +margin_left = 445.0 +margin_top = 520.0 +margin_right = 594.0 +margin_bottom = 889.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="VBoxContainer" type="VBoxContainer" parent="NinePatchRect/ScrollContainer2"] +margin_right = 137.0 +margin_bottom = 428.0 +size_flags_horizontal = 3 +size_flags_vertical = 2 +script = ExtResource( 4 ) + +[node name="Button2" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_right = 137.0 +margin_bottom = 20.0 + +[node name="Button" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 24.0 +margin_right = 137.0 +margin_bottom = 44.0 + +[node name="Button3" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 48.0 +margin_right = 137.0 +margin_bottom = 68.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button4" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 72.0 +margin_right = 137.0 +margin_bottom = 92.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button5" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 96.0 +margin_right = 137.0 +margin_bottom = 116.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button6" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 120.0 +margin_right = 137.0 +margin_bottom = 140.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button7" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 144.0 +margin_right = 137.0 +margin_bottom = 164.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button8" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 168.0 +margin_right = 137.0 +margin_bottom = 188.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button9" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 192.0 +margin_right = 137.0 +margin_bottom = 212.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button10" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 216.0 +margin_right = 137.0 +margin_bottom = 236.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button11" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 240.0 +margin_right = 137.0 +margin_bottom = 260.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button12" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 264.0 +margin_right = 137.0 +margin_bottom = 284.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button13" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 288.0 +margin_right = 137.0 +margin_bottom = 308.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button14" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 312.0 +margin_right = 137.0 +margin_bottom = 332.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button15" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 336.0 +margin_right = 137.0 +margin_bottom = 356.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button16" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 360.0 +margin_right = 137.0 +margin_bottom = 380.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button17" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 384.0 +margin_right = 137.0 +margin_bottom = 404.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button18" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 408.0 +margin_right = 137.0 +margin_bottom = 428.0 +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/Client/menues/Main Menue.gd b/Client/menues/Main Menue.gd new file mode 100644 index 0000000..3937d16 --- /dev/null +++ b/Client/menues/Main Menue.gd @@ -0,0 +1,36 @@ +extends Control + +var player_name = "Judas" +var pw = "pw" + + +func _on_Input_Name_text_changed(new_text): + self.player_name = new_text + + +func _on_Input_PW_text_changed(new_text): + self.pw = new_text + + +func _on_Input_IP_text_changed(new_text): + Network.ip = new_text + + +func _on_Join_pressed():# change this to check on the server user data login information + if player_name == '': + print('PlayerName empty') + return + + var _serverpassword = "myPW" + Network.connect_to_server(player_name,pw,_serverpassword) + + + #_load_game() + + +func _on_register_pressed(): + get_tree().change_scene('res://menues/RegisterPlayerMenu.tscn') + + +func _load_game(): + get_tree().change_scene('res://Worldmap.tscn') diff --git a/Client/menues/Main Menue.tscn b/Client/menues/Main Menue.tscn new file mode 100644 index 0000000..7303cc8 --- /dev/null +++ b/Client/menues/Main Menue.tscn @@ -0,0 +1,155 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://menues/Main Menue.gd" type="Script" id=1] +[ext_resource path="res://font/Anton-Regular.ttf" type="DynamicFontData" id=2] + +[sub_resource type="GDScript" id=1] +script/source = "extends VBoxContainer + + +# Declare member variables here. Examples: +# var a = 2 +# var b = \"text\" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +" + +[sub_resource type="DynamicFont" id=2] +size = 80 +font_data = ExtResource( 2 ) + +[sub_resource type="DynamicFont" id=3] +size = 80 +font_data = ExtResource( 2 ) + +[node name="MainMenu" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 1.0 +margin_top = -3.0 +margin_right = 1.0 +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +margin_left = -0.000244141 +margin_top = -2.96259 +margin_right = 1919.0 +margin_bottom = 1021.04 +alignment = 1 +script = SubResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="lblMenuTitle" type="Label" parent="VBoxContainer"] +margin_top = 203.0 +margin_right = 1919.0 +margin_bottom = 322.0 +custom_fonts/font = SubResource( 2 ) +text = "Menue" +align = 1 + +[node name="HBoxPlayerName" type="HBoxContainer" parent="VBoxContainer"] +margin_top = 326.0 +margin_right = 1919.0 +margin_bottom = 445.0 +alignment = 1 + +[node name="lblPlayerName" type="Label" parent="VBoxContainer/HBoxPlayerName"] +margin_left = 618.0 +margin_right = 797.0 +margin_bottom = 119.0 +custom_fonts/font = SubResource( 2 ) +text = "Name" +valign = 1 + +[node name="Input_Name" type="LineEdit" parent="VBoxContainer/HBoxPlayerName"] +margin_left = 801.0 +margin_right = 1301.0 +margin_bottom = 119.0 +rect_min_size = Vector2( 500, 0 ) +align = 2 +max_length = 16 + +[node name="HBoxPassword" type="HBoxContainer" parent="VBoxContainer"] +margin_top = 449.0 +margin_right = 1919.0 +margin_bottom = 568.0 +alignment = 1 + +[node name="lblPassword" type="Label" parent="VBoxContainer/HBoxPassword"] +margin_left = 557.0 +margin_right = 858.0 +margin_bottom = 119.0 +custom_fonts/font = SubResource( 2 ) +text = "Passwort" +valign = 1 + +[node name="iptPassword" type="LineEdit" parent="VBoxContainer/HBoxPassword"] +margin_left = 862.0 +margin_right = 1362.0 +margin_bottom = 119.0 +rect_min_size = Vector2( 500, 0 ) +text = "pw" +align = 2 +max_length = 16 +secret = true + +[node name="HBoxIP" type="HBoxContainer" parent="VBoxContainer"] +margin_top = 572.0 +margin_right = 1919.0 +margin_bottom = 691.0 +alignment = 1 + +[node name="lblIP" type="Label" parent="VBoxContainer/HBoxIP"] +margin_left = 679.0 +margin_right = 735.0 +margin_bottom = 119.0 +custom_fonts/font = SubResource( 2 ) +text = "IP" +valign = 1 + +[node name="iptIP" type="LineEdit" parent="VBoxContainer/HBoxIP"] +margin_left = 739.0 +margin_right = 1239.0 +margin_bottom = 119.0 +rect_min_size = Vector2( 500, 0 ) +align = 2 +max_length = 16 + +[node name="HBoxButtons" type="HBoxContainer" parent="VBoxContainer"] +margin_top = 695.0 +margin_right = 1919.0 +margin_bottom = 820.0 +alignment = 1 + +[node name="btnJoin" type="Button" parent="VBoxContainer/HBoxButtons"] +margin_left = 586.0 +margin_right = 926.0 +margin_bottom = 125.0 +custom_fonts/font = SubResource( 3 ) +text = " Beitreten " + +[node name="btnRegister" type="Button" parent="VBoxContainer/HBoxButtons"] +margin_left = 930.0 +margin_right = 1333.0 +margin_bottom = 125.0 +custom_fonts/font = SubResource( 3 ) +text = "Registrieren" + +[connection signal="text_changed" from="VBoxContainer/HBoxPlayerName/Input_Name" to="." method="_on_Input_Name_text_changed"] +[connection signal="text_changed" from="VBoxContainer/HBoxPassword/iptPassword" to="." method="_on_Input_PW_text_changed"] +[connection signal="text_changed" from="VBoxContainer/HBoxIP/iptIP" to="." method="_on_Input_IP_text_changed"] +[connection signal="pressed" from="VBoxContainer/HBoxButtons/btnJoin" to="." method="_on_Join_pressed"] +[connection signal="pressed" from="VBoxContainer/HBoxButtons/btnRegister" to="." method="_on_register_pressed"] diff --git a/Client/menues/RecruteUnits.tscn b/Client/menues/RecruteUnits.tscn new file mode 100644 index 0000000..4843bb2 --- /dev/null +++ b/Client/menues/RecruteUnits.tscn @@ -0,0 +1,356 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://smallbtn.tscn" type="PackedScene" id=1] +[ext_resource path="res://toWorldMap.gd" type="Script" id=2] +[ext_resource path="res://images/WorldUIBackground.png" type="Texture" id=3] +[ext_resource path="res://ArmeeSelcetorHBox1.gd" type="Script" id=4] + +[node name="Node" type="CanvasLayer"] + +[node name="NinePatchRect" type="NinePatchRect" parent="."] +margin_left = 1229.23 +margin_top = -31.5922 +margin_right = 1922.23 +margin_bottom = 987.409 +texture = ExtResource( 3 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="TextureButton" parent="NinePatchRect" instance=ExtResource( 1 )] +margin_left = 288.039 +margin_top = 722.572 +margin_right = 372.039 +margin_bottom = 786.572 +script = ExtResource( 2 ) + +[node name="TextureButton2" parent="NinePatchRect" instance=ExtResource( 1 )] +margin_left = 289.721 +margin_top = 621.665 +margin_right = 373.721 +margin_bottom = 685.665 +script = ExtResource( 2 ) + +[node name="tabs" type="Container" parent="NinePatchRect"] +anchor_top = 0.395 +anchor_bottom = 0.395 +margin_left = -46.0 +margin_top = -12.505 +margin_right = 3.0 +margin_bottom = 198.495 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Label" type="Label" parent="NinePatchRect"] +margin_left = 297.784 +margin_top = 589.784 +margin_right = 372.784 +margin_bottom = 612.784 +text = "Cost" + +[node name="ScrollContainer" type="ScrollContainer" parent="NinePatchRect"] +margin_left = 107.0 +margin_top = 537.0 +margin_right = 236.0 +margin_bottom = 850.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="VBoxContainer" type="VBoxContainer" parent="NinePatchRect/ScrollContainer"] +margin_right = 117.0 +margin_bottom = 428.0 +size_flags_horizontal = 3 +size_flags_vertical = 2 +script = ExtResource( 4 ) + +[node name="Button2" type="Button" parent="NinePatchRect/ScrollContainer/VBoxContainer"] +margin_right = 117.0 +margin_bottom = 20.0 + +[node name="Button" type="Button" parent="NinePatchRect/ScrollContainer/VBoxContainer"] +margin_top = 24.0 +margin_right = 117.0 +margin_bottom = 44.0 + +[node name="Button3" type="Button" parent="NinePatchRect/ScrollContainer/VBoxContainer"] +margin_top = 48.0 +margin_right = 117.0 +margin_bottom = 68.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button4" type="Button" parent="NinePatchRect/ScrollContainer/VBoxContainer"] +margin_top = 72.0 +margin_right = 117.0 +margin_bottom = 92.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button5" type="Button" parent="NinePatchRect/ScrollContainer/VBoxContainer"] +margin_top = 96.0 +margin_right = 117.0 +margin_bottom = 116.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button6" type="Button" parent="NinePatchRect/ScrollContainer/VBoxContainer"] +margin_top = 120.0 +margin_right = 117.0 +margin_bottom = 140.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button7" type="Button" parent="NinePatchRect/ScrollContainer/VBoxContainer"] +margin_top = 144.0 +margin_right = 117.0 +margin_bottom = 164.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button8" type="Button" parent="NinePatchRect/ScrollContainer/VBoxContainer"] +margin_top = 168.0 +margin_right = 117.0 +margin_bottom = 188.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button9" type="Button" parent="NinePatchRect/ScrollContainer/VBoxContainer"] +margin_top = 192.0 +margin_right = 117.0 +margin_bottom = 212.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button10" type="Button" parent="NinePatchRect/ScrollContainer/VBoxContainer"] +margin_top = 216.0 +margin_right = 117.0 +margin_bottom = 236.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button11" type="Button" parent="NinePatchRect/ScrollContainer/VBoxContainer"] +margin_top = 240.0 +margin_right = 117.0 +margin_bottom = 260.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button12" type="Button" parent="NinePatchRect/ScrollContainer/VBoxContainer"] +margin_top = 264.0 +margin_right = 117.0 +margin_bottom = 284.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button13" type="Button" parent="NinePatchRect/ScrollContainer/VBoxContainer"] +margin_top = 288.0 +margin_right = 117.0 +margin_bottom = 308.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button14" type="Button" parent="NinePatchRect/ScrollContainer/VBoxContainer"] +margin_top = 312.0 +margin_right = 117.0 +margin_bottom = 332.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button15" type="Button" parent="NinePatchRect/ScrollContainer/VBoxContainer"] +margin_top = 336.0 +margin_right = 117.0 +margin_bottom = 356.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button16" type="Button" parent="NinePatchRect/ScrollContainer/VBoxContainer"] +margin_top = 360.0 +margin_right = 117.0 +margin_bottom = 380.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button17" type="Button" parent="NinePatchRect/ScrollContainer/VBoxContainer"] +margin_top = 384.0 +margin_right = 117.0 +margin_bottom = 404.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button18" type="Button" parent="NinePatchRect/ScrollContainer/VBoxContainer"] +margin_top = 408.0 +margin_right = 117.0 +margin_bottom = 428.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="ScrollContainer2" type="ScrollContainer" parent="NinePatchRect"] +margin_left = 430.0 +margin_top = 537.0 +margin_right = 559.0 +margin_bottom = 850.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="VBoxContainer" type="VBoxContainer" parent="NinePatchRect/ScrollContainer2"] +margin_right = 117.0 +margin_bottom = 428.0 +size_flags_horizontal = 3 +size_flags_vertical = 2 +script = ExtResource( 4 ) + +[node name="Button2" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_right = 117.0 +margin_bottom = 20.0 + +[node name="Button" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 24.0 +margin_right = 117.0 +margin_bottom = 44.0 + +[node name="Button3" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 48.0 +margin_right = 117.0 +margin_bottom = 68.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button4" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 72.0 +margin_right = 117.0 +margin_bottom = 92.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button5" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 96.0 +margin_right = 117.0 +margin_bottom = 116.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button6" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 120.0 +margin_right = 117.0 +margin_bottom = 140.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button7" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 144.0 +margin_right = 117.0 +margin_bottom = 164.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button8" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 168.0 +margin_right = 117.0 +margin_bottom = 188.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button9" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 192.0 +margin_right = 117.0 +margin_bottom = 212.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button10" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 216.0 +margin_right = 117.0 +margin_bottom = 236.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button11" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 240.0 +margin_right = 117.0 +margin_bottom = 260.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button12" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 264.0 +margin_right = 117.0 +margin_bottom = 284.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button13" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 288.0 +margin_right = 117.0 +margin_bottom = 308.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button14" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 312.0 +margin_right = 117.0 +margin_bottom = 332.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button15" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 336.0 +margin_right = 117.0 +margin_bottom = 356.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button16" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 360.0 +margin_right = 117.0 +margin_bottom = 380.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button17" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 384.0 +margin_right = 117.0 +margin_bottom = 404.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Button18" type="Button" parent="NinePatchRect/ScrollContainer2/VBoxContainer"] +margin_top = 408.0 +margin_right = 117.0 +margin_bottom = 428.0 +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/Client/menues/RegisterPlayerMenu.gd b/Client/menues/RegisterPlayerMenu.gd new file mode 100644 index 0000000..5e7183c --- /dev/null +++ b/Client/menues/RegisterPlayerMenu.gd @@ -0,0 +1,120 @@ +extends Control + +var playerName: String = "Bob" +var factionName: String = "Bobarier" +var password: String = "password" +var passwordRepeated: String = "password" +var volk: Array = ["Zwerge"] +var campaignDifficulties: Array = ["Einfach", "Normal", "Schwer", "Hardcore"] +var campaignLengths: Array = ["Kurz", "Mittel", "Lang"] + +var registerPlayerData: Dictionary = {} +var passwordCheck: bool + +func _ready(): + $"VBoxMainContainer/HBoxPlayerName/iptPlayerName".set_text(playerName) + $"VBoxMainContainer/HBoxFactionName/iptFactionName".set_text(factionName) + $"VBoxMainContainer/HBoxPassword/iptPassword".set_text(password) + $"VBoxMainContainer/HBoxPasswordRepeated/iptPasswordRepeated".set_text(passwordRepeated) + + # The items get added to the dropdown button; The units get first added to an array before being added to the drowdown + for v in volk: + $"VBoxMainContainer/HBoxUnits/obtnUnits".add_item(v) + for difficulty in campaignDifficulties: + $"VBoxMainContainer/HBoxDifficulty/obtnDifficulty".add_item(difficulty) + for length in campaignLengths: + $"VBoxMainContainer/HBoxCampaignLength/obtnCampaignLength".add_item(length) + + # Sets default values for the RegisterPlayerData Array so it isnt empty + # ToDo (?) add randomizer for Playername and Factionname + setRegisterPlayerData("playername", playerName) + setRegisterPlayerData("factionname", factionName) + setRegisterPlayerData("volk", volk[0]) + setRegisterPlayerData("difficulty", campaignDifficulties[0]) + setRegisterPlayerData("length", campaignLengths[0]) +# _ready END ################################################################################### + +# Menu Nodes ###################### +func _on_ipt_PlayerName_text_changed(new_text): + setRegisterPlayerData("playername", new_text) + playerName = new_text + +func _on_iptFactionName_text_changed(new_text): + setRegisterPlayerData("factionname", new_text) + factionName = new_text + + +func _on_iptPassword_text_changed(new_text): + setRegisterPlayerData("password", new_text) + password = new_text + passwordCheck = (passwordRepeated == password) + +# TODO: check password continuously instead of saving it as a var or in an array +func _on_iptPasswordRepeated_text_changed(new_text): + passwordRepeated = new_text + passwordCheck = (passwordRepeated == password) + +func _on_obtnUnits_item_selected(index): + setRegisterPlayerData("volk", volk[index]) + print("Volk ", volk[index]) + + +func _on_obtnDifficulty_item_selected(index): + setRegisterPlayerData("difficulty", campaignDifficulties[index]) + print("Difficulty " ,campaignDifficulties[index]) + + +func _on_obtnCampaignLength_item_selected(index): + setRegisterPlayerData("length", campaignLengths[index]) + print("Kampagnen Länge " ,campaignLengths[index]) + +func _on_btnRegister_pressed(): # overhaul this so it checks server side maybe and delete useless methods + if(!registerPlayerData.empty()): + if passwordCheck: + print("Check Player Name" , checkPlayerName()) + if checkPlayerName(): + if checkFactionName(): + sendRegisterPlayerDataToPlayerManager() + get_tree().change_scene("res://menues/Main Menue.tscn") + else: + print("Your FactionName is already being used") + else: + print("Your PlayerName is already being used") + else: + print("Passwords dont match") + else: + print("Data missing") + +# Menu Nodes END ################################# + +# Functions ################################# +# Saving the register data in an Array +func setRegisterPlayerData(key:String, value:String): + registerPlayerData[key] = value + print("Setting Register Player Data KEY-", key, " VALUE-", value ) + # DEBUGGING +# print(registerPlayerData) +# print(registerPlayerData.size()) +# print(registerPlayerData.has(null)) +# print(registerPlayerData.has("")) + # DEBUGGING END + +# Checking if Playername or Factionname is used +func checkPlayerName() -> bool: # checks if the written playername is not equal the one in playermanager + print(PlayerManager.getAuthcachePlayerName()) + return (registerPlayerData["playername"] != PlayerManager.getAuthcachePlayerName()) + +func checkFactionName() -> bool: # checks if the written factionname is not equal to the one in playermanager + return (registerPlayerData["factionname"] != PlayerManager.getAuthcacheFactionName()) + +# Sending register data to PlayerManager in autoload +func sendRegisterPlayerDataToPlayerManager(): + #registerPlayerData.erase() # removes the repeated password variable because its not needed anymore + print("Sent RegisterPlayerData: ", registerPlayerData) + PlayerManager.setAuthcache(registerPlayerData) + print("> RegisterPlayerData has been sent to PlayerManager") + +# Functions END ############################## + +func _on_btnBack_pressed(): + get_tree().change_scene("res://menues/Main Menue.tscn") diff --git a/Client/menues/RegisterPlayerMenu.tscn b/Client/menues/RegisterPlayerMenu.tscn new file mode 100644 index 0000000..415f579 --- /dev/null +++ b/Client/menues/RegisterPlayerMenu.tscn @@ -0,0 +1,186 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://menues/RegisterPlayerMenu.gd" type="Script" id=1] +[ext_resource path="res://font/anton.tres" type="DynamicFont" id=2] + +[node name="RegisterPlayerMenu" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="VBoxMainContainer" type="VBoxContainer" parent="."] +margin_left = -1.22778 +margin_top = -2.45551 +margin_right = 1914.77 +margin_bottom = 1014.54 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="HBoxPlayerName" type="HBoxContainer" parent="VBoxMainContainer"] +margin_right = 1915.0 +margin_bottom = 25.0 +alignment = 1 + +[node name="lblPlayerName" type="Label" parent="VBoxMainContainer/HBoxPlayerName"] +margin_left = 663.0 +margin_right = 748.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 2 ) +text = "Spielername:" + +[node name="iptPlayerName" type="LineEdit" parent="VBoxMainContainer/HBoxPlayerName"] +margin_left = 752.0 +margin_right = 1252.0 +margin_bottom = 25.0 +rect_min_size = Vector2( 500, 0 ) + +[node name="HBoxFactionName" type="HBoxContainer" parent="VBoxMainContainer"] +margin_top = 29.0 +margin_right = 1915.0 +margin_bottom = 54.0 +rect_pivot_offset = Vector2( 897.744, 221.958 ) +alignment = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="lblFactionName" type="Label" parent="VBoxMainContainer/HBoxFactionName"] +margin_left = 655.0 +margin_right = 756.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 2 ) +text = "Fraktionsname:" + +[node name="iptFactionName" type="LineEdit" parent="VBoxMainContainer/HBoxFactionName"] +margin_left = 760.0 +margin_right = 1260.0 +margin_bottom = 25.0 +rect_min_size = Vector2( 500, 0 ) + +[node name="HBoxPassword" type="HBoxContainer" parent="VBoxMainContainer"] +margin_top = 58.0 +margin_right = 1915.0 +margin_bottom = 83.0 +alignment = 1 + +[node name="lblPassword" type="Label" parent="VBoxMainContainer/HBoxPassword"] +margin_left = 672.0 +margin_right = 738.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 2 ) +text = "Passwort:" + +[node name="iptPassword" type="LineEdit" parent="VBoxMainContainer/HBoxPassword"] +margin_left = 742.0 +margin_right = 1242.0 +margin_bottom = 25.0 +rect_min_size = Vector2( 500, 0 ) + +[node name="HBoxPasswordRepeated" type="HBoxContainer" parent="VBoxMainContainer"] +margin_top = 87.0 +margin_right = 1915.0 +margin_bottom = 112.0 +alignment = 1 + +[node name="lblPasswordRepeated" type="Label" parent="VBoxMainContainer/HBoxPasswordRepeated"] +margin_left = 630.0 +margin_right = 781.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 2 ) +text = "Passwort wiederholen:" + +[node name="iptPasswordRepeated" type="LineEdit" parent="VBoxMainContainer/HBoxPasswordRepeated"] +margin_left = 785.0 +margin_right = 1285.0 +margin_bottom = 25.0 +rect_min_size = Vector2( 500, 0 ) + +[node name="HBoxUnits" type="HBoxContainer" parent="VBoxMainContainer"] +margin_top = 116.0 +margin_right = 1915.0 +margin_bottom = 141.0 +alignment = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="lblUnits" type="Label" parent="VBoxMainContainer/HBoxUnits"] +margin_left = 925.0 +margin_right = 957.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 2 ) +text = "Volk:" + +[node name="obtnUnits" type="OptionButton" parent="VBoxMainContainer/HBoxUnits"] +margin_left = 961.0 +margin_right = 990.0 +margin_bottom = 25.0 + +[node name="HBoxDifficulty" type="HBoxContainer" parent="VBoxMainContainer"] +margin_top = 145.0 +margin_right = 1915.0 +margin_bottom = 170.0 + +[node name="lblDifficulty" type="Label" parent="VBoxMainContainer/HBoxDifficulty"] +margin_right = 134.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 2 ) +text = "Schwierigkeitsstufe:" + +[node name="obtnDifficulty" type="OptionButton" parent="VBoxMainContainer/HBoxDifficulty"] +margin_left = 138.0 +margin_right = 167.0 +margin_bottom = 25.0 + +[node name="HBoxCampaignLength" type="HBoxContainer" parent="VBoxMainContainer"] +margin_top = 174.0 +margin_right = 1915.0 +margin_bottom = 199.0 + +[node name="lblCampaignLength" type="Label" parent="VBoxMainContainer/HBoxCampaignLength"] +margin_right = 108.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 2 ) +text = "Kampagnelänge:" + +[node name="obtnCampaignLength" type="OptionButton" parent="VBoxMainContainer/HBoxCampaignLength"] +margin_left = 112.0 +margin_right = 141.0 +margin_bottom = 25.0 + +[node name="HBoxRegisterButton" type="HBoxContainer" parent="VBoxMainContainer"] +margin_top = 203.0 +margin_right = 1915.0 +margin_bottom = 223.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="btnRegister" type="Button" parent="VBoxMainContainer/HBoxRegisterButton"] +margin_right = 89.0 +margin_bottom = 20.0 +text = "Registrieren" + +[node name="HBoxBackButton" type="HBoxContainer" parent="VBoxMainContainer"] +margin_top = 227.0 +margin_right = 1915.0 +margin_bottom = 247.0 + +[node name="btnBack" type="Button" parent="VBoxMainContainer/HBoxBackButton"] +margin_right = 42.0 +margin_bottom = 20.0 +text = "Back" + +[connection signal="text_changed" from="VBoxMainContainer/HBoxPlayerName/iptPlayerName" to="." method="_on_ipt_PlayerName_text_changed"] +[connection signal="text_changed" from="VBoxMainContainer/HBoxFactionName/iptFactionName" to="." method="_on_iptFactionName_text_changed"] +[connection signal="text_changed" from="VBoxMainContainer/HBoxPassword/iptPassword" to="." method="_on_iptPassword_text_changed"] +[connection signal="text_changed" from="VBoxMainContainer/HBoxPasswordRepeated/iptPasswordRepeated" to="." method="_on_iptPasswordRepeated_text_changed"] +[connection signal="item_selected" from="VBoxMainContainer/HBoxUnits/obtnUnits" to="." method="_on_obtnUnits_item_selected"] +[connection signal="item_selected" from="VBoxMainContainer/HBoxDifficulty/obtnDifficulty" to="." method="_on_obtnDifficulty_item_selected"] +[connection signal="item_selected" from="VBoxMainContainer/HBoxCampaignLength/obtnCampaignLength" to="." method="_on_obtnCampaignLength_item_selected"] +[connection signal="pressed" from="VBoxMainContainer/HBoxRegisterButton/btnRegister" to="." method="_on_btnRegister_pressed"] +[connection signal="pressed" from="VBoxMainContainer/HBoxBackButton/btnBack" to="." method="_on_btnBack_pressed"] diff --git a/Client/menues/research.gd b/Client/menues/research.gd new file mode 100644 index 0000000..a71566b --- /dev/null +++ b/Client/menues/research.gd @@ -0,0 +1,37 @@ +extends Control + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready(): +# var serverdata = PlayerManager.myFactionData +# print("researchable: ",serverdata) + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func toggle(): + print("toggling Research") + if not visible: + visible = true + PlayerManager.subMenuOpen = true + mouse_filter = Control.MOUSE_FILTER_PASS + else: + visible = false + PlayerManager.subMenuOpen = false + mouse_filter = Control.MOUSE_FILTER_IGNORE + + +#func _input(event): +# if event is InputEventMouseButton: +# var index = event.get_button_index() +# if 1 == index or 2 == index: +# if not event.is_pressed(): +# print("click on research") +# get_parent().toggle() +# self.toggle() diff --git a/Client/menues/research.tscn b/Client/menues/research.tscn new file mode 100644 index 0000000..5fa9d66 --- /dev/null +++ b/Client/menues/research.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://menues/research.gd" type="Script" id=1] +[ext_resource path="res://images/research/Menu.png" type="Texture" id=2] + +[node name="ResearchMenu" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +mouse_filter = 1 +script = ExtResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 959.935, 510.562 ) +texture = ExtResource( 2 ) + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +margin_left = 46.0 +margin_top = 60.0 +margin_right = 897.0 +margin_bottom = 957.0 diff --git a/Client/menues/toDesigner.gd b/Client/menues/toDesigner.gd new file mode 100644 index 0000000..9989821 --- /dev/null +++ b/Client/menues/toDesigner.gd @@ -0,0 +1,17 @@ +extends TextureButton + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +# Called when the node enters the scene tree for the first time. +func _ready(): + get_node('Label').text = 'Designer' + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func _pressed(): + print("designer btn pressed") + get_tree().change_scene('res://menues/ArmyDesigner/ArmyDesigner.tscn') diff --git a/Client/menues/toggleResearch.gd b/Client/menues/toggleResearch.gd new file mode 100644 index 0000000..4665f54 --- /dev/null +++ b/Client/menues/toggleResearch.gd @@ -0,0 +1,25 @@ +extends TextureButton + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +var state = true +var dist = 100 +# Called when the node enters the scene tree for the first time. +func _ready(): + #get_node("Label").text = "Forschung" + pass # Replace with function body. + +func _pressed(): + get_node("ResearchMenu").toggle() + self.toggle() +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func toggle(): + if state: + self.rect_position.x += dist + state = false + else: + self.rect_position.x -= dist + state = true diff --git a/Client/moveOnWorldMap.gd b/Client/moveOnWorldMap.gd new file mode 100644 index 0000000..9d418c5 --- /dev/null +++ b/Client/moveOnWorldMap.gd @@ -0,0 +1,21 @@ +extends TextureButton + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +export var moveX = 0 +export var moveY = 0 + +# Called when the node enters the scene tree for the first time. +func _ready(): + + get_node('Label').text = 'bewegen' + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func _pressed(): + WorldManager.requestArmyMove(moveX,moveY) + pass + diff --git a/Client/openRegion.gd b/Client/openRegion.gd new file mode 100644 index 0000000..66b95a6 --- /dev/null +++ b/Client/openRegion.gd @@ -0,0 +1,21 @@ +extends TextureButton +#var Region = preload("res://region/Region.tscn") + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +func _pressed(): +# var region = RegionCreater.createRegion('GRASS',5,5) +# TO DO: add warning on time loss + + get_tree().change_scene('res://region/Region.tscn') +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Client/preset/armies/known.json b/Client/preset/armies/known.json new file mode 100644 index 0000000..8b586b7 --- /dev/null +++ b/Client/preset/armies/known.json @@ -0,0 +1,3 @@ +{"name":"teas","faction":"barb", "x":1,"y":1} +{"name":"teas","faction":"barb", "x":1,"y":1} + diff --git a/Client/preset/factions/KG.json b/Client/preset/factions/KG.json new file mode 100644 index 0000000..7221728 --- /dev/null +++ b/Client/preset/factions/KG.json @@ -0,0 +1,3 @@ +{ +"diplomacy":{"allies":[], "enemies":["barb"]} +} \ No newline at end of file diff --git a/Client/preset/races/human/buildings.json b/Client/preset/races/human/buildings.json new file mode 100644 index 0000000..8cc17a0 --- /dev/null +++ b/Client/preset/races/human/buildings.json @@ -0,0 +1,13 @@ +[{"name":0, +"y":0, +"terrain":"FOREST_SPACED", +"factions":["KG"], +"turn":1 +}, + +{"x":1, +"y":0, +"terrain":"GRASS", +"factions":[], +"turn":1 +}] diff --git a/Client/preset/races/human/items.json b/Client/preset/races/human/items.json new file mode 100644 index 0000000..1bea0f1 --- /dev/null +++ b/Client/preset/races/human/items.json @@ -0,0 +1,14 @@ +[{"type":"weapon", +"slots":["hand"], +"damage":6, +"damagetypes":["physical","cut"], +"materials":{"ore":3} + +}, + +{"x":1, +"y":0, +"terrain":"GRASS", +"factions":[], +"turn":1 +}] diff --git a/Client/preset/races/human/people.json b/Client/preset/races/human/people.json new file mode 100644 index 0000000..b87c72f --- /dev/null +++ b/Client/preset/races/human/people.json @@ -0,0 +1,16 @@ +{"name":"Mensch", +"Basestats": {"BaseHP":15, "strength": 5, "dex":5, "con":5, "int":5}, +"body":{"size":1, +"hand":2, +"body":1, +"head":1, +"ring":2, +"amulett":1}, +"resist":{ +"physical":20, +}, +"absorb":{ +"blunt":2 +} + +} \ No newline at end of file diff --git a/Client/preset/races/human/tech.json b/Client/preset/races/human/tech.json new file mode 100644 index 0000000..81a12bb --- /dev/null +++ b/Client/preset/races/human/tech.json @@ -0,0 +1,13 @@ +[{"x":0, +"y":0, +"terrain":"FOREST_SPACED", +"factions":["KG"], +"turn":1 +}, + +{"x":1, +"y":0, +"terrain":"GRASS", +"factions":[], +"turn":1 +}] diff --git a/Client/preset/races/races.json b/Client/preset/races/races.json new file mode 100644 index 0000000..d87b0da --- /dev/null +++ b/Client/preset/races/races.json @@ -0,0 +1,2 @@ +["human", +"elf"] diff --git a/Client/preset/worldmap.json b/Client/preset/worldmap.json new file mode 100644 index 0000000..7a5b5c9 --- /dev/null +++ b/Client/preset/worldmap.json @@ -0,0 +1,93 @@ +[{"x":0, +"y":0, +"terrain":"FOREST_SPACED", +"factions":["KG"], +"turn":1, +"armies": +{ +"Die Grausigen Halunken":{"faction":"KG"}, +"Katapala":{"faction":"KG"} +}, +"present":["KG"], +"playerTurnOn":1 +} +, + +{"x":1, +"y":0, +"terrain":"GRASS", +"factions":[], +"turn":1, +"armies": +{ +"barbaren":{"faction":"barbaren"}, +"irgendwer":{"faction":"bobs"} +}, +"present":["barbaren","bobs"], +"playerTurnOn":-1 +}, + +{"x":0, +"y":1, +"terrain":"FOREST", +"factions":[], +"turn":1, +"armies":{}, +"present":[""], +"playerTurnOn":-1 +}, + +{"x":1, +"y":1, +"terrain":"GRASS", +"factions":[], +"turn":1, +"armies":{}, +"present":[""], +"playerTurnOn":-1 +}, +{"x":12, +"y":11, +"terrain":"FOREST_DENSE", +"factions":["KG"], +"turn":1, +"armies":{}, +"present":[""], +"playerTurnOn":1 +}, +{"x":13, +"y":11, +"terrain":"GRASS", +"factions":[], +"turn":1, +"armies":{}, +"present":[""], +"playerTurnOn":-1 +}, +{"x":6, +"y":6, +"terrain":"FOREST_DENSE", +"factions":["KG"], +"turn":1, +"armies":{}, +"present":[""], +"playerTurnOn":1 +}, +{"x":6, +"y":7, +"terrain":"FOREST", +"factions":["KG"], +"turn":1, +"armies":{}, +"present":[""], +"playerTurnOn":1 +}, +{"x":6, +"y":8, +"terrain":"FOREST_SPACED", +"factions":["KG"], +"turn":1, +"armies":{}, +"present":[""], +"playerTurnOn":1 +}] diff --git a/Client/project.godot b/Client/project.godot new file mode 100644 index 0000000..4fb8b56 --- /dev/null +++ b/Client/project.godot @@ -0,0 +1,56 @@ +; 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="Client" +run/main_scene="res://menues/Main Menue.tscn" +config/icon="res://icon.png" + +[autoload] + +Network="*res://autoloads/Network.gd" +PlayerManager="*res://autoloads/PlayerManager.gd" +WorldManager="*res://autoloads/WorldManager.gd" +RegionCreater="*res://region/RegionCreater.gd" +DataManager="*res://autoloads/DataManager.gd" +UnitFactory="*res://army/UnitFactory.gd" + +[display] + +window/size/width=1920 +window/size/height=1020 + +[input] + +ui_right_mouse_button={ +"deadzone": 0.5, +"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":2,"pressed":false,"doubleclick":false,"script":null) + ] +} +ui_left_mouse_button={ +"deadzone": 0.5, +"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null) + ] +} + +[input_devices] + +pointing/emulate_mouse_from_touch=false + +[rendering] + +2d/snapping/use_gpu_pixel_snap=true +threads/thread_model=2 +quality/2d/use_pixel_snap=true diff --git a/Client/region/Region.gd b/Client/region/Region.gd new file mode 100644 index 0000000..22d2602 --- /dev/null +++ b/Client/region/Region.gd @@ -0,0 +1,18 @@ +extends Node2D + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +var ownedBy = "" + + + +# Called when the node enters the scene tree for the first time. +func _ready(): + PlayerManager.subMenuOpen = false + print(DataManager.selectedTile) + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Client/region/Region.tscn b/Client/region/Region.tscn new file mode 100644 index 0000000..e79e9a2 --- /dev/null +++ b/Client/region/Region.tscn @@ -0,0 +1,180 @@ +[gd_scene load_steps=13 format=2] + +[ext_resource path="res://region/Region.gd" type="Script" id=1] +[ext_resource path="res://images/region/regiontiles.png" type="Texture" id=2] +[ext_resource path="res://region/regionGround.gd" type="Script" id=3] +[ext_resource path="res://army/Stack2x1.tscn" type="PackedScene" id=4] +[ext_resource path="res://Camera2D.gd" type="Script" id=7] +[ext_resource path="res://region/RegionUI.tscn" type="PackedScene" id=8] +[ext_resource path="res://smallbtn.tscn" type="PackedScene" id=9] +[ext_resource path="res://RecruteMenueButton.gd" type="Script" id=10] +[ext_resource path="res://menues/toggleResearch.gd" type="Script" id=11] +[ext_resource path="res://menues/research.tscn" type="PackedScene" id=12] +[ext_resource path="res://items/Item.tscn" type="PackedScene" id=13] + +[sub_resource type="TileSet" id=1] +0/name = "regiontiles.png 0" +0/texture = ExtResource( 2 ) +0/tex_offset = Vector2( 0, 0 ) +0/modulate = Color( 1, 1, 1, 1 ) +0/region = Rect2( 128, 0, 128, 128 ) +0/tile_mode = 0 +0/occluder_offset = Vector2( 0, 0 ) +0/navigation_offset = Vector2( 0, 0 ) +0/shape_offset = Vector2( 0, 0 ) +0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +0/shape_one_way = false +0/shape_one_way_margin = 0.0 +0/shapes = [ ] +0/z_index = 0 +1/name = "regiontiles.png 1" +1/texture = ExtResource( 2 ) +1/tex_offset = Vector2( 0, 0 ) +1/modulate = Color( 1, 1, 1, 1 ) +1/region = Rect2( 480, 0, 128, 128 ) +1/tile_mode = 0 +1/occluder_offset = Vector2( 0, 0 ) +1/navigation_offset = Vector2( 0, 0 ) +1/shape_offset = Vector2( 0, 0 ) +1/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +1/shape_one_way = false +1/shape_one_way_margin = 0.0 +1/shapes = [ ] +1/z_index = 0 +2/name = "regiontiles.png 2" +2/texture = ExtResource( 2 ) +2/tex_offset = Vector2( 0, 0 ) +2/modulate = Color( 1, 1, 1, 1 ) +2/region = Rect2( 224, 384, 128, 128 ) +2/tile_mode = 0 +2/occluder_offset = Vector2( 0, 0 ) +2/navigation_offset = Vector2( 0, 0 ) +2/shape_offset = Vector2( 0, 0 ) +2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +2/shape_one_way = false +2/shape_one_way_margin = 0.0 +2/shapes = [ ] +2/z_index = 0 +3/name = "regiontiles.png 3" +3/texture = ExtResource( 2 ) +3/tex_offset = Vector2( 0, 0 ) +3/modulate = Color( 1, 1, 1, 1 ) +3/region = Rect2( 0, 128, 128, 128 ) +3/tile_mode = 0 +3/occluder_offset = Vector2( 0, 0 ) +3/navigation_offset = Vector2( 0, 0 ) +3/shape_offset = Vector2( 0, 0 ) +3/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +3/shape_one_way = false +3/shape_one_way_margin = 0.0 +3/shapes = [ ] +3/z_index = 0 +4/name = "regiontiles.png 4" +4/texture = ExtResource( 2 ) +4/tex_offset = Vector2( 0, 0 ) +4/modulate = Color( 1, 1, 1, 1 ) +4/region = Rect2( 128, 128, 128, 128 ) +4/tile_mode = 0 +4/occluder_offset = Vector2( 0, 0 ) +4/navigation_offset = Vector2( 0, 0 ) +4/shape_offset = Vector2( 0, 0 ) +4/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +4/shape_one_way = false +4/shape_one_way_margin = 0.0 +4/shapes = [ ] +4/z_index = 0 + +[node name="Region" type="Node2D"] +script = ExtResource( 1 ) + +[node name="ground" type="TileMap" parent="."] +tile_set = SubResource( 1 ) +cell_size = Vector2( 128, 128 ) +format = 1 +tile_data = PoolIntArray( -524296, 1, 0, -524295, 1, 0, -524294, 1, 0, -524293, 1, 0, -524292, 1, 0, -524291, 1, 0, -524290, 1, 0, -524289, 1, 0, -589824, 1, 0, -589823, 1, 0, -589822, 1, 0, -589821, 1, 0, -589820, 1, 0, -589818, 1, 0, -589817, 1, 0, -589816, 1, 0, -589814, 1, 0, -589813, 1, 0, -589812, 1, 0, -589811, 1, 0, -589810, 1, 0, -589809, 1, 0, -589808, 1, 0, -589807, 1, 0, -589806, 1, 0, -589805, 1, 0, -589804, 1, 0, -589803, 1, 0, -589802, 1, 0, -458761, 1, 0, -458759, 1, 0, -458758, 1, 0, -458757, 1, 0, -458756, 1, 0, -458755, 1, 0, -458754, 1, 0, -458753, 1, 0, -524288, 1, 0, -524287, 1, 0, -524286, 1, 0, -524285, 1, 0, -524283, 1, 0, -524281, 1, 0, -524279, 1, 0, -524277, 1, 0, -524276, 1, 0, -524275, 1, 0, -524274, 1, 0, -524273, 1, 0, -524272, 1, 0, -524271, 1, 0, -524270, 1, 0, -524269, 1, 0, -524268, 1, 0, -524267, 1, 0, -524265, 1, 0, -393225, 1, 0, -393224, 1, 0, -393222, 1, 0, -393221, 1, 0, -393220, 1, 0, -393219, 1, 0, -393218, 1, 0, -393217, 1, 0, -458752, 1, 0, -458751, 1, 0, -458750, 1, 0, -458748, 1, 0, -458747, 1, 0, -458746, 1, 0, -458744, 1, 0, -458743, 1, 0, -458742, 1, 0, -458740, 1, 0, -458739, 1, 0, -458738, 1, 0, -458737, 1, 0, -458736, 1, 0, -458735, 1, 0, -458734, 1, 0, -458733, 1, 0, -458732, 1, 0, -458730, 1, 0, -458729, 1, 0, -327689, 1, 0, -327688, 1, 0, -327687, 1, 0, -327685, 1, 0, -327684, 1, 0, -327683, 1, 0, -327682, 1, 0, -327681, 1, 0, -393216, 1, 0, -393215, 1, 0, -393213, 1, 0, -393212, 1, 0, -393211, 1, 0, -393210, 1, 0, -393208, 1, 0, -393207, 1, 0, -393206, 1, 0, -393205, 1, 0, -393203, 1, 0, -393202, 1, 0, -393201, 1, 0, -393200, 1, 0, -393199, 1, 0, -393198, 1, 0, -393197, 1, 0, -393195, 1, 0, -393194, 1, 0, -393193, 1, 0, -262153, 1, 0, -262152, 1, 0, -262151, 1, 0, -262150, 1, 0, -262148, 1, 0, -262147, 1, 0, -262146, 1, 0, -262145, 1, 0, -327680, 1, 0, -327678, 1, 0, -327677, 1, 0, -327676, 1, 0, -327675, 1, 0, -327674, 1, 0, -327672, 1, 0, -327671, 1, 0, -327670, 1, 0, -327669, 1, 0, -327668, 1, 0, -327666, 1, 0, -327665, 1, 0, -327664, 1, 0, -327663, 1, 0, -327662, 1, 0, -327660, 1, 0, -327659, 1, 0, -327658, 1, 0, -327657, 1, 0, -196617, 1, 0, -196616, 1, 0, -196615, 1, 0, -196614, 1, 0, -196613, 1, 0, -196611, 1, 0, -196610, 1, 0, -196609, 1, 0, -262143, 1, 0, -262142, 1, 0, -262141, 1, 0, -262140, 1, 0, -262139, 1, 0, -262138, 1, 0, -262136, 1, 0, -262135, 1, 0, -262134, 1, 0, -262133, 1, 0, -262132, 1, 0, -262131, 1, 0, -262129, 1, 0, -262128, 1, 0, -262127, 1, 0, -262125, 1, 0, -262124, 1, 0, -262123, 1, 0, -262122, 1, 0, -262121, 1, 0, -131081, 1, 0, -131080, 1, 0, -131079, 1, 0, -131078, 1, 0, -131077, 1, 0, -131076, 1, 0, -131074, 1, 0, -196608, 1, 0, -196607, 1, 0, -196606, 1, 0, -196605, 1, 0, -196604, 1, 0, -196603, 1, 0, -196602, 1, 0, -196600, 1, 0, -196599, 1, 0, -196598, 1, 0, -196597, 1, 0, -196596, 1, 0, -196595, 1, 0, -196594, 1, 0, -196592, 1, 0, -196590, 1, 0, -196589, 1, 0, -196588, 1, 0, -196587, 1, 0, -196586, 1, 0, -196585, 1, 0, -65545, 1, 0, -65544, 1, 0, -65543, 1, 0, -65542, 1, 0, -65541, 1, 0, -65540, 1, 0, -65539, 1, 0, -65537, 1, 0, -131072, 1, 0, -131071, 1, 0, -131070, 1, 0, -131069, 1, 0, -131068, 1, 0, -131067, 1, 0, -131066, 1, 0, -131064, 1, 0, -131063, 1, 0, -131062, 1, 0, -131061, 1, 0, -131060, 1, 0, -131059, 1, 0, -131058, 1, 0, -131057, 1, 0, -131055, 1, 0, -131054, 1, 0, -131053, 1, 0, -131052, 1, 0, -131051, 1, 0, -131050, 1, 0, -131049, 1, 0, -9, 1, 0, -8, 1, 0, -7, 1, 0, -6, 1, 0, -5, 1, 0, -4, 1, 0, -2, 1, 0, -65520, 1, 0, -65518, 1, 0, -65517, 1, 0, -65516, 1, 0, -65515, 1, 0, -65514, 1, 0, -65513, 1, 0, 65527, 1, 0, 65528, 1, 0, 65529, 1, 0, 65530, 1, 0, 65531, 1, 0, 65533, 1, 0, 65534, 1, 0, 0, 0, 0, 1, 0, 0, 2, 2, 0, 3, 2, 0, 4, 2, 0, 5, 2, 0, 6, 2, 0, 7, 2, 0, 8, 1, 0, 9, 1, 0, 10, 1, 0, 11, 1, 0, 12, 1, 0, 13, 1, 0, 14, 1, 0, 16, 1, 0, 17, 1, 0, 19, 1, 0, 20, 1, 0, 21, 1, 0, 22, 1, 0, 23, 1, 0, 131063, 1, 0, 131064, 1, 0, 131065, 1, 0, 131066, 1, 0, 131068, 1, 0, 131069, 1, 0, 131070, 1, 0, 65536, 0, 0, 65537, 0, 0, 65538, 2, 0, 65539, 2, 0, 65540, 2, 0, 65541, 2, 0, 65542, 2, 0, 65543, 2, 0, 65544, 1, 0, 65545, 1, 0, 65546, 1, 0, 65547, 1, 0, 65548, 1, 0, 65549, 1, 0, 65550, 1, 0, 65552, 1, 0, 65553, 1, 0, 65554, 1, 0, 65556, 1, 0, 65557, 1, 0, 65558, 1, 0, 65559, 1, 0, 196600, 1, 0, 196601, 1, 0, 196603, 1, 0, 196604, 1, 0, 196605, 1, 0, 196606, 1, 0, 131072, 0, 0, 131073, 0, 0, 131074, 2, 0, 131075, 4, 0, 131076, 4, 0, 131077, 0, 0, 131078, 2, 0, 131079, 2, 0, 131080, 1, 0, 131081, 1, 0, 131082, 1, 0, 131083, 1, 0, 131084, 1, 0, 131085, 1, 0, 131086, 1, 0, 131088, 1, 0, 131089, 1, 0, 131090, 1, 0, 131091, 1, 0, 131093, 1, 0, 131094, 1, 0, 262135, 1, 0, 262138, 1, 0, 262139, 1, 0, 262140, 1, 0, 262141, 1, 0, 262142, 1, 0, 196608, 4, 0, 196609, 4, 0, 196610, 4, 0, 196611, 4, 0, 196612, 4, 0, 196613, 0, 0, 196614, 2, 0, 196615, 2, 0, 196616, 1, 0, 196617, 1, 0, 196618, 1, 0, 196619, 1, 0, 196620, 1, 0, 196621, 1, 0, 196622, 1, 0, 196624, 1, 0, 196625, 1, 0, 196626, 1, 0, 196627, 1, 0, 196628, 1, 0, 196631, 1, 0, 327671, 1, 0, 327674, 1, 0, 327675, 1, 0, 327676, 1, 0, 327677, 1, 0, 327678, 1, 0, 262144, 0, 0, 262145, 0, 0, 262146, 3, 0, 262147, 3, 0, 262148, 3, 0, 262149, 0, 0, 262150, 1, 0, 262151, 1, 0, 262152, 1, 0, 262153, 1, 0, 262154, 1, 0, 262155, 1, 0, 262156, 1, 0, 262157, 1, 0, 262160, 1, 0, 262161, 1, 0, 262162, 1, 0, 262163, 1, 0, 262164, 1, 0, 262167, 1, 0, 393208, 1, 0, 393209, 1, 0, 393211, 1, 0, 393212, 1, 0, 393213, 1, 0, 393214, 1, 0, 327680, 1, 0, 327681, 1, 0, 327682, 1, 0, 327683, 1, 0, 327684, 1, 0, 327685, 1, 0, 327686, 1, 0, 327687, 1, 0, 327688, 1, 0, 327689, 1, 0, 327690, 1, 0, 327692, 1, 0, 327693, 1, 0, 327696, 1, 0, 327697, 1, 0, 327698, 1, 0, 327699, 1, 0, 327701, 1, 0, 327702, 1, 0, 458743, 1, 0, 458744, 1, 0, 458745, 1, 0, 458746, 1, 0, 458748, 1, 0, 458749, 1, 0, 458750, 1, 0, 393216, 1, 0, 393217, 1, 0, 393218, 1, 0, 393219, 1, 0, 393220, 1, 0, 393221, 1, 0, 393222, 1, 0, 393223, 1, 0, 393224, 1, 0, 393225, 1, 0, 393226, 1, 0, 393227, 1, 0, 393228, 1, 0, 393229, 1, 0, 393232, 1, 0, 393233, 1, 0, 393234, 1, 0, 393236, 1, 0, 393237, 1, 0, 393238, 1, 0, 393239, 1, 0, 524279, 1, 0, 524280, 1, 0, 524281, 1, 0, 524282, 1, 0, 524283, 1, 0, 524285, 1, 0, 524286, 1, 0, 458752, 1, 0, 458753, 1, 0, 458754, 1, 0, 458755, 1, 0, 458756, 1, 0, 458757, 1, 0, 458758, 1, 0, 458759, 1, 0, 458760, 1, 0, 458761, 1, 0, 458762, 1, 0, 458763, 1, 0, 458764, 1, 0, 458765, 1, 0, 458766, 1, 0, 458768, 1, 0, 458769, 1, 0, 458771, 1, 0, 458772, 1, 0, 458773, 1, 0, 458774, 1, 0, 458775, 1, 0, 589815, 1, 0, 589816, 1, 0, 589817, 1, 0, 589818, 1, 0, 589819, 1, 0, 589820, 1, 0, 589822, 1, 0, 524304, 1, 0, 524306, 1, 0, 524307, 1, 0, 524308, 1, 0, 524309, 1, 0, 524310, 1, 0, 524311, 1, 0, 655351, 1, 0, 655352, 1, 0, 655353, 1, 0, 655354, 1, 0, 655355, 1, 0, 655356, 1, 0, 655357, 1, 0, 655359, 1, 0, 589824, 1, 0, 589825, 1, 0, 589826, 1, 0, 589827, 1, 0, 589828, 1, 0, 589829, 1, 0, 589830, 1, 0, 589832, 1, 0, 589833, 1, 0, 589834, 1, 0, 589835, 1, 0, 589836, 1, 0, 589837, 1, 0, 589838, 1, 0, 589839, 1, 0, 589841, 1, 0, 589842, 1, 0, 589843, 1, 0, 589844, 1, 0, 589845, 1, 0, 589846, 1, 0, 589847, 1, 0, 720887, 1, 0, 720888, 1, 0, 720889, 1, 0, 720890, 1, 0, 720891, 1, 0, 720892, 1, 0, 720894, 1, 0, 655360, 1, 0, 655361, 1, 0, 655362, 1, 0, 655363, 1, 0, 655364, 1, 0, 655365, 1, 0, 655366, 1, 0, 655368, 1, 0, 655369, 1, 0, 655370, 1, 0, 655371, 1, 0, 655372, 1, 0, 655373, 1, 0, 655374, 1, 0, 655376, 1, 0, 655378, 1, 0, 655379, 1, 0, 655380, 1, 0, 655381, 1, 0, 655382, 1, 0, 655383, 1, 0, 786423, 1, 0, 786424, 1, 0, 786425, 1, 0, 786426, 1, 0, 786427, 1, 0, 786429, 1, 0, 786430, 1, 0, 786431, 1, 0, 720897, 1, 0, 720898, 1, 0, 720899, 1, 0, 720900, 1, 0, 720901, 1, 0, 720902, 1, 0, 720904, 1, 0, 720905, 1, 0, 720906, 1, 0, 720907, 1, 0, 720908, 1, 0, 720909, 1, 0, 720911, 1, 0, 720912, 1, 0, 720913, 1, 0, 720915, 1, 0, 720916, 1, 0, 720917, 1, 0, 720918, 1, 0, 720919, 1, 0, 851959, 1, 0, 851960, 1, 0, 851961, 1, 0, 851962, 1, 0, 851964, 1, 0, 851965, 1, 0, 851966, 1, 0, 851967, 1, 0, 786432, 1, 0, 786434, 1, 0, 786435, 1, 0, 786436, 1, 0, 786437, 1, 0, 786438, 1, 0, 786440, 1, 0, 786441, 1, 0, 786442, 1, 0, 786443, 1, 0, 786444, 1, 0, 786446, 1, 0, 786447, 1, 0, 786448, 1, 0, 786449, 1, 0, 786450, 1, 0, 786452, 1, 0, 786453, 1, 0, 786454, 1, 0, 786455, 1, 0, 917495, 1, 0, 917496, 1, 0, 917497, 1, 0, 917499, 1, 0, 917500, 1, 0, 917501, 1, 0, 917502, 1, 0, 917503, 1, 0, 851968, 1, 0, 851969, 1, 0, 851971, 1, 0, 851972, 1, 0, 851973, 1, 0, 851974, 1, 0, 851976, 1, 0, 851977, 1, 0, 851978, 1, 0, 851979, 1, 0, 851981, 1, 0, 851982, 1, 0, 851983, 1, 0, 851984, 1, 0, 851985, 1, 0, 851986, 1, 0, 851987, 1, 0, 851989, 1, 0, 851990, 1, 0, 851991, 1, 0, 983031, 1, 0, 983032, 1, 0, 983034, 1, 0, 983035, 1, 0, 983036, 1, 0, 983037, 1, 0, 983038, 1, 0, 983039, 1, 0, 917504, 1, 0, 917505, 1, 0, 917506, 1, 0, 917508, 1, 0, 917509, 1, 0, 917510, 1, 0, 917512, 1, 0, 917513, 1, 0, 917514, 1, 0, 917516, 1, 0, 917517, 1, 0, 917518, 1, 0, 917519, 1, 0, 917520, 1, 0, 917521, 1, 0, 917522, 1, 0, 917523, 1, 0, 917524, 1, 0, 917526, 1, 0, 917527, 1, 0, 1048567, 1, 0, 1048569, 1, 0, 1048570, 1, 0, 1048571, 1, 0, 1048572, 1, 0, 1048573, 1, 0, 1048574, 1, 0, 1048575, 1, 0, 983040, 1, 0, 983041, 1, 0, 983042, 1, 0, 983043, 1, 0, 983045, 1, 0, 983047, 1, 0, 983049, 1, 0, 983051, 1, 0, 983052, 1, 0, 983053, 1, 0, 983054, 1, 0, 983055, 1, 0, 983056, 1, 0, 983057, 1, 0, 983058, 1, 0, 983059, 1, 0, 983060, 1, 0, 983061, 1, 0, 983063, 1, 0, 1114104, 1, 0, 1114105, 1, 0, 1114106, 1, 0, 1114107, 1, 0, 1114108, 1, 0, 1114109, 1, 0, 1114110, 1, 0, 1114111, 1, 0, 1048576, 1, 0, 1048577, 1, 0, 1048578, 1, 0, 1048579, 1, 0, 1048580, 1, 0, 1048582, 1, 0, 1048583, 1, 0, 1048584, 1, 0, 1048586, 1, 0, 1048587, 1, 0, 1048588, 1, 0, 1048589, 1, 0, 1048590, 1, 0, 1048591, 1, 0, 1048592, 1, 0, 1048593, 1, 0, 1048594, 1, 0, 1048595, 1, 0, 1048596, 1, 0, 1048597, 1, 0, 1048598, 1, 0 ) +script = ExtResource( 3 ) + +[node name="units" type="Node" parent="ground"] + +[node name="Stack" parent="ground/units" instance=ExtResource( 4 )] +position = Vector2( 887.433, 714.205 ) +scale = Vector2( 4, 4 ) + +[node name="ressources" type="Node" parent="ground"] + +[node name="Camera2D" type="Camera2D" parent="."] +current = true +drag_margin_left = 0.0 +drag_margin_top = 0.0 +drag_margin_right = 0.0 +drag_margin_bottom = 0.0 +script = ExtResource( 7 ) + +[node name="CanvasModulate" type="CanvasModulate" parent="."] +position = Vector2( 494.969, 425.958 ) +scale = Vector2( 600, 600 ) + +[node name="Item" parent="." instance=ExtResource( 13 )] +position = Vector2( 250, 530 ) + +[node name="Container" type="Container" parent="."] +margin_left = 1228.0 +margin_top = -6.0 +margin_right = 1914.0 +margin_bottom = 1016.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="RegionUI" parent="Container" instance=ExtResource( 8 )] + +[node name="TextureButton2" parent="Container/RegionUI" instance=ExtResource( 9 )] +margin_left = 1321.32 +margin_top = 80.6102 +margin_right = 1405.32 +margin_bottom = 144.61 +script = ExtResource( 11 ) + +[node name="ResearchMenu" parent="Container/RegionUI/TextureButton2" instance=ExtResource( 12 )] +visible = false +show_behind_parent = true +margin_left = -1523.25 +margin_top = -115.948 +margin_right = 315.755 +margin_bottom = 842.052 +mouse_filter = 0 + +[node name="TextureButton3" parent="Container/RegionUI" instance=ExtResource( 9 )] +margin_left = 1476.77 +margin_top = 79.1119 +margin_right = 1560.77 +margin_bottom = 143.112 + +[node name="ResearchMenu" parent="Container/RegionUI/TextureButton3" instance=ExtResource( 12 )] +visible = false +show_behind_parent = true +margin_left = -1523.25 +margin_top = -115.948 +margin_right = 315.755 +margin_bottom = 842.052 +mouse_filter = 0 + +[node name="recruit menu" parent="Container/RegionUI" instance=ExtResource( 9 )] +margin_left = 1626.6 +margin_top = 83.6069 +margin_right = 1710.6 +margin_bottom = 147.607 +script = ExtResource( 10 ) + +[node name="ResearchMenu" parent="Container/RegionUI/recruit menu" instance=ExtResource( 12 )] +visible = false +show_behind_parent = true +margin_left = -1523.25 +margin_top = -115.948 +margin_right = 315.755 +margin_bottom = 842.052 +mouse_filter = 0 + +[editable path="Container/RegionUI/TextureButton2"] +[editable path="Container/RegionUI/TextureButton3"] +[editable path="Container/RegionUI/recruit menu"] diff --git a/Client/region/RegionCreater.gd b/Client/region/RegionCreater.gd new file mode 100644 index 0000000..06224a7 --- /dev/null +++ b/Client/region/RegionCreater.gd @@ -0,0 +1,30 @@ +extends Node + +var Region = null + + +func createRegion(regiontype,sizex:int, sizey:int, mapseed:int = 0): + if Region == null: + Region = load("res://region/Region.tscn") + var region = Region.instance() + var x = 0 + var y = 0 + var tile = mapseed + var map = region.get_node("ground") + if regiontype == 'GRASS': + while x= 24: + time = 0 + adapt() +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func adapt(): + +# if time>17: +# daySegment = 3 +# elif time > 11: +# daySegment = 2 +# elif time > 5: +# daySegment = 1 +# else: +# daySegment = 0 +# print('segment: ', daySegment) + print('time: ', time) + print(colors[time]) + get_parent().get_parent().get_node('CanvasModulate').set_color(colors[time]) + return \ No newline at end of file diff --git a/Client/region/regionGround.gd b/Client/region/regionGround.gd new file mode 100644 index 0000000..57db1ff --- /dev/null +++ b/Client/region/regionGround.gd @@ -0,0 +1,19 @@ +extends TileMap + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func _input(event): + if event is InputEventMouseButton: + var index = event.get_button_index() + if 1 == index or 2 == index: + if not event.is_pressed(): + print("click") \ No newline at end of file diff --git a/Client/region/ressourcenodes/Mountain.tscn b/Client/region/ressourcenodes/Mountain.tscn new file mode 100644 index 0000000..63c2160 --- /dev/null +++ b/Client/region/ressourcenodes/Mountain.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://region/ressourcenodes/RessourceNode.gd" type="Script" id=1] +[ext_resource path="res://region/ressourcenodes/RessourceNodes.tres" type="Texture" id=2] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 256, 128 ) + +[node name="Mountain" type="StaticBody2D"] +script = ExtResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] +texture = ExtResource( 2 ) + +[node name="Buildings" type="Node" parent="."] diff --git a/Client/region/ressourcenodes/RessourceNode.gd b/Client/region/ressourcenodes/RessourceNode.gd new file mode 100644 index 0000000..445469f --- /dev/null +++ b/Client/region/ressourcenodes/RessourceNode.gd @@ -0,0 +1,20 @@ +extends StaticBody2D + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +var allowedBuildings = ["Steinbruch","Zwergensiedlung"] +var produces = "Stein" +var type = "Marmor" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func _input(event): + + pass diff --git a/Client/region/ressourcenodes/RessourceNodes.tres b/Client/region/ressourcenodes/RessourceNodes.tres new file mode 100644 index 0000000..95b7566 Binary files /dev/null and b/Client/region/ressourcenodes/RessourceNodes.tres differ diff --git a/Client/smallbtn.gd b/Client/smallbtn.gd new file mode 100644 index 0000000..b84164d --- /dev/null +++ b/Client/smallbtn.gd @@ -0,0 +1,47 @@ +extends TextureButton + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +var datas = DataManager +var toDisplayCount = 0 +var toDisplay = ['Stein','Holz','Metall','Ausrüstung'] +const POST_RESS = 3 +var items = datas.items +var equips = {} +# Called when the node enters the scene tree for the first time. +func _ready(): + $Label.text = 'debug' + for item in items: +# print(' ') +# print(item) +# print(items[item]) + if items[item].itemType == toDisplay[POST_RESS]: + equips[item] = items[item] +# +# print('equips are:') +# for item in equips: +# print(item) +# print(equips[item]) + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func _pressed(): + for item in items: + if items[item].itemType == toDisplay[int(toDisplayCount)]: + print(' ') + print(item) + print(items[item]) + if toDisplayCount < POST_RESS: + var matter = items[item].itemType + for eq in equips: + if equips[eq].materials.has(matter): + print('goes in') + print(eq) + toDisplayCount += 1 + if toDisplayCount >= toDisplay.size(): + toDisplayCount = 0 + diff --git a/Client/smallbtn.tscn b/Client/smallbtn.tscn new file mode 100644 index 0000000..73b66ac --- /dev/null +++ b/Client/smallbtn.tscn @@ -0,0 +1,28 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://images/button/smallerbtn.png" type="Texture" id=1] +[ext_resource path="res://images/button/smallerbtnPress.png" type="Texture" id=2] +[ext_resource path="res://images/button/smallerbtnhover.png" type="Texture" id=3] +[ext_resource path="res://font/anton.tres" type="DynamicFont" id=4] + +[node name="btnSmall" type="TextureButton"] +margin_right = 84.0 +margin_bottom = 64.0 +texture_normal = ExtResource( 1 ) +texture_pressed = ExtResource( 2 ) +texture_hover = ExtResource( 3 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="lblSmallButton" type="Label" parent="."] +margin_left = 4.0 +margin_top = 19.0 +margin_right = 79.0 +margin_bottom = 47.0 +custom_fonts/font = ExtResource( 4 ) +text = "Betreten" +align = 1 +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/Client/tech/TechManager.gd b/Client/tech/TechManager.gd new file mode 100644 index 0000000..d88ca20 --- /dev/null +++ b/Client/tech/TechManager.gd @@ -0,0 +1,95 @@ +extends Node + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +# Called when the node enters the scene tree for the first time. +func _ready(): + var path = 'res://tech/techdata/' + var pathes = dir_path_to_files(path) + for key in pathes: + print(key) + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass + +func dir_contents(path): + var dir = Directory.new() + if dir.open(path) == OK: + dir.list_dir_begin() + var file_name = dir.get_next() + while file_name != "": + if dir.current_is_dir(): + print("Found directory: " + file_name) +# if file_name == '.' or file_name == '..': +# print('recursion retarded') +# else: +# var newPath = path+file_name +# dir_contents(path) + else: + print("Found file: " + file_name) + file_name = dir.get_next() + else: + print("An error occurred when trying to access the path.") + + +func dir_contents_complete(path): + var dir = Directory.new() + if dir.open(path) == OK: + dir.list_dir_begin() + var file_name = dir.get_next() + while file_name != "": + if dir.current_is_dir(): + print("Found directory: " + file_name) + if file_name == '.' or file_name == '..': + print('recursion retarded') + else: + var newPath = path+file_name + print('calling: ', newPath) + dir_contents_complete(newPath) + else: + print("Found file: " + file_name) + file_name = dir.get_next() + else: + print("An error occurred when trying to access the path.") + + +func dir_path_to_files(path): + var pathes = [] + var dir = Directory.new() + if dir.open(path) == OK: + dir.list_dir_begin() + var file_name = dir.get_next() + while file_name != "": + if dir.current_is_dir(): + print("Found directory: " + file_name) + if file_name == '.' or file_name == '..': + print('recursion retarded') + else: + var newPath = path+file_name + print('calling: ', newPath) + for stringy in dir_path_to_files(newPath): + pathes.append(stringy) + else: + print("Found file: " + file_name) + pathes.append(path+file_name) + file_name = dir.get_next() + else: + print("An error occurred when trying to access the path.") + return pathes + +func loadAsServer(): + var path = 'user://worldmap.json' + var directory = Directory.new() + var hasFile = directory.file_exists(path) + var file = File.new() + if !hasFile: + path = directory.get_current_dir()+'preset//worldmap.json' + file.open(path, file.READ) + var json = file.get_as_text() +# print('json:'+json) + var json_result = JSON.parse(json).result + #print(json_result) diff --git a/Client/tech/techdata/hq/faster smithing.json b/Client/tech/techdata/hq/faster smithing.json new file mode 100644 index 0000000..1aac3c6 --- /dev/null +++ b/Client/tech/techdata/hq/faster smithing.json @@ -0,0 +1,3 @@ +{ +"diplomacy":{"allies":[], "enemies":["barbaren","barb"]} +} \ No newline at end of file diff --git a/Client/tech/techdata/smith/faster smithing.json b/Client/tech/techdata/smith/faster smithing.json new file mode 100644 index 0000000..1aac3c6 --- /dev/null +++ b/Client/tech/techdata/smith/faster smithing.json @@ -0,0 +1,3 @@ +{ +"diplomacy":{"allies":[], "enemies":["barbaren","barb"]} +} \ No newline at end of file diff --git a/Client/tech/techdata/woodman/Holzfäller T1.json b/Client/tech/techdata/woodman/Holzfäller T1.json new file mode 100644 index 0000000..1e850c5 --- /dev/null +++ b/Client/tech/techdata/woodman/Holzfäller T1.json @@ -0,0 +1,10 @@ +{ +"Dauer":4, +"Kosten": + { + }, +"Voraussetzung": + { + "Technologie" : "" + } +} \ No newline at end of file diff --git a/Client/toWorldMap.gd b/Client/toWorldMap.gd new file mode 100644 index 0000000..dea5cac --- /dev/null +++ b/Client/toWorldMap.gd @@ -0,0 +1,17 @@ +extends TextureButton + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +# Called when the node enters the scene tree for the first time. +func _ready(): + $lblSmallButton.text = 'verlassen' + pass # Replace with function body. + + +func _pressed(): + get_tree().change_scene('res://Worldmap.tscn') +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Client/toWorldMapButton.gd b/Client/toWorldMapButton.gd new file mode 100644 index 0000000..f74b6ac --- /dev/null +++ b/Client/toWorldMapButton.gd @@ -0,0 +1,12 @@ +extends TextureButton + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +func _pressed(): + get_tree().change_scene("Worldmap.tscn") + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Client/unit/OgerWalkAnimation.gd b/Client/unit/OgerWalkAnimation.gd new file mode 100644 index 0000000..4b02490 --- /dev/null +++ b/Client/unit/OgerWalkAnimation.gd @@ -0,0 +1,19 @@ +extends Node2D + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func playAnimation(animationname): + $asprPger.play(animationname) + $Sword.play(animationname) diff --git a/Client/unit/OgerWalkAnimation.tscn b/Client/unit/OgerWalkAnimation.tscn new file mode 100644 index 0000000..e2c5d47 --- /dev/null +++ b/Client/unit/OgerWalkAnimation.tscn @@ -0,0 +1,87 @@ +[gd_scene load_steps=29 format=2] + +[ext_resource path="res://images/units/SwordSwipe1.bmp" type="Texture" id=1] +[ext_resource path="res://images/units/Sword2.bmp" type="Texture" id=2] +[ext_resource path="res://images/units/OgerWalk2.bmp" type="Texture" id=3] +[ext_resource path="res://images/units/Sword1.bmp" type="Texture" id=4] +[ext_resource path="res://images/units/Swipe1.bmp" type="Texture" id=5] +[ext_resource path="res://images/units/OgerWalk3.bmp" type="Texture" id=6] +[ext_resource path="res://images/units/SwordSwipe2.bmp" type="Texture" id=7] +[ext_resource path="res://images/units/Sword4.bmp" type="Texture" id=8] +[ext_resource path="res://images/units/Sword6.bmp" type="Texture" id=9] +[ext_resource path="res://images/units/Sword5.bmp" type="Texture" id=10] +[ext_resource path="res://images/units/SwordSwipe4.bmp" type="Texture" id=11] +[ext_resource path="res://images/units/Sword8.bmp" type="Texture" id=12] +[ext_resource path="res://images/units/SwordSwipe3.bmp" type="Texture" id=13] +[ext_resource path="res://images/units/Sword.bmp" type="Texture" id=14] +[ext_resource path="res://images/units/OgerWalk.bmp" type="Texture" id=15] +[ext_resource path="res://images/units/OgerWalk4.bmp" type="Texture" id=16] +[ext_resource path="res://images/units/Sword3.bmp" type="Texture" id=17] +[ext_resource path="res://images/units/OgerWalk0.bmp" type="Texture" id=18] +[ext_resource path="res://images/units/Sword7.bmp" type="Texture" id=19] +[ext_resource path="res://images/units/OgerWalk1.bmp" type="Texture" id=20] +[ext_resource path="res://images/units/SwordSwipe5.bmp" type="Texture" id=21] +[ext_resource path="res://images/units/Swipe4.bmp" type="Texture" id=22] +[ext_resource path="res://images/units/Sword9.bmp" type="Texture" id=23] +[ext_resource path="res://images/units/Swipe3.bmp" type="Texture" id=24] +[ext_resource path="res://images/units/Swipe2.bmp" type="Texture" id=25] +[ext_resource path="res://unit/OgerWalkAnimation.gd" type="Script" id=26] + +[sub_resource type="SpriteFrames" id=1] +animations = [ { +"frames": [ ExtResource( 15 ), ExtResource( 25 ), ExtResource( 5 ), ExtResource( 25 ), ExtResource( 24 ), ExtResource( 22 ), ExtResource( 15 ), ExtResource( 15 ), ExtResource( 15 ), ExtResource( 15 ), ExtResource( 15 ) ], +"loop": true, +"name": "Swipe", +"speed": 5.0 +}, { +"frames": [ ExtResource( 15 ) ], +"loop": true, +"name": "slash", +"speed": 5.0 +}, { +"frames": [ ExtResource( 20 ), ExtResource( 3 ), ExtResource( 6 ), ExtResource( 16 ), ExtResource( 18 ) ], +"loop": true, +"name": "Walk", +"speed": 5.0 +}, { +"frames": [ ExtResource( 15 ) ], +"loop": true, +"name": "Stab", +"speed": 5.0 +} ] + +[sub_resource type="SpriteFrames" id=2] +animations = [ { +"frames": [ ExtResource( 14 ), ExtResource( 1 ), ExtResource( 7 ), ExtResource( 13 ), ExtResource( 11 ), ExtResource( 21 ), ExtResource( 14 ), ExtResource( 14 ), ExtResource( 14 ), ExtResource( 14 ), ExtResource( 14 ) ], +"loop": true, +"name": "Swipe", +"speed": 5.0 +}, { +"frames": [ ExtResource( 14 ), ExtResource( 4 ), ExtResource( 2 ), ExtResource( 17 ), ExtResource( 8 ), ExtResource( 10 ), ExtResource( 9 ), ExtResource( 19 ), ExtResource( 12 ), ExtResource( 23 ), ExtResource( 14 ) ], +"loop": true, +"name": "idek", +"speed": 5.0 +} ] + +[node name="Node2D" type="Node2D"] +position = Vector2( 0.81081, -2 ) +script = ExtResource( 26 ) + +[node name="asprOger" type="AnimatedSprite" parent="."] +scale = Vector2( 0.333, 0.333 ) +z_as_relative = false +frames = SubResource( 1 ) +animation = "Swipe" +frame = 6 +speed_scale = 1.6 +playing = true +centered = false + +[node name="Sword" type="AnimatedSprite" parent="."] +scale = Vector2( 0.333, 0.333 ) +frames = SubResource( 2 ) +animation = "Swipe" +frame = 6 +speed_scale = 1.6 +playing = true +centered = false diff --git a/Client/unit/wolf.tscn b/Client/unit/wolf.tscn new file mode 100644 index 0000000..a92d522 --- /dev/null +++ b/Client/unit/wolf.tscn @@ -0,0 +1,34 @@ +[gd_scene load_steps=10 format=2] + +[ext_resource path="res://images/units/AnimalWalk3.bmp" type="Texture" id=1] +[ext_resource path="res://images/units/AnimalWalk1.bmp" type="Texture" id=2] +[ext_resource path="res://images/units/AnimalWalk2.bmp" type="Texture" id=3] +[ext_resource path="res://images/units/Animal.bmp" type="Texture" id=4] +[ext_resource path="res://images/units/AnimalWalk4.bmp" type="Texture" id=5] +[ext_resource path="res://images/units/AnimalBite1.bmp" type="Texture" id=6] +[ext_resource path="res://images/units/AnimalBite2.bmp" type="Texture" id=7] +[ext_resource path="res://images/units/AnimalBite3.bmp" type="Texture" id=8] + +[sub_resource type="SpriteFrames" id=1] +animations = [ { +"frames": [ ExtResource( 4 ), ExtResource( 6 ), ExtResource( 7 ), ExtResource( 8 ), ExtResource( 4 ), ExtResource( 4 ), ExtResource( 4 ), ExtResource( 4 ), ExtResource( 4 ), ExtResource( 4 ), ExtResource( 4 ) ], +"loop": true, +"name": "Bite", +"speed": 9.0 +}, { +"frames": [ ExtResource( 3 ), ExtResource( 1 ), ExtResource( 3 ), ExtResource( 2 ), ExtResource( 5 ), ExtResource( 2 ) ], +"loop": true, +"name": "Walk", +"speed": 5.0 +} ] + +[node name="Node2D" type="Node2D"] + +[node name="AnimatedSprite" type="AnimatedSprite" parent="."] +scale = Vector2( 0.333, 0.333 ) +frames = SubResource( 1 ) +animation = "Bite" +speed_scale = 1.6 +playing = true +centered = false +flip_h = true diff --git a/Client/unit/Überraschungsmagier.tscn b/Client/unit/Überraschungsmagier.tscn new file mode 100644 index 0000000..7abdf1e --- /dev/null +++ b/Client/unit/Überraschungsmagier.tscn @@ -0,0 +1,36 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://images/units/ÜberraschungsmagierWalk.bmp" type="Texture" id=1] +[ext_resource path="res://images/units/ÜberraschungsmagierSword4.bmp" type="Texture" id=2] +[ext_resource path="res://images/units/ÜberraschungsmagierSword3.bmp" type="Texture" id=3] +[ext_resource path="res://images/units/ÜberraschungsmagierStartWalk1.bmp" type="Texture" id=4] +[ext_resource path="res://images/units/Überraschungsmagier.bmp" type="Texture" id=5] + +[sub_resource type="SpriteFrames" id=1] +animations = [ { +"frames": [ ExtResource( 5 ), ExtResource( 4 ), ExtResource( 1 ), ExtResource( 2 ), ExtResource( 3 ), ExtResource( 5 ), ExtResource( 5 ), ExtResource( 5 ), ExtResource( 5 ), ExtResource( 5 ), ExtResource( 5 ) ], +"loop": true, +"name": "Sword", +"speed": 5.0 +}, { +"frames": [ ExtResource( 1 ) ], +"loop": true, +"name": "Walk", +"speed": 5.0 +}, { +"frames": [ ExtResource( 5 ), ExtResource( 4 ), ExtResource( 1 ), ExtResource( 1 ), ExtResource( 1 ), ExtResource( 1 ), ExtResource( 5 ), ExtResource( 5 ), ExtResource( 5 ), ExtResource( 5 ), ExtResource( 5 ) ], +"loop": true, +"name": "Start Walking", +"speed": 5.0 +} ] + +[node name="Node2D" type="Node2D"] + +[node name="AnimatedSprite" type="AnimatedSprite" parent="."] +scale = Vector2( 0.333, 0.333 ) +frames = SubResource( 1 ) +animation = "Sword" +frame = 6 +speed_scale = 1.6 +playing = true +centered = false diff --git a/Client/worldMapTiles.gd b/Client/worldMapTiles.gd new file mode 100644 index 0000000..7d6a3d1 --- /dev/null +++ b/Client/worldMapTiles.gd @@ -0,0 +1,107 @@ +extends TileMap + +signal tileSelected + +var tileType = {'GRASS' : 0, 'FOREST_DENSE' : 1, 'FOREST' : 2, 'FOREST_SPACED' : 3, 'BLACK' : 4} + +#var switches = 0 +#var oldpos = Vector2(1,2) +var Army = preload("res://ArmyWM.tscn") +#vars for offsetting armies due to diplo +var xOffs = [64, 0, 64] +var yOffs = [0, 64, 64] + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +#func _process(delta): +# var mousePos = get_viewport().get_mouse_position() +# var loc = world_to_map(mousePos) +# var cell = get_cell(loc.x, loc.y) +# if (cell != -1): +# # print(self.tile_set.tile_get_name(cell)) +# #print(cell , "x is " ,loc.x, " and y is: ",loc.y) +# pass +# if (loc.x!=oldpos.x): +# switches += 1 +# oldpos=loc +# print("switches: " ,switches) + + +func addtile(tiledata): + set_cell(tiledata.x, tiledata.y, tileType[tiledata['terrain']]) + +func addArmy(armyName, armyData, tile): + var token = Army.instance() + var diplo = PlayerManager.checkDiplo(armyData['faction']) + var xoff = 32 + var yoff = 32 + if diplo == 'neutral': + xoff += xOffs[0] + yoff += yOffs[0] + elif diplo == 'allies': + xoff += xOffs[1] + yoff += yOffs[1] + elif diplo == 'enemies': + xoff += xOffs[2] + yoff += yOffs[2] + get_node('armies').add_child(token) + var pos = Vector2() + pos.x = tile['x'] + pos.y = tile['y'] +# print('armyposition') +# print(pos) +# pos.x = tile['x']+xoff +# pos.y = tile['y']+yoff +# print('armyposition') +# print(pos) + pos = map_to_world(pos) + pos.x += xoff + pos.y += yoff + token.goto(pos.x, pos.y) + token.name = armyName + pass + +func _input(event): + var notile= 'empty tile clicked' + if event is InputEventMouseButton: + var index = event.get_button_index() + if 1 == index or 2 == index: + if not event.is_pressed(): + if not PlayerManager.subMenuOpen: + var camera = get_parent().get_node("Camera2D") + var mousePos = get_global_mouse_position() + camera.offset + if mousePos[0] < WorldManager.UIBorder: + var loc = world_to_map(mousePos) + print("click: ", loc.x,", ", loc.y) + var tiles = WorldManager.worldTiles + if tiles.has(String(loc.x)): + var x = tiles[String(loc.x)] + if x.has(String(loc.y)): + var result = x[String(loc.y)] + if index == 1: + WorldManager.selectedRegion = result + WorldManager.selectedArmy = null + WorldManager.selecterArmydiplo = 'none' + #emit_signal("tileSelected") + print("tile selected: ", result) + DataManager.selectedTile = result; + # if index == 2: + # if WorldManager.selecterArmydiplo == 'own': + # var same = true + # print(WorldManager.selectedArmy, WorldManager.selecterArmydiplo) + # if not WorldManager.selectedRegion.x == result.x: + # print("x matches not") + # same = false + # if not WorldManager.selectedRegion.y == result.y: + # print("y matches not") + # same = false + # if not same: + # print("right click with own army") + else: + print(notile) + else: + print(notile) + diff --git a/Client/worldTiles.tres b/Client/worldTiles.tres new file mode 100644 index 0000000..8e3d59d --- /dev/null +++ b/Client/worldTiles.tres @@ -0,0 +1,85 @@ +[gd_resource type="TileSet" load_steps=2 format=2] + +[ext_resource path="res://images/WorldTiles.png" type="Texture" id=1] + +[resource] +0/name = "Grass" +0/texture = ExtResource( 1 ) +0/tex_offset = Vector2( 0, 0 ) +0/modulate = Color( 1, 1, 1, 1 ) +0/region = Rect2( 0, 0, 128, 128 ) +0/tile_mode = 0 +0/occluder_offset = Vector2( 0, 0 ) +0/navigation_offset = Vector2( 0, 0 ) +0/shapes = [ ] +0/z_index = 0 +1/name = "Forest dense" +1/texture = ExtResource( 1 ) +1/tex_offset = Vector2( 0, 0 ) +1/modulate = Color( 1, 1, 1, 1 ) +1/region = Rect2( 0, 128, 128, 128 ) +1/tile_mode = 0 +1/occluder_offset = Vector2( 0, 0 ) +1/navigation_offset = Vector2( 0, 0 ) +1/shapes = [ ] +1/z_index = 0 +2/name = "Forest" +2/texture = ExtResource( 1 ) +2/tex_offset = Vector2( 0, 0 ) +2/modulate = Color( 1, 1, 1, 1 ) +2/region = Rect2( 128, 128, 128, 128 ) +2/tile_mode = 0 +2/occluder_offset = Vector2( 0, 0 ) +2/navigation_offset = Vector2( 0, 0 ) +2/shapes = [ ] +2/z_index = 0 +3/name = "Forest with space" +3/texture = ExtResource( 1 ) +3/tex_offset = Vector2( 0, 0 ) +3/modulate = Color( 1, 1, 1, 1 ) +3/region = Rect2( 256, 128, 128, 128 ) +3/tile_mode = 0 +3/occluder_offset = Vector2( 0, 0 ) +3/navigation_offset = Vector2( 0, 0 ) +3/shapes = [ ] +3/z_index = 0 +4/name = "Black" +4/texture = ExtResource( 1 ) +4/tex_offset = Vector2( 0, 0 ) +4/modulate = Color( 1, 1, 1, 1 ) +4/region = Rect2( 0, 640, 128, 128 ) +4/tile_mode = 0 +4/occluder_offset = Vector2( 0, 0 ) +4/navigation_offset = Vector2( 0, 0 ) +4/shapes = [ ] +4/z_index = 0 +5/name = "Water Deep" +5/texture = ExtResource( 1 ) +5/tex_offset = Vector2( 0, 0 ) +5/modulate = Color( 1, 1, 1, 1 ) +5/region = Rect2( 256, 640, 128, 128 ) +5/tile_mode = 0 +5/occluder_offset = Vector2( 0, 0 ) +5/navigation_offset = Vector2( 0, 0 ) +5/shapes = [ ] +5/z_index = 0 +6/name = "Water bright" +6/texture = ExtResource( 1 ) +6/tex_offset = Vector2( 0, 0 ) +6/modulate = Color( 1, 1, 1, 1 ) +6/region = Rect2( 512, 640, 128, 128 ) +6/tile_mode = 0 +6/occluder_offset = Vector2( 0, 0 ) +6/navigation_offset = Vector2( 0, 0 ) +6/shapes = [ ] +6/z_index = 0 +7/name = "aOddTile" +7/texture = ExtResource( 1 ) +7/tex_offset = Vector2( 0, 0 ) +7/modulate = Color( 1, 1, 1, 1 ) +7/region = Rect2( 256, 256, 128, 128 ) +7/tile_mode = 0 +7/occluder_offset = Vector2( 0, 0 ) +7/navigation_offset = Vector2( 0, 0 ) +7/shapes = [ ] +7/z_index = 0 diff --git a/Server/.import/.gdignore b/Server/.import/.gdignore new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Server/.import/.gdignore @@ -0,0 +1 @@ + diff --git a/Server/.import/02.jpg-c7ea5b0e780647a14a4c9a47508a7798.md5 b/Server/.import/02.jpg-c7ea5b0e780647a14a4c9a47508a7798.md5 new file mode 100644 index 0000000..cd35151 --- /dev/null +++ b/Server/.import/02.jpg-c7ea5b0e780647a14a4c9a47508a7798.md5 @@ -0,0 +1,3 @@ +source_md5="94adcab0e6e2712b8c937402a0c33092" +dest_md5="b6cfbb9b93b255c94a98bf2362da6f07" + diff --git a/Server/.import/02.jpg-c7ea5b0e780647a14a4c9a47508a7798.stex b/Server/.import/02.jpg-c7ea5b0e780647a14a4c9a47508a7798.stex new file mode 100644 index 0000000..3ee1582 Binary files /dev/null and b/Server/.import/02.jpg-c7ea5b0e780647a14a4c9a47508a7798.stex differ diff --git a/Server/.import/Menu.png-52f583372807917b5904b192544d8367.md5 b/Server/.import/Menu.png-52f583372807917b5904b192544d8367.md5 new file mode 100644 index 0000000..9e80d3e --- /dev/null +++ b/Server/.import/Menu.png-52f583372807917b5904b192544d8367.md5 @@ -0,0 +1,3 @@ +source_md5="de5f2cc0e7bf62a05c3fce8d23d28b03" +dest_md5="1a2444408128401dedd9efabd321a992" + diff --git a/Server/.import/Menu.png-52f583372807917b5904b192544d8367.stex b/Server/.import/Menu.png-52f583372807917b5904b192544d8367.stex new file mode 100644 index 0000000..c79e94b Binary files /dev/null and b/Server/.import/Menu.png-52f583372807917b5904b192544d8367.stex differ diff --git a/Server/.import/Neue Bitmap.bmp-a92ba4f9cfd35c1e0ce4e2fd187dd43f.md5 b/Server/.import/Neue Bitmap.bmp-a92ba4f9cfd35c1e0ce4e2fd187dd43f.md5 new file mode 100644 index 0000000..cfe73d6 --- /dev/null +++ b/Server/.import/Neue Bitmap.bmp-a92ba4f9cfd35c1e0ce4e2fd187dd43f.md5 @@ -0,0 +1 @@ +source_md5="d41d8cd98f00b204e9800998ecf8427e" diff --git a/Server/.import/Ressource Nodes.png-48dac8994652f7d5abded36fd7f47058.md5 b/Server/.import/Ressource Nodes.png-48dac8994652f7d5abded36fd7f47058.md5 new file mode 100644 index 0000000..96c58e7 --- /dev/null +++ b/Server/.import/Ressource Nodes.png-48dac8994652f7d5abded36fd7f47058.md5 @@ -0,0 +1,3 @@ +source_md5="0f8db215313447c8ad6db17ac3c7b37d" +dest_md5="5e4c4e62b06e567d116d0062b91caada" + diff --git a/Server/.import/Ressource Nodes.png-48dac8994652f7d5abded36fd7f47058.stex b/Server/.import/Ressource Nodes.png-48dac8994652f7d5abded36fd7f47058.stex new file mode 100644 index 0000000..d2fef10 Binary files /dev/null and b/Server/.import/Ressource Nodes.png-48dac8994652f7d5abded36fd7f47058.stex differ diff --git a/Server/.import/Ressources.png-99a132724593a7d6f1ac360b946ba7ce.md5 b/Server/.import/Ressources.png-99a132724593a7d6f1ac360b946ba7ce.md5 new file mode 100644 index 0000000..04802fb --- /dev/null +++ b/Server/.import/Ressources.png-99a132724593a7d6f1ac360b946ba7ce.md5 @@ -0,0 +1,3 @@ +source_md5="e408f8fc7e109fc4cbb4ac8a52894225" +dest_md5="947a4902ef1d4f76cf414757b4600150" + diff --git a/Server/.import/Ressources.png-99a132724593a7d6f1ac360b946ba7ce.stex b/Server/.import/Ressources.png-99a132724593a7d6f1ac360b946ba7ce.stex new file mode 100644 index 0000000..cce7475 Binary files /dev/null and b/Server/.import/Ressources.png-99a132724593a7d6f1ac360b946ba7ce.stex differ diff --git a/Server/.import/TIOTestAudioOne.mp3-91423447c89ab96ff6af8d6e9d4abc44.md5 b/Server/.import/TIOTestAudioOne.mp3-91423447c89ab96ff6af8d6e9d4abc44.md5 new file mode 100644 index 0000000..2dd005c --- /dev/null +++ b/Server/.import/TIOTestAudioOne.mp3-91423447c89ab96ff6af8d6e9d4abc44.md5 @@ -0,0 +1,3 @@ +source_md5="5a1c4a6da7a36b79ac41992d3107f483" +dest_md5="3d7e7305706e3b0a6dee8da556bfdc0b" + diff --git a/Server/.import/TIOTestAudioOne.mp3-91423447c89ab96ff6af8d6e9d4abc44.mp3str b/Server/.import/TIOTestAudioOne.mp3-91423447c89ab96ff6af8d6e9d4abc44.mp3str new file mode 100644 index 0000000..6f1a0d4 Binary files /dev/null and b/Server/.import/TIOTestAudioOne.mp3-91423447c89ab96ff6af8d6e9d4abc44.mp3str differ diff --git a/Server/.import/WIN_20200422_18_06_18_Pro.jpg-fbb8d4acafa53acf24891eb8ea5a4d97.md5 b/Server/.import/WIN_20200422_18_06_18_Pro.jpg-fbb8d4acafa53acf24891eb8ea5a4d97.md5 new file mode 100644 index 0000000..37c84ad --- /dev/null +++ b/Server/.import/WIN_20200422_18_06_18_Pro.jpg-fbb8d4acafa53acf24891eb8ea5a4d97.md5 @@ -0,0 +1,3 @@ +source_md5="af0a1b3ba0675a16c2be8ee63e5e56ec" +dest_md5="7424caa713822ff7ad1ff7886618ab79" + diff --git a/Server/.import/WIN_20200422_18_06_18_Pro.jpg-fbb8d4acafa53acf24891eb8ea5a4d97.stex b/Server/.import/WIN_20200422_18_06_18_Pro.jpg-fbb8d4acafa53acf24891eb8ea5a4d97.stex new file mode 100644 index 0000000..0628dc6 Binary files /dev/null and b/Server/.import/WIN_20200422_18_06_18_Pro.jpg-fbb8d4acafa53acf24891eb8ea5a4d97.stex differ diff --git a/Server/.import/WIN_20200422_18_06_41_Pro.jpg-ffb92070fd2a5972e67d079b5c98c9d0.md5 b/Server/.import/WIN_20200422_18_06_41_Pro.jpg-ffb92070fd2a5972e67d079b5c98c9d0.md5 new file mode 100644 index 0000000..b7b6a0d --- /dev/null +++ b/Server/.import/WIN_20200422_18_06_41_Pro.jpg-ffb92070fd2a5972e67d079b5c98c9d0.md5 @@ -0,0 +1,3 @@ +source_md5="c92af2178872605f3bbb50e3ebbb2f58" +dest_md5="060b9b1938109a431a96ea42ec603224" + diff --git a/Server/.import/WIN_20200422_18_06_41_Pro.jpg-ffb92070fd2a5972e67d079b5c98c9d0.stex b/Server/.import/WIN_20200422_18_06_41_Pro.jpg-ffb92070fd2a5972e67d079b5c98c9d0.stex new file mode 100644 index 0000000..d6a5b09 Binary files /dev/null and b/Server/.import/WIN_20200422_18_06_41_Pro.jpg-ffb92070fd2a5972e67d079b5c98c9d0.stex differ diff --git a/Server/.import/WIN_20200422_18_06_51_Pro.jpg-93574cb619a9049cb2257b7fccfdd887.md5 b/Server/.import/WIN_20200422_18_06_51_Pro.jpg-93574cb619a9049cb2257b7fccfdd887.md5 new file mode 100644 index 0000000..7558b01 --- /dev/null +++ b/Server/.import/WIN_20200422_18_06_51_Pro.jpg-93574cb619a9049cb2257b7fccfdd887.md5 @@ -0,0 +1,3 @@ +source_md5="621d45abfaf5f96a24d81ed6f4631bb6" +dest_md5="73ba23c0dcf3e5926ca7fb01d164bb13" + diff --git a/Server/.import/WIN_20200422_18_06_51_Pro.jpg-93574cb619a9049cb2257b7fccfdd887.stex b/Server/.import/WIN_20200422_18_06_51_Pro.jpg-93574cb619a9049cb2257b7fccfdd887.stex new file mode 100644 index 0000000..2607ca3 Binary files /dev/null and b/Server/.import/WIN_20200422_18_06_51_Pro.jpg-93574cb619a9049cb2257b7fccfdd887.stex differ diff --git a/Server/.import/WIN_20200422_18_07_01_Pro.jpg-5e53bfc036c94bc89d0522306247e55c.md5 b/Server/.import/WIN_20200422_18_07_01_Pro.jpg-5e53bfc036c94bc89d0522306247e55c.md5 new file mode 100644 index 0000000..254dd91 --- /dev/null +++ b/Server/.import/WIN_20200422_18_07_01_Pro.jpg-5e53bfc036c94bc89d0522306247e55c.md5 @@ -0,0 +1,3 @@ +source_md5="c2ebabce0af5046075437a916763f8a4" +dest_md5="bb0debdbb1bbd6dde425332772f7087b" + diff --git a/Server/.import/WIN_20200422_18_07_01_Pro.jpg-5e53bfc036c94bc89d0522306247e55c.stex b/Server/.import/WIN_20200422_18_07_01_Pro.jpg-5e53bfc036c94bc89d0522306247e55c.stex new file mode 100644 index 0000000..dca505d Binary files /dev/null and b/Server/.import/WIN_20200422_18_07_01_Pro.jpg-5e53bfc036c94bc89d0522306247e55c.stex differ diff --git a/Server/.import/WIN_20200422_18_07_05_Pro.jpg-313d8c4267c8afc09407b2e21845eed4.md5 b/Server/.import/WIN_20200422_18_07_05_Pro.jpg-313d8c4267c8afc09407b2e21845eed4.md5 new file mode 100644 index 0000000..58431eb --- /dev/null +++ b/Server/.import/WIN_20200422_18_07_05_Pro.jpg-313d8c4267c8afc09407b2e21845eed4.md5 @@ -0,0 +1,3 @@ +source_md5="f4c461b16b84ec00a353a6e5d45701dd" +dest_md5="90d8d88abd7404f78c4413aef9260fc0" + diff --git a/Server/.import/WIN_20200422_18_07_05_Pro.jpg-313d8c4267c8afc09407b2e21845eed4.stex b/Server/.import/WIN_20200422_18_07_05_Pro.jpg-313d8c4267c8afc09407b2e21845eed4.stex new file mode 100644 index 0000000..5469a41 Binary files /dev/null and b/Server/.import/WIN_20200422_18_07_05_Pro.jpg-313d8c4267c8afc09407b2e21845eed4.stex differ diff --git a/Server/.import/WIN_20200422_18_07_20_Pro.jpg-dcf51736424fed61b9c9d0333fe090f1.md5 b/Server/.import/WIN_20200422_18_07_20_Pro.jpg-dcf51736424fed61b9c9d0333fe090f1.md5 new file mode 100644 index 0000000..b1605ec --- /dev/null +++ b/Server/.import/WIN_20200422_18_07_20_Pro.jpg-dcf51736424fed61b9c9d0333fe090f1.md5 @@ -0,0 +1,3 @@ +source_md5="ac9e07a1b96489280741345737115edd" +dest_md5="834a5b771606afbc9c288aef502fcce1" + diff --git a/Server/.import/WIN_20200422_18_07_20_Pro.jpg-dcf51736424fed61b9c9d0333fe090f1.stex b/Server/.import/WIN_20200422_18_07_20_Pro.jpg-dcf51736424fed61b9c9d0333fe090f1.stex new file mode 100644 index 0000000..5d4fdc0 Binary files /dev/null and b/Server/.import/WIN_20200422_18_07_20_Pro.jpg-dcf51736424fed61b9c9d0333fe090f1.stex differ diff --git a/Server/.import/WIN_20200422_18_07_24_Pro.jpg-f2f00e2f7860ee0e23eca0a163131849.md5 b/Server/.import/WIN_20200422_18_07_24_Pro.jpg-f2f00e2f7860ee0e23eca0a163131849.md5 new file mode 100644 index 0000000..65cbff1 --- /dev/null +++ b/Server/.import/WIN_20200422_18_07_24_Pro.jpg-f2f00e2f7860ee0e23eca0a163131849.md5 @@ -0,0 +1,3 @@ +source_md5="a8f0c311badab8d7c6436be67d053804" +dest_md5="3027de56b3b841909e08582010fd6bf5" + diff --git a/Server/.import/WIN_20200422_18_07_24_Pro.jpg-f2f00e2f7860ee0e23eca0a163131849.stex b/Server/.import/WIN_20200422_18_07_24_Pro.jpg-f2f00e2f7860ee0e23eca0a163131849.stex new file mode 100644 index 0000000..dcca95d Binary files /dev/null and b/Server/.import/WIN_20200422_18_07_24_Pro.jpg-f2f00e2f7860ee0e23eca0a163131849.stex differ diff --git a/Server/.import/WIN_20200422_18_07_27_Pro.jpg-9508d8954984f081b3e9a4cf7c842151.md5 b/Server/.import/WIN_20200422_18_07_27_Pro.jpg-9508d8954984f081b3e9a4cf7c842151.md5 new file mode 100644 index 0000000..251eabe --- /dev/null +++ b/Server/.import/WIN_20200422_18_07_27_Pro.jpg-9508d8954984f081b3e9a4cf7c842151.md5 @@ -0,0 +1,3 @@ +source_md5="9b85480df21833e5156b5d851c07a145" +dest_md5="aab76d71d1107eafb337af5dce4cc03a" + diff --git a/Server/.import/WIN_20200422_18_07_27_Pro.jpg-9508d8954984f081b3e9a4cf7c842151.stex b/Server/.import/WIN_20200422_18_07_27_Pro.jpg-9508d8954984f081b3e9a4cf7c842151.stex new file mode 100644 index 0000000..6030c9b Binary files /dev/null and b/Server/.import/WIN_20200422_18_07_27_Pro.jpg-9508d8954984f081b3e9a4cf7c842151.stex differ diff --git a/Server/.import/WIN_20200422_18_07_35_Pro.jpg-b305aa77daa3cbc8c1e785479de68afb.md5 b/Server/.import/WIN_20200422_18_07_35_Pro.jpg-b305aa77daa3cbc8c1e785479de68afb.md5 new file mode 100644 index 0000000..657d13e --- /dev/null +++ b/Server/.import/WIN_20200422_18_07_35_Pro.jpg-b305aa77daa3cbc8c1e785479de68afb.md5 @@ -0,0 +1,3 @@ +source_md5="d1e3bab8f703428934c17dae8658ab02" +dest_md5="94aab1a5e8b60b5e4016661225997818" + diff --git a/Server/.import/WIN_20200422_18_07_35_Pro.jpg-b305aa77daa3cbc8c1e785479de68afb.stex b/Server/.import/WIN_20200422_18_07_35_Pro.jpg-b305aa77daa3cbc8c1e785479de68afb.stex new file mode 100644 index 0000000..ad02fb9 Binary files /dev/null and b/Server/.import/WIN_20200422_18_07_35_Pro.jpg-b305aa77daa3cbc8c1e785479de68afb.stex differ diff --git a/Server/.import/WIN_20200422_18_07_38_Pro.jpg-02192e0a5efe2550520a5ed3a31b43af.md5 b/Server/.import/WIN_20200422_18_07_38_Pro.jpg-02192e0a5efe2550520a5ed3a31b43af.md5 new file mode 100644 index 0000000..a14a302 --- /dev/null +++ b/Server/.import/WIN_20200422_18_07_38_Pro.jpg-02192e0a5efe2550520a5ed3a31b43af.md5 @@ -0,0 +1,3 @@ +source_md5="53410f072f65cafcd5e1fd3a2dd37c4b" +dest_md5="1b745a2c86b82db180c55010aaab515a" + diff --git a/Server/.import/WIN_20200422_18_07_38_Pro.jpg-02192e0a5efe2550520a5ed3a31b43af.stex b/Server/.import/WIN_20200422_18_07_38_Pro.jpg-02192e0a5efe2550520a5ed3a31b43af.stex new file mode 100644 index 0000000..94ac33a Binary files /dev/null and b/Server/.import/WIN_20200422_18_07_38_Pro.jpg-02192e0a5efe2550520a5ed3a31b43af.stex differ diff --git a/Server/.import/WIN_20200422_18_07_41_Pro.jpg-b89aaa54dff17c17211541c40054871d.md5 b/Server/.import/WIN_20200422_18_07_41_Pro.jpg-b89aaa54dff17c17211541c40054871d.md5 new file mode 100644 index 0000000..fc6851a --- /dev/null +++ b/Server/.import/WIN_20200422_18_07_41_Pro.jpg-b89aaa54dff17c17211541c40054871d.md5 @@ -0,0 +1,3 @@ +source_md5="e19fe16dbaf72833aecad9d34c863614" +dest_md5="4f79161a67e44c4a4040394542f2ba28" + diff --git a/Server/.import/WIN_20200422_18_07_41_Pro.jpg-b89aaa54dff17c17211541c40054871d.stex b/Server/.import/WIN_20200422_18_07_41_Pro.jpg-b89aaa54dff17c17211541c40054871d.stex new file mode 100644 index 0000000..fd58aa3 Binary files /dev/null and b/Server/.import/WIN_20200422_18_07_41_Pro.jpg-b89aaa54dff17c17211541c40054871d.stex differ diff --git a/Server/.import/WIN_20200422_18_07_45_Pro.jpg-6fc079cb62a336cc632b626d7f886482.md5 b/Server/.import/WIN_20200422_18_07_45_Pro.jpg-6fc079cb62a336cc632b626d7f886482.md5 new file mode 100644 index 0000000..d959f65 --- /dev/null +++ b/Server/.import/WIN_20200422_18_07_45_Pro.jpg-6fc079cb62a336cc632b626d7f886482.md5 @@ -0,0 +1,3 @@ +source_md5="e9a8315505b78e0ac942cf0d6b358d43" +dest_md5="90227dc52675cbfb950f51faff25ad84" + diff --git a/Server/.import/WIN_20200422_18_07_45_Pro.jpg-6fc079cb62a336cc632b626d7f886482.stex b/Server/.import/WIN_20200422_18_07_45_Pro.jpg-6fc079cb62a336cc632b626d7f886482.stex new file mode 100644 index 0000000..bd4b308 Binary files /dev/null and b/Server/.import/WIN_20200422_18_07_45_Pro.jpg-6fc079cb62a336cc632b626d7f886482.stex differ diff --git a/Server/.import/WIN_20200422_18_07_51_Pro.jpg-249d6580ad823efb487cdb1e44a06442.md5 b/Server/.import/WIN_20200422_18_07_51_Pro.jpg-249d6580ad823efb487cdb1e44a06442.md5 new file mode 100644 index 0000000..90ae308 --- /dev/null +++ b/Server/.import/WIN_20200422_18_07_51_Pro.jpg-249d6580ad823efb487cdb1e44a06442.md5 @@ -0,0 +1,3 @@ +source_md5="296d16e7f5d77531a5be04c856fc946a" +dest_md5="82b619e32d4af0bd9e2e2f87b4a3e08f" + diff --git a/Server/.import/WIN_20200422_18_07_51_Pro.jpg-249d6580ad823efb487cdb1e44a06442.stex b/Server/.import/WIN_20200422_18_07_51_Pro.jpg-249d6580ad823efb487cdb1e44a06442.stex new file mode 100644 index 0000000..b5336f7 Binary files /dev/null and b/Server/.import/WIN_20200422_18_07_51_Pro.jpg-249d6580ad823efb487cdb1e44a06442.stex differ diff --git a/Server/.import/WIN_20200422_18_07_55_Pro.jpg-d6ce827162d94db61ff4a3d9035d26e4.md5 b/Server/.import/WIN_20200422_18_07_55_Pro.jpg-d6ce827162d94db61ff4a3d9035d26e4.md5 new file mode 100644 index 0000000..a216170 --- /dev/null +++ b/Server/.import/WIN_20200422_18_07_55_Pro.jpg-d6ce827162d94db61ff4a3d9035d26e4.md5 @@ -0,0 +1,3 @@ +source_md5="6083dd11876e33ddc93a939066b630ed" +dest_md5="f97ffe53f2994ae21de99d8b7346b6d6" + diff --git a/Server/.import/WIN_20200422_18_07_55_Pro.jpg-d6ce827162d94db61ff4a3d9035d26e4.stex b/Server/.import/WIN_20200422_18_07_55_Pro.jpg-d6ce827162d94db61ff4a3d9035d26e4.stex new file mode 100644 index 0000000..fb9c022 Binary files /dev/null and b/Server/.import/WIN_20200422_18_07_55_Pro.jpg-d6ce827162d94db61ff4a3d9035d26e4.stex differ diff --git a/Server/.import/WIN_20200422_18_07_57_Pro.jpg-6f7ca974f7dcd22ce6495dad4de88ae0.md5 b/Server/.import/WIN_20200422_18_07_57_Pro.jpg-6f7ca974f7dcd22ce6495dad4de88ae0.md5 new file mode 100644 index 0000000..627ea64 --- /dev/null +++ b/Server/.import/WIN_20200422_18_07_57_Pro.jpg-6f7ca974f7dcd22ce6495dad4de88ae0.md5 @@ -0,0 +1,3 @@ +source_md5="0937615d2a1976f7f03680f591bac0ce" +dest_md5="e176526c12ae02f1ff88041cdfe1549a" + diff --git a/Server/.import/WIN_20200422_18_07_57_Pro.jpg-6f7ca974f7dcd22ce6495dad4de88ae0.stex b/Server/.import/WIN_20200422_18_07_57_Pro.jpg-6f7ca974f7dcd22ce6495dad4de88ae0.stex new file mode 100644 index 0000000..5140c0c Binary files /dev/null and b/Server/.import/WIN_20200422_18_07_57_Pro.jpg-6f7ca974f7dcd22ce6495dad4de88ae0.stex differ diff --git a/Server/.import/WIN_20200422_18_08_00_Pro.jpg-c888e31982b20c287d2da967e9f430ae.md5 b/Server/.import/WIN_20200422_18_08_00_Pro.jpg-c888e31982b20c287d2da967e9f430ae.md5 new file mode 100644 index 0000000..43c6f67 --- /dev/null +++ b/Server/.import/WIN_20200422_18_08_00_Pro.jpg-c888e31982b20c287d2da967e9f430ae.md5 @@ -0,0 +1,3 @@ +source_md5="9885bef21c2513966c9667ff46076750" +dest_md5="a69bff8f27dd2f14e01c3dd1d6acadb9" + diff --git a/Server/.import/WIN_20200422_18_08_00_Pro.jpg-c888e31982b20c287d2da967e9f430ae.stex b/Server/.import/WIN_20200422_18_08_00_Pro.jpg-c888e31982b20c287d2da967e9f430ae.stex new file mode 100644 index 0000000..7f7e8b3 Binary files /dev/null and b/Server/.import/WIN_20200422_18_08_00_Pro.jpg-c888e31982b20c287d2da967e9f430ae.stex differ diff --git a/Server/.import/WIN_20200422_18_08_03_Pro.jpg-414775b1576ebdf59eb756352ce8f969.md5 b/Server/.import/WIN_20200422_18_08_03_Pro.jpg-414775b1576ebdf59eb756352ce8f969.md5 new file mode 100644 index 0000000..004ecae --- /dev/null +++ b/Server/.import/WIN_20200422_18_08_03_Pro.jpg-414775b1576ebdf59eb756352ce8f969.md5 @@ -0,0 +1,3 @@ +source_md5="cea4d017c459865dd2c43761ba1939e5" +dest_md5="d81fdf6f1f2a6239fd4ad728a30b63d7" + diff --git a/Server/.import/WIN_20200422_18_08_03_Pro.jpg-414775b1576ebdf59eb756352ce8f969.stex b/Server/.import/WIN_20200422_18_08_03_Pro.jpg-414775b1576ebdf59eb756352ce8f969.stex new file mode 100644 index 0000000..07de1c9 Binary files /dev/null and b/Server/.import/WIN_20200422_18_08_03_Pro.jpg-414775b1576ebdf59eb756352ce8f969.stex differ diff --git a/Server/.import/WIN_20200422_18_08_11_Pro.jpg-7c60efb01ebe061240fdcf09e753425d.md5 b/Server/.import/WIN_20200422_18_08_11_Pro.jpg-7c60efb01ebe061240fdcf09e753425d.md5 new file mode 100644 index 0000000..895883a --- /dev/null +++ b/Server/.import/WIN_20200422_18_08_11_Pro.jpg-7c60efb01ebe061240fdcf09e753425d.md5 @@ -0,0 +1,3 @@ +source_md5="e926ae115ee24d9fcf839cc63ba571af" +dest_md5="e82b1608dd6566627c603e1d6f77b60d" + diff --git a/Server/.import/WIN_20200422_18_08_11_Pro.jpg-7c60efb01ebe061240fdcf09e753425d.stex b/Server/.import/WIN_20200422_18_08_11_Pro.jpg-7c60efb01ebe061240fdcf09e753425d.stex new file mode 100644 index 0000000..22c71e5 Binary files /dev/null and b/Server/.import/WIN_20200422_18_08_11_Pro.jpg-7c60efb01ebe061240fdcf09e753425d.stex differ diff --git a/Server/.import/WIN_20200422_18_08_15_Pro.jpg-0ef689844d9a66a25750f82f28f20bbc.md5 b/Server/.import/WIN_20200422_18_08_15_Pro.jpg-0ef689844d9a66a25750f82f28f20bbc.md5 new file mode 100644 index 0000000..381e279 --- /dev/null +++ b/Server/.import/WIN_20200422_18_08_15_Pro.jpg-0ef689844d9a66a25750f82f28f20bbc.md5 @@ -0,0 +1,3 @@ +source_md5="e05e4a3f3b7dcf5e40e7472c1f5350bd" +dest_md5="c5a90046e5dd0ebdab5206f5bc964e19" + diff --git a/Server/.import/WIN_20200422_18_08_15_Pro.jpg-0ef689844d9a66a25750f82f28f20bbc.stex b/Server/.import/WIN_20200422_18_08_15_Pro.jpg-0ef689844d9a66a25750f82f28f20bbc.stex new file mode 100644 index 0000000..732106f Binary files /dev/null and b/Server/.import/WIN_20200422_18_08_15_Pro.jpg-0ef689844d9a66a25750f82f28f20bbc.stex differ diff --git a/Server/.import/WIN_20200422_18_08_18_Pro.jpg-e4380e5a01d896a81d0695b01bc462fb.md5 b/Server/.import/WIN_20200422_18_08_18_Pro.jpg-e4380e5a01d896a81d0695b01bc462fb.md5 new file mode 100644 index 0000000..1b3a389 --- /dev/null +++ b/Server/.import/WIN_20200422_18_08_18_Pro.jpg-e4380e5a01d896a81d0695b01bc462fb.md5 @@ -0,0 +1,3 @@ +source_md5="557bae56a1b1431e6a8a7db190512165" +dest_md5="9e4383646126717811fdd689ccb79ce4" + diff --git a/Server/.import/WIN_20200422_18_08_18_Pro.jpg-e4380e5a01d896a81d0695b01bc462fb.stex b/Server/.import/WIN_20200422_18_08_18_Pro.jpg-e4380e5a01d896a81d0695b01bc462fb.stex new file mode 100644 index 0000000..7d6cd4c Binary files /dev/null and b/Server/.import/WIN_20200422_18_08_18_Pro.jpg-e4380e5a01d896a81d0695b01bc462fb.stex differ diff --git a/Server/.import/WIN_20200422_18_08_22_Pro.jpg-af7e93c5aee8fa3e0cbb0742105c3a93.md5 b/Server/.import/WIN_20200422_18_08_22_Pro.jpg-af7e93c5aee8fa3e0cbb0742105c3a93.md5 new file mode 100644 index 0000000..4449e06 --- /dev/null +++ b/Server/.import/WIN_20200422_18_08_22_Pro.jpg-af7e93c5aee8fa3e0cbb0742105c3a93.md5 @@ -0,0 +1,3 @@ +source_md5="d30009461a47b294c99336c7b1c17d53" +dest_md5="51a8d9563e8a78d30e0a26aab8d97c30" + diff --git a/Server/.import/WIN_20200422_18_08_22_Pro.jpg-af7e93c5aee8fa3e0cbb0742105c3a93.stex b/Server/.import/WIN_20200422_18_08_22_Pro.jpg-af7e93c5aee8fa3e0cbb0742105c3a93.stex new file mode 100644 index 0000000..f31a12a Binary files /dev/null and b/Server/.import/WIN_20200422_18_08_22_Pro.jpg-af7e93c5aee8fa3e0cbb0742105c3a93.stex differ diff --git a/Server/.import/WorldTiles.png-0c3e8877d279a129ba884ba7fa2fb70a.md5 b/Server/.import/WorldTiles.png-0c3e8877d279a129ba884ba7fa2fb70a.md5 new file mode 100644 index 0000000..d174b5e --- /dev/null +++ b/Server/.import/WorldTiles.png-0c3e8877d279a129ba884ba7fa2fb70a.md5 @@ -0,0 +1,3 @@ +source_md5="a8f2dc25b32c3d14b9f46abc7660f5d3" +dest_md5="b6aac124c4cb330d42638284c9d95d65" + diff --git a/Server/.import/WorldTiles.png-0c3e8877d279a129ba884ba7fa2fb70a.stex b/Server/.import/WorldTiles.png-0c3e8877d279a129ba884ba7fa2fb70a.stex new file mode 100644 index 0000000..e0c2691 Binary files /dev/null and b/Server/.import/WorldTiles.png-0c3e8877d279a129ba884ba7fa2fb70a.stex differ diff --git a/Server/.import/WorldUIBackground.png-d9ea8396048cdc620ef0fa1ddaf72275.md5 b/Server/.import/WorldUIBackground.png-d9ea8396048cdc620ef0fa1ddaf72275.md5 new file mode 100644 index 0000000..90dcd47 --- /dev/null +++ b/Server/.import/WorldUIBackground.png-d9ea8396048cdc620ef0fa1ddaf72275.md5 @@ -0,0 +1,3 @@ +source_md5="0947c156d33c551eb22050e58984f0a3" +dest_md5="b284e685df09cf0502ce7456ca348998" + diff --git a/Server/.import/WorldUIBackground.png-d9ea8396048cdc620ef0fa1ddaf72275.stex b/Server/.import/WorldUIBackground.png-d9ea8396048cdc620ef0fa1ddaf72275.stex new file mode 100644 index 0000000..d621b23 Binary files /dev/null and b/Server/.import/WorldUIBackground.png-d9ea8396048cdc620ef0fa1ddaf72275.stex differ diff --git a/Server/.import/armybutton.png-8169f46c3f431fde5996afbdd799dd64.md5 b/Server/.import/armybutton.png-8169f46c3f431fde5996afbdd799dd64.md5 new file mode 100644 index 0000000..d7cd1ee --- /dev/null +++ b/Server/.import/armybutton.png-8169f46c3f431fde5996afbdd799dd64.md5 @@ -0,0 +1,3 @@ +source_md5="ce454e0ebbaab1de8ac2e1e99c8368b0" +dest_md5="91e4a8fea7ce22bbea075b0b74c6a1b8" + diff --git a/Server/.import/armybutton.png-8169f46c3f431fde5996afbdd799dd64.stex b/Server/.import/armybutton.png-8169f46c3f431fde5996afbdd799dd64.stex new file mode 100644 index 0000000..dcdbed1 Binary files /dev/null and b/Server/.import/armybutton.png-8169f46c3f431fde5996afbdd799dd64.stex differ diff --git a/Server/.import/armybuttonhover.png-c387e972f019a2bf19e110aad4c9cd26.md5 b/Server/.import/armybuttonhover.png-c387e972f019a2bf19e110aad4c9cd26.md5 new file mode 100644 index 0000000..f0a23a0 --- /dev/null +++ b/Server/.import/armybuttonhover.png-c387e972f019a2bf19e110aad4c9cd26.md5 @@ -0,0 +1,3 @@ +source_md5="57d65f49fba79f938426f48a2a8c84db" +dest_md5="a17aa4317251fc0be9fe5f368c54b255" + diff --git a/Server/.import/armybuttonhover.png-c387e972f019a2bf19e110aad4c9cd26.stex b/Server/.import/armybuttonhover.png-c387e972f019a2bf19e110aad4c9cd26.stex new file mode 100644 index 0000000..57df32f Binary files /dev/null and b/Server/.import/armybuttonhover.png-c387e972f019a2bf19e110aad4c9cd26.stex differ diff --git a/Server/.import/armybuttonpressed.png-53f3f6f84e34aa63ef4388805d826feb.md5 b/Server/.import/armybuttonpressed.png-53f3f6f84e34aa63ef4388805d826feb.md5 new file mode 100644 index 0000000..8012715 --- /dev/null +++ b/Server/.import/armybuttonpressed.png-53f3f6f84e34aa63ef4388805d826feb.md5 @@ -0,0 +1,3 @@ +source_md5="26cd54af1c83d21b8962b7b35e757ddd" +dest_md5="ff9510c747f396b70c714cdcce498ac6" + diff --git a/Server/.import/armybuttonpressed.png-53f3f6f84e34aa63ef4388805d826feb.stex b/Server/.import/armybuttonpressed.png-53f3f6f84e34aa63ef4388805d826feb.stex new file mode 100644 index 0000000..816e9c1 Binary files /dev/null and b/Server/.import/armybuttonpressed.png-53f3f6f84e34aa63ef4388805d826feb.stex differ diff --git a/Server/.import/brown BG.png-d04ae44e33c0ead89d4e8e4f5484a79c.md5 b/Server/.import/brown BG.png-d04ae44e33c0ead89d4e8e4f5484a79c.md5 new file mode 100644 index 0000000..55ef18a --- /dev/null +++ b/Server/.import/brown BG.png-d04ae44e33c0ead89d4e8e4f5484a79c.md5 @@ -0,0 +1,3 @@ +source_md5="303533ea72fb630c34f0488f1ad209c5" +dest_md5="3667623cf28e30b94ae57d8afbf0bd55" + diff --git a/Server/.import/brown BG.png-d04ae44e33c0ead89d4e8e4f5484a79c.stex b/Server/.import/brown BG.png-d04ae44e33c0ead89d4e8e4f5484a79c.stex new file mode 100644 index 0000000..aa5ff35 Binary files /dev/null and b/Server/.import/brown BG.png-d04ae44e33c0ead89d4e8e4f5484a79c.stex differ diff --git a/Server/.import/building 3x4.png-c6a7a7bf0c1a85a669585ad554c370be.md5 b/Server/.import/building 3x4.png-c6a7a7bf0c1a85a669585ad554c370be.md5 new file mode 100644 index 0000000..2408279 --- /dev/null +++ b/Server/.import/building 3x4.png-c6a7a7bf0c1a85a669585ad554c370be.md5 @@ -0,0 +1,3 @@ +source_md5="153a2716734e36a3016317b3e60cd5f8" +dest_md5="943d1ce0b7a9f5ff77d94f58472d57d7" + diff --git a/Server/.import/building 3x4.png-c6a7a7bf0c1a85a669585ad554c370be.stex b/Server/.import/building 3x4.png-c6a7a7bf0c1a85a669585ad554c370be.stex new file mode 100644 index 0000000..5782c63 Binary files /dev/null and b/Server/.import/building 3x4.png-c6a7a7bf0c1a85a669585ad554c370be.stex differ diff --git a/Server/.import/building.png-845f6585b62ae9d1a64e438ac939ea21.md5 b/Server/.import/building.png-845f6585b62ae9d1a64e438ac939ea21.md5 new file mode 100644 index 0000000..7ec47c8 --- /dev/null +++ b/Server/.import/building.png-845f6585b62ae9d1a64e438ac939ea21.md5 @@ -0,0 +1,3 @@ +source_md5="64c903dcb10de86d90b274133df3eea1" +dest_md5="6a2723194091c3d3020d32233954c3e7" + diff --git a/Server/.import/building.png-845f6585b62ae9d1a64e438ac939ea21.stex b/Server/.import/building.png-845f6585b62ae9d1a64e438ac939ea21.stex new file mode 100644 index 0000000..911b6c6 Binary files /dev/null and b/Server/.import/building.png-845f6585b62ae9d1a64e438ac939ea21.stex differ diff --git a/Server/.import/dragon.png-344011ea66e84d555ee6c6b716cf50e3.md5 b/Server/.import/dragon.png-344011ea66e84d555ee6c6b716cf50e3.md5 new file mode 100644 index 0000000..88b5b55 --- /dev/null +++ b/Server/.import/dragon.png-344011ea66e84d555ee6c6b716cf50e3.md5 @@ -0,0 +1,3 @@ +source_md5="95f95ec2d0f3c3d335a7e1502482109e" +dest_md5="074ee80a703d2f8ad4997b55486e1cfa" + diff --git a/Server/.import/dragon.png-344011ea66e84d555ee6c6b716cf50e3.stex b/Server/.import/dragon.png-344011ea66e84d555ee6c6b716cf50e3.stex new file mode 100644 index 0000000..7046162 Binary files /dev/null and b/Server/.import/dragon.png-344011ea66e84d555ee6c6b716cf50e3.stex differ diff --git a/Server/.import/headquarter_small.png-b661db6c63cb08befee99e08219ed7e9.md5 b/Server/.import/headquarter_small.png-b661db6c63cb08befee99e08219ed7e9.md5 new file mode 100644 index 0000000..4d35a0f --- /dev/null +++ b/Server/.import/headquarter_small.png-b661db6c63cb08befee99e08219ed7e9.md5 @@ -0,0 +1,3 @@ +source_md5="32aca7dcb45ace06af76490a51f54322" +dest_md5="d26cc40717590aecfda7ac535dfa79d4" + diff --git a/Server/.import/headquarter_small.png-b661db6c63cb08befee99e08219ed7e9.stex b/Server/.import/headquarter_small.png-b661db6c63cb08befee99e08219ed7e9.stex new file mode 100644 index 0000000..24a46d2 Binary files /dev/null and b/Server/.import/headquarter_small.png-b661db6c63cb08befee99e08219ed7e9.stex differ diff --git a/Server/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 b/Server/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 new file mode 100644 index 0000000..f75f542 --- /dev/null +++ b/Server/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 @@ -0,0 +1,3 @@ +source_md5="8dd9ff1eebf38898a54579d8c01b0a88" +dest_md5="da70afec3c66d4e872db67f808e12edb" + diff --git a/Server/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex b/Server/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex new file mode 100644 index 0000000..46e6d2a Binary files /dev/null and b/Server/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex differ diff --git a/Server/.import/mine small.png-c1a35a897263ecbf76bb38942662d7ea.md5 b/Server/.import/mine small.png-c1a35a897263ecbf76bb38942662d7ea.md5 new file mode 100644 index 0000000..5e456a2 --- /dev/null +++ b/Server/.import/mine small.png-c1a35a897263ecbf76bb38942662d7ea.md5 @@ -0,0 +1,3 @@ +source_md5="69fbba154664cca1d3b819378f2ff133" +dest_md5="1a7498adef797f0b9f8262a8c4f881eb" + diff --git a/Server/.import/mine small.png-c1a35a897263ecbf76bb38942662d7ea.stex b/Server/.import/mine small.png-c1a35a897263ecbf76bb38942662d7ea.stex new file mode 100644 index 0000000..f100488 Binary files /dev/null and b/Server/.import/mine small.png-c1a35a897263ecbf76bb38942662d7ea.stex differ diff --git a/Server/.import/regiontiles.png-8814835171d4f3819a1d1a786ad1b120.md5 b/Server/.import/regiontiles.png-8814835171d4f3819a1d1a786ad1b120.md5 new file mode 100644 index 0000000..11d2891 --- /dev/null +++ b/Server/.import/regiontiles.png-8814835171d4f3819a1d1a786ad1b120.md5 @@ -0,0 +1,3 @@ +source_md5="1a56bbe79104703ef662fb2a4bf19c95" +dest_md5="b6d8acf8d4e0b2ef70115e58121ed33d" + diff --git a/Server/.import/regiontiles.png-8814835171d4f3819a1d1a786ad1b120.stex b/Server/.import/regiontiles.png-8814835171d4f3819a1d1a786ad1b120.stex new file mode 100644 index 0000000..5df6ee0 Binary files /dev/null and b/Server/.import/regiontiles.png-8814835171d4f3819a1d1a786ad1b120.stex differ diff --git a/Server/.import/smallerbtn.png-f40aa6a05ffed5a4f105c1902c101117.md5 b/Server/.import/smallerbtn.png-f40aa6a05ffed5a4f105c1902c101117.md5 new file mode 100644 index 0000000..d5cc396 --- /dev/null +++ b/Server/.import/smallerbtn.png-f40aa6a05ffed5a4f105c1902c101117.md5 @@ -0,0 +1,3 @@ +source_md5="029bc626fffde85b248dad26d60578de" +dest_md5="732005d8970658ef6b4a1b6dcbc5ba35" + diff --git a/Server/.import/smallerbtn.png-f40aa6a05ffed5a4f105c1902c101117.stex b/Server/.import/smallerbtn.png-f40aa6a05ffed5a4f105c1902c101117.stex new file mode 100644 index 0000000..081ed1d Binary files /dev/null and b/Server/.import/smallerbtn.png-f40aa6a05ffed5a4f105c1902c101117.stex differ diff --git a/Server/.import/smallerbtnPress.png-a89a89036082e43dd65b0a93eecba655.md5 b/Server/.import/smallerbtnPress.png-a89a89036082e43dd65b0a93eecba655.md5 new file mode 100644 index 0000000..b4b955d --- /dev/null +++ b/Server/.import/smallerbtnPress.png-a89a89036082e43dd65b0a93eecba655.md5 @@ -0,0 +1,3 @@ +source_md5="66235526b21822d8a2e8c34bcf4a88f3" +dest_md5="799840fdb500c17794d4ca23aabb6334" + diff --git a/Server/.import/smallerbtnPress.png-a89a89036082e43dd65b0a93eecba655.stex b/Server/.import/smallerbtnPress.png-a89a89036082e43dd65b0a93eecba655.stex new file mode 100644 index 0000000..50fcbc8 Binary files /dev/null and b/Server/.import/smallerbtnPress.png-a89a89036082e43dd65b0a93eecba655.stex differ diff --git a/Server/.import/smallerbtnhover.png-affb1211294e4fcec5d0383ea8e280b1.md5 b/Server/.import/smallerbtnhover.png-affb1211294e4fcec5d0383ea8e280b1.md5 new file mode 100644 index 0000000..5a696c3 --- /dev/null +++ b/Server/.import/smallerbtnhover.png-affb1211294e4fcec5d0383ea8e280b1.md5 @@ -0,0 +1,3 @@ +source_md5="af757b11f6ce053451e2e7e0c15e9a3c" +dest_md5="01f2c5bef76847c9b4f68167fc95150d" + diff --git a/Server/.import/smallerbtnhover.png-affb1211294e4fcec5d0383ea8e280b1.stex b/Server/.import/smallerbtnhover.png-affb1211294e4fcec5d0383ea8e280b1.stex new file mode 100644 index 0000000..33beade Binary files /dev/null and b/Server/.import/smallerbtnhover.png-affb1211294e4fcec5d0383ea8e280b1.stex differ diff --git a/Server/.import/warrior.png-5a991f2b5a4c70e0a23d758896248915.md5 b/Server/.import/warrior.png-5a991f2b5a4c70e0a23d758896248915.md5 new file mode 100644 index 0000000..6d4567f --- /dev/null +++ b/Server/.import/warrior.png-5a991f2b5a4c70e0a23d758896248915.md5 @@ -0,0 +1,3 @@ +source_md5="478180383f608ee3cc08f5ddce3c84fc" +dest_md5="f4e599dd714e9a8251a151440b217c4a" + diff --git a/Server/.import/warrior.png-5a991f2b5a4c70e0a23d758896248915.stex b/Server/.import/warrior.png-5a991f2b5a4c70e0a23d758896248915.stex new file mode 100644 index 0000000..0b1554b Binary files /dev/null and b/Server/.import/warrior.png-5a991f2b5a4c70e0a23d758896248915.stex differ diff --git a/Server/.import/wizard.png-b613fcd97c82b20d63fc4e834e3577cc.md5 b/Server/.import/wizard.png-b613fcd97c82b20d63fc4e834e3577cc.md5 new file mode 100644 index 0000000..cadba81 --- /dev/null +++ b/Server/.import/wizard.png-b613fcd97c82b20d63fc4e834e3577cc.md5 @@ -0,0 +1,3 @@ +source_md5="098f096079b8dd3e4dfdf64254957207" +dest_md5="60ed2d39abd1e60215aad2c0c92dd871" + diff --git a/Server/.import/wizard.png-b613fcd97c82b20d63fc4e834e3577cc.stex b/Server/.import/wizard.png-b613fcd97c82b20d63fc4e834e3577cc.stex new file mode 100644 index 0000000..be9c709 Binary files /dev/null and b/Server/.import/wizard.png-b613fcd97c82b20d63fc4e834e3577cc.stex differ diff --git a/Server/.import/worldmap.png-6177cce3310464415a2ac8750a3d0794.md5 b/Server/.import/worldmap.png-6177cce3310464415a2ac8750a3d0794.md5 new file mode 100644 index 0000000..4dabae8 --- /dev/null +++ b/Server/.import/worldmap.png-6177cce3310464415a2ac8750a3d0794.md5 @@ -0,0 +1,3 @@ +source_md5="0b9f1600c0cb2585b6a3f1e2fdcaeed6" +dest_md5="d811c9004619590157f0bdacf91714d7" + diff --git a/Server/.import/worldmap.png-6177cce3310464415a2ac8750a3d0794.stex b/Server/.import/worldmap.png-6177cce3310464415a2ac8750a3d0794.stex new file mode 100644 index 0000000..5a6658e Binary files /dev/null and b/Server/.import/worldmap.png-6177cce3310464415a2ac8750a3d0794.stex differ diff --git a/Server/Camera2D.gd b/Server/Camera2D.gd new file mode 100644 index 0000000..691c37f --- /dev/null +++ b/Server/Camera2D.gd @@ -0,0 +1,130 @@ +extends Camera2D + +export var panSpeed = 10.0 +export var speed = 20.0 +export var zoomspeed = 10.0 +# warning-ignore:unused_class_variable +export var zoommargin = 0.1 + +export var zoomMin = 0.25 +export var zoomMax = 3.0 +export var marginX = 200.0 +export var marginY = 200.0 + +var mousepos = Vector2() +var mouseposGlobal = Vector2() +var start = Vector2() +var startv = Vector2() +var end = Vector2() +var endv = Vector2() +var zoomfactor = 1.0 +var zooming = false +var is_dragging = false +var move_to_point = Vector2() + + + + + +#onready var rectd = $'../UI/Base/draw_rect' + +signal area_selected +signal start_move_selection + +func _ready(): +# connect("area_selected", get_parent(), "area_selected", [self]) +# connect("start_move_selection", get_parent(), "start_move_selection", [self]) + + pass + + +func _process(delta): + #smooth movement + var inpx = (int(Input.is_action_pressed("ui_right")) + - int(Input.is_action_pressed("ui_left"))) + var inpy = (int(Input.is_action_pressed("ui_down")) + - int(Input.is_action_pressed("ui_up"))) + self.position.x = lerp(position.x, position.x + inpx *speed,speed * delta) + self.position.y = lerp(position.y, position.y + inpy *speed,speed * delta) + if Input.is_key_pressed(KEY_CONTROL): + #check mousepos + if mousepos.x < marginX: + position.x = lerp(position.x, position.x - abs(mousepos.x - marginX)/marginX * panSpeed * zoom.x, panSpeed * delta) + elif mousepos.x > OS.window_size.x - marginX: + position.x = lerp(position.x, position.x + abs(mousepos.x - OS.window_size.x + marginX)/marginX * panSpeed * zoom.x, panSpeed * delta) + if mousepos.y < marginY: + position.y = lerp(position.y, position.y - abs(mousepos.y - marginY)/marginY * panSpeed * zoom.y, panSpeed * delta) + elif mousepos.y > OS.window_size.y - marginY: + position.y = lerp(position.y, position.y + abs(mousepos.y - OS.window_size.y + marginY)/marginY * panSpeed * zoom.y, panSpeed * delta) + + if Input.is_action_just_pressed("ui_left_mouse_button"): + start = mouseposGlobal + startv = mousepos + is_dragging = true + if is_dragging: + end = mouseposGlobal + endv = mousepos + draw_area() + if Input.is_action_just_released("ui_left_mouse_button"): + if startv.distance_to(mousepos) > 20: + end = mouseposGlobal + endv = mousepos + is_dragging = false + draw_area(false) + emit_signal("area_selected") + else: + end = start + is_dragging = false + draw_area(false) + if Input.is_action_just_released("ui_right_mouse_button"): + move_to_point = mouseposGlobal + emit_signal("start_move_selection") + + + #zoom in + zoom.x = lerp(zoom.x, zoom.x * zoomfactor, zoomspeed * delta) + zoom.y = lerp(zoom.y, zoom.y * zoomfactor, zoomspeed * delta) + + zoom.x = clamp(zoom.x, zoomMin, zoomMax) + zoom.y = clamp(zoom.y, zoomMin, zoomMax) + + if not zooming: + zoomfactor = 1.0 + + +# warning-ignore:unused_argument +func draw_area(s = true): +# rectd.rect_size = Vector2(abs(startv.x-endv.x), abs(startv.y - endv.y)) +# +## if startv.y <= endv.y and startv.x <= endv.x: # bottom right +## rectd.rect_position = Vector2(startv.x, startv.y - OS.window_size.y) +## elif startv.x >= endv.x and startv.y >= endv.y: # top left +## rectd.rect_position = Vector2(endv.x, endv.y - OS.window_size.y) +## elif startv.x >= endv.x and startv.y <= endv.y: # bottom left +## rectd.rect_position = Vector2(endv.x, startv.y - OS.window_size.y) +## elif startv.x <= endv.x and startv.y >= endv.y: # top right +## rectd.rect_position = Vector2(startv.x, endv.y - OS.window_size.y) +# +# var pos = Vector2() +# pos.x = min(startv.x, endv.x) +# pos.y = min(startv.y, endv.y) +# pos.y -= OS.window_size.y +# rectd.rect_position = pos +# +# rectd.rect_size *= int(s) # true = 1 and false = 0 + pass + +func _input(event): + if event is InputEventMouseButton: + if event.is_pressed(): + zooming = true + if event.button_index == BUTTON_WHEEL_UP: + zoomfactor -= 0.01 * zoomspeed + if event.button_index == BUTTON_WHEEL_DOWN: + zoomfactor += 0.01 * zoomspeed + else: + zooming = false + + if event is InputEventMouse: + mousepos = event.position + mouseposGlobal = get_global_mouse_position() diff --git a/Server/Faction/Faction.gd b/Server/Faction/Faction.gd new file mode 100644 index 0000000..9190b8f --- /dev/null +++ b/Server/Faction/Faction.gd @@ -0,0 +1,36 @@ +extends Node + + +var factionName = '' +var armies = [] +var favouredDesigns = [] +var activeRegions = [] + +#enemy array is a dict containing with a key for each faction that a war was declared on. +#the value mapped is an array containing each war with that faction +#Each war is an array consisting of the start and the end of the war +var enemies = {'Demon':[[1,INF]]} + +var friends = {} + + + +func isWarActive(faction,turn): + var ongoing = false + if enemies.has(faction): + var wars = enemies.faction + for war in wars: + var turns = wars.war + if turn>=turns[0]: + if turn < turns[1]: + ongoing = true + return ongoing + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Server/Faction/Faction.tscn b/Server/Faction/Faction.tscn new file mode 100644 index 0000000..72585c6 --- /dev/null +++ b/Server/Faction/Faction.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://Faction/Faction.gd" type="Script" id=1] + +[node name="Faction" type="Node"] +script = ExtResource( 1 ) diff --git a/Server/Network.gd b/Server/Network.gd new file mode 100644 index 0000000..3499179 --- /dev/null +++ b/Server/Network.gd @@ -0,0 +1,126 @@ +extends Node + +const DEFAULT_IP = '127.0.0.1' +const DEFAULT_PORT = 31400 +const MAX_PLAYERS = 50 + +var ip = '' +var players = { } +var self_data = { name = '', faction = '' } +var pw = '' +var ongoingQry = false +var lastRequest = '' + +signal player_disconnected +signal server_disconnected + +func _ready(): + get_tree().connect('network_peer_disconnected', self, '_on_player_disconnected') + get_tree().connect('network_peer_connected', self, '_on_player_connected') + + +func create_server(response): + self_data.name = response['name'] + self_data.faction = response['faction'] + PlayerManager.authcache['name'] = response['name'] + PlayerManager.authcache['response']= response + players[1] = self_data + var peer = NetworkedMultiplayerENet.new() + peer.create_server(DEFAULT_PORT, MAX_PLAYERS) + get_tree().set_network_peer(peer) + set_network_master(1) + +func connect_to_server(player_nickname,pw): + self_data.name = player_nickname + get_tree().connect('connected_to_server', self, '_connected_to_server') + var peer = NetworkedMultiplayerENet.new() + if ip == '': + ip = DEFAULT_IP + peer.create_client(ip, DEFAULT_PORT) + get_tree().set_network_peer(peer) + PlayerManager.authcache['password']=pw + PlayerManager.authcache['name']=player_nickname + + +func _connected_to_server(): + var local_player_id = get_tree().get_network_unique_id() + players[local_player_id] = self_data + rpc('_send_player_info', local_player_id, self_data) + var name = PlayerManager.authcache['name'] + var pw = PlayerManager.authcache['password'] + rpc_id(1, '_request_auth', local_player_id, name, pw) + +#function that creates needed files and directories in user +#To do: copy preset folder to user, handling should be uniform +func firstStart(): + var dir = Directory.new() + dir.open("user://") + dir.make_dir("armies") + dir.make_dir("factions") + var file = File.new() + file.open("user://armies/known.txt", File.WRITE) + file.store_line("{}") + file.close() + file.open("user://server.txt", File.WRITE) + file.store_line("server was started before") + file.close() + file.open("user://players.sav", File.WRITE) + file.store_line('{"name":"teas","password":"1","faction":"barb"}') + file.close() + + +func _on_player_disconnected(id): + players.erase(id) + PlayerManager.player_disconnected(id) + +func _on_player_connected(connected_player_id): + var local_player_id = get_tree().get_network_unique_id() + if not(get_tree().is_network_server()): + rpc_id(1, '_request_player_info', local_player_id, connected_player_id) + + +#never to be called from server +func request(request): + if not ongoingQry: + lastRequest = request + ongoingQry = true + rpc_id(1, 'respond', request) + return true + return false + +remote func _request_auth(id, name, pw): + var response = PlayerManager.identify_player(id, name, pw) + rpc_id(id, '_receive_auth', response) + + +remote func respond(request): + var response = 'nothing found' + + + rpc_id(get_tree().get_rpc_sender_id(), 'receive', response) + pass + + +func receive(request): + ongoingQry = false + pass + +remote func _receive_auth(response): + PlayerManager.authcache['response']=response + WorldManager.requestServer() + print(response) + + +remote func _request_player_info(request_from_id, player_id): + if get_tree().is_network_server(): + rpc_id(request_from_id, '_send_player_info', player_id, players[player_id]) + +# A function to be used if needed. The purpose is to request all players in the current session. +remote func _request_players(request_from_id): + if get_tree().is_network_server(): + for peer_id in players: + if( peer_id != request_from_id): + rpc_id(request_from_id, '_send_player_info', peer_id, players[peer_id]) + +remote func _send_player_info(id, info): + players[id] = info diff --git a/Server/OFL.txt b/Server/OFL.txt new file mode 100644 index 0000000..1f801a7 --- /dev/null +++ b/Server/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2016 The Anton Project Authors + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/Server/SumpfLicense.txt b/Server/SumpfLicense.txt new file mode 100644 index 0000000..7e80cc9 --- /dev/null +++ b/Server/SumpfLicense.txt @@ -0,0 +1,163 @@ +For all parts of this software not mentioned in another license in this file, the following license applies: + + +PREAMBLE: The goal of this project is to develop new game mechanics for gamers to enjoy and to promote Open Source software. +For technical as well as for ethical reasons, this project considers the integrity of boolean logic of higher significance than copyright law. + +Terms: + +Anathema: A company is considered anathema to this project if that company +opposes the spirit of the project as specified in the preamble. Such companies include but might not be limited to: +Universal Music and any of it's subsidiaries unless specified otherwise. +Electronic Arts and any of it's subsidiaries unless specified otherwise. +Telekom and any of it's subsidiaries unless specified otherwise. + +Eligible for free stuff: A person is considered elegible for free stuff if + +a) you are not currently working for a company that is considered anathema to this project. + +b) you never held a position that could be described as "Lawyer", "Lobbyist" or "Manager" in a company that is considered anathema +to this project, wether directly or as a contractor. + +Gamer: A Gamer is any entity with intent to use this software for entertainment. + +PERMISSION IS HEREBY GRANTED, FREE OF CHARGE, TO ANY GAMER THAT IS ELIGIBLE FOR FREE STUFF TO USE THIS SOFTWARE, MAKE COPIES OF IT AND DISTRIBUTE IT TO ANY OTHER GAMER THAT IS ELIGIBLE FOR FREE STUFF. +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + + + + This game uses Godot Engine, available under the following license: + + Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. Copyright (c) 2014-2020 Godot Engine contributors. + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + +Portions of this software are copyright © 2020 The FreeType Project (www.freetype.org). All rights reserved. + + + +Copyright 2016 The Anton Project Authors + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. + + + + + Copyright (c) 2002-2016 Lee Salzman + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + + + + MBedTLS is Copyright (C) 2013-2019 ARM + + Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. diff --git a/Server/Worldmap/ArmyWM.gd b/Server/Worldmap/ArmyWM.gd new file mode 100644 index 0000000..f0a1aff --- /dev/null +++ b/Server/Worldmap/ArmyWM.gd @@ -0,0 +1,44 @@ +extends Node + + +#army script for tokens on worldmap + +var position = Vector2() +var travelTo = Vector2() +export var faction = '' +export var armyname = '' + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +func addLeader(leader):#resolve Leader stuff from real army + get_node("Leader").add_child(leader) + applyLeaderBuffs() + +func applyLeaderBuffs(): + + #TO DO: figure out how leader buffs army + return + + +func fetchLeader(): + var node = get_node("Leader") + var fetch = node.get_children() + node.free() + applyLeaderBuffs() + return fetch + + + +func goto(x,y): + self.position.x = x + self.position.y = y + pass + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass + diff --git a/Server/Worldmap/ArmyWM.tscn b/Server/Worldmap/ArmyWM.tscn new file mode 100644 index 0000000..47669ca --- /dev/null +++ b/Server/Worldmap/ArmyWM.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://Worldmap/ArmyWM.gd" type="Script" id=1] + +[node name="Army" type="Node"] +script = ExtResource( 1 ) + +[node name="Units" type="Node" parent="."] + +[node name="Leader" type="Node" parent="."] diff --git a/Server/Worldmap/WorldGenerator.gd b/Server/Worldmap/WorldGenerator.gd new file mode 100644 index 0000000..83713b4 --- /dev/null +++ b/Server/Worldmap/WorldGenerator.gd @@ -0,0 +1,68 @@ +extends Node + +#a copy of this is in the WORLDTILEMAP.GD file. Update those after changing. +var tileType = {'GRASS' : 0, 'FOREST_DENSE' : 1, 'FOREST' : 2, 'FOREST_SPACED' : 3, 'BLACK' : 4, 'OCEAN':5, +'MOUNTAIN':6,"NBERGSE":7,'NBERGSW':8,'NBERGNW':9,'NBERGNE':10,'KRATERSEE':11, 'HIGH_MOUNTAIN':12, +'SWAMP':13, 'DEMON':14} +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +const tile = preload("res://Worldmap/wmTile.tscn") +const BEACH_FAR = 63 +var highwall = 8 +var innerMt = 6 +var outerMt +# Called when the node enters the scene tree for the first time. +func _ready(): + #small noise that regenerates each instantiation + highwall += randi()%2 - 1 + outerMt = highwall+2 + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func generate(position:Vector2): + var result = tile.instance() + result.position = position + result.type = 'GRASS' + var distance = int(position.length()) + if distance < innerMt: + #innerer graskreis + return result + if distance > BEACH_FAR: + result.type = 'OCEAN' + return result + if distance == highwall: + #hoher berg + result.type = 'HIGH_MOUNTAIN' + return result + if distance >= innerMt: + if distance <= outerMt: + if position.y>4: + if position.x<3: + if position.x >-3: + #ausgang + return result + result.type = 'MOUNTAIN' + return result + if position.y < 0: + #süden + if position.x<0: + #westen + var demonRealm = randi()%2-30 + if position.x < demonRealm: + if position.y < demonRealm: + result.type = 'DEMON' + return result + return result + + +func generateUniques(): + var result = [] + return result + + + + diff --git a/Server/Worldmap/WorldGenerator.tscn b/Server/Worldmap/WorldGenerator.tscn new file mode 100644 index 0000000..d6d09f4 --- /dev/null +++ b/Server/Worldmap/WorldGenerator.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://Worldmap/WorldGenerator.gd" type="Script" id=1] + +[node name="WorldGenerator" type="Node"] +script = ExtResource( 1 ) diff --git a/Server/Worldmap/Worldmap.gd b/Server/Worldmap/Worldmap.gd new file mode 100644 index 0000000..cfe0900 --- /dev/null +++ b/Server/Worldmap/Worldmap.gd @@ -0,0 +1,82 @@ +extends Node2D + +#Overlays needed: +# +# Turn for each Region +# +# Regions with my active Turns +#map deco vars: +# used for painting black tiles and setting camera borders +# reduce interval for less surrounding black tiles +var xVisitedMax = 15 +var xVisitedMin = -15 +var yVisitedMax = 15 +var yVisitedMin = -15 +var mapPadding = 10 +var tileSize = 128 + +var loaded = false +onready var map = get_node("worldMapTiles") + + +func _ready(): + WorldManager.connect("updateMap", self, "paintTiles") + PlayerManager.subMenuOpen = false + var tile = {"x":1, "y":0, "terrain":"BLACK", "factions":[],"turn":1} + var x = xVisitedMin + while x <= xVisitedMax: + var y = yVisitedMin + while y <= yVisitedMax: + tile.x = x + tile.y = y + map.addtile(tile) + y += 1 + x += 1 + if not WorldManager.worldmapLoaded: + + + #generate the black area + #other solution might be needed in the long term, loading should be done in the WorldManager Anyways + + + #the followed loading is now done in the worldmanager where it belongs, this stayed to get map on tiles + if WorldManager.Server: + var path = 'user://worldmap.json' + var directory = Directory.new() + var hasFile = directory.file_exists(path) + var file = File.new() + if !hasFile: + path = directory.get_current_dir()+'preset//worldmap.json' + file.open(path, file.READ) + var json = file.get_as_text() + # print('json:'+json) + var json_result = JSON.parse(json).result + #print(json_result) + + for ntile in json_result: + map.addtile(ntile) + WorldManager.addTile(ntile) + WorldManager.worldmapLoaded = true + paintTiles() + #print("worldmap ready") + #print(PlayerManager.getPlayerFactionData()) + +func paintTiles(): + var worldTiles = WorldManager.worldTiles + #print("painting: ") + #print(worldTiles) +# var map = get_node("worldMapTiles") + for i in map.get_node("armies").get_children(): + i.queue_free() + for x in worldTiles: + var row = worldTiles[x] + for y in row: + var tile = row[y] + map.addtile(tile) + if tile.has('armies'): + var armies = tile['armies'] + for army in armies: + var armydata = armies[army] + map.addArmy(army, armydata, tile) + #to do: add army on map! + pass diff --git a/Server/Worldmap/Worldmap.tscn b/Server/Worldmap/Worldmap.tscn new file mode 100644 index 0000000..b89a5ec --- /dev/null +++ b/Server/Worldmap/Worldmap.tscn @@ -0,0 +1,313 @@ +[gd_scene load_steps=15 format=2] + +[ext_resource path="res://Worldmap/Worldmap.gd" type="Script" id=1] +[ext_resource path="res://Worldmap/worldTiles.tres" type="TileSet" id=2] +[ext_resource path="res://Worldmap/worlTileMap.gd" type="Script" id=3] +[ext_resource path="res://Camera2D.gd" type="Script" id=4] +[ext_resource path="res://menues/WorldmapUI.gd" type="Script" id=5] +[ext_resource path="res://images/WorldUIBackground.png" type="Texture" id=6] +[ext_resource path="res://font/anton.tres" type="DynamicFont" id=7] +[ext_resource path="res://menues/smallbtn.tscn" type="PackedScene" id=8] +[ext_resource path="res://menues/toDesigner.gd" type="Script" id=9] +[ext_resource path="res://menues/openRegion.gd" type="Script" id=10] +[ext_resource path="res://menues/moveOnWorldMap.gd" type="Script" id=11] +[ext_resource path="res://menues/toggleResearch.gd" type="Script" id=12] +[ext_resource path="res://menues/research.tscn" type="PackedScene" id=13] +[ext_resource path="res://menues/smallbtn.gd" type="Script" id=14] + +[node name="Worldmap" type="Node2D"] +script = ExtResource( 1 ) + +[node name="worldMapTiles" type="TileMap" parent="."] +tile_set = ExtResource( 2 ) +cell_size = Vector2( 128, 128 ) +format = 1 +tile_data = PoolIntArray( -196603, 0, 0, -196582, 0, 0, -196576, 4, 0, -131072, 4, 0, -131071, 4, 0, -131070, 4, 0, -131069, 4, 0, -131068, 4, 0, -131067, 4, 0, -131066, 4, 0, -131065, 4, 0, -131064, 4, 0, -131063, 4, 0, -131062, 4, 0, -131061, 4, 0, -131060, 4, 0, -131059, 4, 0, -131058, 4, 0, -131057, 4, 0, -131056, 4, 0, -131055, 4, 0, -131054, 4, 0, -131053, 4, 0, -131052, 4, 0, -131051, 4, 0, -131050, 4, 0, -131049, 4, 0, -131048, 4, 0, -131047, 4, 0, -131046, 4, 0, -131044, 4, 0, -131043, 4, 0, -131041, 4, 0, -131040, 4, 0, -131037, 4, 0, -4, 4, 0, -3, 4, 0, -2, 4, 0, -1, 4, 0, -65536, 2, 0, -65535, 2, 0, -65534, 2, 0, -65533, 2, 0, -65532, 2, 0, -65531, 2, 0, -65530, 2, 0, -65529, 2, 0, -65528, 2, 0, -65527, 2, 0, -65526, 4, 0, -65525, 4, 0, -65524, 4, 0, -65523, 4, 0, -65522, 4, 0, -65521, 4, 0, -65520, 4, 0, -65519, 4, 0, -65518, 4, 0, -65517, 4, 0, -65516, 4, 0, -65515, 4, 0, -65514, 4, 0, -65513, 4, 0, -65512, 4, 0, -65511, 4, 0, -65510, 4, 0, -65509, 4, 0, -65508, 4, 0, -65507, 4, 0, -65505, 4, 0, -65504, 4, 0, -65503, 4, 0, -65502, 4, 0, -65501, 4, 0, 65535, 4, 0, 0, 2, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5, 0, 0, 6, 2, 0, 7, 0, 0, 8, 2, 0, 9, 2, 0, 10, 4, 0, 11, 4, 0, 12, 4, 0, 13, 4, 0, 14, 4, 0, 15, 4, 0, 16, 4, 0, 17, 4, 0, 18, 4, 0, 19, 4, 0, 20, 4, 0, 21, 4, 0, 22, 4, 0, 23, 4, 0, 24, 4, 0, 25, 4, 0, 26, 4, 0, 27, 4, 0, 28, 4, 0, 29, 4, 0, 30, 4, 0, 31, 4, 0, 32, 4, 0, 33, 4, 0, 34, 4, 0, 35, 4, 0, 131063, 4, 0, 131064, 4, 0, 131065, 4, 0, 131066, 4, 0, 131067, 4, 0, 131068, 4, 0, 131069, 4, 0, 131070, 4, 0, 131071, 4, 0, 65536, 0, 0, 65537, 0, 0, 65538, 0, 0, 65539, 1, 0, 65540, 2, 0, 65541, 0, 0, 65542, 0, 0, 65543, 0, 0, 65544, 0, 0, 65545, 2, 0, 65546, 4, 0, 65547, 4, 0, 65548, 4, 0, 65549, 4, 0, 65550, 4, 0, 65551, 4, 0, 65552, 4, 0, 65553, 4, 0, 65554, 4, 0, 65555, 4, 0, 65556, 4, 0, 65557, 4, 0, 65558, 4, 0, 65559, 4, 0, 65560, 4, 0, 65561, 4, 0, 65562, 4, 0, 65563, 4, 0, 65564, 4, 0, 65565, 4, 0, 65566, 4, 0, 65567, 4, 0, 65568, 4, 0, 65569, 4, 0, 65570, 4, 0, 65571, 4, 0, 196607, 4, 0, 131072, 0, 0, 131073, 0, 0, 131074, 2, 0, 131075, 3, 0, 131076, 1, 0, 131077, 1, 0, 131078, 0, 0, 131079, 2, 0, 131080, 0, 0, 131081, 3, 0, 131082, 4, 0, 131083, 4, 0, 131084, 4, 0, 131085, 4, 0, 131086, 4, 0, 131087, 4, 0, 131088, 4, 0, 131089, 4, 0, 131090, 4, 0, 131091, 4, 0, 131092, 4, 0, 131093, 4, 0, 131094, 4, 0, 131095, 4, 0, 131096, 4, 0, 131097, 4, 0, 131098, 4, 0, 131099, 4, 0, 131100, 4, 0, 131101, 4, 0, 131102, 4, 0, 131103, 4, 0, 131104, 4, 0, 131105, 4, 0, 131106, 4, 0, 131107, 4, 0, 262142, 4, 0, 262143, 4, 0, 196608, 0, 0, 196609, 1, 0, 196610, 3, 0, 196611, 1, 0, 196612, 3, 0, 196613, 2, 0, 196614, 2, 0, 196615, 0, 0, 196616, 0, 0, 196617, 1, 0, 196618, 4, 0, 196619, 4, 0, 196620, 4, 0, 196621, 4, 0, 196622, 4, 0, 196623, 4, 0, 196624, 4, 0, 196625, 4, 0, 196626, 4, 0, 196627, 4, 0, 196628, 4, 0, 196629, 4, 0, 196630, 4, 0, 196631, 4, 0, 196632, 4, 0, 196633, 4, 0, 196634, 4, 0, 196635, 4, 0, 196636, 4, 0, 196637, 4, 0, 196638, 4, 0, 196639, 4, 0, 196640, 4, 0, 196641, 4, 0, 196642, 4, 0, 196643, 4, 0, 327672, 0, 0, 327673, 0, 0, 327674, 0, 0, 327675, 0, 0, 327676, 0, 0, 327677, 0, 0, 327678, 0, 0, 327679, 4, 0, 262144, 2, 0, 262145, 2, 0, 262146, 3, 0, 262147, 2, 0, 262148, 2, 0, 262149, 2, 0, 262150, 0, 0, 262151, 0, 0, 262152, 0, 0, 262153, 2, 0, 262154, 4, 0, 262155, 4, 0, 262156, 4, 0, 262157, 4, 0, 262158, 4, 0, 262159, 4, 0, 262160, 4, 0, 262161, 4, 0, 262162, 4, 0, 262163, 4, 0, 262164, 4, 0, 262165, 4, 0, 262166, 4, 0, 262167, 4, 0, 262168, 4, 0, 262169, 4, 0, 262170, 4, 0, 262171, 4, 0, 262172, 4, 0, 262173, 4, 0, 262174, 4, 0, 262175, 4, 0, 262176, 4, 0, 262177, 4, 0, 262178, 4, 0, 262179, 4, 0, 393215, 4, 0, 327680, 2, 0, 327681, 1, 0, 327682, 2, 0, 327683, 2, 0, 327684, 2, 0, 327685, 0, 0, 327686, 2, 0, 327687, 0, 0, 327688, 0, 0, 327689, 2, 0, 327690, 2, 0, 327691, 4, 0, 327692, 4, 0, 327693, 4, 0, 327694, 4, 0, 327695, 4, 0, 327696, 4, 0, 327697, 4, 0, 327698, 4, 0, 327699, 4, 0, 327700, 4, 0, 327701, 4, 0, 327702, 4, 0, 327703, 4, 0, 327704, 4, 0, 327705, 4, 0, 327706, 4, 0, 327707, 4, 0, 327708, 4, 0, 327709, 4, 0, 327710, 4, 0, 327711, 4, 0, 327712, 4, 0, 327713, 4, 0, 327714, 4, 0, 327715, 4, 0, 458751, 4, 0, 393216, 2, 0, 393217, 0, 0, 393218, 0, 0, 393219, 0, 0, 393220, 0, 0, 393221, 0, 0, 393222, 2, 0, 393223, 0, 0, 393224, 0, 0, 393225, 0, 0, 393226, 2, 0, 393227, 4, 0, 393228, 4, 0, 393229, 4, 0, 393230, 4, 0, 393231, 4, 0, 393232, 4, 0, 393233, 4, 0, 393234, 4, 0, 393235, 4, 0, 393236, 4, 0, 393237, 4, 0, 393238, 4, 0, 393239, 4, 0, 393240, 4, 0, 393241, 4, 0, 393242, 4, 0, 393243, 4, 0, 393244, 4, 0, 393245, 4, 0, 393246, 4, 0, 393247, 4, 0, 393248, 4, 0, 393249, 4, 0, 393250, 4, 0, 393251, 4, 0, 524286, 4, 0, 524287, 4, 0, 458752, 0, 0, 458753, 0, 0, 458754, 0, 0, 458755, 0, 0, 458756, 0, 0, 458757, 0, 0, 458758, 0, 0, 458759, 0, 0, 458760, 0, 0, 458761, 0, 0, 458762, 4, 0, 458763, 4, 0, 458764, 4, 0, 458765, 4, 0, 458766, 4, 0, 458767, 4, 0, 458768, 4, 0, 458769, 4, 0, 458770, 4, 0, 458771, 4, 0, 458772, 4, 0, 458773, 4, 0, 458774, 4, 0, 458775, 4, 0, 458776, 4, 0, 458777, 4, 0, 458778, 4, 0, 458779, 4, 0, 458780, 4, 0, 458781, 4, 0, 458782, 4, 0, 458783, 4, 0, 458784, 4, 0, 458785, 4, 0, 458786, 4, 0, 458787, 4, 0, 589822, 4, 0, 589823, 4, 0, 524288, 4, 0, 524289, 4, 0, 524290, 4, 0, 524291, 4, 0, 524292, 4, 0, 524293, 4, 0, 524294, 4, 0, 524295, 4, 0, 524296, 4, 0, 524297, 4, 0, 524298, 4, 0, 524299, 4, 0, 524300, 4, 0, 524301, 4, 0, 524302, 4, 0, 524303, 4, 0, 524304, 4, 0, 524305, 4, 0, 524306, 4, 0, 524307, 4, 0, 524308, 4, 0, 524309, 4, 0, 524310, 4, 0, 524311, 4, 0, 524312, 4, 0, 524313, 4, 0, 524314, 4, 0, 524315, 4, 0, 524316, 4, 0, 524317, 4, 0, 524318, 4, 0, 524319, 4, 0, 524320, 4, 0, 524321, 4, 0, 524322, 4, 0, 524323, 4, 0, 655358, 4, 0, 655359, 4, 0, 589824, 4, 0, 589825, 4, 0, 589826, 4, 0, 589827, 4, 0, 589828, 4, 0, 589829, 4, 0, 589830, 4, 0, 589831, 4, 0, 589832, 4, 0, 589833, 4, 0, 589834, 4, 0, 589835, 4, 0, 589836, 4, 0, 589837, 4, 0, 589838, 4, 0, 589839, 4, 0, 589840, 4, 0, 589841, 4, 0, 589842, 4, 0, 589843, 4, 0, 589844, 4, 0, 589845, 4, 0, 589846, 4, 0, 589847, 4, 0, 589848, 4, 0, 589849, 4, 0, 589850, 4, 0, 589851, 4, 0, 589852, 4, 0, 589853, 4, 0, 589854, 4, 0, 589855, 4, 0, 589856, 4, 0, 589857, 4, 0, 589858, 4, 0, 589859, 4, 0, 720892, 4, 0, 720893, 4, 0, 720894, 4, 0, 720895, 4, 0, 655360, 4, 0, 655361, 4, 0, 655362, 4, 0, 655363, 4, 0, 655364, 4, 0, 655365, 4, 0, 655366, 4, 0, 655367, 4, 0, 655368, 4, 0, 655369, 4, 0, 655370, 4, 0, 655371, 4, 0, 655372, 4, 0, 655373, 4, 0, 655374, 4, 0, 655375, 4, 0, 655376, 4, 0, 655377, 4, 0, 655378, 4, 0, 655379, 4, 0, 655380, 4, 0, 655381, 4, 0, 655382, 4, 0, 655383, 4, 0, 655384, 4, 0, 655385, 4, 0, 655386, 4, 0, 655387, 4, 0, 655388, 4, 0, 655389, 4, 0, 655390, 4, 0, 655391, 4, 0, 655392, 4, 0, 655393, 4, 0, 655394, 4, 0, 655395, 4, 0, 786429, 4, 0, 786430, 4, 0, 786431, 4, 0, 720896, 4, 0, 720897, 4, 0, 720898, 4, 0, 720899, 4, 0, 720900, 4, 0, 720901, 4, 0, 720902, 4, 0, 720903, 4, 0, 720904, 4, 0, 720905, 4, 0, 720906, 4, 0, 720907, 4, 0, 720908, 4, 0, 720909, 4, 0, 720910, 4, 0, 720911, 4, 0, 720912, 4, 0, 720913, 4, 0, 720914, 4, 0, 720915, 4, 0, 720916, 4, 0, 720917, 4, 0, 720918, 4, 0, 720919, 4, 0, 720920, 4, 0, 720921, 4, 0, 720922, 4, 0, 720923, 4, 0, 720924, 4, 0, 720925, 4, 0, 720926, 4, 0, 720927, 4, 0, 720928, 4, 0, 720929, 4, 0, 720930, 4, 0, 720931, 4, 0, 720932, 4, 0, 720933, 4, 0, 720934, 4, 0, 720935, 4, 0, 720936, 4, 0, 720937, 4, 0, 851966, 4, 0, 851967, 4, 0, 786432, 4, 0, 786433, 4, 0, 786434, 4, 0, 786435, 4, 0, 786436, 4, 0, 786437, 4, 0, 786438, 4, 0, 786439, 4, 0, 786440, 4, 0, 786441, 4, 0, 786442, 4, 0, 786443, 4, 0, 786444, 4, 0, 786445, 4, 0, 786446, 4, 0, 786447, 4, 0, 786448, 4, 0, 786449, 4, 0, 786450, 4, 0, 786451, 4, 0, 786452, 4, 0, 786453, 4, 0, 786454, 4, 0, 786455, 4, 0, 786456, 4, 0, 786457, 4, 0, 786458, 4, 0, 786459, 4, 0, 786460, 4, 0, 786461, 4, 0, 786462, 4, 0, 786463, 4, 0, 786464, 4, 0, 786465, 4, 0, 786466, 4, 0, 786467, 4, 0, 786468, 4, 0, 786469, 4, 0, 786470, 4, 0, 786471, 4, 0, 786472, 4, 0, 786473, 4, 0, 786474, 4, 0, 786475, 4, 0, 917503, 4, 0, 851968, 4, 0, 851969, 4, 0, 851970, 4, 0, 851971, 4, 0, 851972, 4, 0, 851973, 4, 0, 851974, 4, 0, 851975, 4, 0, 851976, 4, 0, 851977, 4, 0, 851978, 4, 0, 851979, 4, 0, 851980, 4, 0, 851981, 4, 0, 851982, 4, 0, 851983, 4, 0, 851984, 4, 0, 851985, 4, 0, 851986, 4, 0, 851987, 4, 0, 851988, 4, 0, 851989, 4, 0, 851990, 4, 0, 851991, 4, 0, 851992, 4, 0, 851993, 4, 0, 851994, 4, 0, 851995, 4, 0, 851996, 4, 0, 851997, 4, 0, 851998, 4, 0, 851999, 4, 0, 852000, 4, 0, 852001, 4, 0, 852002, 4, 0, 852003, 4, 0, 852004, 4, 0, 852005, 4, 0, 852006, 4, 0, 852007, 4, 0, 852008, 4, 0, 852009, 4, 0, 852010, 4, 0, 852011, 4, 0, 983037, 4, 0, 983038, 4, 0, 983039, 4, 0, 917504, 4, 0, 917505, 4, 0, 917506, 4, 0, 917507, 4, 0, 917508, 4, 0, 917509, 4, 0, 917510, 4, 0, 917511, 4, 0, 917512, 4, 0, 917513, 4, 0, 917514, 4, 0, 917515, 4, 0, 917516, 4, 0, 917517, 4, 0, 917518, 4, 0, 917519, 4, 0, 917520, 4, 0, 917521, 4, 0, 917522, 4, 0, 917523, 4, 0, 917524, 4, 0, 917525, 4, 0, 917526, 4, 0, 917527, 4, 0, 917528, 4, 0, 917529, 4, 0, 917530, 4, 0, 917531, 4, 0, 917532, 4, 0, 917533, 4, 0, 917534, 4, 0, 917535, 4, 0, 917536, 4, 0, 917537, 4, 0, 917538, 4, 0, 917539, 4, 0, 917540, 4, 0, 917544, 4, 0, 917545, 4, 0, 917546, 4, 0, 917547, 4, 0, 1048570, 4, 0, 1048571, 4, 0, 1048572, 4, 0, 1048573, 4, 0, 1048574, 4, 0, 1048575, 4, 0, 983040, 4, 0, 983041, 4, 0, 983042, 4, 0, 983043, 4, 0, 983044, 4, 0, 983045, 4, 0, 983046, 4, 0, 983047, 4, 0, 983048, 4, 0, 983049, 4, 0, 983050, 4, 0, 983051, 4, 0, 983052, 4, 0, 983053, 4, 0, 983054, 4, 0, 983055, 4, 0, 983056, 4, 0, 983057, 4, 0, 983058, 4, 0, 983059, 4, 0, 983060, 4, 0, 983061, 4, 0, 983062, 4, 0, 983063, 4, 0, 983064, 4, 0, 983065, 4, 0, 983066, 4, 0, 983067, 4, 0, 983068, 4, 0, 983069, 4, 0, 983070, 4, 0, 983071, 4, 0, 983072, 4, 0, 983073, 4, 0, 983074, 4, 0, 983075, 4, 0, 983076, 4, 0, 983077, 4, 0, 983078, 4, 0, 983079, 4, 0, 983080, 4, 0, 983081, 4, 0, 983082, 4, 0, 983083, 4, 0, 1114109, 4, 0, 1114110, 4, 0, 1114111, 4, 0, 1048576, 4, 0, 1048577, 4, 0, 1048578, 4, 0, 1048579, 4, 0, 1048580, 4, 0, 1048581, 4, 0, 1048582, 4, 0, 1048583, 4, 0, 1048584, 4, 0, 1048585, 4, 0, 1048586, 4, 0, 1048587, 4, 0, 1048588, 4, 0, 1048589, 4, 0, 1048590, 4, 0, 1048591, 4, 0, 1048592, 4, 0, 1048593, 4, 0, 1048594, 4, 0, 1048595, 4, 0, 1048596, 4, 0, 1048597, 4, 0, 1048598, 4, 0, 1048599, 4, 0, 1048600, 4, 0, 1048601, 4, 0, 1048602, 4, 0, 1048603, 4, 0, 1048604, 4, 0, 1048605, 4, 0, 1048606, 4, 0, 1048607, 4, 0, 1048608, 4, 0, 1048609, 4, 0, 1048610, 4, 0, 1048611, 4, 0, 1048612, 4, 0, 1048613, 4, 0, 1048614, 4, 0, 1048615, 4, 0, 1048616, 4, 0, 1048617, 4, 0, 1048618, 4, 0, 1048619, 4, 0, 1179647, 4, 0, 1114112, 4, 0, 1114113, 4, 0, 1114114, 4, 0, 1114115, 4, 0, 1114116, 4, 0, 1114117, 4, 0, 1114118, 4, 0, 1114119, 4, 0, 1114120, 4, 0, 1114121, 4, 0, 1114122, 4, 0, 1114123, 4, 0, 1114124, 4, 0, 1114125, 4, 0, 1114126, 4, 0, 1114127, 4, 0, 1114128, 4, 0, 1114129, 4, 0, 1114130, 4, 0, 1114131, 4, 0, 1114132, 4, 0, 1114133, 4, 0, 1114134, 4, 0, 1114135, 4, 0, 1114136, 4, 0, 1114137, 4, 0, 1114138, 4, 0, 1114139, 4, 0, 1114140, 4, 0, 1114141, 4, 0, 1114142, 4, 0, 1114143, 4, 0, 1114144, 4, 0, 1114145, 4, 0, 1114146, 4, 0, 1114147, 4, 0, 1114148, 4, 0, 1114149, 4, 0, 1114150, 4, 0, 1114151, 4, 0, 1114152, 4, 0, 1114153, 4, 0, 1245183, 4, 0, 1179648, 4, 0, 1179649, 4, 0, 1179650, 4, 0, 1179651, 4, 0, 1179652, 4, 0, 1179653, 4, 0, 1179654, 4, 0, 1179655, 4, 0, 1179656, 4, 0, 1179657, 4, 0, 1179658, 4, 0, 1179659, 4, 0, 1179660, 4, 0, 1179661, 4, 0, 1179662, 4, 0, 1179663, 4, 0, 1179664, 4, 0, 1179665, 4, 0, 1179666, 4, 0, 1179667, 4, 0, 1179668, 4, 0, 1179669, 4, 0, 1179670, 4, 0, 1179671, 4, 0, 1179672, 4, 0, 1179673, 4, 0, 1179674, 4, 0, 1179675, 4, 0, 1179676, 4, 0, 1179677, 4, 0, 1179678, 4, 0, 1179679, 4, 0, 1179680, 4, 0, 1179681, 4, 0, 1179682, 4, 0, 1179683, 4, 0, 1179684, 4, 0, 1179685, 4, 0, 1179686, 4, 0, 1179687, 4, 0, 1179688, 4, 0, 1179689, 4, 0, 1179690, 4, 0, 1179691, 4, 0, 1310719, 4, 0, 1245184, 4, 0, 1245185, 4, 0, 1245186, 4, 0, 1245187, 4, 0, 1245188, 4, 0, 1245189, 4, 0, 1245190, 4, 0, 1245191, 4, 0, 1245192, 4, 0, 1245193, 4, 0, 1245194, 4, 0, 1245195, 4, 0, 1245196, 4, 0, 1245197, 4, 0, 1245198, 4, 0, 1245199, 4, 0, 1245200, 4, 0, 1245201, 4, 0, 1245202, 4, 0, 1245203, 4, 0, 1245204, 4, 0, 1245205, 4, 0, 1245206, 4, 0, 1245207, 4, 0, 1245208, 4, 0, 1245209, 4, 0, 1245210, 4, 0, 1245211, 4, 0, 1245212, 4, 0, 1245213, 4, 0, 1245214, 4, 0, 1245215, 4, 0, 1245216, 4, 0, 1245217, 4, 0, 1245218, 4, 0, 1245219, 4, 0, 1245220, 4, 0, 1245221, 4, 0, 1245222, 4, 0, 1245223, 4, 0, 1245224, 4, 0, 1245225, 4, 0, 1245226, 4, 0, 1245227, 4, 0, 1310731, 4, 0, 1310732, 4, 0, 1310733, 4, 0, 1310734, 4, 0, 1310735, 4, 0, 1310736, 4, 0, 1310737, 4, 0, 1310738, 4, 0, 1310739, 4, 0, 1310740, 4, 0, 1310741, 4, 0, 1310742, 4, 0, 1310743, 4, 0, 1310744, 4, 0, 1310745, 4, 0, 1310746, 4, 0, 1310747, 4, 0, 1310748, 4, 0, 1310749, 4, 0, 1310750, 4, 0, 1310751, 4, 0, 1310752, 4, 0, 1310753, 4, 0, 1310754, 4, 0, 1310755, 4, 0, 1310756, 4, 0, 1310757, 4, 0, 1310758, 4, 0, 1310759, 4, 0, 1310760, 4, 0, 1310761, 4, 0, 1310762, 4, 0, 1376273, 4, 0, 1376274, 4, 0, 1376275, 4, 0, 1376276, 4, 0, 1376277, 4, 0, 1376278, 4, 0, 1376279, 4, 0, 1376280, 4, 0, 1376281, 4, 0, 1376282, 4, 0, 1376283, 4, 0, 1376284, 4, 0, 1376285, 4, 0, 1376286, 4, 0, 1376287, 4, 0, 1376288, 4, 0, 1376289, 4, 0, 1376290, 4, 0, 1376291, 4, 0, 1376292, 4, 0, 1376293, 4, 0, 1376294, 4, 0, 1376295, 4, 0, 1376296, 4, 0, 1376297, 4, 0, 1376298, 4, 0, 1376299, 4, 0, 1441820, 4, 0, 1441821, 4, 0, 1441822, 4, 0, 1441823, 4, 0, 1441824, 4, 0, 1441825, 4, 0, 1441826, 4, 0, 1441829, 4, 0, 1441830, 4, 0, 1441831, 4, 0, 1441832, 4, 0, 1507363, 4, 0, 1507364, 4, 0, 1507365, 4, 0, 1507366, 4, 0, 1507367, 4, 0, 1507368, 4, 0, 1507369, 4, 0 ) +script = ExtResource( 3 ) + +[node name="armies" type="Node" parent="worldMapTiles"] + +[node name="Camera2D" type="Camera2D" parent="."] +position = Vector2( 958.512, 510.399 ) +current = true +drag_margin_left = 0.0 +drag_margin_top = 0.0 +drag_margin_right = 0.0 +drag_margin_bottom = 0.0 +script = ExtResource( 4 ) + +[node name="CanvasLayer" type="CanvasLayer" parent="."] + +[node name="WorldmapUI" type="Control" parent="CanvasLayer"] +margin_left = 1264.0 +margin_right = 1964.0 +margin_bottom = 1015.0 +script = ExtResource( 5 ) + +[node name="UIBG" type="NinePatchRect" parent="CanvasLayer/WorldmapUI"] +margin_right = 656.0 +margin_bottom = 1022.0 +texture = ExtResource( 6 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="fixed data" type="VBoxContainer" parent="CanvasLayer/WorldmapUI/UIBG"] +margin_left = 22.0 +margin_top = 24.7542 +margin_right = 581.0 +margin_bottom = 189.754 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Spieler" type="Label" parent="CanvasLayer/WorldmapUI/UIBG/fixed data"] +margin_right = 559.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 7 ) +text = "Spieler" + +[node name="Fraktion" type="Label" parent="CanvasLayer/WorldmapUI/UIBG/fixed data"] +margin_top = 29.0 +margin_right = 559.0 +margin_bottom = 82.0 +custom_fonts/font = ExtResource( 7 ) +text = "Fraktion +" + +[node name="toDesigner" parent="CanvasLayer/WorldmapUI/UIBG/fixed data" instance=ExtResource( 8 )] +margin_top = 86.0 +margin_right = 559.0 +margin_bottom = 150.0 +script = ExtResource( 9 ) + +[node name="varData" type="VBoxContainer" parent="CanvasLayer/WorldmapUI/UIBG"] +margin_left = 21.0 +margin_top = 407.05 +margin_right = 343.0 +margin_bottom = 981.05 + +[node name="regionData" type="VBoxContainer" parent="CanvasLayer/WorldmapUI/UIBG/varData"] +margin_right = 322.0 +margin_bottom = 60.0 + +[node name="cords_label" type="HBoxContainer" parent="CanvasLayer/WorldmapUI/UIBG/varData/regionData"] +margin_right = 322.0 +margin_bottom = 60.0 + +[node name="terrain" type="Label" parent="CanvasLayer/WorldmapUI/UIBG/varData/regionData/cords_label"] +margin_right = 150.0 +margin_bottom = 60.0 +rect_min_size = Vector2( 150, 60 ) +custom_fonts/font = ExtResource( 7 ) +text = "Terrain: " + +[node name="cords" type="VBoxContainer" parent="CanvasLayer/WorldmapUI/UIBG/varData/regionData/cords_label"] +margin_left = 154.0 +margin_right = 179.0 +margin_bottom = 60.0 + +[node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer/WorldmapUI/UIBG/varData/regionData/cords_label/cords"] +margin_right = 25.0 +margin_bottom = 25.0 + +[node name="n" type="Label" parent="CanvasLayer/WorldmapUI/UIBG/varData/regionData/cords_label/cords/HBoxContainer"] +margin_right = 16.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 7 ) +text = "X: " + +[node name="x" type="Label" parent="CanvasLayer/WorldmapUI/UIBG/varData/regionData/cords_label/cords/HBoxContainer"] +margin_left = 20.0 +margin_right = 25.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 7 ) +text = "1" + +[node name="HBoxContainer2" type="HBoxContainer" parent="CanvasLayer/WorldmapUI/UIBG/varData/regionData/cords_label/cords"] +margin_top = 29.0 +margin_right = 25.0 +margin_bottom = 54.0 + +[node name="n" type="Label" parent="CanvasLayer/WorldmapUI/UIBG/varData/regionData/cords_label/cords/HBoxContainer2"] +margin_right = 15.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 7 ) +text = "Y: " + +[node name="y" type="Label" parent="CanvasLayer/WorldmapUI/UIBG/varData/regionData/cords_label/cords/HBoxContainer2"] +margin_left = 19.0 +margin_right = 24.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 7 ) +text = "1" + +[node name="Label" type="Label" parent="CanvasLayer/WorldmapUI/UIBG/varData"] +margin_top = 64.0 +margin_right = 322.0 +margin_bottom = 89.0 +custom_fonts/font = ExtResource( 7 ) +text = "Meine Armeen:" + +[node name="myArmies" type="ScrollContainer" parent="CanvasLayer/WorldmapUI/UIBG/varData"] +margin_top = 93.0 +margin_right = 322.0 +margin_bottom = 103.0 +scroll_vertical_enabled = false + +[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/WorldmapUI/UIBG/varData/myArmies"] +margin_right = 100.0 +margin_bottom = 10.0 +rect_min_size = Vector2( 100, 10 ) + +[node name="Label2" type="Label" parent="CanvasLayer/WorldmapUI/UIBG/varData"] +margin_top = 107.0 +margin_right = 322.0 +margin_bottom = 132.0 +custom_fonts/font = ExtResource( 7 ) +text = "Verbündete Armeen:" + +[node name="alliedArmies" type="ScrollContainer" parent="CanvasLayer/WorldmapUI/UIBG/varData"] +margin_top = 136.0 +margin_right = 322.0 +margin_bottom = 146.0 +scroll_vertical_enabled = false + +[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/WorldmapUI/UIBG/varData/alliedArmies"] +margin_right = 100.0 +margin_bottom = 10.0 +rect_min_size = Vector2( 100, 10 ) + +[node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer/WorldmapUI/UIBG/varData"] +margin_top = 150.0 +margin_right = 322.0 +margin_bottom = 189.0 + +[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/WorldmapUI/UIBG/varData/HBoxContainer"] +margin_right = 113.0 +margin_bottom = 39.0 + +[node name="neutralArmy" type="Label" parent="CanvasLayer/WorldmapUI/UIBG/varData/HBoxContainer/VBoxContainer"] +margin_right = 113.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 7 ) +text = "neutrale Armeen:" + +[node name="neutralArmies" type="ScrollContainer" parent="CanvasLayer/WorldmapUI/UIBG/varData/HBoxContainer/VBoxContainer"] +margin_top = 29.0 +margin_right = 113.0 +margin_bottom = 39.0 +scroll_vertical_enabled = false + +[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/WorldmapUI/UIBG/varData/HBoxContainer/VBoxContainer/neutralArmies"] +margin_right = 100.0 +margin_bottom = 10.0 +rect_min_size = Vector2( 100, 10 ) + +[node name="HBoxContainer2" type="HBoxContainer" parent="CanvasLayer/WorldmapUI/UIBG/varData"] +margin_top = 193.0 +margin_right = 322.0 +margin_bottom = 247.0 + +[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/WorldmapUI/UIBG/varData/HBoxContainer2"] +margin_right = 120.0 +margin_bottom = 54.0 + +[node name="enemy" type="Label" parent="CanvasLayer/WorldmapUI/UIBG/varData/HBoxContainer2/VBoxContainer"] +margin_right = 120.0 +margin_bottom = 40.0 +rect_min_size = Vector2( 120, 40 ) +custom_fonts/font = ExtResource( 7 ) +text = "Feinde :" + +[node name="enemybox" type="ScrollContainer" parent="CanvasLayer/WorldmapUI/UIBG/varData/HBoxContainer2/VBoxContainer"] +margin_top = 44.0 +margin_right = 120.0 +margin_bottom = 54.0 +scroll_vertical_enabled = false + +[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/WorldmapUI/UIBG/varData/HBoxContainer2/VBoxContainer/enemybox"] +margin_right = 100.0 +margin_bottom = 10.0 +rect_min_size = Vector2( 100, 10 ) + +[node name="openRegion" parent="CanvasLayer/WorldmapUI/UIBG" instance=ExtResource( 8 )] +margin_left = 340.095 +margin_top = 405.393 +margin_right = 424.095 +margin_bottom = 469.393 +focus_mode = 0 +enabled_focus_mode = 0 +script = ExtResource( 10 ) + +[node name="moveRight" parent="CanvasLayer/WorldmapUI/UIBG" instance=ExtResource( 8 )] +margin_left = 442.057 +margin_top = 556.563 +margin_right = 526.057 +margin_bottom = 620.563 +script = ExtResource( 11 ) +moveX = 1 + +[node name="moveDown" parent="CanvasLayer/WorldmapUI/UIBG" instance=ExtResource( 8 )] +margin_left = 391.497 +margin_top = 626.081 +margin_right = 475.497 +margin_bottom = 690.081 +script = ExtResource( 11 ) +moveY = 1 + +[node name="moveLeft" parent="CanvasLayer/WorldmapUI/UIBG" instance=ExtResource( 8 )] +margin_left = 347.874 +margin_top = 555.455 +margin_right = 431.874 +margin_bottom = 619.455 +script = ExtResource( 11 ) +moveX = -1 + +[node name="moveUp" parent="CanvasLayer/WorldmapUI/UIBG" instance=ExtResource( 8 )] +margin_left = 394.17 +margin_top = 484.541 +margin_right = 478.17 +margin_bottom = 548.541 +script = ExtResource( 11 ) +moveY = -1 + +[node name="y2" type="Label" parent="CanvasLayer/WorldmapUI/UIBG"] +margin_left = 277.381 +margin_top = 421.135 +margin_right = 295.381 +margin_bottom = 446.135 +custom_fonts/font = ExtResource( 7 ) +text = "1" + +[node name="Label" type="Label" parent="CanvasLayer/WorldmapUI/UIBG"] +margin_left = 220.449 +margin_top = 411.363 +margin_right = 308.449 +margin_bottom = 467.363 +custom_fonts/font = ExtResource( 7 ) +text = "Runde:" + +[node name="Research" parent="CanvasLayer/WorldmapUI/UIBG" instance=ExtResource( 8 )] +anchor_right = 0.2 +margin_left = 115.486 +margin_top = 195.952 +margin_right = 68.2861 +margin_bottom = 259.952 +script = ExtResource( 12 ) + +[node name="ResearchMenu" parent="CanvasLayer/WorldmapUI/UIBG/Research" instance=ExtResource( 13 )] +visible = false +show_behind_parent = true +margin_left = -1438.62 +margin_top = -152.671 +margin_right = 393.375 +margin_bottom = 782.329 +mouse_filter = 2 + +[node name="debugBtn" parent="." instance=ExtResource( 8 )] +margin_left = 1139.71 +margin_top = 30.8195 +margin_right = 1223.71 +margin_bottom = 94.8195 +script = ExtResource( 14 ) diff --git a/Server/Worldmap/wmTile.gd b/Server/Worldmap/wmTile.gd new file mode 100644 index 0000000..7064321 --- /dev/null +++ b/Server/Worldmap/wmTile.gd @@ -0,0 +1,38 @@ +extends Node + + + + +var turn = 1 +var position = Vector2(0,0) +var incommingArmies = {} #contains arrays with armies mapped to turn of arrival 2:[],3:[] +var presentArmies = {} +var ownedBy = '' +var type = 'GRASS' + + +func construct(position): + self.position = position + +func _ready(): + pass # Replace with function body. + + + + +func armyArrival(army): + return + + +func armiesArrival(armies:Array): + for army in armies: + armyArrival(army) + return + +func endTurn(): + ++turn + if incommingArmies.has(turn): + var incomming = incommingArmies.turn + for army in incomming: + print(army, incomming[army]) + pass diff --git a/Server/Worldmap/wmTile.tscn b/Server/Worldmap/wmTile.tscn new file mode 100644 index 0000000..0c792a8 --- /dev/null +++ b/Server/Worldmap/wmTile.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://Worldmap/wmTile.gd" type="Script" id=1] + +[node name="wmTile" type="Node"] +script = ExtResource( 1 ) diff --git a/Server/Worldmap/worlTileMap.gd b/Server/Worldmap/worlTileMap.gd new file mode 100644 index 0000000..96057cb --- /dev/null +++ b/Server/Worldmap/worlTileMap.gd @@ -0,0 +1,106 @@ +extends TileMap + +signal tileSelected +# a copy of this is in the WORLDGENERATOR.GD file +var tileType = {'GRASS' : 0, 'FOREST_DENSE' : 1, 'FOREST' : 2, 'FOREST_SPACED' : 3, 'BLACK' : 4} + +#var switches = 0 +#var oldpos = Vector2(1,2) +var Army = preload("res://Worldmap/ArmyWM.tscn") +#vars for offsetting armies due to diplo +var xOffs = [64, 0, 64] +var yOffs = [0, 64, 64] + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +#func _process(delta): +# var mousePos = get_viewport().get_mouse_position() +# var loc = world_to_map(mousePos) +# var cell = get_cell(loc.x, loc.y) +# if (cell != -1): +# # print(self.tile_set.tile_get_name(cell)) +# #print(cell , "x is " ,loc.x, " and y is: ",loc.y) +# pass +# if (loc.x!=oldpos.x): +# switches += 1 +# oldpos=loc +# print("switches: " ,switches) + + +func addtile(tiledata): + set_cell(tiledata.x, tiledata.y, tileType[tiledata['terrain']]) + +func addArmy(armyName, armyData, tile): + var token = Army.instance() + var diplo = PlayerManager.checkDiplo(armyData['faction']) + var xoff = 32 + var yoff = 32 + if diplo == 'neutral': + xoff += xOffs[0] + yoff += yOffs[0] + elif diplo == 'allies': + xoff += xOffs[1] + yoff += yOffs[1] + elif diplo == 'enemies': + xoff += xOffs[2] + yoff += yOffs[2] + get_node('armies').add_child(token) + var pos = Vector2() + pos.x = tile['x'] + pos.y = tile['y'] +# print('armyposition') +# print(pos) +# pos.x = tile['x']+xoff +# pos.y = tile['y']+yoff +# print('armyposition') +# print(pos) + pos = map_to_world(pos) + pos.x += xoff + pos.y += yoff + token.goto(pos.x, pos.y) + token.name = armyName + pass + +func _input(event): + var notile= 'empty tile clicked' + if event is InputEventMouseButton: + var index = event.get_button_index() + if 1 == index or 2 == index: + if not event.is_pressed(): + if not PlayerManager.subMenuOpen: + var camera = get_parent().get_node("Camera2D") + var mousePos = get_global_mouse_position() + camera.offset + if mousePos[0] < WorldManager.UIBorder: + var loc = world_to_map(mousePos) + print("click: ", loc.x,", ", loc.y) + var tiles = WorldManager.worldTiles + if tiles.has(String(loc.x)): + var x = tiles[String(loc.x)] + if x.has(String(loc.y)): + var result = x[String(loc.y)] + if index == 1: + WorldManager.selectedRegion = result + WorldManager.selectedArmy = null + WorldManager.selecterArmydiplo = 'none' + emit_signal("tileSelected") + print("tile selected: ", result) + # if index == 2: + # if WorldManager.selecterArmydiplo == 'own': + # var same = true + # print(WorldManager.selectedArmy, WorldManager.selecterArmydiplo) + # if not WorldManager.selectedRegion.x == result.x: + # print("x matches not") + # same = false + # if not WorldManager.selectedRegion.y == result.y: + # print("y matches not") + # same = false + # if not same: + # print("right click with own army") + else: + print(notile) + else: + print(notile) + diff --git a/Server/Worldmap/worldTiles.tres b/Server/Worldmap/worldTiles.tres new file mode 100644 index 0000000..8e3d59d --- /dev/null +++ b/Server/Worldmap/worldTiles.tres @@ -0,0 +1,85 @@ +[gd_resource type="TileSet" load_steps=2 format=2] + +[ext_resource path="res://images/WorldTiles.png" type="Texture" id=1] + +[resource] +0/name = "Grass" +0/texture = ExtResource( 1 ) +0/tex_offset = Vector2( 0, 0 ) +0/modulate = Color( 1, 1, 1, 1 ) +0/region = Rect2( 0, 0, 128, 128 ) +0/tile_mode = 0 +0/occluder_offset = Vector2( 0, 0 ) +0/navigation_offset = Vector2( 0, 0 ) +0/shapes = [ ] +0/z_index = 0 +1/name = "Forest dense" +1/texture = ExtResource( 1 ) +1/tex_offset = Vector2( 0, 0 ) +1/modulate = Color( 1, 1, 1, 1 ) +1/region = Rect2( 0, 128, 128, 128 ) +1/tile_mode = 0 +1/occluder_offset = Vector2( 0, 0 ) +1/navigation_offset = Vector2( 0, 0 ) +1/shapes = [ ] +1/z_index = 0 +2/name = "Forest" +2/texture = ExtResource( 1 ) +2/tex_offset = Vector2( 0, 0 ) +2/modulate = Color( 1, 1, 1, 1 ) +2/region = Rect2( 128, 128, 128, 128 ) +2/tile_mode = 0 +2/occluder_offset = Vector2( 0, 0 ) +2/navigation_offset = Vector2( 0, 0 ) +2/shapes = [ ] +2/z_index = 0 +3/name = "Forest with space" +3/texture = ExtResource( 1 ) +3/tex_offset = Vector2( 0, 0 ) +3/modulate = Color( 1, 1, 1, 1 ) +3/region = Rect2( 256, 128, 128, 128 ) +3/tile_mode = 0 +3/occluder_offset = Vector2( 0, 0 ) +3/navigation_offset = Vector2( 0, 0 ) +3/shapes = [ ] +3/z_index = 0 +4/name = "Black" +4/texture = ExtResource( 1 ) +4/tex_offset = Vector2( 0, 0 ) +4/modulate = Color( 1, 1, 1, 1 ) +4/region = Rect2( 0, 640, 128, 128 ) +4/tile_mode = 0 +4/occluder_offset = Vector2( 0, 0 ) +4/navigation_offset = Vector2( 0, 0 ) +4/shapes = [ ] +4/z_index = 0 +5/name = "Water Deep" +5/texture = ExtResource( 1 ) +5/tex_offset = Vector2( 0, 0 ) +5/modulate = Color( 1, 1, 1, 1 ) +5/region = Rect2( 256, 640, 128, 128 ) +5/tile_mode = 0 +5/occluder_offset = Vector2( 0, 0 ) +5/navigation_offset = Vector2( 0, 0 ) +5/shapes = [ ] +5/z_index = 0 +6/name = "Water bright" +6/texture = ExtResource( 1 ) +6/tex_offset = Vector2( 0, 0 ) +6/modulate = Color( 1, 1, 1, 1 ) +6/region = Rect2( 512, 640, 128, 128 ) +6/tile_mode = 0 +6/occluder_offset = Vector2( 0, 0 ) +6/navigation_offset = Vector2( 0, 0 ) +6/shapes = [ ] +6/z_index = 0 +7/name = "aOddTile" +7/texture = ExtResource( 1 ) +7/tex_offset = Vector2( 0, 0 ) +7/modulate = Color( 1, 1, 1, 1 ) +7/region = Rect2( 256, 256, 128, 128 ) +7/tile_mode = 0 +7/occluder_offset = Vector2( 0, 0 ) +7/navigation_offset = Vector2( 0, 0 ) +7/shapes = [ ] +7/z_index = 0 diff --git a/Server/appdata/Godot/app_userdata/LegionServer/armies/known.json b/Server/appdata/Godot/app_userdata/LegionServer/armies/known.json new file mode 100644 index 0000000..f62aa1b --- /dev/null +++ b/Server/appdata/Godot/app_userdata/LegionServer/armies/known.json @@ -0,0 +1 @@ +server was started before diff --git a/Server/appdata/Godot/app_userdata/LegionServer/factions/KG.json b/Server/appdata/Godot/app_userdata/LegionServer/factions/KG.json new file mode 100644 index 0000000..1aac3c6 --- /dev/null +++ b/Server/appdata/Godot/app_userdata/LegionServer/factions/KG.json @@ -0,0 +1,3 @@ +{ +"diplomacy":{"allies":[], "enemies":["barbaren","barb"]} +} \ No newline at end of file diff --git a/Server/appdata/Godot/app_userdata/LegionServer/players.sav b/Server/appdata/Godot/app_userdata/LegionServer/players.sav new file mode 100644 index 0000000..dbbf2f1 --- /dev/null +++ b/Server/appdata/Godot/app_userdata/LegionServer/players.sav @@ -0,0 +1 @@ +{"name":"teas","password":"1","faction":"barb"} diff --git a/Server/appdata/Godot/app_userdata/LegionServer/saved_game.sav b/Server/appdata/Godot/app_userdata/LegionServer/saved_game.sav new file mode 100644 index 0000000..6a4b86a --- /dev/null +++ b/Server/appdata/Godot/app_userdata/LegionServer/saved_game.sav @@ -0,0 +1,3 @@ +{"teas":{"password":"","faction":"barb"}} +{"test2":{"password":"asd","faction":"barb"}} +{"bob":{"password":"passs","faction":"barb"}} diff --git a/Server/appdata/Godot/app_userdata/LegionServer/server.txt b/Server/appdata/Godot/app_userdata/LegionServer/server.txt new file mode 100644 index 0000000..f62aa1b --- /dev/null +++ b/Server/appdata/Godot/app_userdata/LegionServer/server.txt @@ -0,0 +1 @@ +server was started before diff --git a/Server/appdata/LegionServer/armies/known.json b/Server/appdata/LegionServer/armies/known.json new file mode 100644 index 0000000..f62aa1b --- /dev/null +++ b/Server/appdata/LegionServer/armies/known.json @@ -0,0 +1 @@ +server was started before diff --git a/Server/appdata/LegionServer/factions/KG.json b/Server/appdata/LegionServer/factions/KG.json new file mode 100644 index 0000000..1aac3c6 --- /dev/null +++ b/Server/appdata/LegionServer/factions/KG.json @@ -0,0 +1,3 @@ +{ +"diplomacy":{"allies":[], "enemies":["barbaren","barb"]} +} \ No newline at end of file diff --git a/Server/appdata/LegionServer/factions/barb.json b/Server/appdata/LegionServer/factions/barb.json new file mode 100644 index 0000000..1aac3c6 --- /dev/null +++ b/Server/appdata/LegionServer/factions/barb.json @@ -0,0 +1,3 @@ +{ +"diplomacy":{"allies":[], "enemies":["barbaren","barb"]} +} \ No newline at end of file diff --git a/Server/appdata/LegionServer/factions/barbaren.json b/Server/appdata/LegionServer/factions/barbaren.json new file mode 100644 index 0000000..1aac3c6 --- /dev/null +++ b/Server/appdata/LegionServer/factions/barbaren.json @@ -0,0 +1,3 @@ +{ +"diplomacy":{"allies":[], "enemies":["barbaren","barb"]} +} \ No newline at end of file diff --git a/Server/appdata/LegionServer/players.sav b/Server/appdata/LegionServer/players.sav new file mode 100644 index 0000000..dbbf2f1 --- /dev/null +++ b/Server/appdata/LegionServer/players.sav @@ -0,0 +1 @@ +{"name":"teas","password":"1","faction":"barb"} diff --git a/Server/appdata/LegionServer/server.txt b/Server/appdata/LegionServer/server.txt new file mode 100644 index 0000000..f62aa1b --- /dev/null +++ b/Server/appdata/LegionServer/server.txt @@ -0,0 +1 @@ +server was started before diff --git a/Server/army/Army.tscn b/Server/army/Army.tscn new file mode 100644 index 0000000..5f1ade5 --- /dev/null +++ b/Server/army/Army.tscn @@ -0,0 +1,82 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://army/inventory.gd" type="Script" id=1] +[ext_resource path="res://army/Stack2x1.tscn" type="PackedScene" id=2] + +[sub_resource type="GDScript" id=1] +script/source = "extends Node2D + + +#army script for tokens on worldmap + + +export var faction = '' +export var armyname = '' + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +func addLeader(leader): + get_node(\"Leader\").add_child(leader) + applyLeaderBuffs() + +func applyLeaderBuffs(): + + #TO DO: figure out how leader buffs army + return + + +func endTurn(): + for stack in get_node(\"Units\").get_children(): + stack.endTurn() + +func fetchLeader(): + var node = get_node(\"Leader\") + var fetch = node.get_children() + applyLeaderBuffs() + return fetch + +func loadJson(name, data): + if(data.has('faction')): + faction = data['faction'] + if(data.has('armyname')): + armyname = data['armyname'] + + + +#for changing position on worldmap +func goto(x,y): + self.position.x = x + self.position.y = y + pass + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func toText(): + var json = { + \"faction\" : faction, + \"armyname\":armyname, + \"x\":position.x, + \"y\":position.y + } + return json +" + +[node name="Army" type="Node2D"] +script = SubResource( 1 ) + +[node name="Leader" type="Node" parent="."] + +[node name="Units" type="Node" parent="."] + +[node name="Stack" parent="Units" instance=ExtResource( 2 )] + +[node name="Stack2" parent="Units" instance=ExtResource( 2 )] +position = Vector2( 0.278293, 61.8525 ) + +[node name="inventory" type="Node" parent="."] +script = ExtResource( 1 ) diff --git a/Server/army/Attack.tscn b/Server/army/Attack.tscn new file mode 100644 index 0000000..e64809b --- /dev/null +++ b/Server/army/Attack.tscn @@ -0,0 +1,3 @@ +[gd_scene format=2] + +[node name="Node" type="Node"] diff --git a/Server/army/Effect.gd b/Server/army/Effect.gd new file mode 100644 index 0000000..17ac60e --- /dev/null +++ b/Server/army/Effect.gd @@ -0,0 +1,13 @@ +extends Node2D + +var effectName = "Not given" +var duration = 5 +var data = {} + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Server/army/Effect.tscn b/Server/army/Effect.tscn new file mode 100644 index 0000000..b541d10 --- /dev/null +++ b/Server/army/Effect.tscn @@ -0,0 +1,8 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://army/Effect.gd" type="Script" id=1] + +[node name="Effect" type="Node2D"] +script = ExtResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] diff --git a/Server/army/Stack.gd b/Server/army/Stack.gd new file mode 100644 index 0000000..090695e --- /dev/null +++ b/Server/army/Stack.gd @@ -0,0 +1,236 @@ +extends KinematicBody2D + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +var stacksize = 1 #amount of Units in Stack +var actionPoints = 0 +var moveAP = 0 +var currentHP = 1 +var faction = 'KG' + + +var StackType = UnitFactory.UNIT_TYPES['INFANTRY'] +var template = 'civillian' +var templateStats = {} +var level = 1 +var unitName = 'Mensch' +var unitData = { + } +var equipment = [ +] +var traits = {} +var buffs +var resultingStats = UnitFactory.emptyStats + +const MAXTOHIT = 95 +const MINTOHIT = 5 +const MEELEOVERSIZEPENALTY = 20 +const RANGEDOVERSIZEPENALTY = 12 + + + + +func applyStrength(strength, damageRoll): + if strength>0: + var bonus = 4*strength + damageRoll*=100+bonus + damageRoll = int(damageRoll/100) + else: + var malus = -5*strength + if strength< -20: + strength= -20 + damageRoll*=100+strength + damageRoll = int(damageRoll/(100+malus)) + if damageRoll<1: + damageRoll=1 + return damageRoll + + + +func attackMeele(defender): + var attack = resultingStats.meeleAttack + var defense = defender.resultingStats.defense + var toHit = attack.precision - defense.evasion + var remainingAttackers = stacksize + var strength = attack.strength - defense.meeleDef + var defenderSize = defender.getMaxAttackers() + var damage = {} + var hits = 0 + while (remainingAttackers>0): + if toHit < 0: + remainingAttackers = 1 + if (remainingAttackers<=defenderSize): + for i in remainingAttackers: + if rollToHit(toHit): + ++hits + remainingAttackers = 0 + else: + for i in defenderSize: + if rollToHit(toHit): + ++hits + remainingAttackers -= defenderSize + toHit -= MEELEOVERSIZEPENALTY + for i in hits: + var rolled = rollDamage(defense.absorb, strength, attack.damage) + UnitFactory.mergeDicts(damage, rolled) + defender.receiveDamage(damage) + return + + +# defender: object with getCombatStats()->stats, receiveDamage(damage), getMaxattackers()->int +func attackRange(defender): + var attack = resultingStats.rangedAttack + var defense = defender.getCombatStats().defense + var toHit = attack.precision - defense.evasion + var remainingAttackers = stacksize + var strength = attack.strength - defense.rangedDef + var defenderSize = defender.getMaxAttackers() + var damage = {} + var hits = 0 + while (remainingAttackers>0): + if (stacksize<=defenderSize): + for i in remainingAttackers: + if rollToHit(toHit): + ++hits + remainingAttackers = 0 + else: + for i in defenderSize: + if rollToHit(toHit): + ++hits + remainingAttackers -= defenderSize + toHit -= RANGEDOVERSIZEPENALTY + for i in hits: + var rolled = rollDamage(defense.absorb, strength, attack.damage) + UnitFactory.mergeDicts(damage, rolled) + defender.receiveDamage(damage) + return + + +func calculateStatBasis(): + loadTemplateStats() + resultingStats = {} + mergeStats(resultingStats, unitData) + for trait in traits: + if trait.has('stats'): + mergeStats(resultingStats, trait.stats) +# for buff in buffs: +# mergeStats(resultingStats, buff.stats) +# for item in equipment: +# mergeStats(resultingStats, item.stats) + return + +func endTurn(): + actionPoints = resultingStats.ap + moveAP = resultingStats.moveAP + +func getCombatStats(): + return resultingStats + +func getMaxAttackers(): + return stacksize + +func loadJson(name, data): + if(data.has('stacksize')): + stacksize = data['stacksize'] + if(data.has('actionPoints')): + actionPoints = data['actionPoints'] + if(data.has('template')): + var templateName = data['template'] + if (UnitFactory.templates.has(templateName)): + template = templateName + else: + print("template not found: ", templateName, "when loading Unit") + if(data.has('level')): + level = data['level'] + loadTemplateStats() + +func looseUnits(deaths): + stacksize -= deaths + #to do: emit signal to region for dropping loot + xp + return + + +func loadTemplateStats(): + templateStats = DataManager.getUnitClassStats(template, level) + return templateStats + +# Called when the node enters the scene tree for the first time. +func _ready(): + calculateStatBasis() + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func mergeStats(receiver, donor): + for key in donor: + if receiver.has(key): + var tv = receiver[key] + if typeof(tv) == TYPE_DICTIONARY: + mergeStats(tv, donor[key]) + else: + receiver[key] += donor[key] + else: + receiver[key] = donor[key] + +func returnAsJson(): + var node_data = { + "unitName": unitName, + "unitData": unitData, + "equipment" : equipment, + "template": template, + "stacksize" : stacksize, + "level": level, + "faction" : faction + } + var json = to_json(node_data) + return json + +func receiveDamage(damage): + var maxHP = getCombatStats().hp + var kills = int(damage/maxHP) + var remainingDamage = damage%maxHP + if remainingDamage>=currentHP: + remainingDamage -= currentHP + currentHP = maxHP-remainingDamage + kills += 1 + else: + currentHP -= remainingDamage + looseUnits(kills) + return + +func rollDamage(absorb, strength, damage): + var dealt={} + var absorbed={} + for key in damage: + var minDamage = damage[key][0] + var toRoll = damage[key][1] - minDamage + var damageRoll + if toRoll > 0: + damageRoll = randi()%toRoll+minDamage + else: + damageRoll = minDamage + damageRoll = applyStrength(strength, damageRoll) + if absorb.has(key): + var minAbsorb = absorb[key][0] + var absorbToRoll = absorb[key][1] - minAbsorb + var absorbRoll = randi()%toRoll+minAbsorb + if absorbRoll>=damageRoll: + absorbRoll = damageRoll - 1 + damageRoll -= absorbRoll + absorbed[key]=absorbRoll + dealt[key]=damageRoll + return {"dealt":dealt,"absorbed":absorbed} + + +func rollToHit(chance)->bool: + if chance>MAXTOHIT: + chance=MAXTOHIT + elif chancechance: + return false + return true diff --git a/Server/army/Stack.tscn b/Server/army/Stack.tscn new file mode 100644 index 0000000..904bc80 --- /dev/null +++ b/Server/army/Stack.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://army/Stack.gd" type="Script" id=1] +[ext_resource path="res://images/region/dragon.png" type="Texture" id=2] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 62.4343, 30.7994 ) + +[node name="Stack" type="KinematicBody2D"] +position = Vector2( 0.278293, 0.482198 ) +script = ExtResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( 63.8501, 32 ) +shape = SubResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 64.0109, 31.8647 ) +texture = ExtResource( 2 ) diff --git a/Server/army/Stack1x1.tscn b/Server/army/Stack1x1.tscn new file mode 100644 index 0000000..1e5ecff --- /dev/null +++ b/Server/army/Stack1x1.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://army/Stack.gd" type="Script" id=1] +[ext_resource path="res://images/warrior.png" type="Texture" id=2] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 32, 32 ) + +[node name="Stack" type="KinematicBody2D"] +position = Vector2( 0.278293, 0.482198 ) +script = ExtResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( 32, 32 ) +shape = SubResource( 1 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 32.353, 31.8647 ) +texture = ExtResource( 2 ) diff --git a/Server/army/Stack2x1.tscn b/Server/army/Stack2x1.tscn new file mode 100644 index 0000000..904bc80 --- /dev/null +++ b/Server/army/Stack2x1.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://army/Stack.gd" type="Script" id=1] +[ext_resource path="res://images/region/dragon.png" type="Texture" id=2] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 62.4343, 30.7994 ) + +[node name="Stack" type="KinematicBody2D"] +position = Vector2( 0.278293, 0.482198 ) +script = ExtResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( 63.8501, 32 ) +shape = SubResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 64.0109, 31.8647 ) +texture = ExtResource( 2 ) diff --git a/Server/army/UnitTemplate.gd b/Server/army/UnitTemplate.gd new file mode 100644 index 0000000..9bf0c8b --- /dev/null +++ b/Server/army/UnitTemplate.gd @@ -0,0 +1,107 @@ +extends Node + +var templateName = 'Empty' +var heroic := false +var legendary := false +var creator := '' +var templateClasses := [{}] #enthält pro level einen dict aus klassen mit ihren jeweiligen stufen +var xpCostPerLevel := [] #die xp kosten pro level +var statsPerLevel := [{}] #die kampfwerte pro level +var activeAbilities := [{}]#die aktiven Fähigkeiten pro level +var extraAbilitiy = "" # die zugewiesene +var passiveAbilities := []#die aktiven Fähigkeiten pro level +var maxLevel = 0 #momentan höchstes level der Vorlage; +var baseUnit = '' +var equip = {"armor":null,"leftHand":null,"rightHand":null,"ranged":null} + + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +func addClass(charClass): + #do nothing if the class is invalid + if not DataManager.classes.has(charClass): + return + #check if class list already full + if legendary: + if templateClasses[maxLevel].size()>7: + return + elif heroic: + if templateClasses[maxLevel].size()>5: + return + elif templateClasses[maxLevel].size()>3: + return + var classData = DataManager.classes[charClass] + #first level + if maxLevel == 0: + templateClasses[maxLevel]={charClass:1} + xpCostPerLevel[maxLevel]=classData.xp[maxLevel] + maxLevel +=1 + return + #adding a new class + if not templateClasses[maxLevel-1].has(charClass): + var newClasses:Dictionary = templateClasses[maxLevel-1] + newClasses[charClass] = 1 + templateClasses[maxLevel] = newClasses + xpCostPerLevel[maxLevel]=classData.xp[0]+baseUnit.xp[maxLevel] + maxLevel += 1 + else: + var newClasses:Dictionary = templateClasses[maxLevel-1] + if (newClasses[charClass]source.maxLevel: + lvl=source.maxLevel + return source.Stats[lvl-1] + + + +func getUnitStats(unit:String): + if not units.has(unit): + return {} + return units[unit].Stats +#func loadInDict(dict, path): +# var pathes = dir_path_to_files(path) +# for key in pathes: +# print(key) +# var file = File.new() +# file.open(key, file.READ) +## var line = file.get_line() +# var json = file.get_as_text() +# var json_result = JSON.parse(json).result +# if json_result: +# print(json_result) +# dict[json_result['name']]={"duration":json_result['duration']} +# file.close() + +func loadInArray(array, path): + var pathes = dir_path_to_files(path) + for key in pathes: + #print(key) + var file = File.new() + file.open(key, file.READ) +# var line = file.get_line() + var json = file.get_as_text() + var json_result = JSON.parse(json).result + array.append(json) + pass + +func loadInDict(dict, path): + var pathes = dir_path_to_files(path) + for key in pathes: + #print(key) + var file = File.new() + file.open(key, file.READ) +# var line = file.get_line() + var json = file.get_as_text() + var json_result = JSON.parse(json).result + if json_result: + #print(json_result) + var data = {} + for nkey in json_result: + if not nkey == 'name': + data[nkey] = json_result[nkey] + dict[json_result['name']]=data + file.close() diff --git a/Server/autoloads/Network.gd b/Server/autoloads/Network.gd new file mode 100644 index 0000000..146e5f3 --- /dev/null +++ b/Server/autoloads/Network.gd @@ -0,0 +1,82 @@ +extends Node + +const DEFAULT_IP = '127.0.0.1' +const DEFAULT_PORT = 31400 +const MAX_PLAYERS = 50 + +var ip = '' +var players = { } +var self_data = { name = '', faction = '' } +var pw = '' + + +signal player_disconnected +signal server_disconnected + +func _ready(): + get_tree().connect('network_peer_disconnected', self, '_on_player_disconnected') + get_tree().connect('network_peer_connected', self, '_on_player_connected') + +remote func checkServerPassword(serverPassword): + if (serverPassword=="myPW"): + print("ServerPassword korrekt") + else: + print("ServerPassword falsch") + +func create_server(): + players[1] = self_data + var peer = NetworkedMultiplayerENet.new() + peer.create_server(DEFAULT_PORT, MAX_PLAYERS) + get_tree().set_network_peer(peer) + set_network_master(1) + + +#function that creates needed files and directories in user +#To do: copy preset folder to user, handling should be uniform +func firstStart(): + var dir = Directory.new() + dir.open("user://") + dir.make_dir("armies") + dir.make_dir("factions") + dir.make_dir("users") + dir.make_dir("factions") + dir.make_dir("regions") + dir.make_dir("worldmap") + var file = File.new() + file.open("user://armies/known.txt", File.WRITE) + file.store_line("{}") + file.close() + file.open("user://server.txt", File.WRITE) + file.store_line("server was started before") + file.close() +# file.open("user://players.sav", File.WRITE) +# file.store_line('{"name":"teas","password":"1","faction":"barb"}') +# file.close() + +func _on_player_disconnected(id): + players.erase(id) + PlayerManager.player_disconnected(id) + +func _on_player_connected(connected_player_id): + print(">>>>>>>>>>> on player connected <<<<<<<<<<<<< ", connected_player_id) + var local_player_id = get_tree().get_network_unique_id() + if not(get_tree().is_network_server()): + rpc_id(1, '_request_player_info', local_player_id, connected_player_id) + print('get_tree().is_network_server() is not') + +#method called from client to server to be identified. +remote func _request_auth(id, userData): + print(">>>>> WE REQUESTED AUTH <<<<<<<") + var response = PlayerManager.identifyPlayer(userData['name'], userData['password']) + print('Server -> _request_auth ' + response) + rpc_id(id, 'receiveAuth', response) + +remote func _request_player_info(request_from_id, player_id): + rpc_id(request_from_id, '_send_player_info', player_id, players[player_id]) + +# A function to be used if needed. The purpose is to request all players in the current session. +remote func _request_players(request_from_id): + for peer_id in players: + if( peer_id != request_from_id): + rpc_id(request_from_id, '_send_player_info', peer_id, players[peer_id]) + diff --git a/Server/autoloads/PlayerManager.gd b/Server/autoloads/PlayerManager.gd new file mode 100644 index 0000000..840c6fb --- /dev/null +++ b/Server/autoloads/PlayerManager.gd @@ -0,0 +1,180 @@ +extends Node + + + +var authcache = {'response':{"found":"lolno", "faction":"None"}} +var myFactionData = {} +var playerFaction +var player:Array = [] + +var knownPlayers = {} +var pathToPlayers = 'user://users/' +var clients_factions = {} #used to recognize if networkrequest are allowed to do an action {networkid:factionname} +var factions = {} + +var diplomacyStates = {'neutral': 1, 'own' : 2, 'enemies':3, "allies":4} + + +#client helper data +var subMenuOpen = false + + +func checkdiplo(factionA, factionB): + var response = 'neutral' + if factionA == factionB: + response = 'own' + else: + if factions.has(factionA): + var factionData = factions[factionA] + if factionData.has('diplomacy'): + var diplo = factionData['diplomacy'] + for key in diplo: + if diplo[key].has(factionB): + response = key + return response + return response + +#returns neutral for neutral, allies for allies, own for own and enemies for enemies +func checkDiplo(faction): + var data = authcache['response'] + var authed = data['found'] + var response = 'neutral' + if faction==data['faction']: + response = 'own' + return response + elif authed: + if data.has('factiondata'): + var factiondata = data['factiondata'] + if factiondata.has('diplomacy'): + var diplo = factiondata['diplomacy'] + for key in diplo: + if diplo[key].has(faction): + response = key + return response +# print("checking diplo") +# print(data, faction) +# print("considered ", response) +# print(" ") +# print("illegal move attempt") + return response + #var diplo = factiondata['diplomacy'] + pass + + +func confirmFaction(id, factionname): + if factionname==clients_factions[id]: + print(id, " is ", factionname) + return true + print(id, " is NOT ", factionname) + return false + +func _ready(): + print("starting playermanager") + DataManager.loadInDict(knownPlayers, pathToPlayers) + print(knownPlayers) + var factiondata = {} + # + #DataManager.loadInDict( + #register_player("functiontest","yes","barbarian") + print("started") + + + + +func getPlayerFactionData(): + var data = null + if authcache.has('response'): + var response = authcache['response'] + #data = response['factiondata'] + return data + + +func identifyPlayer(playerName, pw = ''): # get the data from the json file + + var response : Dictionary = {'name': playerName, 'found': false, 'auth': false, 'faction': ''} + + if knownPlayers.has(playerName): # checks if player exists in the list + print("Player found: " + playerName) + var playerPW = knownPlayers[playerName]['password'] + print(playerPW) + if not pw.empty() and pw == playerPW: # checks if there is a password + print("Password found") + + + + #var response = {'name':playerName, 'found':false, 'auth':false, 'faction':''} + #takeControl('KG')#for testing purposes + #if knownPlayers.has(authcache[0]): # index 0 = playerName + #response['found'] = true + # player = knownPlayers[authcache] + # if player['password'] == password: + # response['auth'] = true + # var playerFaction = player['faction'] + # response['faction'] = playerFaction + # if factions.has(playerFaction): + # response['factiondata'] = factions[playerFaction] + # clients_factions[id] = player['faction'] +# if loaded: +# clients_factions[1] = player['faction'] +# clients_factions[0] = player['faction'] + # print(playerName, ' logged in as ', player['faction']) + # else: + # print('wrong pw') + #else: + # print('no such name') + #print("identify response is: ",response) + #return response +# register_player(name, password, "barb2") +# print('registering: '+name+' + '+password) + + +func player_disconnected(id): + if clients_factions[id]: + clients_factions.erase(id) + + +remote func receiveAuth(response): + print(">>>>> WE RECEIVED DATA <<<<<<<<") + + if not response.found: + return + authcache.response = response + if response.has('factiondata'): + myFactionData = response['factiondata'] + #to do: remove accesses to redundant data and then erase redundant data + if response.has('faction'): + playerFaction = response.faction + #to do: remove accesses to redundant data and then erase redundant data + print("my faction data is:",myFactionData) + + +remote func registerPlayer(userJSON : Dictionary): # create file for user information from client + + var playerName = userJSON['playername'] +# var data = {"name":playerName,"password":password, "faction":faction} + var file = File.new() + #print(pathToPlayers+playerName+".json") + if file.file_exists(pathToPlayers+playerName+".json"): + print(playerName+" exists already") + return + var race = userJSON['volk'] + # controls if the race exists in the game + if !DataManager.units.has(race): + return + + file.open(pathToPlayers+playerName+".json", File.WRITE) + file.store_line(JSON.print(userJSON)) + file.close() + knownPlayers[playerName]=userJSON + print("Known Players: " + knownPlayers) + print("registered player: "+playerName) + + +remote func register_faction(factionname, playername, race): + var faction = { "factionname": factionname, "playername": playername, 'diplomacy' : '', 'race':race} + pass + + +func takeControl(faction): +# clients_factions[1] = faction + clients_factions[0] = faction diff --git a/Server/autoloads/RegionManager.gd b/Server/autoloads/RegionManager.gd new file mode 100644 index 0000000..4637cca --- /dev/null +++ b/Server/autoloads/RegionManager.gd @@ -0,0 +1,16 @@ +extends Node + + +var loaded = {} + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass + +remote func loadRegion(x,y): + var region + if loaded.has(x): + if loaded.x.has(y): + region = loaded.x.y + pass diff --git a/Server/autoloads/UnitFactory.gd b/Server/autoloads/UnitFactory.gd new file mode 100644 index 0000000..dad9ffb --- /dev/null +++ b/Server/autoloads/UnitFactory.gd @@ -0,0 +1,129 @@ +extends Node + +#internal variables + +#var Stack = preload("res://army/Stack.tscn") + +#itemdatas +#const EQUIP_TYPES = {"MEELE":"Nahkampf", "RANGED":"Fernkampf","SHIELD":"Schild", "OTHER":"Sonstige"} + + +#const fightersForMeeleRange = [300,400,500,600,700,800,900,1000] #TO DO: Formula is 200 + 100*range +#unitdatas + +const UNIT_TYPES = {"INFANTRY":"Infanterie", "CAVALRY":"Kavallerie", "SIEGE":"Belagerungseinheit"} +const maxSizeInfantry = 3000 +const maxSizeHorses = 999 +const maxSizeSiege = 50 +const emptyStats = { + "hp":1, + "ap":1, + "moveAP":0, + "meeleAttack":{ + "APCost":0, + "APCostReduction":0, + "strength":0, + "precision":0, + "attacks":0, + "hitsPerAttack":0, + "damage":{ + "blunt":[0,0], + "fire":[0,0], + "pierce":[0,0], + "electric":[0,0], + "slash":[0,0], + "magical":[0,0]} + }, + "rangedAttack":{ + "APCost":0, + "APCostReduction":0, + "strength":0, + "precision":0, + "attacks":0, + "hitsPerAttack":0, + "damage":{ + "blunt":[0,0], + "fire":[0,0], + "pierce":[0,0], + "electric":[0,0], + "slash":[0,0], + "magical":[0,0]} + }, + "defense":{ + "evasion":0, + "meeleDef":0, + "rangedDef":0, + "absorb":{ + "blunt":[0,0], + "fire":[0,0], + "pierce":[0,0], + "electric":[0,0], + "slash":[0,0], + "magical":[0,0] + } + }, + "abilities":{} + } + +#data accessible for outwards +var templates = {} + +# Called when the node enters the scene tree for the first time. +func _ready(): + #roll() + pass # Replace with function body. + + + +func create(unitDesign): + pass + + +func mergeArrayAdditive(receiver, donor): + for key in donor: + if receiver.has(key): + var tv = receiver[key] + if typeof(tv) == TYPE_INT: + receiver[key] = receiver[key] + donor[key] + else: + print("Unhandled case in UnitFactory.mergArray") + return receiver + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func mergeDicts(receiver, donor): + for key in donor: + if receiver.has(key): + var tv = receiver[key] + if typeof(tv) == TYPE_DICTIONARY: + receiver[key]=mergeDicts(tv, donor[key]) +# elif typeof(tv) == TYPE_INT_ARRAY: + elif typeof(tv) == TYPE_ARRAY: + receiver[key]=mergeArrayAdditive(tv, donor[key]) + print('array found in UnitFactory mergeStats') + else: + #array sollte in godot diesen syntax als union interpretieren, + #integers als addition, ansonsten braucht es hier ein: +# + receiver[key] = receiver[key] + donor[key] + else: + receiver[key] = donor[key] + return receiver + +func mergeStats(receiver, donor): + for key in donor: + if not receiver.has(key): + receiver[key] = donor[key] + elif key=="hp"||key=="ap"||key=="moveAP": + receiver[key] += donor[key] + elif key=="meeleAttack"||key=="rangedAttack": + receiver[key]=mergeDicts(receiver[key],donor[key]) + else: + print("unhandled key in UnitFactory.mergeStats: ",key, " found in donor:", donor) + return receiver + + +func getCombatStatsDict(): + return emptyStats + diff --git a/Server/autoloads/WorldManager.gd b/Server/autoloads/WorldManager.gd new file mode 100644 index 0000000..1ae6449 --- /dev/null +++ b/Server/autoloads/WorldManager.gd @@ -0,0 +1,201 @@ +extends Node + +signal updateMap +signal updateUI + +var Server = true #true if this is the server isntances - can be removed now +const UIBorder = 1310 +const travelTime = 10 + + +var worldmap +var worldmapLoaded = false + + +var worldTiles = {} #currently managed with strings, can be indexed by ints in Godotscript +var selectedRegion = null +var armiesOnMap = {} +var armies = {} +var selectedArmy = null +var selecterArmydiplo = '' + + +func addArmy(from, to, army, armydata, player=true): #army is the armyname, armydata is the object. + var arrive = from['turn'] + travelTime + var regionturn = to['turn'] + if arrive <= regionturn: + var armies = to['armies'] + armies[army] = armydata + setPresent(to) + if player: + if (to['playerTurnOn'] == -1) or (to['playerTurnOn'] > regionturn): + to['playerTurnOn'] = regionturn + else: + if (to['playerTurnOn'] == -1):# -1 Zeit ist für Felder die noch nie betreten wurden. + to['turn'] = arrive + var armies = to['armies'] + print(armies) +# if not typeof(armies) == TYPE_DICTIONARY: +# to['armies']={} +# armies = to['armies'] + armies[army] = armydata + setPresent(to) + if player: + to['playerTurnOn'] = regionturn + else: + if not to.has('incomming'): + to['incomming'] = {} + var incomming = to['incomming'] + armydata['arrive'] = arrive + incomming[army] = armydata + if player: + addFaction(to, armydata['faction']) + + + + + +func addTile(response): + var x = '' + if not worldTiles.has(String(response['x'])): + worldTiles[String(response['x'])] = {} + x = worldTiles[String(response['x'])] + x[String(response['y'])] = response + + +func addFaction(tile, factionName): + if not tile.factions.has(factionName): + tile.factions.append(factionName) + +func loadAsServer(): + var path = 'user://worldmap.json' + var directory = Directory.new() + var hasFile = directory.file_exists(path) + var file = File.new() + if !hasFile: + path = directory.get_current_dir()+'preset//worldmap.json' + file.open(path, file.READ) + var json = file.get_as_text() +# print('json:'+json) + var json_result = JSON.parse(json).result + #print(json_result) + for tile in json_result: + #ensure everyone who has an army is counted as present + var present = [] + if tile.has('armies'): + for army in tile['armies']: + if not present.has(army['faction']): + present.append(army['faction']) + tile['present'] = present + WorldManager.addTile(tile) + #to do: function to load regions + + + +func getTileOrNull(x,y): + var tile = null + x = String(x) + y = String(y) + print("find ",x," ", y) + if worldTiles.has(x): + var row = worldTiles[x] + print(row) + if row.has(y): + tile = row[y] + print("tileOrNull not null") + return tile + +func getTileGuaranteed(x, y): + var tile = null + tile = getTileOrNull(x,y) + if tile == null: + tile = { + "x":x, + "y":y, + "terrain":"FOREST", + "factions":[], + "turn":1, + "armies":{}, + "present":{}, + "playerTurnOn":-1 + } + addTile(tile) + return tile + +remote func moveArmy(fromX, fromY, toX, toY, army): + var from = getTileOrNull(fromX, fromY) + print("request army move") + print("tile: ", from) + if not from == null: + if from.has('armies'): + var armies = from['armies'] + if armies.has(army): + var armydata = armies[army] + if PlayerManager.confirmFaction(get_tree().get_rpc_sender_id(), armydata['faction']): + print("confirm move") + var targetTile = getTileGuaranteed(toX, toY) + print("target is: ",targetTile) + from['armies'].erase(army) + removeArmy(from, army) + addArmy(from, targetTile, army, armydata) + updateLocalPlayers(from) + updateLocalPlayers(targetTile) + pass + +remote func receiveMap(tiles): + for tile in tiles: + addTile(tile) + emit_signal("updateMap") + emit_signal("updateUI") + + +func updateLocalPlayers(tile): + var factions = tile.present + var connections = PlayerManager.clients_factions + for faction in factions: + for connection in connections: + if connections[connection]==faction: + if not ((connection == 1) or (connection==0)): + rpc_id(connection, 'receiveMap', tile) + pass + +func removeArmy(tile, army): + var armies = tile.armies + armies.erase(army) + setPresent(tile) +# addTile(tile) +# print(getTileGuaranteed(0,0)) + + +func requestServer(): + rpc_id(1, 'requestMap', PlayerManager.authcache['response']['faction']) + + + +func setPresent(tile): + var armies = tile.armies + var present = {} + for army in armies: + var armyValue = 1#TO DO: have method to calculate army strength + var armydata = armies[army] + var faction = armydata.faction + if present.has(faction): + present[faction] += armyValue + else: + present[faction] = armyValue + tile['present']=present + return + + + +remote func settle(tile, army, ascending): #if ascending, the cheapest ressources are used first. Otherwise the most expensive is used first. + var buildingtime = 10 + if tile.owner == '': + tile.owner = army.faction + if army.inventory.getWood() >= 50 or army.inventory.getStone() >= 30: #inventory not properly defined yet, might need change + if army.leader.race == ['orcs']: + var finish = buildingtime * 1.5 + ['turn'] + if army.leader.race == ['human']: + var finish = buildingtime / 1.5 + ['turn'] + else: + var finish = buildingtime + ['turn'] diff --git a/Server/data/DataManager.gd b/Server/data/DataManager.gd new file mode 100644 index 0000000..8df82c8 --- /dev/null +++ b/Server/data/DataManager.gd @@ -0,0 +1,134 @@ +extends Node + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +var techs = {} +var pathToTech = 'res://data/techdata/' + +var buildings = {} +var pathToBuildings = 'res://data/buildings/' + +var items = {} +var pathToItem = 'res://data/Items/' + +var units = {} +var pathToUnit = 'res://data/units/' + +var enchant = {} +var pathToEnchant = 'res://data/enchant/' + +# Called when the node enters the scene tree for the first time. +func _ready(): + loadInDict(techs, pathToTech) + loadInDict(buildings, pathToBuildings) + loadInDict(items, pathToItem) + loadInDict(units, pathToUnit) + loadInDict(enchant, pathToEnchant) + print('data ready') + # Replace with function body. var json = file.get_as_text() + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass + +func dir_contents(path): + var dir = Directory.new() + if dir.open(path) == OK: + dir.list_dir_begin() + var file_name = dir.get_next() + while file_name != "": + if dir.current_is_dir(): + print("Found directory: " + file_name) +# if file_name == '.' or file_name == '..': +# print('recursion retarded') +# else: +# var newPath = path+file_name +# dir_contents(path) + else: + print("Found file: " + file_name) + file_name = dir.get_next() + else: + print("An error occurred when trying to access the path.") + + +#func dir_contents_complete(path): +# var dir = Directory.new() +# if dir.open(path) == OK: +# dir.list_dir_begin() +# var file_name = dir.get_next() +# while file_name != "": +# if dir.current_is_dir(): +# if not (file_name == '.' or file_name == '..'): +## print('recursion retarded') +## else: +# print("Found directory: " + file_name) +# var newPath = path+"/"+file_name +# print('calling: ', newPath) +# dir_contents_complete(newPath) +# else: +# print("Found file: " + file_name) +# file_name = dir.get_next() +# else: +# print("An error occurred when trying to access the path.") + + +func dir_path_to_files(path): + var pathes = [] + var dir = Directory.new() + if dir.open(path) == OK: + dir.list_dir_begin() + var file_name = dir.get_next() + while file_name != "": + if dir.current_is_dir(): + + if not (file_name == '.' or file_name == '..'): + + var newPath = path+'/'+file_name + #print('calling: ', newPath) + for stringy in dir_path_to_files(newPath): + pathes.append(stringy) +# else: +# print("Found directory: " + file_name) +# print('recursion retarded') + else: + print("Found file: " + file_name) + pathes.append(path+'/'+file_name) + file_name = dir.get_next() + else: + print("An error occurred when trying to access the path.") + return pathes + + + +#func loadInDict(dict, path): +# var pathes = dir_path_to_files(path) +# for key in pathes: +# print(key) +# var file = File.new() +# file.open(key, file.READ) +## var line = file.get_line() +# var json = file.get_as_text() +# var json_result = JSON.parse(json).result +# if json_result: +# print(json_result) +# dict[json_result['name']]={"duration":json_result['duration']} +# file.close() + +func loadInDict(dict, path): + var pathes = dir_path_to_files(path) + for key in pathes: + print(key) + var file = File.new() + file.open(key, file.READ) +# var line = file.get_line() + var json = file.get_as_text() + var json_result = JSON.parse(json).result + if json_result: + #print(json_result) + var data = {} + for nkey in json_result: + if not nkey == 'name': + data[nkey] = json_result[nkey] + dict[json_result['name']]=data + file.close() diff --git a/Server/data/Items/Kalkstein.json b/Server/data/Items/Kalkstein.json new file mode 100644 index 0000000..c7e26be --- /dev/null +++ b/Server/data/Items/Kalkstein.json @@ -0,0 +1,13 @@ +{ +"name":"Kalkstein", +"itemType":"Stein", +"stats":{ + "BaseHP":7 + }, +"goldValue":4, +"amount":1, +"hardness":3, +"enables":["Steinbruch", "Kalkstein"], +"row":0, +"column":1 +} diff --git a/Server/data/Items/Marmor.json b/Server/data/Items/Marmor.json new file mode 100644 index 0000000..0c52e92 --- /dev/null +++ b/Server/data/Items/Marmor.json @@ -0,0 +1,13 @@ +{ +"name":"Marmor", +"itemType":"Stein", +"stats":{ + "BaseHP":10 + }, +"goldValue":14, +"amount":1, +"hardness":10, +"enables":["Steinbruch", "Marmor"], +"row":0, +"column":0 +} diff --git a/Server/data/Items/Sandstein.json b/Server/data/Items/Sandstein.json new file mode 100644 index 0000000..5c22359 --- /dev/null +++ b/Server/data/Items/Sandstein.json @@ -0,0 +1,13 @@ +{ +"name":"Sandstein", +"itemType":"Stein", +"stats":{ + "BaseHP":7 + }, +"goldValue":4, +"amount":1, +"hardness":3, +"enables":["Steinbruch", "Sandstein"], +"row":0, +"column":3 +} diff --git a/Server/data/Items/equip/armor/kettenhemd.json b/Server/data/Items/equip/armor/kettenhemd.json new file mode 100644 index 0000000..5788f88 --- /dev/null +++ b/Server/data/Items/equip/armor/kettenhemd.json @@ -0,0 +1,22 @@ +{ +"name":"Kettenhemd", +"itemType":"Ausrüstung", +"category":"armor", +"stats":{ + "resist":{ + "physcal":10 + }, + "absorb":{ + "pierce":3 + } + + }, +"materials":{ + "Metall":6 + }, +"goldValue":4, +"amount":1, +"enables":[], +"row":4, +"column":1 +} diff --git a/Server/data/Items/equip/ranged/Langbogen.json b/Server/data/Items/equip/ranged/Langbogen.json new file mode 100644 index 0000000..1ebbb02 --- /dev/null +++ b/Server/data/Items/equip/ranged/Langbogen.json @@ -0,0 +1,24 @@ +{ +"name":"Langbogen", +"itemType":"Ausrüstung", +"category":"ranged", +"stats":{ + "rangedAttack":{ + "APcost":7, + "damage":{ + "amount":9, + "toRoll":3, + "types":["physical", + "pierce"]} + } + }, +"materials":{ + "Holz":7 + }, +"goldValue":14, +"amount":1, +"enables":["Langbogen"], +"row":4, +"column":1 + +} \ No newline at end of file diff --git a/Server/data/Items/equip/ranged/kurzbogen.json b/Server/data/Items/equip/ranged/kurzbogen.json new file mode 100644 index 0000000..f588319 --- /dev/null +++ b/Server/data/Items/equip/ranged/kurzbogen.json @@ -0,0 +1,24 @@ +{ +"name":"kurzbogen", +"itemType":"Ausrüstung", +"category":"ranged", +"stats":{ + "rangedAttack":{ + "APcost":4, + "damage":{ + "amount":3, + "toRoll":3, + "types":["physical", + "pierce"]} + } + }, +"materials":{ + "Holz":4 + }, +"goldValue":4, +"amount":1, +"enables":[], +"row":4, +"column":1 + +} \ No newline at end of file diff --git a/Server/data/Items/equip/weapon1h/kurzschwert.json b/Server/data/Items/equip/weapon1h/kurzschwert.json new file mode 100644 index 0000000..e61916a --- /dev/null +++ b/Server/data/Items/equip/weapon1h/kurzschwert.json @@ -0,0 +1,24 @@ +{ +"name":"kurzschwert", +"itemType":"Ausrüstung", +"category":"weapon1h", +"stats":{ + "meeleAttack":{ + "range":2, + "APcost":3, + "damage":{ + "amount":4, + "toRoll":2, + "types":["physical", + "cut"]} + } + }, +"materials":{ + "Metall":3 + }, +"goldValue":4, +"amount":1, +"enables":[], +"row":4, +"column":1 +} diff --git a/Server/data/Items/equip/weapon1h/langschwert.json b/Server/data/Items/equip/weapon1h/langschwert.json new file mode 100644 index 0000000..6357b50 --- /dev/null +++ b/Server/data/Items/equip/weapon1h/langschwert.json @@ -0,0 +1,27 @@ +{ + "name": "Langschwert", + "itemType": "Ausrüstung", + "category": "weapon1h", + "stats": { + "meeleAttack": { + "range": 4, + "APcost": 4, + "damage": { + "amount": 6, + "toRoll": 4, + "types": ["physical", + "cut" + ] + } + } + + }, + "materials": { + "Metall": 6 + }, + "goldValue": 4, + "amount": 1, + "enables": [], + "row": 4, + "column": 1 +} \ No newline at end of file diff --git a/Server/data/Items/holz/eiche.json b/Server/data/Items/holz/eiche.json new file mode 100644 index 0000000..eb0092b --- /dev/null +++ b/Server/data/Items/holz/eiche.json @@ -0,0 +1,25 @@ +{ +"name":"Eiche", +"itemType":"Holz", +"statsBuilding":{ + "BaseHP":7 + }, +"statsMeele":{ + "meeleAttack":{ + "damage":2 + + } +}, +"statsRange":{ + "rangedAttack":{ + "range":-2 + } +}, + +"goldValue":4, +"amount":1, +"hardness":3, +"enables":["Holzfäller", "Eiche"], +"row":1, +"column":0 +} diff --git a/Server/data/Items/holz/tanne.json b/Server/data/Items/holz/tanne.json new file mode 100644 index 0000000..c88e91e --- /dev/null +++ b/Server/data/Items/holz/tanne.json @@ -0,0 +1,18 @@ +{ +"name":"Tanne", +"itemType":"Holz", +"statsBuilding":{ + "BaseHP":7 + }, +"statsMeele":{ +}, +"statsRange":{ +}, + +"goldValue":4, +"amount":1, +"hardness":3, +"enables":["Holzfäller", "Tanne"], +"row":1, +"column":1 +} diff --git a/Server/data/Items/metall/eisen.json b/Server/data/Items/metall/eisen.json new file mode 100644 index 0000000..28b9d7a --- /dev/null +++ b/Server/data/Items/metall/eisen.json @@ -0,0 +1,29 @@ +{ + "name": "Eisen", + "itemType": "Metall", + "statsBuilding": { + "BaseHP": 2, + "resist": { + "fire": 15 + } + + }, + "statsMeele": { + "meeleAttack": { + "damage": 2 + + } + }, + "statsRange": { + "rangedAttack": { + "range": -2 + } + }, + + "goldValue": 4, + "amount": 1, + "hardness": 3, + "enables": ["Erzmine", "Eisen"], + "row": 1, + "column": 0 +} \ No newline at end of file diff --git a/Server/data/Items/metall/mithril.json b/Server/data/Items/metall/mithril.json new file mode 100644 index 0000000..3ac1f55 --- /dev/null +++ b/Server/data/Items/metall/mithril.json @@ -0,0 +1,29 @@ +{ + "name": "Mithril", + "itemType": "Metall", + "statsBuilding": { + "BaseHP": 2, + "resist": { + "fire": 80 + } + + }, + "statsMeele": { + "meeleAttack": { + "damage": 1 + + } + }, + "statsRange": { + "rangedAttack": { + "range": 1 + } + }, + + "goldValue": 4, + "amount": 1, + "hardness": 3, + "enables": ["Erzmine", "Mithril"], + "row": 1, + "column": 2 +} \ No newline at end of file diff --git a/Server/data/Items/stein/Kalkstein.json b/Server/data/Items/stein/Kalkstein.json new file mode 100644 index 0000000..1541991 --- /dev/null +++ b/Server/data/Items/stein/Kalkstein.json @@ -0,0 +1,13 @@ +{ +"name":"Kalkstein", +"itemType":"Stein", +"statsBuilding":{ + "BaseHP":7 + }, +"goldValue":4, +"amount":1, +"hardness":3, +"enables":["Steinbruch", "Kalkstein"], +"row":0, +"column":1 +} diff --git a/Server/data/Items/stein/Marmor.json b/Server/data/Items/stein/Marmor.json new file mode 100644 index 0000000..20c3909 --- /dev/null +++ b/Server/data/Items/stein/Marmor.json @@ -0,0 +1,13 @@ +{ +"name":"Marmor", +"itemType":"Stein", +"statsBuilding":{ + "BaseHP":10 + }, +"goldValue":14, +"amount":1, +"hardness":10, +"enables":["Steinbruch", "Marmor"], +"row":0, +"column":0 +} diff --git a/Server/data/Items/stein/Sandstein.json b/Server/data/Items/stein/Sandstein.json new file mode 100644 index 0000000..73955b0 --- /dev/null +++ b/Server/data/Items/stein/Sandstein.json @@ -0,0 +1,13 @@ +{ +"name":"Sandstein", +"itemType":"Stein", +"statsBuilding":{ + "BaseHP":7 + }, +"goldValue":4, +"amount":1, +"hardness":3, +"enables":["Steinbruch", "Sandstein"], +"row":0, +"column":3 +} diff --git a/Server/data/buildings/Schmied.json b/Server/data/buildings/Schmied.json new file mode 100644 index 0000000..5e2ebec --- /dev/null +++ b/Server/data/buildings/Schmied.json @@ -0,0 +1,4 @@ +{"name":"Schmied", +"requires":{ + "Holz":15 +} \ No newline at end of file diff --git a/Server/data/buildings/Steinbruch.json b/Server/data/buildings/Steinbruch.json new file mode 100644 index 0000000..e1bc5ca --- /dev/null +++ b/Server/data/buildings/Steinbruch.json @@ -0,0 +1,5 @@ +{"name":"Steinbruch", +"requires":{ + "Holz":10, + "Metall":5} +} \ No newline at end of file diff --git a/Server/data/classes/Barbar.json b/Server/data/classes/Barbar.json new file mode 100644 index 0000000..a8605fd --- /dev/null +++ b/Server/data/classes/Barbar.json @@ -0,0 +1,114 @@ +{"name":"Barbar", + +"maxLevel":5, + +"Stats":[{ + +"hp":0, + +"ap":0, + +"moveAP":0, + +"meeleAttack":{ + +"APCost":0, + +"APCostReduction":0, + +"strength":0, + +"precision":0, + +"attacks":0, + +"hitsPerAttack":0, + +"damage":{ + +"blunt":[0,0], + +"fire":[0,0], + +"pierce":[0,0], + +"electric":[0,0], + +"slash":[0,0], + +"magical":[0,0] + +} + +}, + +"rangedAttack":{ + +"APCost":0, + +"APCostReduction":0, + +"strength":0, + +"precision":0, + +"attacks":0, + +"hitsPerAttack":0, + +"damage":{ + +"blunt":[0,0], + +"fire":[0,0], + +"pierce":[0,0], + +"electric":[0,0], + +"slash":[0,0], + +"magical":[0,0] + +} + +}, + +"defense":{ + +"evasion":0, + +"meeleDef":0, + +"rangedDef":0, + +"absorb":{ + +"blunt":[0,0], + +"fire":[0,0], + +"pierce":[0,0], + +"electric":[0,0], + +"slash":[0,0], + +"magical":[0,0] + +} + +}, + +"abilities":{} + +} + +], + +"constraits":{ + +}, +"xpCost":[50] + +} \ No newline at end of file diff --git a/Server/data/classes/Berserker.json b/Server/data/classes/Berserker.json new file mode 100644 index 0000000..48520fc --- /dev/null +++ b/Server/data/classes/Berserker.json @@ -0,0 +1,809 @@ +{"name":"Krieger", + +"maxLevel":15, + +"Stats":[ + + +{ + +"hp":4, + +"ap":1, + +"moveAP":1, + +"meeleAttack":{ + +"strength":5, + +"precision":5, + +}, + +"rangedAttack":{ + +"strength":3 + +}, + +"defense":{ + +"evasion":5, + +"meeleDef":2, + +"rangedDef":2, + +"absorb":{ + +"blunt":[1,1] + +} + +}, + +"abilities":{} + +}, + + +{ + +"hp":6, + +"ap":2, + +"moveAP":1, + +"meeleAttack":{ + +"strength":5, + +"precision":7, + +}, + +"rangedAttack":{ + +"strength":3, + +"precision":3 + +}, + +"defense":{ + +"evasion":6, + +"meeleDef":5, + +"rangedDef":2, + +"absorb":{ + +"blunt":[1,1] + +} + +}, + +"abilities":{} + +}, + + +{ + +"hp":8, + +"ap":3, + +"moveAP":2, + +"meeleAttack":{ + +"strength":8, + +"precision":9, + +}, + +"rangedAttack":{ + +"strength":4, + +"precision":3 + +}, + +"defense":{ + +"evasion":7, + +"meeleDef":7, + +"rangedDef":4, + +"absorb":{ + +"blunt":[1,1], + +"slash":[0,1] + +} + +}, + +"abilities":{} + +}, + + +{ + +"hp":11, + +"ap":4, + +"moveAP":2, + +"meeleAttack":{ + +"strength":8, + +"precision":10, + +}, + +"rangedAttack":{ + +"strength":4, + +"precision":3 + +}, + +"defense":{ + +"evasion":8, + +"meeleDef":8, + +"rangedDef":5, + +"absorb":{ + +"blunt":[1,1], + +"pierce":[0,1], + +"slash":[0,1] + +} + +}, + +"abilities":{} + +}, + + + +{ + +"hp":14, + +"ap":4, + +"moveAP":3, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":8, + +"precision":11, + +"hitsPerAttack":0 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":4, + +"precision":3 + +}, + +"defense":{ + +"evasion":9, + +"meeleDef":8, + +"rangedDef":5, + +"absorb":{ + +"blunt":[1,1], + +"pierce":[0,1], + +"slash":[1,1] + +} + +}, + +"abilities":{} + +}, + + +{ + +"hp":16, + +"ap":4, + +"moveAP":3, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":8, + +"precision":12, + +"hitsPerAttack":0 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":4, + +"precision":3 + +}, + +"defense":{ + +"evasion":9, + +"meeleDef":8, + +"rangedDef":5, + +"absorb":{ + +"blunt":[1,1], + +"pierce":[0,1], + +"slash":[1,1] + +} + +}, + +"abilities":{} + +}, + + +{ + +"hp":18, + +"ap":4, + +"moveAP":3, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":8, + +"precision":13, + +"hitsPerAttack":0 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":4, + +"precision":3 + +}, + +"defense":{ + +"evasion":10, + +"meeleDef":9, + +"rangedDef":5, + +"absorb":{ + +"blunt":[1,1], + +"pierce":[1,1], + +"slash":[1,1] + +} + +}, + +"abilities":{} + +}, + +{ + +"hp":18, + +"ap":4, + +"moveAP":3, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":8, + +"precision":13, + +"hitsPerAttack":0 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":5, + +"precision":3 + +}, + +"defense":{ + +"evasion":10, + +"meeleDef":10, + +"rangedDef":5, + +"absorb":{ + +"blunt":[1,2], + +"pierce":[1,1], + +"slash":[1,1] + +} + +}, + +"abilities":{} + +}, + + +{ + +"hp":20, + +"ap":4, + +"moveAP":4, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":9, + +"precision":14, + +"hitsPerAttack":0 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":5, + +"precision":3 + +}, + +"defense":{ + +"evasion":10, + +"meeleDef":10, + +"rangedDef":6, + +"absorb":{ + +"blunt":[1,2], + +"pierce":[1,1], + +"slash":[1,2] + +} + +}, + +"abilities":{} + +}, + + + +{ + +"hp":23, + +"ap":5, + +"moveAP":4, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":10, + +"precision":15, + +"hitsPerAttack":0 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":5, + +"precision":4 + +}, + +"defense":{ + +"evasion":10, + +"meeleDef":10, + +"rangedDef":7, + +"absorb":{ + +"blunt":[1,3], + +"pierce":[1,2], + +"slash":[1,2] + +} + +}, + +"abilities":{} + +}, + + + +{ + +"hp":26, + +"ap":5, + +"moveAP":4, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":10, + +"precision":16, + +"hitsPerAttack":0 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":5, + +"precision":5 + +}, + +"defense":{ + +"evasion":10, + +"meeleDef":11, + +"rangedDef":7, + +"absorb":{ + +"blunt":[1,4], + +"pierce":[1,2], + +"slash":[1,2] + +} + +}, + +"abilities":{} + +}, + + + +{ + +"hp":28, + +"ap":5, + +"moveAP":5, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":12, + +"precision":17, + +"hitsPerAttack":0 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":7, + +"precision":5 + +}, + +"defense":{ + +"evasion":12, + +"meeleDef":12, + +"rangedDef":8, + +"absorb":{ + +"blunt":[2,4], + +"pierce":[1,2], + +"slash":[1,2] + +} + +}, + +"abilities":{} + +}, + + + +{ + +"hp":31, + +"ap":6, + +"moveAP":5, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":13, + +"precision":18, + +"hitsPerAttack":1 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":7, + +"precision":6 + +}, + +"defense":{ + +"evasion":13, + +"meeleDef":13, + +"rangedDef":8, + +"absorb":{ + +"blunt":[2,4], + +"pierce":[1,2], + +"slash":[1,3] + +} + +}, + +"abilities":{} + +}, + + +{ + +"hp":35, + +"ap":6, + +"moveAP":6, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":14, + +"precision":18, + +"hitsPerAttack":1 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":7, + +"precision":7 + +}, + +"defense":{ + +"evasion":14, + +"meeleDef":14, + +"rangedDef":9, + +"absorb":{ + +"blunt":[2,4], + +"pierce":[1,2], + +"slash":[1,3] + +} + +}, + +"abilities":{} + +}, + + + +{ + +"hp":40, + +"ap":7, + +"moveAP":6, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":15, + +"precision":20, + +"hitsPerAttack":1 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":7, + +"precision":8, + +"hitsPerAttack":0 + +}, + +"defense":{ + +"evasion":15, + +"meeleDef":15, + +"rangedDef":10, + +"absorb":{ + +"blunt":[2,5], + +"pierce":[1,3], + +"slash":[1,3] + +} + +}, + +"abilities":{} + +} + +], + +"constraits":{ + +} + +} \ No newline at end of file diff --git a/Server/data/classes/Bogenschütze.json b/Server/data/classes/Bogenschütze.json new file mode 100644 index 0000000..f914fb8 --- /dev/null +++ b/Server/data/classes/Bogenschütze.json @@ -0,0 +1,122 @@ +{"name":"Bogenschütze", + +"maxLevel":5, + +"Stats":[ + +{ + +"hp":4, + +"ap":4, + +"moveAP":0, + + +"rangedAttack":{ + + +"APCostReduction":0, + +"strength":6, + +"precision":8, + + +}, + +"defense":{ +"evasion":4 +} +} +, +{ + +"hp":5, + +"ap":5, + +"moveAP":0, + +"meeleAttack":{ + +"APCost":0, + +"APCostReduction":0, + +"strength":0, + +"precision":0, + +"hitsPerAttack":0 + +}, + +"rangedAttack":{ + +"APCost":0, + +"APCostReduction":1, + +"strength":8, + +"precision":10, + +"hitsPerAttack":0, + +"damage":{ + +"blunt":[0,0], + +"fire":[0,0], + +"pierce":[0,0], + +"electric":[0,0], + +"slash":[0,0], + +"magical":[0,0] + +} + +}, + +"defense":{ + +"evasion":5, + +"meeleDef":0, + +"rangedDef":0, + +"absorb":{ + +"blunt":[0,0], + +"fire":[0,0], + +"pierce":[0,0], + +"electric":[0,0], + +"slash":[0,0], + +"magical":[0,0] + +} + +}, + +"abilities":{} + +} + +], + +"constraits":{ + +}, +"xpCost":[50] + +} \ No newline at end of file diff --git a/Server/data/classes/Empty.json b/Server/data/classes/Empty.json new file mode 100644 index 0000000..d1a0c4f --- /dev/null +++ b/Server/data/classes/Empty.json @@ -0,0 +1,114 @@ +{"name":"Empty", + +"maxLevel":5, + +"Stats":[{ + +"hp":0, + +"ap":0, + +"moveAP":0, + +"meeleAttack":{ + +"APCost":0, + +"APCostReduction":0, + +"strength":0, + +"precision":0, + +"attacks":0, + +"hitsPerAttack":0, + +"damage":{ + +"blunt":[0,0], + +"fire":[0,0], + +"pierce":[0,0], + +"electric":[0,0], + +"slash":[0,0], + +"magical":[0,0] + +} + +}, + +"rangedAttack":{ + +"APCost":0, + +"APCostReduction":0, + +"strength":0, + +"precision":0, + +"attacks":0, + +"hitsPerAttack":0, + +"damage":{ + +"blunt":[0,0], + +"fire":[0,0], + +"pierce":[0,0], + +"electric":[0,0], + +"slash":[0,0], + +"magical":[0,0] + +} + +}, + +"defense":{ + +"evasion":0, + +"meeleDef":0, + +"rangedDef":0, + +"absorb":{ + +"blunt":[0,0], + +"fire":[0,0], + +"pierce":[0,0], + +"electric":[0,0], + +"slash":[0,0], + +"magical":[0,0] + +} + +}, + +"abilities":{} + +} + +], + +"constraits":{ + +}, +"xpCost":[50] + +} \ No newline at end of file diff --git a/Server/data/classes/Krieger.json b/Server/data/classes/Krieger.json new file mode 100644 index 0000000..14dd7ee --- /dev/null +++ b/Server/data/classes/Krieger.json @@ -0,0 +1,810 @@ +{"name":"Krieger", + +"maxLevel":15, + +"Stats":[ + + +{ + +"hp":4, + +"ap":1, + +"moveAP":1, + +"meeleAttack":{ + +"strength":5, + +"precision":5, + +}, + +"rangedAttack":{ + +"strength":3 + +}, + +"defense":{ + +"evasion":5, + +"meeleDef":2, + +"rangedDef":2, + +"absorb":{ + +"blunt":[1,1] + +} + +}, + +"abilities":{} + +}, + + +{ + +"hp":6, + +"ap":2, + +"moveAP":1, + +"meeleAttack":{ + +"strength":5, + +"precision":7, + +}, + +"rangedAttack":{ + +"strength":3, + +"precision":3 + +}, + +"defense":{ + +"evasion":6, + +"meeleDef":5, + +"rangedDef":2, + +"absorb":{ + +"blunt":[1,1] + +} + +}, + +"abilities":{} + +}, + + +{ + +"hp":8, + +"ap":3, + +"moveAP":2, + +"meeleAttack":{ + +"strength":8, + +"precision":9, + +}, + +"rangedAttack":{ + +"strength":4, + +"precision":3 + +}, + +"defense":{ + +"evasion":7, + +"meeleDef":7, + +"rangedDef":4, + +"absorb":{ + +"blunt":[1,1], + +"slash":[0,1] + +} + +}, + +"abilities":{} + +}, + + +{ + +"hp":11, + +"ap":4, + +"moveAP":2, + +"meeleAttack":{ + +"strength":8, + +"precision":10, + +}, + +"rangedAttack":{ + +"strength":4, + +"precision":3 + +}, + +"defense":{ + +"evasion":8, + +"meeleDef":8, + +"rangedDef":5, + +"absorb":{ + +"blunt":[1,1], + +"pierce":[0,1], + +"slash":[0,1] + +} + +}, + +"abilities":{} + +}, + + + +{ + +"hp":14, + +"ap":4, + +"moveAP":3, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":8, + +"precision":11, + +"hitsPerAttack":0 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":4, + +"precision":3 + +}, + +"defense":{ + +"evasion":9, + +"meeleDef":8, + +"rangedDef":5, + +"absorb":{ + +"blunt":[1,1], + +"pierce":[0,1], + +"slash":[1,1] + +} + +}, + +"abilities":{} + +}, + + +{ + +"hp":16, + +"ap":4, + +"moveAP":3, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":8, + +"precision":12, + +"hitsPerAttack":0 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":4, + +"precision":3 + +}, + +"defense":{ + +"evasion":9, + +"meeleDef":8, + +"rangedDef":5, + +"absorb":{ + +"blunt":[1,1], + +"pierce":[0,1], + +"slash":[1,1] + +} + +}, + +"abilities":{} + +}, + + +{ + +"hp":18, + +"ap":4, + +"moveAP":3, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":8, + +"precision":13, + +"hitsPerAttack":0 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":4, + +"precision":3 + +}, + +"defense":{ + +"evasion":10, + +"meeleDef":9, + +"rangedDef":5, + +"absorb":{ + +"blunt":[1,1], + +"pierce":[1,1], + +"slash":[1,1] + +} + +}, + +"abilities":{} + +}, + +{ + +"hp":18, + +"ap":4, + +"moveAP":3, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":8, + +"precision":13, + +"hitsPerAttack":0 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":5, + +"precision":3 + +}, + +"defense":{ + +"evasion":10, + +"meeleDef":10, + +"rangedDef":5, + +"absorb":{ + +"blunt":[1,2], + +"pierce":[1,1], + +"slash":[1,1] + +} + +}, + +"abilities":{} + +}, + + +{ + +"hp":20, + +"ap":4, + +"moveAP":4, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":9, + +"precision":14, + +"hitsPerAttack":0 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":5, + +"precision":3 + +}, + +"defense":{ + +"evasion":10, + +"meeleDef":10, + +"rangedDef":6, + +"absorb":{ + +"blunt":[1,2], + +"pierce":[1,1], + +"slash":[1,2] + +} + +}, + +"abilities":{} + +}, + + + +{ + +"hp":23, + +"ap":5, + +"moveAP":4, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":10, + +"precision":15, + +"hitsPerAttack":0 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":5, + +"precision":4 + +}, + +"defense":{ + +"evasion":10, + +"meeleDef":10, + +"rangedDef":7, + +"absorb":{ + +"blunt":[1,3], + +"pierce":[1,2], + +"slash":[1,2] + +} + +}, + +"abilities":{} + +}, + + + +{ + +"hp":26, + +"ap":5, + +"moveAP":4, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":10, + +"precision":16, + +"hitsPerAttack":0 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":5, + +"precision":5 + +}, + +"defense":{ + +"evasion":10, + +"meeleDef":11, + +"rangedDef":7, + +"absorb":{ + +"blunt":[1,4], + +"pierce":[1,2], + +"slash":[1,2] + +} + +}, + +"abilities":{} + +}, + + + +{ + +"hp":28, + +"ap":5, + +"moveAP":5, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":12, + +"precision":17, + +"hitsPerAttack":0 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":7, + +"precision":5 + +}, + +"defense":{ + +"evasion":12, + +"meeleDef":12, + +"rangedDef":8, + +"absorb":{ + +"blunt":[2,4], + +"pierce":[1,2], + +"slash":[1,2] + +} + +}, + +"abilities":{} + +}, + + + +{ + +"hp":31, + +"ap":6, + +"moveAP":5, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":13, + +"precision":18, + +"hitsPerAttack":1 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":7, + +"precision":6 + +}, + +"defense":{ + +"evasion":13, + +"meeleDef":13, + +"rangedDef":8, + +"absorb":{ + +"blunt":[2,4], + +"pierce":[1,2], + +"slash":[1,3] + +} + +}, + +"abilities":{} + +}, + + +{ + +"hp":35, + +"ap":6, + +"moveAP":6, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":14, + +"precision":18, + +"hitsPerAttack":1 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":7, + +"precision":7 + +}, + +"defense":{ + +"evasion":14, + +"meeleDef":14, + +"rangedDef":9, + +"absorb":{ + +"blunt":[2,4], + +"pierce":[1,2], + +"slash":[1,3] + +} + +}, + +"abilities":{} + +}, + + + +{ + +"hp":40, + +"ap":7, + +"moveAP":6, + +"meeleAttack":{ + +"APCostReduction":1, + +"strength":15, + +"precision":20, + +"hitsPerAttack":1 + +}, + +"rangedAttack":{ + +"APCostReduction":0, + +"strength":7, + +"precision":8, + +"hitsPerAttack":0 + +}, + +"defense":{ + +"evasion":15, + +"meeleDef":15, + +"rangedDef":10, + +"absorb":{ + +"blunt":[2,5], + +"pierce":[1,3], + +"slash":[1,3] + +} + +}, + +"abilities":{} + +} + +], + +"constraits":{ + +}, +"xpCost":[50,20,25,35,50,50,50,60,60,60,70,80,80,90,100] + +} \ No newline at end of file diff --git a/Server/data/classes/Schurke.json b/Server/data/classes/Schurke.json new file mode 100644 index 0000000..d1a0c4f --- /dev/null +++ b/Server/data/classes/Schurke.json @@ -0,0 +1,114 @@ +{"name":"Empty", + +"maxLevel":5, + +"Stats":[{ + +"hp":0, + +"ap":0, + +"moveAP":0, + +"meeleAttack":{ + +"APCost":0, + +"APCostReduction":0, + +"strength":0, + +"precision":0, + +"attacks":0, + +"hitsPerAttack":0, + +"damage":{ + +"blunt":[0,0], + +"fire":[0,0], + +"pierce":[0,0], + +"electric":[0,0], + +"slash":[0,0], + +"magical":[0,0] + +} + +}, + +"rangedAttack":{ + +"APCost":0, + +"APCostReduction":0, + +"strength":0, + +"precision":0, + +"attacks":0, + +"hitsPerAttack":0, + +"damage":{ + +"blunt":[0,0], + +"fire":[0,0], + +"pierce":[0,0], + +"electric":[0,0], + +"slash":[0,0], + +"magical":[0,0] + +} + +}, + +"defense":{ + +"evasion":0, + +"meeleDef":0, + +"rangedDef":0, + +"absorb":{ + +"blunt":[0,0], + +"fire":[0,0], + +"pierce":[0,0], + +"electric":[0,0], + +"slash":[0,0], + +"magical":[0,0] + +} + +}, + +"abilities":{} + +} + +], + +"constraits":{ + +}, +"xpCost":[50] + +} \ No newline at end of file diff --git a/Server/data/classes/Wache.json b/Server/data/classes/Wache.json new file mode 100644 index 0000000..d1a0c4f --- /dev/null +++ b/Server/data/classes/Wache.json @@ -0,0 +1,114 @@ +{"name":"Empty", + +"maxLevel":5, + +"Stats":[{ + +"hp":0, + +"ap":0, + +"moveAP":0, + +"meeleAttack":{ + +"APCost":0, + +"APCostReduction":0, + +"strength":0, + +"precision":0, + +"attacks":0, + +"hitsPerAttack":0, + +"damage":{ + +"blunt":[0,0], + +"fire":[0,0], + +"pierce":[0,0], + +"electric":[0,0], + +"slash":[0,0], + +"magical":[0,0] + +} + +}, + +"rangedAttack":{ + +"APCost":0, + +"APCostReduction":0, + +"strength":0, + +"precision":0, + +"attacks":0, + +"hitsPerAttack":0, + +"damage":{ + +"blunt":[0,0], + +"fire":[0,0], + +"pierce":[0,0], + +"electric":[0,0], + +"slash":[0,0], + +"magical":[0,0] + +} + +}, + +"defense":{ + +"evasion":0, + +"meeleDef":0, + +"rangedDef":0, + +"absorb":{ + +"blunt":[0,0], + +"fire":[0,0], + +"pierce":[0,0], + +"electric":[0,0], + +"slash":[0,0], + +"magical":[0,0] + +} + +}, + +"abilities":{} + +} + +], + +"constraits":{ + +}, +"xpCost":[50] + +} \ No newline at end of file diff --git a/Server/data/classes/Waldläufer.json b/Server/data/classes/Waldläufer.json new file mode 100644 index 0000000..d1a0c4f --- /dev/null +++ b/Server/data/classes/Waldläufer.json @@ -0,0 +1,114 @@ +{"name":"Empty", + +"maxLevel":5, + +"Stats":[{ + +"hp":0, + +"ap":0, + +"moveAP":0, + +"meeleAttack":{ + +"APCost":0, + +"APCostReduction":0, + +"strength":0, + +"precision":0, + +"attacks":0, + +"hitsPerAttack":0, + +"damage":{ + +"blunt":[0,0], + +"fire":[0,0], + +"pierce":[0,0], + +"electric":[0,0], + +"slash":[0,0], + +"magical":[0,0] + +} + +}, + +"rangedAttack":{ + +"APCost":0, + +"APCostReduction":0, + +"strength":0, + +"precision":0, + +"attacks":0, + +"hitsPerAttack":0, + +"damage":{ + +"blunt":[0,0], + +"fire":[0,0], + +"pierce":[0,0], + +"electric":[0,0], + +"slash":[0,0], + +"magical":[0,0] + +} + +}, + +"defense":{ + +"evasion":0, + +"meeleDef":0, + +"rangedDef":0, + +"absorb":{ + +"blunt":[0,0], + +"fire":[0,0], + +"pierce":[0,0], + +"electric":[0,0], + +"slash":[0,0], + +"magical":[0,0] + +} + +}, + +"abilities":{} + +} + +], + +"constraits":{ + +}, +"xpCost":[50] + +} \ No newline at end of file diff --git a/Server/data/techdata/buildings/quarry/Steinbruch.json b/Server/data/techdata/buildings/quarry/Steinbruch.json new file mode 100644 index 0000000..5ae0ca9 --- /dev/null +++ b/Server/data/techdata/buildings/quarry/Steinbruch.json @@ -0,0 +1,4 @@ +{ +"name":"Steinbruch", +"duration":4 +} \ No newline at end of file diff --git a/Server/data/techdata/buildings/woodman/Holzfäller.json b/Server/data/techdata/buildings/woodman/Holzfäller.json new file mode 100644 index 0000000..33dad35 --- /dev/null +++ b/Server/data/techdata/buildings/woodman/Holzfäller.json @@ -0,0 +1,4 @@ +{ +"name":"Holzfäller", +"duration":4 +} \ No newline at end of file diff --git a/Server/data/techdata/ressources/Kalkstein.json b/Server/data/techdata/ressources/Kalkstein.json new file mode 100644 index 0000000..dc5449e --- /dev/null +++ b/Server/data/techdata/ressources/Kalkstein.json @@ -0,0 +1,4 @@ +{ +"name":"Kalkstein", +"duration":3 +} \ No newline at end of file diff --git a/Server/data/techdata/ressources/Marmor.json b/Server/data/techdata/ressources/Marmor.json new file mode 100644 index 0000000..bf9e60a --- /dev/null +++ b/Server/data/techdata/ressources/Marmor.json @@ -0,0 +1,4 @@ +{ +"name":"Marmor", +"duration":3 +} \ No newline at end of file diff --git a/Server/data/techdata/ressources/Sandstein.json b/Server/data/techdata/ressources/Sandstein.json new file mode 100644 index 0000000..014c074 --- /dev/null +++ b/Server/data/techdata/ressources/Sandstein.json @@ -0,0 +1,4 @@ +{ +"name":"Sandstein", +"duration":3 +} \ No newline at end of file diff --git a/Server/data/units/Elf.json b/Server/data/units/Elf.json new file mode 100644 index 0000000..f470a38 --- /dev/null +++ b/Server/data/units/Elf.json @@ -0,0 +1,29 @@ +{ + "name":"Elf", + "stats":{ + "BaseHP":15, + "strength": 5, + "dex":5, + "con":5, + "int":5, + "char":5, + "maxAP":0, + "size":1, + "type":"humanoid", + "resist":{ + "physical":20 + }, + "absorb":{ + "blunt":2 + }, + "graphics":{ + "row":3, + "column":0 + }, + "meeleAttack":{ + }, + "rangedAttack":{ + "range":2 + } + } +} \ No newline at end of file diff --git a/Server/data/units/Mensch.json b/Server/data/units/Mensch.json new file mode 100644 index 0000000..006a605 --- /dev/null +++ b/Server/data/units/Mensch.json @@ -0,0 +1,85 @@ +{ + "name":"Mensch", + "maxLevel":10, + "Stats":[ + { + "hp":10, + "ap":5, + "moveAP":5, + "meeleAttack":{ + "strength":5, + "precision":50 + }, + "rangedAttack":{ + "strength":0, + "precision":0, + "attacks":0, + "hitsPerAttack":0, + "damage":{ + "blunt":[ + 0, + 0 + ], + "fire":[ + 0, + 0 + ], + "pierce":[ + 0, + 0 + ], + "electric":[ + 0, + 0 + ], + "slash":[ + 0, + 0 + ], + "magical":[ + 0, + 0 + ] + } + }, + "defense":{ + "evasion":0, + "meeleDef":0, + "rangedDef":0, + "absorb":{ + "blunt":[ + 0, + 0 + ], + "fire":[ + 0, + 0 + ], + "pierce":[ + 0, + 0 + ], + "electric":[ + 0, + 0 + ], + "slash":[ + 0, + 0 + ], + "magical":[ + 0, + 0 + ] + } + }, + "abilities":{ + + } + } + ], + "graphics":{ + "row":3, + "column":0 + } +} \ No newline at end of file diff --git a/Server/data/units/Ork.json b/Server/data/units/Ork.json new file mode 100644 index 0000000..6069efb --- /dev/null +++ b/Server/data/units/Ork.json @@ -0,0 +1,29 @@ +{ + "name":"Ork", + "stats":{ + "BaseHP":20, + "strength": 5, + "dex":5, + "con":5, + "int":5, + "char":5, + "maxAP":0, + "size":1, + "type":"humanoid", + "resist":{ + "physical":20 + }, + "absorb":{ + "physical":2, + "blunt":2 + }, + "graphics":{ + "row":3, + "column":0 + }, + "meeleAttack":{ + }, + "rangedAttack":{ + } + } +} \ No newline at end of file diff --git a/Server/data/units/Zwerg.json b/Server/data/units/Zwerg.json new file mode 100644 index 0000000..5012e38 --- /dev/null +++ b/Server/data/units/Zwerg.json @@ -0,0 +1,28 @@ +{ + "name":"Zwerg", + "stats":{ + "BaseHP":15, + "strength": 5, + "dex":5, + "con":5, + "int":5, + "char":5, + "maxAP":0, + "size":1, + "type":"humanoid", + "resist":{ + "physical":20 + }, + "absorb":{ + "blunt":2 + }, + "graphics":{ + "row":3, + "column":0 + }, + "meeleAttack":{ + }, + "rangedAttack":{ + } + } +} \ No newline at end of file diff --git a/Server/default_env.tres b/Server/default_env.tres new file mode 100644 index 0000000..20207a4 --- /dev/null +++ b/Server/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/Server/font/Anton-Regular.ttf b/Server/font/Anton-Regular.ttf new file mode 100644 index 0000000..8c2caa6 Binary files /dev/null and b/Server/font/Anton-Regular.ttf differ diff --git a/Server/font/Anton.zip b/Server/font/Anton.zip new file mode 100644 index 0000000..755d579 Binary files /dev/null and b/Server/font/Anton.zip differ diff --git a/Server/font/anton.tres b/Server/font/anton.tres new file mode 100644 index 0000000..3f29579 --- /dev/null +++ b/Server/font/anton.tres @@ -0,0 +1,6 @@ +[gd_resource type="DynamicFont" load_steps=2 format=2] + +[ext_resource path="res://font/Anton-Regular.ttf" type="DynamicFontData" id=1] + +[resource] +font_data = ExtResource( 1 ) diff --git a/Server/icon.png b/Server/icon.png new file mode 100644 index 0000000..2b65815 Binary files /dev/null and b/Server/icon.png differ diff --git a/Server/icon.png.import b/Server/icon.png.import new file mode 100644 index 0000000..96cbf46 --- /dev/null +++ b/Server/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/Server/images/UIStuffs/armyEditBg.pdn b/Server/images/UIStuffs/armyEditBg.pdn new file mode 100644 index 0000000..d342036 Binary files /dev/null and b/Server/images/UIStuffs/armyEditBg.pdn differ diff --git a/Server/images/UIStuffs/brown BG.png b/Server/images/UIStuffs/brown BG.png new file mode 100644 index 0000000..a1084bc Binary files /dev/null and b/Server/images/UIStuffs/brown BG.png differ diff --git a/Server/images/UIStuffs/brown BG.png.import b/Server/images/UIStuffs/brown BG.png.import new file mode 100644 index 0000000..d06ae35 --- /dev/null +++ b/Server/images/UIStuffs/brown BG.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/brown BG.png-d04ae44e33c0ead89d4e8e4f5484a79c.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/UIStuffs/brown BG.png" +dest_files=[ "res://.import/brown BG.png-d04ae44e33c0ead89d4e8e4f5484a79c.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/Server/images/WorldTiles.pdn b/Server/images/WorldTiles.pdn new file mode 100644 index 0000000..3bff049 Binary files /dev/null and b/Server/images/WorldTiles.pdn differ diff --git a/Server/images/WorldTiles.png b/Server/images/WorldTiles.png new file mode 100644 index 0000000..2555654 Binary files /dev/null and b/Server/images/WorldTiles.png differ diff --git a/Server/images/WorldTiles.png.import b/Server/images/WorldTiles.png.import new file mode 100644 index 0000000..624f03a --- /dev/null +++ b/Server/images/WorldTiles.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/WorldTiles.png-0c3e8877d279a129ba884ba7fa2fb70a.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/WorldTiles.png" +dest_files=[ "res://.import/WorldTiles.png-0c3e8877d279a129ba884ba7fa2fb70a.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/Server/images/WorldUI.pdn b/Server/images/WorldUI.pdn new file mode 100644 index 0000000..35723a7 Binary files /dev/null and b/Server/images/WorldUI.pdn differ diff --git a/Server/images/WorldUIBackground.png b/Server/images/WorldUIBackground.png new file mode 100644 index 0000000..44a10a1 Binary files /dev/null and b/Server/images/WorldUIBackground.png differ diff --git a/Server/images/WorldUIBackground.png.import b/Server/images/WorldUIBackground.png.import new file mode 100644 index 0000000..2fd1fe9 --- /dev/null +++ b/Server/images/WorldUIBackground.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/WorldUIBackground.png-d9ea8396048cdc620ef0fa1ddaf72275.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/WorldUIBackground.png" +dest_files=[ "res://.import/WorldUIBackground.png-d9ea8396048cdc620ef0fa1ddaf72275.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/Server/images/building 3x4.pdn b/Server/images/building 3x4.pdn new file mode 100644 index 0000000..2da8fa9 Binary files /dev/null and b/Server/images/building 3x4.pdn differ diff --git a/Server/images/building 3x4.png b/Server/images/building 3x4.png new file mode 100644 index 0000000..ef9c4c0 Binary files /dev/null and b/Server/images/building 3x4.png differ diff --git a/Server/images/building 3x4.png.import b/Server/images/building 3x4.png.import new file mode 100644 index 0000000..13504e3 --- /dev/null +++ b/Server/images/building 3x4.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/building 3x4.png-c6a7a7bf0c1a85a669585ad554c370be.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/building 3x4.png" +dest_files=[ "res://.import/building 3x4.png-c6a7a7bf0c1a85a669585ad554c370be.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/Server/images/button/armybutton.pdn b/Server/images/button/armybutton.pdn new file mode 100644 index 0000000..ced4614 Binary files /dev/null and b/Server/images/button/armybutton.pdn differ diff --git a/Server/images/button/armybutton.png b/Server/images/button/armybutton.png new file mode 100644 index 0000000..ff515f3 Binary files /dev/null and b/Server/images/button/armybutton.png differ diff --git a/Server/images/button/armybutton.png.import b/Server/images/button/armybutton.png.import new file mode 100644 index 0000000..de36d1c --- /dev/null +++ b/Server/images/button/armybutton.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/armybutton.png-8169f46c3f431fde5996afbdd799dd64.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/button/armybutton.png" +dest_files=[ "res://.import/armybutton.png-8169f46c3f431fde5996afbdd799dd64.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/Server/images/button/armybuttonhover.pdn b/Server/images/button/armybuttonhover.pdn new file mode 100644 index 0000000..4b36cc8 Binary files /dev/null and b/Server/images/button/armybuttonhover.pdn differ diff --git a/Server/images/button/armybuttonhover.png b/Server/images/button/armybuttonhover.png new file mode 100644 index 0000000..8e07beb Binary files /dev/null and b/Server/images/button/armybuttonhover.png differ diff --git a/Server/images/button/armybuttonhover.png.import b/Server/images/button/armybuttonhover.png.import new file mode 100644 index 0000000..7141f32 --- /dev/null +++ b/Server/images/button/armybuttonhover.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/armybuttonhover.png-c387e972f019a2bf19e110aad4c9cd26.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/button/armybuttonhover.png" +dest_files=[ "res://.import/armybuttonhover.png-c387e972f019a2bf19e110aad4c9cd26.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/Server/images/button/armybuttonpressed.pdn b/Server/images/button/armybuttonpressed.pdn new file mode 100644 index 0000000..8ae1b16 Binary files /dev/null and b/Server/images/button/armybuttonpressed.pdn differ diff --git a/Server/images/button/armybuttonpressed.png b/Server/images/button/armybuttonpressed.png new file mode 100644 index 0000000..16dcbb6 Binary files /dev/null and b/Server/images/button/armybuttonpressed.png differ diff --git a/Server/images/button/armybuttonpressed.png.import b/Server/images/button/armybuttonpressed.png.import new file mode 100644 index 0000000..f3ec26c --- /dev/null +++ b/Server/images/button/armybuttonpressed.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/armybuttonpressed.png-53f3f6f84e34aa63ef4388805d826feb.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/button/armybuttonpressed.png" +dest_files=[ "res://.import/armybuttonpressed.png-53f3f6f84e34aa63ef4388805d826feb.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/Server/images/button/building 3x4.pdn b/Server/images/button/building 3x4.pdn new file mode 100644 index 0000000..fcb08c2 Binary files /dev/null and b/Server/images/button/building 3x4.pdn differ diff --git a/Server/images/button/smallerbtn.pdn b/Server/images/button/smallerbtn.pdn new file mode 100644 index 0000000..23d8196 Binary files /dev/null and b/Server/images/button/smallerbtn.pdn differ diff --git a/Server/images/button/smallerbtn.png b/Server/images/button/smallerbtn.png new file mode 100644 index 0000000..9ea36fc Binary files /dev/null and b/Server/images/button/smallerbtn.png differ diff --git a/Server/images/button/smallerbtn.png.import b/Server/images/button/smallerbtn.png.import new file mode 100644 index 0000000..87b6b32 --- /dev/null +++ b/Server/images/button/smallerbtn.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/smallerbtn.png-f40aa6a05ffed5a4f105c1902c101117.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/button/smallerbtn.png" +dest_files=[ "res://.import/smallerbtn.png-f40aa6a05ffed5a4f105c1902c101117.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/Server/images/button/smallerbtnPress.pdn b/Server/images/button/smallerbtnPress.pdn new file mode 100644 index 0000000..a2bc4b8 Binary files /dev/null and b/Server/images/button/smallerbtnPress.pdn differ diff --git a/Server/images/button/smallerbtnPress.png b/Server/images/button/smallerbtnPress.png new file mode 100644 index 0000000..768ff8e Binary files /dev/null and b/Server/images/button/smallerbtnPress.png differ diff --git a/Server/images/button/smallerbtnPress.png.import b/Server/images/button/smallerbtnPress.png.import new file mode 100644 index 0000000..aff364a --- /dev/null +++ b/Server/images/button/smallerbtnPress.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/smallerbtnPress.png-a89a89036082e43dd65b0a93eecba655.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/button/smallerbtnPress.png" +dest_files=[ "res://.import/smallerbtnPress.png-a89a89036082e43dd65b0a93eecba655.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/Server/images/button/smallerbtnhover.png b/Server/images/button/smallerbtnhover.png new file mode 100644 index 0000000..791457e Binary files /dev/null and b/Server/images/button/smallerbtnhover.png differ diff --git a/Server/images/button/smallerbtnhover.png.import b/Server/images/button/smallerbtnhover.png.import new file mode 100644 index 0000000..492ab3e --- /dev/null +++ b/Server/images/button/smallerbtnhover.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/smallerbtnhover.png-affb1211294e4fcec5d0383ea8e280b1.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/button/smallerbtnhover.png" +dest_files=[ "res://.import/smallerbtnhover.png-affb1211294e4fcec5d0383ea8e280b1.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/Server/images/headquarter_small.pdn b/Server/images/headquarter_small.pdn new file mode 100644 index 0000000..e6eb33d Binary files /dev/null and b/Server/images/headquarter_small.pdn differ diff --git a/Server/images/headquarter_small.png b/Server/images/headquarter_small.png new file mode 100644 index 0000000..271301b Binary files /dev/null and b/Server/images/headquarter_small.png differ diff --git a/Server/images/headquarter_small.png.import b/Server/images/headquarter_small.png.import new file mode 100644 index 0000000..0cd1ac4 --- /dev/null +++ b/Server/images/headquarter_small.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/headquarter_small.png-b661db6c63cb08befee99e08219ed7e9.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/headquarter_small.png" +dest_files=[ "res://.import/headquarter_small.png-b661db6c63cb08befee99e08219ed7e9.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/Server/images/item/Ressources.pdn b/Server/images/item/Ressources.pdn new file mode 100644 index 0000000..41ed92e Binary files /dev/null and b/Server/images/item/Ressources.pdn differ diff --git a/Server/images/item/Ressources.png b/Server/images/item/Ressources.png new file mode 100644 index 0000000..9e8a05c Binary files /dev/null and b/Server/images/item/Ressources.png differ diff --git a/Server/images/item/Ressources.png.import b/Server/images/item/Ressources.png.import new file mode 100644 index 0000000..3231971 --- /dev/null +++ b/Server/images/item/Ressources.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Ressources.png-99a132724593a7d6f1ac360b946ba7ce.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/item/Ressources.png" +dest_files=[ "res://.import/Ressources.png-99a132724593a7d6f1ac360b946ba7ce.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/Server/images/palettes.pdn b/Server/images/palettes.pdn new file mode 100644 index 0000000..95c3484 Binary files /dev/null and b/Server/images/palettes.pdn differ diff --git a/Server/images/region/20200422_181628.pdn b/Server/images/region/20200422_181628.pdn new file mode 100644 index 0000000..caa8e99 Binary files /dev/null and b/Server/images/region/20200422_181628.pdn differ diff --git a/Server/images/region/Ressource Nodes.pdn b/Server/images/region/Ressource Nodes.pdn new file mode 100644 index 0000000..6befb91 Binary files /dev/null and b/Server/images/region/Ressource Nodes.pdn differ diff --git a/Server/images/region/Ressource Nodes.png b/Server/images/region/Ressource Nodes.png new file mode 100644 index 0000000..923e289 Binary files /dev/null and b/Server/images/region/Ressource Nodes.png differ diff --git a/Server/images/region/Ressource Nodes.png.import b/Server/images/region/Ressource Nodes.png.import new file mode 100644 index 0000000..8f4cbb5 --- /dev/null +++ b/Server/images/region/Ressource Nodes.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Ressource Nodes.png-48dac8994652f7d5abded36fd7f47058.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/region/Ressource Nodes.png" +dest_files=[ "res://.import/Ressource Nodes.png-48dac8994652f7d5abded36fd7f47058.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/Server/images/region/building.png b/Server/images/region/building.png new file mode 100644 index 0000000..0588c89 Binary files /dev/null and b/Server/images/region/building.png differ diff --git a/Server/images/region/building.png.import b/Server/images/region/building.png.import new file mode 100644 index 0000000..b15aa24 --- /dev/null +++ b/Server/images/region/building.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/building.png-845f6585b62ae9d1a64e438ac939ea21.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/region/building.png" +dest_files=[ "res://.import/building.png-845f6585b62ae9d1a64e438ac939ea21.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/Server/images/region/dragon.png b/Server/images/region/dragon.png new file mode 100644 index 0000000..d28fb27 Binary files /dev/null and b/Server/images/region/dragon.png differ diff --git a/Server/images/region/dragon.png.import b/Server/images/region/dragon.png.import new file mode 100644 index 0000000..c3bd873 --- /dev/null +++ b/Server/images/region/dragon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/dragon.png-344011ea66e84d555ee6c6b716cf50e3.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/region/dragon.png" +dest_files=[ "res://.import/dragon.png-344011ea66e84d555ee6c6b716cf50e3.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/Server/images/region/regiontiles.pdn b/Server/images/region/regiontiles.pdn new file mode 100644 index 0000000..0358cd1 Binary files /dev/null and b/Server/images/region/regiontiles.pdn differ diff --git a/Server/images/region/regiontiles.png b/Server/images/region/regiontiles.png new file mode 100644 index 0000000..19fb627 Binary files /dev/null and b/Server/images/region/regiontiles.png differ diff --git a/Server/images/region/regiontiles.png.import b/Server/images/region/regiontiles.png.import new file mode 100644 index 0000000..3ec6795 --- /dev/null +++ b/Server/images/region/regiontiles.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/regiontiles.png-8814835171d4f3819a1d1a786ad1b120.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/region/regiontiles.png" +dest_files=[ "res://.import/regiontiles.png-8814835171d4f3819a1d1a786ad1b120.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/Server/images/research/02.jpg b/Server/images/research/02.jpg new file mode 100644 index 0000000..212576d Binary files /dev/null and b/Server/images/research/02.jpg differ diff --git a/Server/images/research/02.jpg.import b/Server/images/research/02.jpg.import new file mode 100644 index 0000000..b4e8d79 --- /dev/null +++ b/Server/images/research/02.jpg.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/02.jpg-c7ea5b0e780647a14a4c9a47508a7798.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/research/02.jpg" +dest_files=[ "res://.import/02.jpg-c7ea5b0e780647a14a4c9a47508a7798.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/Server/images/research/02.pdn b/Server/images/research/02.pdn new file mode 100644 index 0000000..1eb8d8d Binary files /dev/null and b/Server/images/research/02.pdn differ diff --git a/Server/images/research/Menu.pdn b/Server/images/research/Menu.pdn new file mode 100644 index 0000000..84a7e15 Binary files /dev/null and b/Server/images/research/Menu.pdn differ diff --git a/Server/images/research/Menu.png b/Server/images/research/Menu.png new file mode 100644 index 0000000..c5e5bf5 Binary files /dev/null and b/Server/images/research/Menu.png differ diff --git a/Server/images/research/Menu.png.import b/Server/images/research/Menu.png.import new file mode 100644 index 0000000..1deb1bc --- /dev/null +++ b/Server/images/research/Menu.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Menu.png-52f583372807917b5904b192544d8367.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/research/Menu.png" +dest_files=[ "res://.import/Menu.png-52f583372807917b5904b192544d8367.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/Server/images/research/source.txt b/Server/images/research/source.txt new file mode 100644 index 0000000..d343363 --- /dev/null +++ b/Server/images/research/source.txt @@ -0,0 +1,3 @@ +Heidi und Hans-Jürgen Koch +1 von 12 +stern.de diff --git a/Server/images/warrior.pdn b/Server/images/warrior.pdn new file mode 100644 index 0000000..a20e7f8 Binary files /dev/null and b/Server/images/warrior.pdn differ diff --git a/Server/images/warrior.png b/Server/images/warrior.png new file mode 100644 index 0000000..e78b4b8 Binary files /dev/null and b/Server/images/warrior.png differ diff --git a/Server/images/warrior.png.import b/Server/images/warrior.png.import new file mode 100644 index 0000000..d693b2e --- /dev/null +++ b/Server/images/warrior.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/warrior.png-5a991f2b5a4c70e0a23d758896248915.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/warrior.png" +dest_files=[ "res://.import/warrior.png-5a991f2b5a4c70e0a23d758896248915.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/Server/images/wizard.pdn b/Server/images/wizard.pdn new file mode 100644 index 0000000..a881bc9 Binary files /dev/null and b/Server/images/wizard.pdn differ diff --git a/Server/images/wizard.png b/Server/images/wizard.png new file mode 100644 index 0000000..75423b5 Binary files /dev/null and b/Server/images/wizard.png differ diff --git a/Server/images/wizard.png.import b/Server/images/wizard.png.import new file mode 100644 index 0000000..9cf1b2d --- /dev/null +++ b/Server/images/wizard.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/wizard.png-b613fcd97c82b20d63fc4e834e3577cc.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/wizard.png" +dest_files=[ "res://.import/wizard.png-b613fcd97c82b20d63fc4e834e3577cc.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/Server/images/worldmap.png b/Server/images/worldmap.png new file mode 100644 index 0000000..4e6e0b4 Binary files /dev/null and b/Server/images/worldmap.png differ diff --git a/Server/images/worldmap.png.import b/Server/images/worldmap.png.import new file mode 100644 index 0000000..5f96ad2 --- /dev/null +++ b/Server/images/worldmap.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/worldmap.png-6177cce3310464415a2ac8750a3d0794.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/worldmap.png" +dest_files=[ "res://.import/worldmap.png-6177cce3310464415a2ac8750a3d0794.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/Server/items/Equipment.gd b/Server/items/Equipment.gd new file mode 100644 index 0000000..bc713a6 --- /dev/null +++ b/Server/items/Equipment.gd @@ -0,0 +1,19 @@ +extends "res://items/item.gd" + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +var damage = {} + + + + + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Server/items/Equipment.tscn b/Server/items/Equipment.tscn new file mode 100644 index 0000000..3f22c97 --- /dev/null +++ b/Server/items/Equipment.tscn @@ -0,0 +1,39 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://items/items.tres" type="Texture" id=1] +[ext_resource path="res://items/Equipment.gd" type="Script" id=2] +[ext_resource path="res://font/anton.tres" type="DynamicFont" id=3] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 41.2803, 47.2645 ) + +[node name="Equipment" type="KinematicBody2D"] +input_pickable = true +script = ExtResource( 2 ) + +[node name="Sprite" type="Sprite" parent="."] +texture = ExtResource( 1 ) +region_rect = Rect2( 0, 0, 96, 96 ) + +[node name="Label" type="Label" parent="."] +margin_left = -26.3886 +margin_top = 22.5987 +margin_right = 27.6114 +margin_bottom = 42.5987 +custom_fonts/font = ExtResource( 3 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Control" type="Control" parent="."] +margin_left = -48.0 +margin_top = -48.0 +margin_right = 48.0 +margin_bottom = 48.0 +rect_min_size = Vector2( 96, 96 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource( 1 ) diff --git a/Server/items/Item.tscn b/Server/items/Item.tscn new file mode 100644 index 0000000..8ab1017 --- /dev/null +++ b/Server/items/Item.tscn @@ -0,0 +1,39 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://items/item.gd" type="Script" id=1] +[ext_resource path="res://items/items.tres" type="Texture" id=2] +[ext_resource path="res://font/anton.tres" type="DynamicFont" id=3] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 41.2803, 47.2645 ) + +[node name="Item" type="KinematicBody2D"] +input_pickable = true +script = ExtResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] +texture = ExtResource( 2 ) +region_rect = Rect2( 0, 0, 96, 96 ) + +[node name="Label" type="Label" parent="."] +margin_left = -26.3886 +margin_top = 22.5987 +margin_right = 27.6114 +margin_bottom = 42.5987 +custom_fonts/font = ExtResource( 3 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Control" type="Control" parent="."] +margin_left = -48.0 +margin_top = -48.0 +margin_right = 48.0 +margin_bottom = 48.0 +rect_min_size = Vector2( 96, 96 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource( 1 ) diff --git a/Server/items/KinematicBody2D.gd b/Server/items/KinematicBody2D.gd new file mode 100644 index 0000000..61445af --- /dev/null +++ b/Server/items/KinematicBody2D.gd @@ -0,0 +1,13 @@ +extends KinematicBody2D + +var can_grab = false +var grabbed_offset = Vector2() + +func _input_event(viewport, event, shape_idx): + if event is InputEventMouseButton: + can_grab = event.pressed + grabbed_offset = position - get_global_mouse_position() + +func _process(delta): + if Input.is_mouse_button_pressed(BUTTON_LEFT) and can_grab: + position = get_global_mouse_position() + grabbed_offset \ No newline at end of file diff --git a/Server/items/item.gd b/Server/items/item.gd new file mode 100644 index 0000000..56bdf6d --- /dev/null +++ b/Server/items/item.gd @@ -0,0 +1,74 @@ +extends KinematicBody2D + +export var itemName = "NAME" #name des Gegenstandes +export var itemType = "TYPE" #typ des gegenstandes +export var stats = {} +export var materials = {} +export var goldValue = 1 #value in gold +export var amount = 1 + +#graphics data +var row +var column +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +var can_grab = false +var grabbed_offset = Vector2() + +func loadJson(name, data): + itemName = name + itemType = data['itemType'] + if(data.has('stats')): + stats = data['stats'] + if(data.has('materials')): + materials = data['materials'] + goldValue = data['goldValue'] + amount = data['amount'] + row = data['row'] + column = data['column'] + setTexture(column,row) + get_node('Label').text = name + + +func setTexture(x,y): + var rect = $Sprite.texture + print("item texture is:") + print(rect.get_region()) + var newTex = Rect2(x*96,y*96,96,96) + print(newTex) + rect.set_region(newTex) + +func getTexture(): + return $Sprite.texture + +func getItemType(): + return itemType + +func getMaterials(): + return materials + +func _input_event(viewport, event, shape_idx): + print("item clicked") + grabbed_offset = position - get_global_mouse_position() + +func _process(delta): + if Input.is_mouse_button_pressed(BUTTON_LEFT) and can_grab: + position = get_global_mouse_position() + grabbed_offset + + +func toText(): + var json = { + "name" : itemName, + "itemType":itemType, + "stats":stats, + "goldValue":goldValue, + "amount":amount, + "row":row, + "column":column + } + return json diff --git a/Server/items/items.tres b/Server/items/items.tres new file mode 100644 index 0000000..2d231e7 --- /dev/null +++ b/Server/items/items.tres @@ -0,0 +1,9 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=2] + +[ext_resource path="res://images/item/Ressources.png" type="Texture" id=1] + +[resource] +resource_local_to_scene = true +flags = 4 +atlas = ExtResource( 1 ) +region = Rect2( 0, 0, 96, 96 ) diff --git a/Server/menues/ArmyButton.gd b/Server/menues/ArmyButton.gd new file mode 100644 index 0000000..029970b --- /dev/null +++ b/Server/menues/ArmyButton.gd @@ -0,0 +1,27 @@ +extends TextureButton + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +var diplomacy = '' +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +func _pressed(): + WorldManager.selectedArmy = get_node('Label').text + WorldManager.selecterArmydiplo = diplomacy + print(WorldManager.selectedArmy) +# print(diplomacy) +# var region = RegionCreater.createRegion('GRASS', 19, 19) +# print("Region:") +# print(region) +# self.add_child(region) + +func text(text, diplo = 'neutral'): + get_node('Label').text = text + diplomacy = diplo + pass +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Server/menues/ArmyButton.tscn b/Server/menues/ArmyButton.tscn new file mode 100644 index 0000000..7f66e99 --- /dev/null +++ b/Server/menues/ArmyButton.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://images/button/armybuttonpressed.png" type="Texture" id=1] +[ext_resource path="res://images/button/armybuttonhover.png" type="Texture" id=2] +[ext_resource path="res://images/button/armybutton.png" type="Texture" id=3] +[ext_resource path="res://font/anton.tres" type="DynamicFont" id=4] +[ext_resource path="res://menues/ArmyButton.gd" type="Script" id=5] + +[node name="ArmyButton" type="TextureButton"] +texture_normal = ExtResource( 3 ) +texture_pressed = ExtResource( 1 ) +texture_hover = ExtResource( 2 ) +script = ExtResource( 5 ) + +[node name="Label" type="Label" parent="."] +modulate = Color( 0.827451, 0.145098, 0.145098, 1 ) +margin_left = 6.0 +margin_top = 16.0 +margin_right = 249.0 +margin_bottom = 56.0 +custom_fonts/font = ExtResource( 4 ) +text = "Armeename" +align = 1 diff --git a/Server/menues/ArmyDesigner/ArmyDesigner.gd b/Server/menues/ArmyDesigner/ArmyDesigner.gd new file mode 100644 index 0000000..4d9fa29 --- /dev/null +++ b/Server/menues/ArmyDesigner/ArmyDesigner.gd @@ -0,0 +1,29 @@ +extends Control + +var Item = preload("res://items/Item.tscn") +onready var itemList = $items +onready var rohstoffWahl = $rohstoffWahl + +func _ready(): + rohstoffWahl.setControl(self) + displayItems() + +func displayItems(tech:bool=false): + var items = DataManager.items + + for key in items: + var itemdata = items[key] + var item = Item.instance() + item.loadJson(key, itemdata) + + if(itemdata.itemType == "Ausrüstung"): + itemList.addToList(item) + itemList.add_item(item.itemName,item.getTexture(),true) + else : + rohstoffWahl.addToList(item) + rohstoffWahl.add_item(item.itemName,item.getTexture(),true) + rohstoffWahl.set_item_icon_modulate(0,Color.chartreuse) + return + +func changeRessource(ressourceType): + itemList.specifiedMaterialType(ressourceType) diff --git a/Server/menues/ArmyDesigner/ArmyDesigner.tscn b/Server/menues/ArmyDesigner/ArmyDesigner.tscn new file mode 100644 index 0000000..8fe4d05 --- /dev/null +++ b/Server/menues/ArmyDesigner/ArmyDesigner.tscn @@ -0,0 +1,164 @@ +[gd_scene load_steps=9 format=2] + +[ext_resource path="res://menues/ArmyDesigner/ArmyDesigner.gd" type="Script" id=1] +[ext_resource path="res://images/warrior.png" type="Texture" id=2] +[ext_resource path="res://menues/smallbtn.tscn" type="PackedScene" id=3] +[ext_resource path="res://font/anton.tres" type="DynamicFont" id=4] +[ext_resource path="res://menues/ArmyDesigner/rohstoffWahl.gd" type="Script" id=5] +[ext_resource path="res://menues/ArmyDesigner/ArmyDesigneritems.gd" type="Script" id=6] +[ext_resource path="res://menues/ArmyDesigner/Design.gd" type="Script" id=7] +[ext_resource path="res://menues/ArmyDesigner/designItemSocket.tscn" type="PackedScene" id=8] + +[node name="ArmyDesigner" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource( 1 ) +__meta__ = { +"_edit_horizontal_guides_": [ 173.361, 934.964 ], +"_edit_use_anchors_": false, +"_edit_vertical_guides_": [ 83.3878, 1043.33 ] +} + +[node name="NinePatchRect" type="NinePatchRect" parent="."] +self_modulate = Color( 0.223529, 0.160784, 0.588235, 1 ) +margin_left = 2.0 +margin_top = 0.180447 +margin_right = 1922.0 +margin_bottom = 1020.18 +texture = ExtResource( 2 ) + +[node name="WaffenBtn" parent="." instance=ExtResource( 3 )] +margin_left = 308.297 +margin_top = 56.7061 +margin_right = 394.297 +margin_bottom = 120.706 + +[node name="EinheitenBtn" parent="." instance=ExtResource( 3 )] +margin_left = 469.747 +margin_top = 58.2135 +margin_right = 555.747 +margin_bottom = 122.214 + +[node name="limitTech" type="CheckBox" parent="."] +modulate = Color( 0.905882, 0.0392157, 0.0392157, 1 ) +margin_left = 622.806 +margin_top = 67.5994 +margin_right = 646.806 +margin_bottom = 91.5994 +rect_scale = Vector2( 2, 2 ) + +[node name="Label" type="Label" parent="."] +margin_left = 676.32 +margin_top = 79.5919 +margin_right = 896.32 +margin_bottom = 107.592 +custom_fonts/font = ExtResource( 4 ) +text = "Forschung nicht berücksichtigen" + +[node name="rohstoffWahlLabel" type="Label" parent="."] +margin_left = 1153.0 +margin_top = 30.0 +margin_right = 1702.0 +margin_bottom = 44.0 +rect_pivot_offset = Vector2( -1398.49, -538.719 ) +text = "Wähle einen Rohstoff aus um die Gegenstände dafür für dein Design auszuwählen" +autowrap = true + +[node name="rohstoffWahl" type="ItemList" parent="."] +margin_left = 1122.0 +margin_top = 66.0 +margin_right = 1712.0 +margin_bottom = 312.0 +script = ExtResource( 5 ) + +[node name="itemsLabel" type="Label" parent="."] +margin_left = 1158.0 +margin_top = 344.0 +margin_right = 1305.0 +margin_bottom = 382.0 +rect_pivot_offset = Vector2( -1398.49, -538.719 ) +text = "Gegenstände:" +autowrap = true + +[node name="items" type="ItemList" parent="."] +margin_left = 1132.0 +margin_top = 375.0 +margin_right = 1706.0 +margin_bottom = 698.0 +script = ExtResource( 6 ) + +[node name="races" type="ItemList" parent="."] +margin_left = 1129.0 +margin_top = 782.0 +margin_right = 1702.0 +margin_bottom = 951.0 + +[node name="Design" type="Control" parent="."] +margin_left = 87.5867 +margin_top = 172.24 +margin_right = 1039.59 +margin_bottom = 933.24 +script = ExtResource( 7 ) + +[node name="Race" parent="Design" instance=ExtResource( 8 )] +margin_left = 558.109 +margin_top = 47.7737 +margin_right = 688.109 +margin_bottom = 209.774 + +[node name="MainHand" parent="Design" instance=ExtResource( 8 )] +margin_left = 136.185 +margin_top = 251.923 +margin_right = 266.185 +margin_bottom = 413.923 + +[node name="Title" parent="Design/MainHand" index="0"] +text = "Haupthand" + +[node name="OffHand" parent="Design" instance=ExtResource( 8 )] +margin_left = 459.867 +margin_top = 252.402 +margin_right = 589.867 +margin_bottom = 414.402 + +[node name="Title" parent="Design/OffHand" index="0"] +text = "Zweithand" + +[node name="SecondaryWeapon" parent="Design" instance=ExtResource( 8 )] +margin_left = 654.508 +margin_top = 249.436 +margin_right = 784.508 +margin_bottom = 411.436 + +[node name="Title" parent="Design/SecondaryWeapon" index="0"] +text = "Zweitwaffe" + +[node name="armor" parent="Design" instance=ExtResource( 8 )] +margin_left = 288.122 +margin_top = 250.186 +margin_right = 418.122 +margin_bottom = 412.186 + +[node name="Title" parent="Design/armor" index="0"] +text = "Rüstung" + +[node name="Mount" parent="Design" instance=ExtResource( 8 )] +margin_left = 414.437 +margin_top = 403.094 +margin_right = 544.437 +margin_bottom = 565.094 + +[node name="Title" parent="Design/Mount" index="0"] +text = "Reittier" + +[node name="TextureButton" parent="Design" instance=ExtResource( 3 )] +margin_left = 765.651 +margin_top = 628.255 +margin_right = 849.651 +margin_bottom = 692.255 + +[editable path="Design/MainHand"] +[editable path="Design/OffHand"] +[editable path="Design/SecondaryWeapon"] +[editable path="Design/armor"] +[editable path="Design/Mount"] diff --git a/Server/menues/ArmyDesigner/ArmyDesigneritems.gd b/Server/menues/ArmyDesigner/ArmyDesigneritems.gd new file mode 100644 index 0000000..4134428 --- /dev/null +++ b/Server/menues/ArmyDesigner/ArmyDesigneritems.gd @@ -0,0 +1,41 @@ +extends ItemList + +var equipment = [] + +func _ready(): + self.max_columns = 9 + self.fixed_icon_size = Vector2(96,96) + self.icon_mode = ItemList.ICON_MODE_TOP + +func get_drag_data(_pos): + var index = get_item_at_position(_pos) + if(is_item_disabled(index)): + return + var texture = get_item_icon(index) + var itemname = get_item_text(index) + + var preview = TextureRect.new() + preview.set_texture(texture) + set_drag_preview(preview) + return equipment[index] + +func specifiedMaterialType(material): + var equip + for i in range(0, equipment.size()): + equip = equipment[i] + if(!equip.getMaterials().has(material)): + set_item_disabled(i,true) + set_item_icon_modulate(i,Color.chartreuse) + set_item_custom_bg_color(i,Color.chartreuse) + else: + set_item_disabled(i,false) + set_item_icon(i,equipment[i].getTexture()) + +func addToList(item): + equipment.append(item) + +func get_item(index): + var texture = get_item_icon(index) + var itemname = get_item_text(index) + return [itemname, texture] + diff --git a/Server/menues/ArmyDesigner/Design.gd b/Server/menues/ArmyDesigner/Design.gd new file mode 100644 index 0000000..417ef89 --- /dev/null +++ b/Server/menues/ArmyDesigner/Design.gd @@ -0,0 +1,44 @@ +extends Control + +onready var race = $Race +onready var mainHand = $MainHand +onready var OffHand = $OffHand +onready var SecondaryWeapon = $SecondaryWeapon +onready var armor = $armor +onready var Mount = $Mount + +var ARMOR_CATEGORY = "armor" +var RANGED_CATEGORY = "ranged" +var ONEHANDED_CATEGORY = "weapon1h" + +func _ready(): + + pass # Replace with function body. + +func can_drop_data(pos,data): + match data.category: + RANGED_CATEGORY: + return checkWeaponSockets(pos) + ONEHANDED_CATEGORY: + return checkWeaponSockets(pos) + ARMOR_CATEGORY: + return true + _: + return false + +func drop_data(position, data): + match data.category: + ARMOR_CATEGORY: + armor.description = data.itemName + armor.picture.set_texture(data.getTexture()) + +func checkWeaponSockets(pos): + #print(pos) + if( posInItemSocket(mainHand,pos) || + posInItemSocket(OffHand,pos) || + posInItemSocket(SecondaryWeapon,pos)): + return true + +func posInItemSocket(socket,pos): + if(pos > socket.rect_global_position && pos < (socket.rect_global_position + socket.rect_size)): + return true diff --git a/Server/menues/ArmyDesigner/designItemSocket.gd b/Server/menues/ArmyDesigner/designItemSocket.gd new file mode 100644 index 0000000..ce33dc5 --- /dev/null +++ b/Server/menues/ArmyDesigner/designItemSocket.gd @@ -0,0 +1,13 @@ +extends Control + +onready var picture = $itempicture +onready var description = $itemdescription + +func _ready(): + pass # Replace with function body. + +func can_drop_data(position, data): + return get_parent().can_drop_data(get_global_mouse_position(),data) + +func drop_data(position, data): + return get_parent().drop_data(get_global_mouse_position(),data) \ No newline at end of file diff --git a/Server/menues/ArmyDesigner/designItemSocket.tscn b/Server/menues/ArmyDesigner/designItemSocket.tscn new file mode 100644 index 0000000..4b6d5fc --- /dev/null +++ b/Server/menues/ArmyDesigner/designItemSocket.tscn @@ -0,0 +1,40 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://images/button/smallerbtn.png" type="Texture" id=1] + +[node name="Control" type="Control"] +margin_left = 530.0 +margin_top = 1.0 +margin_right = 660.0 +margin_bottom = 163.0 +__meta__ = { +"_edit_horizontal_guides_": [ 160.805 ], +"_edit_vertical_guides_": [ 530.574, 662.53 ] +} + +[node name="Title" type="Label" parent="."] +margin_left = 24.9453 +margin_top = 14.4509 +margin_right = 101.945 +margin_bottom = 39.4509 +text = "Volk" +align = 1 + +[node name="itempicture" type="TextureRect" parent="."] +margin_left = 79.0 +margin_top = 6.0 +margin_right = 156.0 +margin_bottom = 60.0 + +[node name="itemdescription" type="Label" parent="."] +margin_left = 25.6661 +margin_top = 118.136 +margin_right = 106.666 +margin_bottom = 150.136 + +[node name="TextureRect" type="TextureRect" parent="."] +margin_left = 22.1077 +margin_top = 47.9735 +margin_right = 106.108 +margin_bottom = 111.973 +texture = ExtResource( 1 ) diff --git a/Server/menues/ArmyDesigner/designItemSocketChilds.gd b/Server/menues/ArmyDesigner/designItemSocketChilds.gd new file mode 100644 index 0000000..0560438 --- /dev/null +++ b/Server/menues/ArmyDesigner/designItemSocketChilds.gd @@ -0,0 +1,11 @@ +extends Control + +func _ready(): + pass + + +func can_drop_data(position, data): + return get_parent().can_drop_data(get_global_mouse_position(),data) + +func drop_data(position, data): + return get_parent().drop_data(get_global_mouse_position(),data) \ No newline at end of file diff --git a/Server/menues/ArmyDesigner/rohstoffWahl.gd b/Server/menues/ArmyDesigner/rohstoffWahl.gd new file mode 100644 index 0000000..65b7f70 --- /dev/null +++ b/Server/menues/ArmyDesigner/rohstoffWahl.gd @@ -0,0 +1,22 @@ +extends ItemList + +#To safe calculating time the indizes of ressources should correspond to those of the items +#in the itemlist +var ressources = [] +var control + +func _ready(): + self.max_columns = 9 + self.fixed_icon_size = Vector2(96,96) + self.icon_mode = ItemList.ICON_MODE_TOP + self.connect('item_activated', self, 'ressource_selected') + self.connect('item_selected', self, 'ressource_selected') + +func setControl(control): + self.control = control + +func addToList(item): + ressources.append(item) + +func ressource_selected (index): + control.changeRessource(ressources[index].getItemType()) diff --git a/Server/menues/Item.tscn b/Server/menues/Item.tscn new file mode 100644 index 0000000..1556289 --- /dev/null +++ b/Server/menues/Item.tscn @@ -0,0 +1,23 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://items/items.tres" type="Texture" id=1] +[ext_resource path="res://items/item.gd" type="Script" id=2] +[ext_resource path="res://font/anton.tres" type="DynamicFont" id=3] + +[node name="Item" type="TextureButton"] +texture_normal = ExtResource( 1 ) +script = ExtResource( 2 ) + +[node name="Label" type="Label" parent="."] +margin_left = -26.3886 +margin_top = 22.5987 +margin_right = 27.6114 +margin_bottom = 42.5987 +custom_fonts/font = ExtResource( 3 ) + +[node name="Control" type="Control" parent="."] +margin_left = -48.0 +margin_top = -48.0 +margin_right = 48.0 +margin_bottom = 48.0 +rect_min_size = Vector2( 96, 96 ) diff --git a/Server/menues/Main Menue.gd b/Server/menues/Main Menue.gd new file mode 100644 index 0000000..7158e1d --- /dev/null +++ b/Server/menues/Main Menue.gd @@ -0,0 +1,39 @@ +extends Control + +var player_name = "Judas" +var pw = "pw" + + +func _on_Input_Name_text_changed(new_text): + player_name = new_text + + +func _on_Input_PW_text_changed(new_text): + pw = new_text + + +func _on_Input_IP_text_changed(new_text): + Network.ip = new_text + + +func _on_Host_pressed(): + if player_name == "": + return +# return + var file = File.new() + if not file.file_exists("user://server.txt"): + Network.firstStart() + Network.create_server() + #Network.create_server(PlayerManager.identify_player(player_name,pw)) + #workaround to simulate remote player for simpler testing: +# PlayerManager.identify_player(1,player_name,pw) +# PlayerManager.receiveAuth(PlayerManager.identify_player(1,player_name,pw)) + _load_game() + + +func _on_register_pressed(): + pass + + +func _load_game(): + get_tree().change_scene('res://Worldmap/Worldmap.tscn') diff --git a/Server/menues/Main Menue.tscn b/Server/menues/Main Menue.tscn new file mode 100644 index 0000000..d35f5ab --- /dev/null +++ b/Server/menues/Main Menue.tscn @@ -0,0 +1,135 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://menues/Main Menue.gd" type="Script" id=1] +[ext_resource path="res://font/Anton-Regular.ttf" type="DynamicFontData" id=2] + +[sub_resource type="DynamicFont" id=1] +size = 80 +font_data = ExtResource( 2 ) + +[sub_resource type="DynamicFont" id=2] +size = 80 +font_data = ExtResource( 2 ) + +[node name="Main Menue" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 1.0 +margin_top = -1.0 +margin_right = 1.0 +margin_bottom = 2.0 +script = ExtResource( 1 ) + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +margin_left = -0.000244141 +margin_top = -2.96259 +margin_right = 1919.0 +margin_bottom = 1021.04 +alignment = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Label" type="Label" parent="VBoxContainer"] +margin_top = 203.0 +margin_right = 1919.0 +margin_bottom = 322.0 +custom_fonts/font = SubResource( 1 ) +text = "Menue" +align = 1 + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"] +margin_top = 326.0 +margin_right = 1919.0 +margin_bottom = 445.0 +alignment = 1 + +[node name="label_Name" type="Label" parent="VBoxContainer/HBoxContainer"] +margin_left = 618.0 +margin_right = 797.0 +margin_bottom = 119.0 +custom_fonts/font = SubResource( 1 ) +text = "Name" +valign = 1 + +[node name="Input_Name" type="LineEdit" parent="VBoxContainer/HBoxContainer"] +margin_left = 801.0 +margin_right = 1301.0 +margin_bottom = 119.0 +rect_min_size = Vector2( 500, 0 ) +text = "judas" +align = 2 +max_length = 16 + +[node name="HBoxContainer3" type="HBoxContainer" parent="VBoxContainer"] +margin_top = 449.0 +margin_right = 1919.0 +margin_bottom = 568.0 +alignment = 1 + +[node name="label_PW" type="Label" parent="VBoxContainer/HBoxContainer3"] +margin_left = 549.0 +margin_right = 866.0 +margin_bottom = 119.0 +custom_fonts/font = SubResource( 1 ) +text = "Password" +valign = 1 + +[node name="Input_PW" type="LineEdit" parent="VBoxContainer/HBoxContainer3"] +margin_left = 870.0 +margin_right = 1370.0 +margin_bottom = 119.0 +rect_min_size = Vector2( 500, 0 ) +text = "pw" +align = 2 +max_length = 16 +secret = true + +[node name="HBoxContainer4" type="HBoxContainer" parent="VBoxContainer"] +margin_top = 572.0 +margin_right = 1919.0 +margin_bottom = 691.0 +alignment = 1 + +[node name="Label2" type="Label" parent="VBoxContainer/HBoxContainer4"] +margin_left = 679.0 +margin_right = 735.0 +margin_bottom = 119.0 +custom_fonts/font = SubResource( 1 ) +text = "IP" +valign = 1 + +[node name="Input_IP" type="LineEdit" parent="VBoxContainer/HBoxContainer4"] +margin_left = 739.0 +margin_right = 1239.0 +margin_bottom = 119.0 +rect_min_size = Vector2( 500, 0 ) +align = 2 +max_length = 16 + +[node name="HBoxContainer2" type="HBoxContainer" parent="VBoxContainer"] +margin_top = 695.0 +margin_right = 1919.0 +margin_bottom = 820.0 +alignment = 1 + +[node name="Host" type="Button" parent="VBoxContainer/HBoxContainer2"] +margin_left = 628.0 +margin_right = 1010.0 +margin_bottom = 125.0 +custom_fonts/font = SubResource( 2 ) +action_mode = 0 +text = " Host " + +[node name="Join2" type="Button" parent="VBoxContainer/HBoxContainer2"] +margin_left = 1014.0 +margin_right = 1291.0 +margin_bottom = 125.0 +custom_fonts/font = SubResource( 2 ) +text = "Register" + +[connection signal="text_changed" from="VBoxContainer/HBoxContainer/Input_Name" to="." method="_on_Input_Name_text_changed"] +[connection signal="text_changed" from="VBoxContainer/HBoxContainer3/Input_PW" to="." method="_on_Input_PW_text_changed"] +[connection signal="text_changed" from="VBoxContainer/HBoxContainer4/Input_IP" to="." method="_on_Input_IP_text_changed"] +[connection signal="pressed" from="VBoxContainer/HBoxContainer2/Host" to="." method="_on_Host_pressed"] +[connection signal="pressed" from="VBoxContainer/HBoxContainer2/Join2" to="." method="_on_register_pressed"] diff --git a/Server/menues/PlayerManager.gd b/Server/menues/PlayerManager.gd new file mode 100644 index 0000000..b3eb091 --- /dev/null +++ b/Server/menues/PlayerManager.gd @@ -0,0 +1,140 @@ +extends Node + + +var knownPlayers = {'test':{"password":"pw", "faction":"barbaren"},'judas':{"password":"pw", "faction":"KG"}} +var loaded = false +var authcache = {'name':'', 'password':'', 'response':{"found":false}} +var clients_factions = {} #used to recognize if networkrequest are allowed to do sth {networkid:factionname} +var pathToPlayer = "user://players.sav" +var factions = {} +var playerFaction +var diplomacyStates = {'neutral': 1, 'own' : 2, 'enemies':3, "allies":4} + +func identify_player(id, name, password): + var response = {'name':name, 'found':false, 'auth':false, 'faction':''} + if not loaded: + load_as_server() + if knownPlayers.has(name): + response['found'] = true + var player = knownPlayers[name] + if player['password'] == password: + response['auth'] = true + var playerFaction = player['faction'] + response['faction'] = playerFaction + if factions.has(playerFaction): + response['factiondata'] = factions[playerFaction] + clients_factions[id] = player['faction'] + if loaded: + clients_factions[1] = player['faction'] + clients_factions[0] = player['faction'] + print(name, ' logged in as ', player['faction']) + else: + print('wrong pw') + else: + print('no such name') + return response +# register_player(name, password, "barb2") +# print('registering: '+name+' + '+password) + + +func checkdiplo(factionA, factionB): + var response = 'neutral' + if factionA == factionB: + response = 'own' + else: + if factions.has(factionA): + var factionData = factions[factionA] + if factionData.has('diplomacy'): + var diplo = factionData['diplomacy'] + for key in diplo: + if diplo[key].has(factionB): + response = key + return response + return response + +#returns neutral for neutral, allies for allies, own for own and enemies for enemies +func checkDiplo(faction): + var data = authcache['response'] + var authed = data['found'] + var response = 'neutral' + if faction==data['faction']: + response = 'own' + return response + elif authed: + if data.has('factiondata'): + var factiondata = data['factiondata'] + if factiondata.has('diplomacy'): + var diplo = factiondata['diplomacy'] + for key in diplo: + if diplo[key].has(faction): + response = key + return response +# print("checking diplo") +# print(data, faction) +# print("considered ", response) +# print(" ") +# print("illegal move attempt") + return response + #var diplo = factiondata['diplomacy'] + pass + + +func confirmFaction(id, factionname): + if factionname==clients_factions[id]: + print(id, " is ", factionname) + return true + print(id, " is NOT ", factionname) + return false + +func load_as_server(): + var file = File.new() + file.open(pathToPlayer, file.READ) + while not file.eof_reached(): + var line = file.get_line() + var json_result = JSON.parse(line).result + if json_result: + print(json_result) + knownPlayers[json_result['name']] = {"password":json_result['password'], "faction":json_result["faction"]} + file.close() + print("looking for faction data") + for player in knownPlayers: + var data = knownPlayers[player] + file = File.new() + var path = "user://factions/"+data['faction']+".json" + if file.file_exists(path): + #print("found faction data") + #print(data) + file.open(path, file.READ) + var json = file.get_as_text() +# print('json:'+json) + var json_result = JSON.parse(json).result + #print(json_result) + factions[data['faction']] = json_result + else: + print("FILE NOT FOUND: "+"user://faction/"+data['faction']) + loaded = true + + + +func player_disconnected(id): + if clients_factions[id]: + clients_factions.erase(id) + + +remote func register_player(name, password, faction): + var data = {"name":name,"password":password, "faction":faction} + var file = File.new() + if file.open(pathToPlayer, File.READ_WRITE) != 0: + print("Error opening file") + return + file.seek_end() + file.store_line(JSON.print(data)) + file.close() + + + +remote func register_faction(factionname, playername, race): + var faction = { "factionname": factionname, "playername": playername, 'diplomacy' : '', 'race':race} + pass + + diff --git a/Server/menues/RegisterPlayerMenu.gd b/Server/menues/RegisterPlayerMenu.gd new file mode 100644 index 0000000..68638f9 --- /dev/null +++ b/Server/menues/RegisterPlayerMenu.gd @@ -0,0 +1,13 @@ +extends Control + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Server/menues/RegisterPlayerMenu.tscn b/Server/menues/RegisterPlayerMenu.tscn new file mode 100644 index 0000000..5438e2f --- /dev/null +++ b/Server/menues/RegisterPlayerMenu.tscn @@ -0,0 +1,76 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://menues/RegisterPlayerMenu.gd" type="Script" id=1] +[ext_resource path="res://font/anton.tres" type="DynamicFont" id=2] + +[node name="RegisterPlayerMenu" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource( 1 ) + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +margin_left = -1.22778 +margin_top = -2.45551 +margin_right = 1914.77 +margin_bottom = 1014.54 + +[node name="Player_name_box" type="HBoxContainer" parent="VBoxContainer"] +margin_right = 1916.0 +margin_bottom = 25.0 +alignment = 1 + +[node name="Label" type="Label" parent="VBoxContainer/Player_name_box"] +margin_left = 686.0 +margin_right = 726.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 2 ) +text = "Name:" + +[node name="LineEdit" type="LineEdit" parent="VBoxContainer/Player_name_box"] +margin_left = 730.0 +margin_right = 1230.0 +margin_bottom = 25.0 +rect_min_size = Vector2( 500, 0 ) + +[node name="Player_name_box2" type="HBoxContainer" parent="VBoxContainer"] +margin_top = 29.0 +margin_right = 1916.0 +margin_bottom = 54.0 +alignment = 1 + +[node name="Label" type="Label" parent="VBoxContainer/Player_name_box2"] +margin_left = 673.0 +margin_right = 739.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 2 ) +text = "Passwort:" + +[node name="LineEdit" type="LineEdit" parent="VBoxContainer/Player_name_box2"] +margin_left = 743.0 +margin_right = 1243.0 +margin_bottom = 25.0 +rect_min_size = Vector2( 500, 0 ) + +[node name="Player_name_box3" type="HBoxContainer" parent="VBoxContainer"] +margin_top = 58.0 +margin_right = 1916.0 +margin_bottom = 83.0 +alignment = 1 + +[node name="Label" type="Label" parent="VBoxContainer/Player_name_box3"] +margin_left = 630.0 +margin_right = 781.0 +margin_bottom = 25.0 +custom_fonts/font = ExtResource( 2 ) +text = "Passwort wiederholen:" + +[node name="LineEdit" type="LineEdit" parent="VBoxContainer/Player_name_box3"] +margin_left = 785.0 +margin_right = 1285.0 +margin_bottom = 25.0 +rect_min_size = Vector2( 500, 0 ) + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"] +margin_top = 87.0 +margin_right = 1916.0 +margin_bottom = 87.0 diff --git a/Server/menues/WorldmapUI.gd b/Server/menues/WorldmapUI.gd new file mode 100644 index 0000000..d1fa4a5 --- /dev/null +++ b/Server/menues/WorldmapUI.gd @@ -0,0 +1,71 @@ +extends Control + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +var armyBtn = preload("res://menues/ArmyButton.tscn") +# Called when the node enters the scene tree for the first time. +func _ready(): + WorldManager.connect("updateUI", self, "updateUI",['fixed']) + get_parent().get_parent().get_node("worldMapTiles").connect("tileSelected",self,"updateUI",['variable']) + print('connected UI') + updateUI('fixed') + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +#diplo can now be acces in playermenu, refactor +func updateUI(mode): + #print("updating UI mode: ", mode) + var cache = PlayerManager.authcache + var data = cache['response'] + var authed = data['found'] + var faction = 'none' + if authed: + faction = data['faction'] + #print(faction) +# if mode == 'fixed': +# get_node('UIBG/fixed data/Spieler').text = cache['name'] +# if authed: +# get_node('UIBG/fixed data/Fraktion').text = faction +# if mode == 'variable': +# var region = WorldManager.selectedRegion +# get_node('UIBG/varData/regionData/cords_label/cords/HBoxContainer/x').text = String(region['x']) +# get_node('UIBG/varData/regionData/cords_label/cords/HBoxContainer2/y').text = String(region['y']) +# get_node('UIBG/y2').text = String(region['turn']) +# get_node('UIBG/varData/regionData/cords_label/terrain').text = String(region['terrain']) +# var myArmyBox = get_node('UIBG/varData/myArmies/VBoxContainer') +# var enemyBox = get_node('UIBG/varData/HBoxContainer2/VBoxContainer/enemybox/VBoxContainer') +# for i in myArmyBox.get_children(): +# i.queue_free() +# for i in enemyBox.get_children(): +# i.queue_free() +# if region.has('armies'): +# var armies = region['armies'] +# for army in armies: +# var armydata = armies[army] +# if authed: +# if not data.has('factiondata'): +# return +# var factiondata = data['factiondata'] +# #print("authed") +# var armyFaction = armydata['faction'] +# if armyFaction==faction: +# var button = armyBtn.instance() +# button.name = army +# button.text(army, 'own') +# myArmyBox.add_child(button) +# #print("diplo: ", factiondata['diplomacy']) +# var diplo = factiondata['diplomacy'] +# if diplo['enemies'].has(armyFaction): +# var button = Button.new() +# button.name = army +# button.text = army +# enemyBox.add_child(button) + + #print('finished ui') + pass + + + diff --git a/Server/menues/buildMenuButton.gd b/Server/menues/buildMenuButton.gd new file mode 100644 index 0000000..f565edf --- /dev/null +++ b/Server/menues/buildMenuButton.gd @@ -0,0 +1,15 @@ +extends TextureButton + +var isOpen = false + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +func _pressed(): + var buildings = DataManager.buildings + var inventory + pass +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Server/menues/moveOnWorldMap.gd b/Server/menues/moveOnWorldMap.gd new file mode 100644 index 0000000..9d418c5 --- /dev/null +++ b/Server/menues/moveOnWorldMap.gd @@ -0,0 +1,21 @@ +extends TextureButton + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +export var moveX = 0 +export var moveY = 0 + +# Called when the node enters the scene tree for the first time. +func _ready(): + + get_node('Label').text = 'bewegen' + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func _pressed(): + WorldManager.requestArmyMove(moveX,moveY) + pass + diff --git a/Server/menues/openRegion.gd b/Server/menues/openRegion.gd new file mode 100644 index 0000000..66b95a6 --- /dev/null +++ b/Server/menues/openRegion.gd @@ -0,0 +1,21 @@ +extends TextureButton +#var Region = preload("res://region/Region.tscn") + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +func _pressed(): +# var region = RegionCreater.createRegion('GRASS',5,5) +# TO DO: add warning on time loss + + get_tree().change_scene('res://region/Region.tscn') +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Server/menues/research.gd b/Server/menues/research.gd new file mode 100644 index 0000000..a71566b --- /dev/null +++ b/Server/menues/research.gd @@ -0,0 +1,37 @@ +extends Control + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready(): +# var serverdata = PlayerManager.myFactionData +# print("researchable: ",serverdata) + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func toggle(): + print("toggling Research") + if not visible: + visible = true + PlayerManager.subMenuOpen = true + mouse_filter = Control.MOUSE_FILTER_PASS + else: + visible = false + PlayerManager.subMenuOpen = false + mouse_filter = Control.MOUSE_FILTER_IGNORE + + +#func _input(event): +# if event is InputEventMouseButton: +# var index = event.get_button_index() +# if 1 == index or 2 == index: +# if not event.is_pressed(): +# print("click on research") +# get_parent().toggle() +# self.toggle() diff --git a/Server/menues/research.tscn b/Server/menues/research.tscn new file mode 100644 index 0000000..5fa9d66 --- /dev/null +++ b/Server/menues/research.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://menues/research.gd" type="Script" id=1] +[ext_resource path="res://images/research/Menu.png" type="Texture" id=2] + +[node name="ResearchMenu" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +mouse_filter = 1 +script = ExtResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 959.935, 510.562 ) +texture = ExtResource( 2 ) + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +margin_left = 46.0 +margin_top = 60.0 +margin_right = 897.0 +margin_bottom = 957.0 diff --git a/Server/menues/smallbtn.gd b/Server/menues/smallbtn.gd new file mode 100644 index 0000000..88793e0 --- /dev/null +++ b/Server/menues/smallbtn.gd @@ -0,0 +1,47 @@ +extends TextureButton + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +var datas = DataManager +var toDisplayCount = 0 +var toDisplay = ['Stein','Holz','Metall','Ausrüstung'] +const POST_RESS = 3 +var items = datas.items +var equips = {} +# Called when the node enters the scene tree for the first time. +func _ready(): + $Label.text = 'debug' + for item in items: +# print(' ') +# print(item) +# print(items[item]) + if items[item].itemType == toDisplay[POST_RESS]: + equips[item] = items[item] + +# print('equips are:') +# for item in equips: +# print(item) +# print(equips[item]) + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func _pressed(): + for item in items: + if items[item].itemType == toDisplay[int(toDisplayCount)]: + print(' ') + print(item) + print(items[item]) + if toDisplayCount < POST_RESS: + var matter = items[item].itemType + for eq in equips: + if equips[eq].materials.has(matter): + print('goes in') + print(eq) + toDisplayCount += 1 + if toDisplayCount >= toDisplay.size(): + toDisplayCount = 0 + diff --git a/Server/menues/smallbtn.tscn b/Server/menues/smallbtn.tscn new file mode 100644 index 0000000..3c3e07d --- /dev/null +++ b/Server/menues/smallbtn.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://images/button/smallerbtn.png" type="Texture" id=1] +[ext_resource path="res://images/button/smallerbtnPress.png" type="Texture" id=2] +[ext_resource path="res://images/button/smallerbtnhover.png" type="Texture" id=3] +[ext_resource path="res://font/anton.tres" type="DynamicFont" id=4] + +[node name="TextureButton" type="TextureButton"] +margin_right = 84.0 +margin_bottom = 64.0 +texture_normal = ExtResource( 1 ) +texture_pressed = ExtResource( 2 ) +texture_hover = ExtResource( 3 ) + +[node name="Label" type="Label" parent="."] +margin_left = 4.0 +margin_top = 19.0 +margin_right = 79.0 +margin_bottom = 47.0 +custom_fonts/font = ExtResource( 4 ) +text = "Betreten" +align = 1 diff --git a/Server/menues/toDesigner.gd b/Server/menues/toDesigner.gd new file mode 100644 index 0000000..9989821 --- /dev/null +++ b/Server/menues/toDesigner.gd @@ -0,0 +1,17 @@ +extends TextureButton + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +# Called when the node enters the scene tree for the first time. +func _ready(): + get_node('Label').text = 'Designer' + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func _pressed(): + print("designer btn pressed") + get_tree().change_scene('res://menues/ArmyDesigner/ArmyDesigner.tscn') diff --git a/Server/menues/toWorldMap.gd b/Server/menues/toWorldMap.gd new file mode 100644 index 0000000..c550629 --- /dev/null +++ b/Server/menues/toWorldMap.gd @@ -0,0 +1,17 @@ +extends TextureButton + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +# Called when the node enters the scene tree for the first time. +func _ready(): + get_node('Label').text = 'verlassen' + pass # Replace with function body. + + +func _pressed(): + get_tree().change_scene('res://Worldmap.tscn') +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Server/menues/toWorldMapButton.gd b/Server/menues/toWorldMapButton.gd new file mode 100644 index 0000000..f74b6ac --- /dev/null +++ b/Server/menues/toWorldMapButton.gd @@ -0,0 +1,12 @@ +extends TextureButton + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +func _pressed(): + get_tree().change_scene("Worldmap.tscn") + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/Server/menues/toggleResearch.gd b/Server/menues/toggleResearch.gd new file mode 100644 index 0000000..55ae567 --- /dev/null +++ b/Server/menues/toggleResearch.gd @@ -0,0 +1,25 @@ +extends TextureButton + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +var state = true +var dist = 100 +# Called when the node enters the scene tree for the first time. +func _ready(): + get_node("Label").text = "Forschung" + pass # Replace with function body. + +func _pressed(): + get_node("ResearchMenu").toggle() + self.toggle() +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func toggle(): + if state: + self.rect_position.x += dist + state = false + else: + self.rect_position.x -= dist + state = true diff --git a/Server/preset/armies/known.json b/Server/preset/armies/known.json new file mode 100644 index 0000000..8b586b7 --- /dev/null +++ b/Server/preset/armies/known.json @@ -0,0 +1,3 @@ +{"name":"teas","faction":"barb", "x":1,"y":1} +{"name":"teas","faction":"barb", "x":1,"y":1} + diff --git a/Server/preset/factions/KG.json b/Server/preset/factions/KG.json new file mode 100644 index 0000000..7221728 --- /dev/null +++ b/Server/preset/factions/KG.json @@ -0,0 +1,3 @@ +{ +"diplomacy":{"allies":[], "enemies":["barb"]} +} \ No newline at end of file diff --git a/Server/preset/races/human/buildings.json b/Server/preset/races/human/buildings.json new file mode 100644 index 0000000..8cc17a0 --- /dev/null +++ b/Server/preset/races/human/buildings.json @@ -0,0 +1,13 @@ +[{"name":0, +"y":0, +"terrain":"FOREST_SPACED", +"factions":["KG"], +"turn":1 +}, + +{"x":1, +"y":0, +"terrain":"GRASS", +"factions":[], +"turn":1 +}] diff --git a/Server/preset/races/human/items.json b/Server/preset/races/human/items.json new file mode 100644 index 0000000..1bea0f1 --- /dev/null +++ b/Server/preset/races/human/items.json @@ -0,0 +1,14 @@ +[{"type":"weapon", +"slots":["hand"], +"damage":6, +"damagetypes":["physical","cut"], +"materials":{"ore":3} + +}, + +{"x":1, +"y":0, +"terrain":"GRASS", +"factions":[], +"turn":1 +}] diff --git a/Server/preset/races/human/people.json b/Server/preset/races/human/people.json new file mode 100644 index 0000000..b87c72f --- /dev/null +++ b/Server/preset/races/human/people.json @@ -0,0 +1,16 @@ +{"name":"Mensch", +"Basestats": {"BaseHP":15, "strength": 5, "dex":5, "con":5, "int":5}, +"body":{"size":1, +"hand":2, +"body":1, +"head":1, +"ring":2, +"amulett":1}, +"resist":{ +"physical":20, +}, +"absorb":{ +"blunt":2 +} + +} \ No newline at end of file diff --git a/Server/preset/races/human/tech.json b/Server/preset/races/human/tech.json new file mode 100644 index 0000000..81a12bb --- /dev/null +++ b/Server/preset/races/human/tech.json @@ -0,0 +1,13 @@ +[{"x":0, +"y":0, +"terrain":"FOREST_SPACED", +"factions":["KG"], +"turn":1 +}, + +{"x":1, +"y":0, +"terrain":"GRASS", +"factions":[], +"turn":1 +}] diff --git a/Server/preset/races/races.json b/Server/preset/races/races.json new file mode 100644 index 0000000..d87b0da --- /dev/null +++ b/Server/preset/races/races.json @@ -0,0 +1,2 @@ +["human", +"elf"] diff --git a/Server/preset/worldmap.json b/Server/preset/worldmap.json new file mode 100644 index 0000000..7a5b5c9 --- /dev/null +++ b/Server/preset/worldmap.json @@ -0,0 +1,93 @@ +[{"x":0, +"y":0, +"terrain":"FOREST_SPACED", +"factions":["KG"], +"turn":1, +"armies": +{ +"Die Grausigen Halunken":{"faction":"KG"}, +"Katapala":{"faction":"KG"} +}, +"present":["KG"], +"playerTurnOn":1 +} +, + +{"x":1, +"y":0, +"terrain":"GRASS", +"factions":[], +"turn":1, +"armies": +{ +"barbaren":{"faction":"barbaren"}, +"irgendwer":{"faction":"bobs"} +}, +"present":["barbaren","bobs"], +"playerTurnOn":-1 +}, + +{"x":0, +"y":1, +"terrain":"FOREST", +"factions":[], +"turn":1, +"armies":{}, +"present":[""], +"playerTurnOn":-1 +}, + +{"x":1, +"y":1, +"terrain":"GRASS", +"factions":[], +"turn":1, +"armies":{}, +"present":[""], +"playerTurnOn":-1 +}, +{"x":12, +"y":11, +"terrain":"FOREST_DENSE", +"factions":["KG"], +"turn":1, +"armies":{}, +"present":[""], +"playerTurnOn":1 +}, +{"x":13, +"y":11, +"terrain":"GRASS", +"factions":[], +"turn":1, +"armies":{}, +"present":[""], +"playerTurnOn":-1 +}, +{"x":6, +"y":6, +"terrain":"FOREST_DENSE", +"factions":["KG"], +"turn":1, +"armies":{}, +"present":[""], +"playerTurnOn":1 +}, +{"x":6, +"y":7, +"terrain":"FOREST", +"factions":["KG"], +"turn":1, +"armies":{}, +"present":[""], +"playerTurnOn":1 +}, +{"x":6, +"y":8, +"terrain":"FOREST_SPACED", +"factions":["KG"], +"turn":1, +"armies":{}, +"present":[""], +"playerTurnOn":1 +}] diff --git a/Server/project.godot b/Server/project.godot new file mode 100644 index 0000000..cdfcf1e --- /dev/null +++ b/Server/project.godot @@ -0,0 +1,58 @@ +; 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="Server" +run/main_scene="res://menues/Main Menue.tscn" +config/icon="res://icon.png" + +[autoload] + +Network="*res://autoloads/Network.gd" +DataManager="*res://autoloads/DataManager.gd" +PlayerManager="*res://autoloads/PlayerManager.gd" +WorldManager="*res://autoloads/WorldManager.gd" +UnitFactory="*res://autoloads/UnitFactory.gd" +RegionCreater="*res://region/RegionCreater.gd" +RegionManager="*res://autoloads/RegionManager.gd" + +[display] + +window/size/width=1920 +window/size/height=1020 + +[input] + +ui_right_mouse_button={ +"deadzone": 0.5, +"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":2,"pressed":false,"doubleclick":false,"script":null) + ] +} +ui_left_mouse_button={ +"deadzone": 0.5, +"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null) + ] +} + +[input_devices] + +pointing/emulate_mouse_from_touch=false + +[rendering] + +2d/snapping/use_gpu_pixel_snap=true +threads/thread_model=2 +environment/default_environment="res://default_env.tres" +quality/2d/use_pixel_snap=true diff --git a/Server/region/MineSmall.tscn b/Server/region/MineSmall.tscn new file mode 100644 index 0000000..a229490 --- /dev/null +++ b/Server/region/MineSmall.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://region/mine small.png" type="Texture" id=1] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 138, 81.5 ) + +[node name="MineSmall" type="Sprite"] +scale = Vector2( 0.427, 0.427 ) +texture = ExtResource( 1 ) + +[node name="KinematicBody2D" type="KinematicBody2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="KinematicBody2D"] +position = Vector2( 0, -7.5 ) +shape = SubResource( 1 ) diff --git a/Server/region/Musik/AudioStreamPlayer.gd b/Server/region/Musik/AudioStreamPlayer.gd new file mode 100644 index 0000000..5342bff --- /dev/null +++ b/Server/region/Musik/AudioStreamPlayer.gd @@ -0,0 +1,151 @@ +extends Node2D + +var songs = [] +var pathToSongs = 'res://region/Musik/Data' +onready var asp = $AudioStreamPlayer +var test = true +var audioSegment = load("res://region/Musik/audioSegent.gd") +var segments = [] +var upNext +onready var t = $Timer +var lowestPriority = 99 +var nextsegment : int +var flwsegment : int +var switchSegment = false +var currentlyPlaying +export var songName = "final_countdown" +var timeElapsed = 0.0 +var a = 0 +export var b = 2 +var fadewait = 0 +export var volumePause = 10.6 + +func _ready(): + DataManager.loadInArray(songs, pathToSongs) + loadSong(songName) + currentlyPlaying = getFirstSegment() + +func loadSong(title): + segments = [] + lowestPriority = 99 #lowest priority von der lowest priority + for song in songs: #Songs + song = parse_json(song) #encrypten + if song.title != "": + if song.title == title: #Script == Song + for segmentes in song.segments: + var segmentToLoad = audioSegment.new() #Für jedes neue Segment ein neues Array? + segmentToLoad.loadFromJSON(segmentes) #Ein Segment wird reingeladen + print("Geht das??") + print("segments: ", segmentes) + print("other", segments) + if segmentToLoad.priority < lowestPriority: + lowestPriority = segmentToLoad.priority #auf die lowest Priority aktualisiert + segments.append(segmentToLoad) #zum Array segments am Ende hinzufügen + pass + else: + print("song has no title") + pass + +func getFirstSegment(): + for segment in segments: + if segment.priority == lowestPriority: + print(segment, "0") + return segment + + +#jumps to the next segment of the song, also returns the new segment index +func goToNextSegment(segment): + nextsegment = currentlyPlaying.next + for segment in segments: + if segment.priority == nextsegment: + timeElapsed = 0.0 + return segment + #Weiss nicht ob funktioniert + +func goToFlawlessSegment(segment): + flwsegment = currentlyPlaying.flawless + for segment in segments: + if segment.priority == flwsegment: + timeElapsed = 0.0 + return segment + +func _on_Button_pressed(): + currentlyPlaying = getFirstSegment() + asp.play(currentlyPlaying.start) + nextsegment = currentlyPlaying.next + timeElapsed = 0.0 + + +func _physics_process(delta): + if segmentEnded(delta): + a = 0 + fadewait = 0 + while (a < b): + if delta: + a += 1 + var volumen = asp.get_volume_db() + volumen -= 1 + asp.set_volume_db(volumen) + #if switch needed, play next segment, otherwise repeat same segment + if switchSegment: + currentlyPlaying = goToNextSegment(currentlyPlaying) + asp.seek(currentlyPlaying.start) + a = 0 + fadewait = 0 + while (fadewait < volumePause): + if delta: + fadewait += delta + while (a < b): + if delta: + a += 1 + var volumen = asp.get_volume_db() + volumen += 1 + asp.set_volume_db(volumen) + timeElapsed = 0.0 + switchSegment = false + else: + currentlyPlaying = goToFlawlessSegment(flwsegment) + asp.seek(currentlyPlaying.start) + a = 0 + fadewait = 0 + while (fadewait < volumePause): + if delta: + fadewait += delta + print(fadewait) + while (a < b): + if delta: + a += 1 + var volumen = asp.get_volume_db() + volumen += 1 + asp.set_volume_db(volumen) + timeElapsed = 0.0 + + +func segmentEnded(delta): + print("start: ",currentlyPlaying.start, " end: ", currentlyPlaying.end) + timeElapsed += delta + var now = currentlyPlaying.start + timeElapsed + print("now: ", now) + print("currentlyPlaying.flawless: ", currentlyPlaying.flawless) + if (now>currentlyPlaying.end): #zuende + return true + if (now<=currentlyPlaying.end): #nicht zuende + return false + +func _on_Timer_timeout(): + asp.seek(segments[3]) + t.set_wait_time(audioSegment.getLength()) + t.set_one_shot(true) + t.start(00) + print("test") + asp.stop() + print("Okayge") + + +func _on_Button2_pressed(): + switchSegment = true + + +func _on_Button3_pressed(): + asp.stop() + pass diff --git a/Server/region/Musik/Data/final_countdown.json b/Server/region/Musik/Data/final_countdown.json new file mode 100644 index 0000000..b46719d --- /dev/null +++ b/Server/region/Musik/Data/final_countdown.json @@ -0,0 +1,37 @@ +{ "title": "final_countdown", + "segments": [{ + "start": 13.80, + "end": 17.30, + "next": 2, + "priority": 0, + "flawless": 1 + }, + { + "start": 17.45, + "end": 21.95, + "next": 2, + "priority": 1, + "flawless": 0 + }, + { + "start": 46.54, + "end": 54.06, + "next": 3, + "priority": 2, + "flawless": 3 + }, + { + "start": 54.07, + "end": 70.26, + "next": 3, + "priority": 3, + "flawless": 3 + }, + { "start": 58.36, + "end": 62.45, + "next": 5, + "priority": 4, + "flawless": 3 + } + ] +} \ No newline at end of file diff --git a/Server/region/Musik/DynamicMusic.tscn b/Server/region/Musik/DynamicMusic.tscn new file mode 100644 index 0000000..6aba1ce --- /dev/null +++ b/Server/region/Musik/DynamicMusic.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://region/Musik/AudioStreamPlayer.gd" type="Script" id=1] +[ext_resource path="res://region/Musik/TIOTestAudioOne.mp3" type="AudioStream" id=2] + +[node name="Node2D" type="Node2D"] +script = ExtResource( 1 ) + +[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 2 ) + +[node name="GridContainer" type="GridContainer" parent="."] +margin_right = 40.0 +margin_bottom = 40.0 + +[node name="Button" type="Button" parent="GridContainer"] +margin_right = 12.0 +margin_bottom = 20.0 + +[node name="Button2" type="Button" parent="GridContainer"] +margin_top = 24.0 +margin_right = 12.0 +margin_bottom = 44.0 + +[node name="Button3" type="Button" parent="GridContainer"] +margin_top = 48.0 +margin_right = 12.0 +margin_bottom = 68.0 + +[node name="Timer" type="Timer" parent="."] + +[connection signal="pressed" from="GridContainer/Button" to="." method="_on_Button_pressed"] +[connection signal="pressed" from="GridContainer/Button2" to="." method="_on_Button2_pressed"] +[connection signal="pressed" from="GridContainer/Button3" to="." method="_on_Button3_pressed"] +[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] diff --git a/Server/region/Musik/TIOTestAudioOne.mp3 b/Server/region/Musik/TIOTestAudioOne.mp3 new file mode 100644 index 0000000..e2c4717 Binary files /dev/null and b/Server/region/Musik/TIOTestAudioOne.mp3 differ diff --git a/Server/region/Musik/TIOTestAudioOne.mp3.import b/Server/region/Musik/TIOTestAudioOne.mp3.import new file mode 100644 index 0000000..5319d62 --- /dev/null +++ b/Server/region/Musik/TIOTestAudioOne.mp3.import @@ -0,0 +1,15 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +path="res://.import/TIOTestAudioOne.mp3-91423447c89ab96ff6af8d6e9d4abc44.mp3str" + +[deps] + +source_file="res://region/Musik/TIOTestAudioOne.mp3" +dest_files=[ "res://.import/TIOTestAudioOne.mp3-91423447c89ab96ff6af8d6e9d4abc44.mp3str" ] + +[params] + +loop=true +loop_offset=0 diff --git a/Server/region/Musik/audioSegent.gd b/Server/region/Musik/audioSegent.gd new file mode 100644 index 0000000..d1e76a0 --- /dev/null +++ b/Server/region/Musik/audioSegent.gd @@ -0,0 +1,29 @@ +extends Node + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +export var start:float +export var end:float +export var priority: int +export var next: int +export var flawless: int + + +func getLength(): + return end-start + +func loadFromJSON(Json): + start = Json.start + end = Json.end + priority = Json.priority + next = Json.next + flawless = Json.flawless + pass + +# Called when the node enters the scene tree for the first time. +func _ready(): + + pass # Replace with function body. + diff --git a/Server/region/Musik/audioSegent.tscn b/Server/region/Musik/audioSegent.tscn new file mode 100644 index 0000000..318a593 --- /dev/null +++ b/Server/region/Musik/audioSegent.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://region/Musik/audioSegent.gd" type="Script" id=1] + +[node name="audioSegent" type="Node"] +script = ExtResource( 1 ) diff --git a/Server/region/Region.gd b/Server/region/Region.gd new file mode 100644 index 0000000..4a025d4 --- /dev/null +++ b/Server/region/Region.gd @@ -0,0 +1,35 @@ +extends Node2D + +var inventory = {} + +# Called when the node enters the scene tree for the first time. +func _ready(): + PlayerManager.subMenuOpen = false + pass # Replace with function body. + +func Buildings(tile, army): +# if region.faction == army.faction or worldtile != buildings(): #RegionOwner or worldtile == leer? +# if setPresent() == true: + return + +func mine(tile, army): + if Buildings(tile, army) == true: + if army.inventory.eschenwood() >= 30 or army.inventory.xp() >= 200: #inventory not properly defined yet, might need change +# var minekoordinate = Player.Tile #Player.Tile = Aktuelles Feld auf dem der Spieler sein soll. +# minekoordinate = earth.Tile #Building Sprite Tile + var buildingtime = 5 + var finish = buildingtime + ['turn'] #finish = Gebäude fertig + if finish == ['turn']: + preload("res://region/MineSmall.tscn").instance() + + + + + +func endTurn(): + pass + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass + diff --git a/Server/region/Region.tscn b/Server/region/Region.tscn new file mode 100644 index 0000000..518cca7 --- /dev/null +++ b/Server/region/Region.tscn @@ -0,0 +1,161 @@ +[gd_scene load_steps=16 format=2] + +[ext_resource path="res://region/Region.gd" type="Script" id=1] +[ext_resource path="res://images/region/regiontiles.png" type="Texture" id=2] +[ext_resource path="res://region/regionGround.gd" type="Script" id=3] +[ext_resource path="res://army/Stack2x1.tscn" type="PackedScene" id=4] +[ext_resource path="res://region/ressourcenodes/Mountain.tscn" type="PackedScene" id=5] +[ext_resource path="res://region/building/Building.tscn" type="PackedScene" id=6] +[ext_resource path="res://Camera2D.gd" type="Script" id=7] +[ext_resource path="res://region/RegionUI.tscn" type="PackedScene" id=8] +[ext_resource path="res://menues/smallbtn.tscn" type="PackedScene" id=9] +[ext_resource path="res://region/dayTimer.gd" type="Script" id=10] +[ext_resource path="res://menues/toggleResearch.gd" type="Script" id=11] +[ext_resource path="res://menues/research.tscn" type="PackedScene" id=12] +[ext_resource path="res://items/Item.tscn" type="PackedScene" id=13] +[ext_resource path="res://region/MineSmall.tscn" type="PackedScene" id=14] + +[sub_resource type="TileSet" id=1] +0/name = "regiontiles.png 0" +0/texture = ExtResource( 2 ) +0/tex_offset = Vector2( 0, 0 ) +0/modulate = Color( 1, 1, 1, 1 ) +0/region = Rect2( 128, 0, 128, 128 ) +0/tile_mode = 0 +0/occluder_offset = Vector2( 0, 0 ) +0/navigation_offset = Vector2( 0, 0 ) +0/shape_offset = Vector2( 0, 0 ) +0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +0/shape_one_way = false +0/shape_one_way_margin = 0.0 +0/shapes = [ ] +0/z_index = 0 +1/name = "regiontiles.png 1" +1/texture = ExtResource( 2 ) +1/tex_offset = Vector2( 0, 0 ) +1/modulate = Color( 1, 1, 1, 1 ) +1/region = Rect2( 480, 0, 128, 128 ) +1/tile_mode = 0 +1/occluder_offset = Vector2( 0, 0 ) +1/navigation_offset = Vector2( 0, 0 ) +1/shape_offset = Vector2( 0, 0 ) +1/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +1/shape_one_way = false +1/shape_one_way_margin = 0.0 +1/shapes = [ ] +1/z_index = 0 +2/name = "regiontiles.png 2" +2/texture = ExtResource( 2 ) +2/tex_offset = Vector2( 0, 0 ) +2/modulate = Color( 1, 1, 1, 1 ) +2/region = Rect2( 224, 384, 128, 128 ) +2/tile_mode = 0 +2/occluder_offset = Vector2( 0, 0 ) +2/navigation_offset = Vector2( 0, 0 ) +2/shape_offset = Vector2( 0, 0 ) +2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +2/shape_one_way = false +2/shape_one_way_margin = 0.0 +2/shapes = [ ] +2/z_index = 0 +3/name = "regiontiles.png 3" +3/texture = ExtResource( 2 ) +3/tex_offset = Vector2( 0, 0 ) +3/modulate = Color( 1, 1, 1, 1 ) +3/region = Rect2( 0, 128, 128, 128 ) +3/tile_mode = 0 +3/occluder_offset = Vector2( 0, 0 ) +3/navigation_offset = Vector2( 0, 0 ) +3/shape_offset = Vector2( 0, 0 ) +3/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +3/shape_one_way = false +3/shape_one_way_margin = 0.0 +3/shapes = [ ] +3/z_index = 0 +4/name = "regiontiles.png 4" +4/texture = ExtResource( 2 ) +4/tex_offset = Vector2( 0, 0 ) +4/modulate = Color( 1, 1, 1, 1 ) +4/region = Rect2( 128, 128, 128, 128 ) +4/tile_mode = 0 +4/occluder_offset = Vector2( 0, 0 ) +4/navigation_offset = Vector2( 0, 0 ) +4/shape_offset = Vector2( 0, 0 ) +4/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +4/shape_one_way = false +4/shape_one_way_margin = 0.0 +4/shapes = [ ] +4/z_index = 0 + +[node name="Region" type="Node2D"] +script = ExtResource( 1 ) + +[node name="ground" type="TileMap" parent="."] +tile_set = SubResource( 1 ) +cell_size = Vector2( 128, 128 ) +format = 1 +tile_data = PoolIntArray( -65537, 1, 0, -131072, 1, 0, -131071, 1, 0, -131070, 1, 0, -131069, 1, 0, -131068, 1, 0, -131067, 1, 0, -131066, 1, 0, -131065, 1, 0, -131064, 1, 0, -131063, 1, 0, -131062, 1, 0, -131061, 1, 0, -131060, 1, 0, -131059, 1, 0, -131058, 1, 0, -1, 1, 0, -65536, 1, 0, -65535, 1, 0, -65534, 1, 0, -65533, 1, 0, -65532, 1, 0, -65531, 1, 0, -65530, 1, 0, -65529, 1, 0, -65528, 1, 0, -65527, 1, 0, -65526, 1, 0, -65525, 1, 0, -65524, 1, 0, -65523, 1, 0, -65522, 1, 0, -65521, 1, 0, -65520, 1, 0, 65535, 1, 0, 0, 0, 0, 1, 0, 0, 2, 2, 0, 3, 2, 0, 4, 2, 0, 5, 2, 0, 6, 2, 0, 7, 2, 0, 8, 1, 0, 9, 1, 0, 10, 1, 0, 11, 1, 0, 12, 1, 0, 13, 1, 0, 14, 1, 0, 15, 1, 0, 16, 1, 0, 131071, 1, 0, 65536, 0, 0, 65537, 0, 0, 65538, 2, 0, 65539, 2, 0, 65540, 2, 0, 65541, 2, 0, 65542, 2, 0, 65543, 2, 0, 65544, 1, 0, 65545, 1, 0, 65546, 1, 0, 65547, 1, 0, 65548, 1, 0, 65549, 1, 0, 65550, 1, 0, 65551, 1, 0, 65552, 1, 0, 196607, 1, 0, 131072, 0, 0, 131073, 0, 0, 131074, 2, 0, 131075, 4, 0, 131076, 4, 0, 131077, 0, 0, 131078, 2, 0, 131079, 2, 0, 131080, 1, 0, 131081, 1, 0, 131082, 1, 0, 131083, 1, 0, 131084, 1, 0, 131085, 1, 0, 131086, 1, 0, 131087, 1, 0, 131088, 1, 0, 131089, 1, 0, 131090, 1, 0, 131091, 1, 0, 131092, 1, 0, 131093, 1, 0, 131094, 1, 0, 262143, 1, 0, 196608, 4, 0, 196609, 4, 0, 196610, 4, 0, 196611, 4, 0, 196612, 4, 0, 196613, 0, 0, 196614, 2, 0, 196615, 2, 0, 196616, 1, 0, 196617, 1, 0, 196618, 1, 0, 196619, 1, 0, 196620, 1, 0, 196621, 1, 0, 196622, 1, 0, 196623, 1, 0, 196625, 1, 0, 196626, 1, 0, 196627, 1, 0, 196628, 1, 0, 196629, 1, 0, 196630, 1, 0, 327678, 1, 0, 327679, 1, 0, 262144, 0, 0, 262145, 0, 0, 262146, 3, 0, 262147, 3, 0, 262148, 3, 0, 262149, 0, 0, 262150, 1, 0, 262151, 1, 0, 262152, 1, 0, 262153, 1, 0, 262154, 1, 0, 262155, 1, 0, 262156, 1, 0, 262157, 1, 0, 262158, 1, 0, 262159, 1, 0, 393214, 1, 0, 393215, 1, 0, 327680, 1, 0, 327681, 1, 0, 327682, 1, 0, 327683, 1, 0, 327684, 1, 0, 327685, 1, 0, 327686, 1, 0, 327687, 1, 0, 327688, 1, 0, 327689, 1, 0, 327690, 1, 0, 327692, 1, 0, 327693, 1, 0, 327694, 1, 0, 327695, 1, 0, 458750, 1, 0, 458751, 1, 0, 393216, 1, 0, 393217, 1, 0, 393218, 1, 0, 393219, 1, 0, 393220, 1, 0, 393221, 1, 0, 393222, 1, 0, 393223, 1, 0, 393224, 1, 0, 393225, 1, 0, 393226, 1, 0, 393227, 1, 0, 393228, 1, 0, 393229, 1, 0, 393230, 1, 0, 393231, 1, 0, 524287, 1, 0, 458752, 1, 0, 458753, 1, 0, 458754, 1, 0, 458755, 1, 0, 458756, 1, 0, 458757, 1, 0, 458758, 1, 0, 458759, 1, 0, 458760, 1, 0, 458761, 1, 0, 458762, 1, 0, 458763, 1, 0, 458764, 1, 0, 458765, 1, 0, 458766, 1, 0, 458767, 1, 0, 589823, 1, 0, 524288, 1, 0, 524289, 1, 0, 524290, 1, 0, 524291, 1, 0, 524292, 1, 0, 524293, 1, 0, 524294, 1, 0, 524295, 1, 0, 524296, 1, 0, 524297, 1, 0, 524298, 1, 0, 524299, 1, 0, 524300, 1, 0, 524301, 1, 0, 524302, 1, 0, 524303, 1, 0, 655359, 1, 0, 589824, 1, 0, 589825, 1, 0, 589826, 1, 0, 589827, 1, 0, 589828, 1, 0, 589829, 1, 0, 589831, 1, 0, 589832, 1, 0, 589833, 1, 0, 589834, 1, 0, 589835, 1, 0, 655367, 1, 0 ) +script = ExtResource( 3 ) + +[node name="units" type="Node" parent="ground"] + +[node name="Stack" parent="ground/units" instance=ExtResource( 4 )] +position = Vector2( 128, 256 ) + +[node name="ressources" type="Node" parent="ground"] + +[node name="Mountain" parent="ground/ressources" instance=ExtResource( 5 )] +position = Vector2( 256, 768 ) + +[node name="buildings" type="Node" parent="ground"] + +[node name="Node2D" parent="ground/buildings" instance=ExtResource( 6 )] +position = Vector2( 730, 700 ) + +[node name="mine" type="Node2D" parent="ground/buildings"] +position = Vector2( 574, 569 ) + +[node name="MineSmall" parent="ground/buildings/mine" instance=ExtResource( 14 )] +position = Vector2( 1, 0 ) +scale = Vector2( 0.427155, 0.427155 ) + +[node name="Camera2D" type="Camera2D" parent="."] +current = true +drag_margin_left = 0.0 +drag_margin_top = 0.0 +drag_margin_right = 0.0 +drag_margin_bottom = 0.0 +script = ExtResource( 7 ) + +[node name="RegionUI" parent="." instance=ExtResource( 8 )] + +[node name="TextureButton" parent="RegionUI" instance=ExtResource( 9 )] +margin_left = 1427.18 +margin_top = 625.418 +margin_right = 1511.18 +margin_bottom = 689.418 +script = ExtResource( 10 ) + +[node name="TextureButton2" parent="RegionUI" instance=ExtResource( 9 )] +margin_left = 1421.33 +margin_top = 113.573 +margin_right = 1505.33 +margin_bottom = 177.573 +script = ExtResource( 11 ) + +[node name="ResearchMenu" parent="RegionUI/TextureButton2" instance=ExtResource( 12 )] +visible = false +show_behind_parent = true +margin_left = -1523.25 +margin_top = -115.948 +margin_right = 315.755 +margin_bottom = 842.052 +mouse_filter = 0 + +[node name="CanvasModulate" type="CanvasModulate" parent="."] +position = Vector2( 494.969, 425.958 ) +scale = Vector2( 600, 600 ) +color = Color( 0.258824, 0.227451, 0.243137, 1 ) + +[node name="Item" parent="." instance=ExtResource( 13 )] +position = Vector2( 250, 530 ) diff --git a/Server/region/RegionCreater.gd b/Server/region/RegionCreater.gd new file mode 100644 index 0000000..cfcf375 --- /dev/null +++ b/Server/region/RegionCreater.gd @@ -0,0 +1,28 @@ +extends Node + +var Region = preload("res://region/Region.tscn") + + +func createRegion(regiontype,sizex:int, sizey:int, mapseed:int = 0): + var region = Region.instance() + var x = 0 + var y = 0 + var tile = mapseed + var map = region.get_node("ground") + if regiontype == 'GRASS': + while x= 24: + time = 0 + adapt() +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func adapt(): + +# if time>17: +# daySegment = 3 +# elif time > 11: +# daySegment = 2 +# elif time > 5: +# daySegment = 1 +# else: +# daySegment = 0 +# print('segment: ', daySegment) + print('time: ', time) + print(colors[time]) + get_parent().get_parent().get_node('CanvasModulate').set_color(colors[time]) + return \ No newline at end of file diff --git a/Server/region/mine small.png b/Server/region/mine small.png new file mode 100644 index 0000000..8d54123 Binary files /dev/null and b/Server/region/mine small.png differ diff --git a/Server/region/mine small.png.import b/Server/region/mine small.png.import new file mode 100644 index 0000000..c2cd028 --- /dev/null +++ b/Server/region/mine small.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/mine small.png-c1a35a897263ecbf76bb38942662d7ea.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://region/mine small.png" +dest_files=[ "res://.import/mine small.png-c1a35a897263ecbf76bb38942662d7ea.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 +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/Server/region/regionGround.gd b/Server/region/regionGround.gd new file mode 100644 index 0000000..57db1ff --- /dev/null +++ b/Server/region/regionGround.gd @@ -0,0 +1,19 @@ +extends TileMap + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func _input(event): + if event is InputEventMouseButton: + var index = event.get_button_index() + if 1 == index or 2 == index: + if not event.is_pressed(): + print("click") \ No newline at end of file diff --git a/Server/region/ressourcenodes/Mountain.tscn b/Server/region/ressourcenodes/Mountain.tscn new file mode 100644 index 0000000..789eccb --- /dev/null +++ b/Server/region/ressourcenodes/Mountain.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://region/ressourcenodes/RessourceNode.gd" type="Script" id=1] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 256, 128 ) + +[node name="Mountain" type="StaticBody2D"] +script = ExtResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] + +[node name="Buildings" type="Node" parent="."] diff --git a/Server/region/ressourcenodes/RessourceNode.gd b/Server/region/ressourcenodes/RessourceNode.gd new file mode 100644 index 0000000..445469f --- /dev/null +++ b/Server/region/ressourcenodes/RessourceNode.gd @@ -0,0 +1,20 @@ +extends StaticBody2D + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +var allowedBuildings = ["Steinbruch","Zwergensiedlung"] +var produces = "Stein" +var type = "Marmor" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass +func _input(event): + + pass diff --git a/Server/region/ressourcenodes/RessourceNodes.tres b/Server/region/ressourcenodes/RessourceNodes.tres new file mode 100644 index 0000000..e14a19b --- /dev/null +++ b/Server/region/ressourcenodes/RessourceNodes.tres @@ -0,0 +1,12 @@ +[gd_resource type="AnimatedTexture" load_steps=3 format=2] + +[ext_resource path="res://images/region/Ressource Nodes.png" type="Texture" id=1] + +[sub_resource type="AtlasTexture" id=1] +flags = 4 +atlas = ExtResource( 1 ) +region = Rect2( 0, 0, 512, 256 ) + +[resource] +flags = 4 +frame_0/texture = SubResource( 1 ) diff --git a/Server/wmTile.gd b/Server/wmTile.gd new file mode 100644 index 0000000..85ccbcf --- /dev/null +++ b/Server/wmTile.gd @@ -0,0 +1,40 @@ +extends Node + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + +var turn = 1 +var position = Vector2(0,0) +var incommingArmies = {} #contains arrays with armies mapped to turn of arrival 2:[],3:[] +var presentArmies = {} +var faction = '' +# Called when the node enters the scene tree for the first time. + +func construct(position): + self.position = position + +func _ready(): + pass # Replace with function body. + + + + +func armyArrival(army): + return + + +func armiesArrival(armies:TYPE_ARRAY): + for army in armies: + army + return + +func endTurn(): + ++turn + if incommingArmies.has(turn): + ++turn + pass +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass