summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.import/.gdignore1
-rw-r--r--.import/RocketUVOutline.png-30a928d1987c4534a348e7d6ab906bb1.md53
-rw-r--r--.import/RocketUVOutline.png-30a928d1987c4534a348e7d6ab906bb1.stexbin0 -> 10518 bytes
-rw-r--r--.import/WaterA.jpg-8a9f5eee48867fac51e21ebc384b6443.etc2.stexbin0 -> 87428 bytes
-rw-r--r--.import/WaterA.jpg-8a9f5eee48867fac51e21ebc384b6443.md53
-rw-r--r--.import/WaterA.jpg-8a9f5eee48867fac51e21ebc384b6443.s3tc.stexbin0 -> 43724 bytes
-rw-r--r--.import/WaterB.jpg-ad2b8fe64fb2c16f5f5043c2c25b8183.md53
-rw-r--r--.import/WaterB.jpg-ad2b8fe64fb2c16f5f5043c2c25b8183.stexbin0 -> 39498 bytes
-rw-r--r--.import/WaterC.jpg-d042637943918b86bb9b89e4bb1561ec.etc2.stexbin0 -> 2764 bytes
-rw-r--r--.import/WaterC.jpg-d042637943918b86bb9b89e4bb1561ec.md53
-rw-r--r--.import/WaterC.jpg-d042637943918b86bb9b89e4bb1561ec.s3tc.stexbin0 -> 2764 bytes
-rw-r--r--.import/capture.wav-ad0fe61b79d5dd800386c958a3ced32e.md53
-rw-r--r--.import/capture.wav-ad0fe61b79d5dd800386c958a3ced32e.samplebin0 -> 211981 bytes
-rw-r--r--.import/conc_slabs01_c.png-03b16280351110ffef58557c4442b617.etc2.stexbin0 -> 699084 bytes
-rw-r--r--.import/conc_slabs01_c.png-03b16280351110ffef58557c4442b617.md53
-rw-r--r--.import/conc_slabs01_c.png-03b16280351110ffef58557c4442b617.s3tc.stexbin0 -> 699084 bytes
-rw-r--r--.import/debris1.png-4fe21a9e56c99b356618f23820ec2ca9.md53
-rw-r--r--.import/debris1.png-4fe21a9e56c99b356618f23820ec2ca9.stexbin0 -> 952 bytes
-rw-r--r--.import/debris2.png-43d498b9e855dc2677264edc3b6b0d71.md53
-rw-r--r--.import/debris2.png-43d498b9e855dc2677264edc3b6b0d71.stexbin0 -> 896 bytes
-rw-r--r--.import/dirt.jpg-5cc971cf0ef2afd3e8992456d2a6a75f.md53
-rw-r--r--.import/dirt.jpg-5cc971cf0ef2afd3e8992456d2a6a75f.stexbin0 -> 3835240 bytes
-rw-r--r--.import/dockscene.glb-cfdfdcc23f8e38fe238fc99a3ec3827a.md53
-rw-r--r--.import/dockscene.glb-cfdfdcc23f8e38fe238fc99a3ec3827a.scnbin0 -> 29584 bytes
-rw-r--r--.import/explode.wav-1d7c8e9c32dec8f279cd96d5d37cecb1.md53
-rw-r--r--.import/explode.wav-1d7c8e9c32dec8f279cd96d5d37cecb1.samplebin0 -> 277649 bytes
-rw-r--r--.import/flame.png-94b16ce463dcda40fe5021eb2e643a67.md53
-rw-r--r--.import/flame.png-94b16ce463dcda40fe5021eb2e643a67.stexbin0 -> 5344 bytes
-rw-r--r--.import/housescene.glb-370812a9c603788d0b860f75c94317a6.md53
-rw-r--r--.import/housescene.glb-370812a9c603788d0b860f75c94317a6.scnbin0 -> 11899 bytes
-rw-r--r--.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md53
-rw-r--r--.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stexbin0 -> 22140 bytes
-rw-r--r--.import/islandscene.glb-c7a4bae1e63bc2b24856f9e94484bba1.md53
-rw-r--r--.import/islandscene.glb-c7a4bae1e63bc2b24856f9e94484bba1.scnbin0 -> 44495 bytes
-rw-r--r--.import/laetine.obj-e2f2547cb01c5b6ffec4bdf5b2a3aec9.md53
-rw-r--r--.import/laetine.obj-e2f2547cb01c5b6ffec4bdf5b2a3aec9.meshbin0 -> 7198 bytes
-rw-r--r--.import/laetine_mask.obj-1053f82ebca550b3c863dd727c5a57c1.md53
-rw-r--r--.import/laetine_mask.obj-1053f82ebca550b3c863dd727c5a57c1.meshbin0 -> 2134 bytes
-rw-r--r--.import/planks.jpg-70c48f89a7e1a9a4ea44b69cc9fc7c6f.etc2.stexbin0 -> 43724 bytes
-rw-r--r--.import/planks.jpg-70c48f89a7e1a9a4ea44b69cc9fc7c6f.md53
-rw-r--r--.import/planks.jpg-70c48f89a7e1a9a4ea44b69cc9fc7c6f.s3tc.stexbin0 -> 43724 bytes
-rw-r--r--.import/rocket.glb-c98c6cf65b7c3b7b3f9311f8a77cc707.md53
-rw-r--r--.import/rocket.glb-c98c6cf65b7c3b7b3f9311f8a77cc707.scnbin0 -> 3729 bytes
-rw-r--r--.import/rockettexture.png-57b83943361359546526cd89a61c089b.md53
-rw-r--r--.import/rockettexture.png-57b83943361359546526cd89a61c089b.stexbin0 -> 57798 bytes
-rw-r--r--.import/shockwave.png-011356472f7286f4f283e130fc6d60d0.md53
-rw-r--r--.import/shockwave.png-011356472f7286f4f283e130fc6d60d0.stexbin0 -> 25888 bytes
-rw-r--r--.import/smoke.png-ca92037af54291e7c4ac41b03252fb32.md53
-rw-r--r--.import/smoke.png-ca92037af54291e7c4ac41b03252fb32.stexbin0 -> 45572 bytes
-rw-r--r--icon.pngbin3305 -> 31984 bytes
-rw-r--r--scenes/ClientUI.tscn1
-rw-r--r--scenes/ballistics/Rocket.gd21
-rw-r--r--scripts/ClientUI.gd35
-rw-r--r--scripts/GameBase.gd11
-rw-r--r--scripts/Server.gd11
-rw-r--r--scripts/ServerUI.gd2
-rw-r--r--scripts/World.gd1
-rw-r--r--scripts/ballistics/Cannonball.gd11
-rw-r--r--scripts/ballistics/NetworkedProjectile.gd22
-rw-r--r--scripts/machines/Cannon.gd10
60 files changed, 159 insertions, 33 deletions
diff --git a/.import/.gdignore b/.import/.gdignore
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/.import/.gdignore
@@ -0,0 +1 @@
+
diff --git a/.import/RocketUVOutline.png-30a928d1987c4534a348e7d6ab906bb1.md5 b/.import/RocketUVOutline.png-30a928d1987c4534a348e7d6ab906bb1.md5
new file mode 100644
index 0000000..d0d0b8d
--- /dev/null
+++ b/.import/RocketUVOutline.png-30a928d1987c4534a348e7d6ab906bb1.md5
@@ -0,0 +1,3 @@
+source_md5="be00435406ad8db66a93e4a7b9767ce3"
+dest_md5="cfc1b3ea41f1fd27dbeaee86a38723eb"
+
diff --git a/.import/RocketUVOutline.png-30a928d1987c4534a348e7d6ab906bb1.stex b/.import/RocketUVOutline.png-30a928d1987c4534a348e7d6ab906bb1.stex
new file mode 100644
index 0000000..d5af0f2
--- /dev/null
+++ b/.import/RocketUVOutline.png-30a928d1987c4534a348e7d6ab906bb1.stex
Binary files differ
diff --git a/.import/WaterA.jpg-8a9f5eee48867fac51e21ebc384b6443.etc2.stex b/.import/WaterA.jpg-8a9f5eee48867fac51e21ebc384b6443.etc2.stex
new file mode 100644
index 0000000..3a2bf9d
--- /dev/null
+++ b/.import/WaterA.jpg-8a9f5eee48867fac51e21ebc384b6443.etc2.stex
Binary files differ
diff --git a/.import/WaterA.jpg-8a9f5eee48867fac51e21ebc384b6443.md5 b/.import/WaterA.jpg-8a9f5eee48867fac51e21ebc384b6443.md5
new file mode 100644
index 0000000..420e268
--- /dev/null
+++ b/.import/WaterA.jpg-8a9f5eee48867fac51e21ebc384b6443.md5
@@ -0,0 +1,3 @@
+source_md5="935ada0ede79d0c8d9e3033f069c3f92"
+dest_md5="5d77a032048707156d37d99117a0e376"
+
diff --git a/.import/WaterA.jpg-8a9f5eee48867fac51e21ebc384b6443.s3tc.stex b/.import/WaterA.jpg-8a9f5eee48867fac51e21ebc384b6443.s3tc.stex
new file mode 100644
index 0000000..f8dd85a
--- /dev/null
+++ b/.import/WaterA.jpg-8a9f5eee48867fac51e21ebc384b6443.s3tc.stex
Binary files differ
diff --git a/.import/WaterB.jpg-ad2b8fe64fb2c16f5f5043c2c25b8183.md5 b/.import/WaterB.jpg-ad2b8fe64fb2c16f5f5043c2c25b8183.md5
new file mode 100644
index 0000000..66e6cf5
--- /dev/null
+++ b/.import/WaterB.jpg-ad2b8fe64fb2c16f5f5043c2c25b8183.md5
@@ -0,0 +1,3 @@
+source_md5="b4f7254e690f58cc7872ac58f861994d"
+dest_md5="53ea1f182fda106de0c10a4d8f9c4c70"
+
diff --git a/.import/WaterB.jpg-ad2b8fe64fb2c16f5f5043c2c25b8183.stex b/.import/WaterB.jpg-ad2b8fe64fb2c16f5f5043c2c25b8183.stex
new file mode 100644
index 0000000..5d0d0d1
--- /dev/null
+++ b/.import/WaterB.jpg-ad2b8fe64fb2c16f5f5043c2c25b8183.stex
Binary files differ
diff --git a/.import/WaterC.jpg-d042637943918b86bb9b89e4bb1561ec.etc2.stex b/.import/WaterC.jpg-d042637943918b86bb9b89e4bb1561ec.etc2.stex
new file mode 100644
index 0000000..e54f790
--- /dev/null
+++ b/.import/WaterC.jpg-d042637943918b86bb9b89e4bb1561ec.etc2.stex
Binary files differ
diff --git a/.import/WaterC.jpg-d042637943918b86bb9b89e4bb1561ec.md5 b/.import/WaterC.jpg-d042637943918b86bb9b89e4bb1561ec.md5
new file mode 100644
index 0000000..975dbf3
--- /dev/null
+++ b/.import/WaterC.jpg-d042637943918b86bb9b89e4bb1561ec.md5
@@ -0,0 +1,3 @@
+source_md5="bba43235741cefe8b0f5beb6001072cd"
+dest_md5="2bd805a5f0e0283ccd0694cbfe2d569e"
+
diff --git a/.import/WaterC.jpg-d042637943918b86bb9b89e4bb1561ec.s3tc.stex b/.import/WaterC.jpg-d042637943918b86bb9b89e4bb1561ec.s3tc.stex
new file mode 100644
index 0000000..7a193d7
--- /dev/null
+++ b/.import/WaterC.jpg-d042637943918b86bb9b89e4bb1561ec.s3tc.stex
Binary files differ
diff --git a/.import/capture.wav-ad0fe61b79d5dd800386c958a3ced32e.md5 b/.import/capture.wav-ad0fe61b79d5dd800386c958a3ced32e.md5
new file mode 100644
index 0000000..85682d3
--- /dev/null
+++ b/.import/capture.wav-ad0fe61b79d5dd800386c958a3ced32e.md5
@@ -0,0 +1,3 @@
+source_md5="bd6584ea03e7275f60b450ad3c469856"
+dest_md5="8be5fb43e3aba48f3b512b8af1b20bdc"
+
diff --git a/.import/capture.wav-ad0fe61b79d5dd800386c958a3ced32e.sample b/.import/capture.wav-ad0fe61b79d5dd800386c958a3ced32e.sample
new file mode 100644
index 0000000..1a76cdd
--- /dev/null
+++ b/.import/capture.wav-ad0fe61b79d5dd800386c958a3ced32e.sample
Binary files differ
diff --git a/.import/conc_slabs01_c.png-03b16280351110ffef58557c4442b617.etc2.stex b/.import/conc_slabs01_c.png-03b16280351110ffef58557c4442b617.etc2.stex
new file mode 100644
index 0000000..bc211dd
--- /dev/null
+++ b/.import/conc_slabs01_c.png-03b16280351110ffef58557c4442b617.etc2.stex
Binary files differ
diff --git a/.import/conc_slabs01_c.png-03b16280351110ffef58557c4442b617.md5 b/.import/conc_slabs01_c.png-03b16280351110ffef58557c4442b617.md5
new file mode 100644
index 0000000..7677a4d
--- /dev/null
+++ b/.import/conc_slabs01_c.png-03b16280351110ffef58557c4442b617.md5
@@ -0,0 +1,3 @@
+source_md5="78d75933191e914dd19c06203eca7316"
+dest_md5="448d7a780a82d0617b71d2c4d1d0b712"
+
diff --git a/.import/conc_slabs01_c.png-03b16280351110ffef58557c4442b617.s3tc.stex b/.import/conc_slabs01_c.png-03b16280351110ffef58557c4442b617.s3tc.stex
new file mode 100644
index 0000000..777bbfa
--- /dev/null
+++ b/.import/conc_slabs01_c.png-03b16280351110ffef58557c4442b617.s3tc.stex
Binary files differ
diff --git a/.import/debris1.png-4fe21a9e56c99b356618f23820ec2ca9.md5 b/.import/debris1.png-4fe21a9e56c99b356618f23820ec2ca9.md5
new file mode 100644
index 0000000..7ee215c
--- /dev/null
+++ b/.import/debris1.png-4fe21a9e56c99b356618f23820ec2ca9.md5
@@ -0,0 +1,3 @@
+source_md5="5017bf1eb4e7e0416121379a3b7d8bf7"
+dest_md5="a338c552f21718d72d44bb209b3d03df"
+
diff --git a/.import/debris1.png-4fe21a9e56c99b356618f23820ec2ca9.stex b/.import/debris1.png-4fe21a9e56c99b356618f23820ec2ca9.stex
new file mode 100644
index 0000000..ab06fad
--- /dev/null
+++ b/.import/debris1.png-4fe21a9e56c99b356618f23820ec2ca9.stex
Binary files differ
diff --git a/.import/debris2.png-43d498b9e855dc2677264edc3b6b0d71.md5 b/.import/debris2.png-43d498b9e855dc2677264edc3b6b0d71.md5
new file mode 100644
index 0000000..4a8a9a3
--- /dev/null
+++ b/.import/debris2.png-43d498b9e855dc2677264edc3b6b0d71.md5
@@ -0,0 +1,3 @@
+source_md5="0093e8439df087b0a36b544bda5b8da1"
+dest_md5="d775dc4250c625c1f052787f69082b9a"
+
diff --git a/.import/debris2.png-43d498b9e855dc2677264edc3b6b0d71.stex b/.import/debris2.png-43d498b9e855dc2677264edc3b6b0d71.stex
new file mode 100644
index 0000000..d69693c
--- /dev/null
+++ b/.import/debris2.png-43d498b9e855dc2677264edc3b6b0d71.stex
Binary files differ
diff --git a/.import/dirt.jpg-5cc971cf0ef2afd3e8992456d2a6a75f.md5 b/.import/dirt.jpg-5cc971cf0ef2afd3e8992456d2a6a75f.md5
new file mode 100644
index 0000000..ccd56a8
--- /dev/null
+++ b/.import/dirt.jpg-5cc971cf0ef2afd3e8992456d2a6a75f.md5
@@ -0,0 +1,3 @@
+source_md5="9c44de3aac48f837cf15e445397fb3ca"
+dest_md5="f11b0b62db5e29b1450d005ce407b3ac"
+
diff --git a/.import/dirt.jpg-5cc971cf0ef2afd3e8992456d2a6a75f.stex b/.import/dirt.jpg-5cc971cf0ef2afd3e8992456d2a6a75f.stex
new file mode 100644
index 0000000..627af0a
--- /dev/null
+++ b/.import/dirt.jpg-5cc971cf0ef2afd3e8992456d2a6a75f.stex
Binary files differ
diff --git a/.import/dockscene.glb-cfdfdcc23f8e38fe238fc99a3ec3827a.md5 b/.import/dockscene.glb-cfdfdcc23f8e38fe238fc99a3ec3827a.md5
new file mode 100644
index 0000000..75daef3
--- /dev/null
+++ b/.import/dockscene.glb-cfdfdcc23f8e38fe238fc99a3ec3827a.md5
@@ -0,0 +1,3 @@
+source_md5="4a27ab26f11039b2097b0c2223db0676"
+dest_md5="dc886c978a64316424f2dec5c0f28ad3"
+
diff --git a/.import/dockscene.glb-cfdfdcc23f8e38fe238fc99a3ec3827a.scn b/.import/dockscene.glb-cfdfdcc23f8e38fe238fc99a3ec3827a.scn
new file mode 100644
index 0000000..b17b131
--- /dev/null
+++ b/.import/dockscene.glb-cfdfdcc23f8e38fe238fc99a3ec3827a.scn
Binary files differ
diff --git a/.import/explode.wav-1d7c8e9c32dec8f279cd96d5d37cecb1.md5 b/.import/explode.wav-1d7c8e9c32dec8f279cd96d5d37cecb1.md5
new file mode 100644
index 0000000..a2e563f
--- /dev/null
+++ b/.import/explode.wav-1d7c8e9c32dec8f279cd96d5d37cecb1.md5
@@ -0,0 +1,3 @@
+source_md5="1418be33cfb4ecc41a27c69ed5413e64"
+dest_md5="d2c752ce1a2d86936067559652ee8186"
+
diff --git a/.import/explode.wav-1d7c8e9c32dec8f279cd96d5d37cecb1.sample b/.import/explode.wav-1d7c8e9c32dec8f279cd96d5d37cecb1.sample
new file mode 100644
index 0000000..8f610f8
--- /dev/null
+++ b/.import/explode.wav-1d7c8e9c32dec8f279cd96d5d37cecb1.sample
Binary files differ
diff --git a/.import/flame.png-94b16ce463dcda40fe5021eb2e643a67.md5 b/.import/flame.png-94b16ce463dcda40fe5021eb2e643a67.md5
new file mode 100644
index 0000000..ec80ec2
--- /dev/null
+++ b/.import/flame.png-94b16ce463dcda40fe5021eb2e643a67.md5
@@ -0,0 +1,3 @@
+source_md5="15e6bc6e75ccf467d5da44cf13004efa"
+dest_md5="5e77a62d5255c16f29b98257c1422da4"
+
diff --git a/.import/flame.png-94b16ce463dcda40fe5021eb2e643a67.stex b/.import/flame.png-94b16ce463dcda40fe5021eb2e643a67.stex
new file mode 100644
index 0000000..fa4ffe5
--- /dev/null
+++ b/.import/flame.png-94b16ce463dcda40fe5021eb2e643a67.stex
Binary files differ
diff --git a/.import/housescene.glb-370812a9c603788d0b860f75c94317a6.md5 b/.import/housescene.glb-370812a9c603788d0b860f75c94317a6.md5
new file mode 100644
index 0000000..5329e95
--- /dev/null
+++ b/.import/housescene.glb-370812a9c603788d0b860f75c94317a6.md5
@@ -0,0 +1,3 @@
+source_md5="0014011d61b27d5e89f6cd62571accf6"
+dest_md5="500f8e2fa46704d3640a044aa1a52dc0"
+
diff --git a/.import/housescene.glb-370812a9c603788d0b860f75c94317a6.scn b/.import/housescene.glb-370812a9c603788d0b860f75c94317a6.scn
new file mode 100644
index 0000000..9b75489
--- /dev/null
+++ b/.import/housescene.glb-370812a9c603788d0b860f75c94317a6.scn
Binary files differ
diff --git a/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5 b/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5
new file mode 100644
index 0000000..c51fff8
--- /dev/null
+++ b/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.md5
@@ -0,0 +1,3 @@
+source_md5="ee93d01ec2fd84a04af4edaa8e8fab91"
+dest_md5="eaa1cc4cacb2ea7ef01fde80a04c0e83"
+
diff --git a/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex b/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex
new file mode 100644
index 0000000..c9c903b
--- /dev/null
+++ b/.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex
Binary files differ
diff --git a/.import/islandscene.glb-c7a4bae1e63bc2b24856f9e94484bba1.md5 b/.import/islandscene.glb-c7a4bae1e63bc2b24856f9e94484bba1.md5
new file mode 100644
index 0000000..8ee6c17
--- /dev/null
+++ b/.import/islandscene.glb-c7a4bae1e63bc2b24856f9e94484bba1.md5
@@ -0,0 +1,3 @@
+source_md5="bd6aa2ae01de20ed64b6bfb4c4314b3b"
+dest_md5="b7f658bc0a42cf383d5e3ad59eef8387"
+
diff --git a/.import/islandscene.glb-c7a4bae1e63bc2b24856f9e94484bba1.scn b/.import/islandscene.glb-c7a4bae1e63bc2b24856f9e94484bba1.scn
new file mode 100644
index 0000000..a68e04e
--- /dev/null
+++ b/.import/islandscene.glb-c7a4bae1e63bc2b24856f9e94484bba1.scn
Binary files differ
diff --git a/.import/laetine.obj-e2f2547cb01c5b6ffec4bdf5b2a3aec9.md5 b/.import/laetine.obj-e2f2547cb01c5b6ffec4bdf5b2a3aec9.md5
new file mode 100644
index 0000000..8121d97
--- /dev/null
+++ b/.import/laetine.obj-e2f2547cb01c5b6ffec4bdf5b2a3aec9.md5
@@ -0,0 +1,3 @@
+source_md5="ecdafb3104ec178e8d09844addd9b891"
+dest_md5="69b9074ed954753b785294e1de1adf8a"
+
diff --git a/.import/laetine.obj-e2f2547cb01c5b6ffec4bdf5b2a3aec9.mesh b/.import/laetine.obj-e2f2547cb01c5b6ffec4bdf5b2a3aec9.mesh
new file mode 100644
index 0000000..3c53cc6
--- /dev/null
+++ b/.import/laetine.obj-e2f2547cb01c5b6ffec4bdf5b2a3aec9.mesh
Binary files differ
diff --git a/.import/laetine_mask.obj-1053f82ebca550b3c863dd727c5a57c1.md5 b/.import/laetine_mask.obj-1053f82ebca550b3c863dd727c5a57c1.md5
new file mode 100644
index 0000000..4f8564e
--- /dev/null
+++ b/.import/laetine_mask.obj-1053f82ebca550b3c863dd727c5a57c1.md5
@@ -0,0 +1,3 @@
+source_md5="0992307b78088563db23ab353919900f"
+dest_md5="514b4efe5ab2e925fcdadc7caba57f41"
+
diff --git a/.import/laetine_mask.obj-1053f82ebca550b3c863dd727c5a57c1.mesh b/.import/laetine_mask.obj-1053f82ebca550b3c863dd727c5a57c1.mesh
new file mode 100644
index 0000000..c2634c7
--- /dev/null
+++ b/.import/laetine_mask.obj-1053f82ebca550b3c863dd727c5a57c1.mesh
Binary files differ
diff --git a/.import/planks.jpg-70c48f89a7e1a9a4ea44b69cc9fc7c6f.etc2.stex b/.import/planks.jpg-70c48f89a7e1a9a4ea44b69cc9fc7c6f.etc2.stex
new file mode 100644
index 0000000..4d1c275
--- /dev/null
+++ b/.import/planks.jpg-70c48f89a7e1a9a4ea44b69cc9fc7c6f.etc2.stex
Binary files differ
diff --git a/.import/planks.jpg-70c48f89a7e1a9a4ea44b69cc9fc7c6f.md5 b/.import/planks.jpg-70c48f89a7e1a9a4ea44b69cc9fc7c6f.md5
new file mode 100644
index 0000000..6d41725
--- /dev/null
+++ b/.import/planks.jpg-70c48f89a7e1a9a4ea44b69cc9fc7c6f.md5
@@ -0,0 +1,3 @@
+source_md5="818adfeb1c108335fd4925371bfd77b5"
+dest_md5="8c06ea9a86d993df73698e78fd50bcc9"
+
diff --git a/.import/planks.jpg-70c48f89a7e1a9a4ea44b69cc9fc7c6f.s3tc.stex b/.import/planks.jpg-70c48f89a7e1a9a4ea44b69cc9fc7c6f.s3tc.stex
new file mode 100644
index 0000000..7ed5451
--- /dev/null
+++ b/.import/planks.jpg-70c48f89a7e1a9a4ea44b69cc9fc7c6f.s3tc.stex
Binary files differ
diff --git a/.import/rocket.glb-c98c6cf65b7c3b7b3f9311f8a77cc707.md5 b/.import/rocket.glb-c98c6cf65b7c3b7b3f9311f8a77cc707.md5
new file mode 100644
index 0000000..0d6f8f7
--- /dev/null
+++ b/.import/rocket.glb-c98c6cf65b7c3b7b3f9311f8a77cc707.md5
@@ -0,0 +1,3 @@
+source_md5="ef6285648fe6d2621d1080ee7f9d6ac1"
+dest_md5="066121e4ae885632cec12f67a260bdd8"
+
diff --git a/.import/rocket.glb-c98c6cf65b7c3b7b3f9311f8a77cc707.scn b/.import/rocket.glb-c98c6cf65b7c3b7b3f9311f8a77cc707.scn
new file mode 100644
index 0000000..7810dca
--- /dev/null
+++ b/.import/rocket.glb-c98c6cf65b7c3b7b3f9311f8a77cc707.scn
Binary files differ
diff --git a/.import/rockettexture.png-57b83943361359546526cd89a61c089b.md5 b/.import/rockettexture.png-57b83943361359546526cd89a61c089b.md5
new file mode 100644
index 0000000..3e84543
--- /dev/null
+++ b/.import/rockettexture.png-57b83943361359546526cd89a61c089b.md5
@@ -0,0 +1,3 @@
+source_md5="863ce86201cca1bfed40897db9264e8a"
+dest_md5="8412f673351c805b56ecf3c92a29e8be"
+
diff --git a/.import/rockettexture.png-57b83943361359546526cd89a61c089b.stex b/.import/rockettexture.png-57b83943361359546526cd89a61c089b.stex
new file mode 100644
index 0000000..9f7acad
--- /dev/null
+++ b/.import/rockettexture.png-57b83943361359546526cd89a61c089b.stex
Binary files differ
diff --git a/.import/shockwave.png-011356472f7286f4f283e130fc6d60d0.md5 b/.import/shockwave.png-011356472f7286f4f283e130fc6d60d0.md5
new file mode 100644
index 0000000..f077619
--- /dev/null
+++ b/.import/shockwave.png-011356472f7286f4f283e130fc6d60d0.md5
@@ -0,0 +1,3 @@
+source_md5="483a12a3182fde63f28b8d2a395b6d9f"
+dest_md5="a7c9f0f8476f4ffa55846c26fffc75a6"
+
diff --git a/.import/shockwave.png-011356472f7286f4f283e130fc6d60d0.stex b/.import/shockwave.png-011356472f7286f4f283e130fc6d60d0.stex
new file mode 100644
index 0000000..a8179a4
--- /dev/null
+++ b/.import/shockwave.png-011356472f7286f4f283e130fc6d60d0.stex
Binary files differ
diff --git a/.import/smoke.png-ca92037af54291e7c4ac41b03252fb32.md5 b/.import/smoke.png-ca92037af54291e7c4ac41b03252fb32.md5
new file mode 100644
index 0000000..35cb4f1
--- /dev/null
+++ b/.import/smoke.png-ca92037af54291e7c4ac41b03252fb32.md5
@@ -0,0 +1,3 @@
+source_md5="f8663c0e4217552c944cc016b0d6dc0f"
+dest_md5="98f4d18658a67ae4f638c59120bc472d"
+
diff --git a/.import/smoke.png-ca92037af54291e7c4ac41b03252fb32.stex b/.import/smoke.png-ca92037af54291e7c4ac41b03252fb32.stex
new file mode 100644
index 0000000..9d7d3ad
--- /dev/null
+++ b/.import/smoke.png-ca92037af54291e7c4ac41b03252fb32.stex
Binary files differ
diff --git a/icon.png b/icon.png
index c98fbb6..dbd0c79 100644
--- a/icon.png
+++ b/icon.png
Binary files differ
diff --git a/scenes/ClientUI.tscn b/scenes/ClientUI.tscn
index 0cd6b42..50b0a77 100644
--- a/scenes/ClientUI.tscn
+++ b/scenes/ClientUI.tscn
@@ -42,3 +42,4 @@ margin_bottom = 271.0
text = "Host Local Game"
[connection signal="pressed" from="ConnectButton" to="." method="_connect_btn"]
+[connection signal="pressed" from="LocalButton" to="." method="_run_local_server"]
diff --git a/scenes/ballistics/Rocket.gd b/scenes/ballistics/Rocket.gd
index 56438a2..d21b9f6 100644
--- a/scenes/ballistics/Rocket.gd
+++ b/scenes/ballistics/Rocket.gd
@@ -1,9 +1,7 @@
-extends RigidBody
+extends "res://scripts/ballistics/NetworkedProjectile.gd"
onready var world = get_tree().get_root().find_node("GAMEWORLD", true, false)
-var shooter = "WORLD"
-
export var lifetime : float = 2.0
export var strength : int = 80
@@ -16,11 +14,7 @@ func _ready():
func get_init_info():
return {"linear_velocity" : linear_velocity, "angular_velocity" : angular_velocity, "life" : life, "shooter" : shooter}
-func mp_init(init_info):
- for variable in init_info.keys():
- set(variable, init_info[variable])
-
-remotesync func update_phys_transform(t, lv, av):
+remote func update_phys_transform(t, lv, av):
transform = t
linear_velocity = lv
angular_velocity = av
@@ -33,10 +27,6 @@ func _physics_process(delta):
explode()
$RocketTrail.emitting = false
-func _integrate_forces(state):
- if is_network_master():
- rpc("update_phys_transform", transform, linear_velocity, angular_velocity)
-
func explode():
if cannot_explode:
return
@@ -53,10 +43,11 @@ func explode():
for body in $BlastArea.get_overlapping_bodies():
- if body.has_method("damage") and is_network_master():
+ if body.has_method("damage") and body.is_network_master():
body.rpc("damage", 50, "explosive", shooter, "using 'rocket'")
- body.apply_central_impulse((1500*(global_transform.origin - body.global_transform.origin).normalized()))
- body.rpc("apply_central_impulse", (1500*(global_transform.origin - body.global_transform.origin).normalized()))
+ print((5000*(global_transform.origin - body.global_transform.origin).normalized()))
+ body.apply_central_impulse((5000*(global_transform.origin - body.global_transform.origin).normalized()))
+ body.rpc("apply_central_impulse", (5000*(global_transform.origin - body.global_transform.origin).normalized()))
$AnimationPlayer.play("explode")
diff --git a/scripts/ClientUI.gd b/scripts/ClientUI.gd
index 6a3eb41..32e7269 100644
--- a/scripts/ClientUI.gd
+++ b/scripts/ClientUI.gd
@@ -2,26 +2,53 @@ extends Node2D
var client : NetworkedMultiplayerENet
var world
+var local_server_tree = null
+var is_local = false
func _ready():
world = preload("res://scenes/GameBase.tscn").instance()
- get_tree().connect("network_peer_connected", self, "_player_connected")
- get_tree().connect("network_peer_disconnected", self, "_player_disconnected")
+ #get_tree().connect("network_peer_connected", self, "_player_connected")
+ #get_tree().connect("network_peer_disconnected", self, "_player_disconnected")
get_tree().connect("connected_to_server", self, "_connection_successful")
get_tree().connect("connection_failed", self, "_connected_fail")
- get_tree().connect("server_disconnected", world, "_server_disconnected")
+ get_tree().connect("server_disconnected", world, "client_disconnect")
+ set_process(false)
+ set_physics_process(false)
func _connect_btn():
client = NetworkedMultiplayerENet.new()
client.create_client($IP.text, $Port.value)
get_tree().set_network_peer(client)
-
func _connection_successful():
get_tree().get_root().add_child(world)
world.client = client
world.client_id = get_tree().get_network_unique_id()
world.player_name = $Name.text
+ if is_local:
+ world.is_local = true
+ world.local_server_tree = local_server_tree
print("Connected.")
queue_free()
+
+func _run_local_server():
+ local_server_tree = SceneTree.new()
+ local_server_tree.init()
+ local_server_tree.get_root().set_update_mode(Viewport.UPDATE_DISABLED)
+ var server_script = preload("res://scenes/Server.tscn").instance()
+
+ #CHANGE LEVEL HERE
+ server_script.start_server("Local Server", "Local Singleplayer Server", 3, "res://maps/Main.tscn", "127.0.0.1", 25565, local_server_tree, null, "print")
+ set_process(true)
+ set_physics_process(true)
+ is_local = true
+ client = NetworkedMultiplayerENet.new()
+ client.create_client("127.0.0.1", 25565)
+ get_tree().set_network_peer(client)
+
+func _process(delta):
+ local_server_tree.idle(delta)
+
+func _physics_process(delta):
+ local_server_tree.iteration(delta)
diff --git a/scripts/GameBase.gd b/scripts/GameBase.gd
index ee26531..019aa14 100644
--- a/scripts/GameBase.gd
+++ b/scripts/GameBase.gd
@@ -2,6 +2,9 @@ extends Spatial
var client
var client_id
+var is_local = false
+var local_server_tree = null
+
var player_name : String
var player_team : String
var player_char = null
@@ -12,6 +15,14 @@ var is_chatting = false
var winddir = Vector3(1,0,0)
+func _process(delta):
+ if is_local:
+ local_server_tree.idle(delta)
+
+func _physics_process(delta):
+ if is_local:
+ local_server_tree.iteration(delta)
+
remote func set_up_server_info(info):
$HUD/ServerJoinMenu/MOTD.text = info["MOTD"]
$HUD/ServerJoinMenu/ServerName.text = info["server_name"]
diff --git a/scripts/Server.gd b/scripts/Server.gd
index bd24911..531f30e 100644
--- a/scripts/Server.gd
+++ b/scripts/Server.gd
@@ -12,13 +12,16 @@ var output
var output_func : String
func print_line(line):
+ if output == null:
+ print("SERVER: " + line)
+ return
output.call(output_func, line)
func _ready():
get_tree().connect("network_peer_connected", self, "_client_connect")
get_tree().connect("network_peer_disconnected", self, "_client_disconnect")
-func start_server(_server_name: String, _motd: String, max_players: int, map_path: String, ip: String, port: int, root, output_obj, output_f):
+func start_server(_server_name: String, _motd: String, max_players: int, map_path: String, ip: String, port: int, tree, output_obj, output_f):
output = output_obj
output_func = output_f
server_name = _server_name
@@ -33,12 +36,13 @@ func start_server(_server_name: String, _motd: String, max_players: int, map_pat
return
world.add_child(self)
- root.add_child(world)
+ tree.get_root().add_child(world)
+
world.client_id = 1
server_enet = NetworkedMultiplayerENet.new()
server_enet.create_server(port, max_players)
- get_tree().set_network_peer(server_enet)
+ tree.set_network_peer(server_enet)
print_line("Server started successfully.")
@@ -96,7 +100,6 @@ func _client_request_change_character(arguments):
old.rpc("set_owner", 1)
func _character_death(arguments):
- print(arguments)
var victim_player = connected_players[arguments["victim_mp_id"]][0] if arguments["victim_mp_id"] != 1 else ""
print_line(arguments["victim"] + " ("+victim_player+") killed by " + arguments["killer"] + " " + arguments["extra"] + ".")
world.rpc("game_chat_msg", arguments["victim"] + " ("+victim_player+") killed by " + arguments["killer"] + " " + arguments["extra"] + ".")
diff --git a/scripts/ServerUI.gd b/scripts/ServerUI.gd
index 1acf9eb..8daf086 100644
--- a/scripts/ServerUI.gd
+++ b/scripts/ServerUI.gd
@@ -25,7 +25,7 @@ func start_server():
server = preload("res://scenes/Server.tscn").instance()
$CmdPrompt.server_ref = server
- server.start_server($ServerName.text, $MOTD.text, $PlayerCount.value, $MapPath.text, $IP.text, $Port.value, get_tree().get_root(), console, "add_line")
+ server.start_server($ServerName.text, $MOTD.text, $PlayerCount.value, $MapPath.text, $IP.text, $Port.value, get_tree(), console, "add_line")
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
hide_init_fields()
diff --git a/scripts/World.gd b/scripts/World.gd
index dd5b177..aaad39e 100644
--- a/scripts/World.gd
+++ b/scripts/World.gd
@@ -49,3 +49,4 @@ func draw_path(path_array):
for x in path_array:
im.add_vertex(x)
im.end()
+
diff --git a/scripts/ballistics/Cannonball.gd b/scripts/ballistics/Cannonball.gd
index e59ca6c..15f35a3 100644
--- a/scripts/ballistics/Cannonball.gd
+++ b/scripts/ballistics/Cannonball.gd
@@ -1,11 +1,9 @@
-extends RigidBody
+extends "res://scripts/ballistics/NetworkedProjectile.gd"
export var drag_constant = 0.3
var damage_exceptions = []
var oldvel
-var shooter = "WORLD"
-
func _physics_process(_delta):
oldvel = linear_velocity
add_force(-1*linear_velocity*drag_constant, Vector3.ZERO)
@@ -13,12 +11,7 @@ func _physics_process(_delta):
func get_init_info():
return {"linear_velocity" : linear_velocity, "angular_velocity" : angular_velocity, "oldvel" : oldvel, "shooter" : shooter}
-func mp_init(init_info):
- for variable in init_info.keys():
- set(variable, init_info[variable])
-
-
func _on_collision(body):
if linear_velocity.length() > 20 and !damage_exceptions.has(body) and body.has_method("damage"):
- body.damage(oldvel.length(), "blunt")
+ body.rpc("damage", oldvel.length(), "blunt", shooter, "using 'cannon'")
damage_exceptions.append(body)
diff --git a/scripts/ballistics/NetworkedProjectile.gd b/scripts/ballistics/NetworkedProjectile.gd
new file mode 100644
index 0000000..0626e9f
--- /dev/null
+++ b/scripts/ballistics/NetworkedProjectile.gd
@@ -0,0 +1,22 @@
+extends RigidBody
+
+
+var shooter = "WORLD"
+
+
+# Called when the node enters the scene tree for the first time.
+func _ready():
+ pass # Replace with function body.
+
+func mp_init(init_info):
+ for variable in init_info.keys():
+ set(variable, init_info[variable])
+
+remote func update_phys_transform(t, lv, av):
+ transform = t
+ linear_velocity = lv
+ angular_velocity = av
+
+func _integrate_forces(state):
+ if is_network_master():
+ rpc("update_phys_transform", transform, linear_velocity, angular_velocity)
diff --git a/scripts/machines/Cannon.gd b/scripts/machines/Cannon.gd
index d7c9a18..fcd842b 100644
--- a/scripts/machines/Cannon.gd
+++ b/scripts/machines/Cannon.gd
@@ -21,6 +21,11 @@ export var max_yaw = 15
onready var muzzle = get_node("YawJoint/PitchJoint/Muzzle")
+remote func update_phys_transform(t, lv, av):
+ transform = t
+ linear_velocity = lv
+ angular_velocity = av
+
func get_init_info():
return {"pitch_rot" : $YawJoint/PitchJoint.rotation_degrees.z, "turn_rot" : $YawJoint.rotation_degrees.y, "in_use" : in_use}
@@ -65,6 +70,8 @@ func _physics_process(delta):
$YawJoint/PitchJoint.rotation_degrees.z = max_pitch
elif $YawJoint/PitchJoint.rotation_degrees.z < min_pitch:
$YawJoint/PitchJoint.rotation_degrees.z = min_pitch
+ if is_network_master() and mode == MODE_STATIC:
+ rpc("update_phys_transform", transform, linear_velocity, angular_velocity)
func direction_input(fwd,bwd,left,right,_left,_right):
pitch = fwd - bwd
@@ -73,6 +80,9 @@ func direction_input(fwd,bwd,left,right,_left,_right):
func attack1():
if cooldown > 0:
return
+ rpc("fire")
+
+remotesync func fire():
$YawJoint/PitchJoint/Muzzle/explosion_sound.play()
var expl = preload("res://particles/p_Explosion.tscn").instance()
var cball = preload("res://scenes/ballistics/Cannonball.tscn").instance()