diff --git a/assets/fonts/Kenney Future Narrow.ttf b/assets/fonts/Kenney Future Narrow.ttf new file mode 100644 index 0000000..42f2c33 Binary files /dev/null and b/assets/fonts/Kenney Future Narrow.ttf differ diff --git a/assets/icons/DPAD.png b/assets/icons/DPAD.png new file mode 100644 index 0000000..3431e66 Binary files /dev/null and b/assets/icons/DPAD.png differ diff --git a/assets/icons/DPAD_all.png b/assets/icons/DPAD_all.png new file mode 100644 index 0000000..1ca484b Binary files /dev/null and b/assets/icons/DPAD_all.png differ diff --git a/assets/icons/DPAD_down.png b/assets/icons/DPAD_down.png new file mode 100644 index 0000000..a4d5c1e Binary files /dev/null and b/assets/icons/DPAD_down.png differ diff --git a/assets/icons/DPAD_left.png b/assets/icons/DPAD_left.png new file mode 100644 index 0000000..4811cfd Binary files /dev/null and b/assets/icons/DPAD_left.png differ diff --git a/assets/icons/DPAD_right.png b/assets/icons/DPAD_right.png new file mode 100644 index 0000000..b531bef Binary files /dev/null and b/assets/icons/DPAD_right.png differ diff --git a/assets/icons/DPAD_up.png b/assets/icons/DPAD_up.png new file mode 100644 index 0000000..696ac1e Binary files /dev/null and b/assets/icons/DPAD_up.png differ diff --git a/assets/icons/arrowDown.png b/assets/icons/arrowDown.png new file mode 100644 index 0000000..b2ee82d Binary files /dev/null and b/assets/icons/arrowDown.png differ diff --git a/assets/icons/arrowLeft.png b/assets/icons/arrowLeft.png new file mode 100644 index 0000000..4915727 Binary files /dev/null and b/assets/icons/arrowLeft.png differ diff --git a/assets/icons/arrowRight.png b/assets/icons/arrowRight.png new file mode 100644 index 0000000..13ec84d Binary files /dev/null and b/assets/icons/arrowRight.png differ diff --git a/assets/icons/arrowUp.png b/assets/icons/arrowUp.png new file mode 100644 index 0000000..3fd9b93 Binary files /dev/null and b/assets/icons/arrowUp.png differ diff --git a/assets/icons/audioOff.png b/assets/icons/audioOff.png new file mode 100644 index 0000000..98aae6a Binary files /dev/null and b/assets/icons/audioOff.png differ diff --git a/assets/icons/audioOn.png b/assets/icons/audioOn.png new file mode 100644 index 0000000..d81beb7 Binary files /dev/null and b/assets/icons/audioOn.png differ diff --git a/assets/icons/backward.png b/assets/icons/backward.png new file mode 100644 index 0000000..25a90af Binary files /dev/null and b/assets/icons/backward.png differ diff --git a/assets/icons/barsHorizontal.png b/assets/icons/barsHorizontal.png new file mode 100644 index 0000000..6655d7a Binary files /dev/null and b/assets/icons/barsHorizontal.png differ diff --git a/assets/icons/barsVertical.png b/assets/icons/barsVertical.png new file mode 100644 index 0000000..5615916 Binary files /dev/null and b/assets/icons/barsVertical.png differ diff --git a/assets/icons/basket.png b/assets/icons/basket.png new file mode 100644 index 0000000..3750941 Binary files /dev/null and b/assets/icons/basket.png differ diff --git a/assets/icons/button1.png b/assets/icons/button1.png new file mode 100644 index 0000000..2527344 Binary files /dev/null and b/assets/icons/button1.png differ diff --git a/assets/icons/button2.png b/assets/icons/button2.png new file mode 100644 index 0000000..05e7fba Binary files /dev/null and b/assets/icons/button2.png differ diff --git a/assets/icons/button3.png b/assets/icons/button3.png new file mode 100644 index 0000000..89c7059 Binary files /dev/null and b/assets/icons/button3.png differ diff --git a/assets/icons/buttonA.png b/assets/icons/buttonA.png new file mode 100644 index 0000000..acf6ebb Binary files /dev/null and b/assets/icons/buttonA.png differ diff --git a/assets/icons/buttonB.png b/assets/icons/buttonB.png new file mode 100644 index 0000000..b02282d Binary files /dev/null and b/assets/icons/buttonB.png differ diff --git a/assets/icons/buttonL.png b/assets/icons/buttonL.png new file mode 100644 index 0000000..91b1a7e Binary files /dev/null and b/assets/icons/buttonL.png differ diff --git a/assets/icons/buttonL1.png b/assets/icons/buttonL1.png new file mode 100644 index 0000000..e4e1b03 Binary files /dev/null and b/assets/icons/buttonL1.png differ diff --git a/assets/icons/buttonL2.png b/assets/icons/buttonL2.png new file mode 100644 index 0000000..100c963 Binary files /dev/null and b/assets/icons/buttonL2.png differ diff --git a/assets/icons/buttonR.png b/assets/icons/buttonR.png new file mode 100644 index 0000000..35f6fb4 Binary files /dev/null and b/assets/icons/buttonR.png differ diff --git a/assets/icons/buttonR1.png b/assets/icons/buttonR1.png new file mode 100644 index 0000000..b158f31 Binary files /dev/null and b/assets/icons/buttonR1.png differ diff --git a/assets/icons/buttonR2.png b/assets/icons/buttonR2.png new file mode 100644 index 0000000..cf13e69 Binary files /dev/null and b/assets/icons/buttonR2.png differ diff --git a/assets/icons/buttonSelect.png b/assets/icons/buttonSelect.png new file mode 100644 index 0000000..9fde1eb Binary files /dev/null and b/assets/icons/buttonSelect.png differ diff --git a/assets/icons/buttonStart.png b/assets/icons/buttonStart.png new file mode 100644 index 0000000..39d268e Binary files /dev/null and b/assets/icons/buttonStart.png differ diff --git a/assets/icons/buttonX.png b/assets/icons/buttonX.png new file mode 100644 index 0000000..de4b2c7 Binary files /dev/null and b/assets/icons/buttonX.png differ diff --git a/assets/icons/buttonY.png b/assets/icons/buttonY.png new file mode 100644 index 0000000..fa66f3a Binary files /dev/null and b/assets/icons/buttonY.png differ diff --git a/assets/icons/car.png b/assets/icons/car.png new file mode 100644 index 0000000..8a5e278 Binary files /dev/null and b/assets/icons/car.png differ diff --git a/assets/icons/cart.png b/assets/icons/cart.png new file mode 100644 index 0000000..c3e1d2a Binary files /dev/null and b/assets/icons/cart.png differ diff --git a/assets/icons/checkmark.png b/assets/icons/checkmark.png new file mode 100644 index 0000000..34ec438 Binary files /dev/null and b/assets/icons/checkmark.png differ diff --git a/assets/icons/cloud.png b/assets/icons/cloud.png new file mode 100644 index 0000000..3e65406 Binary files /dev/null and b/assets/icons/cloud.png differ diff --git a/assets/icons/cloudUpload.png b/assets/icons/cloudUpload.png new file mode 100644 index 0000000..22de782 Binary files /dev/null and b/assets/icons/cloudUpload.png differ diff --git a/assets/icons/coin.png b/assets/icons/coin.png new file mode 100644 index 0000000..43b6410 Binary files /dev/null and b/assets/icons/coin.png differ diff --git a/assets/icons/contrast.png b/assets/icons/contrast.png new file mode 100644 index 0000000..344ff33 Binary files /dev/null and b/assets/icons/contrast.png differ diff --git a/assets/icons/controllerTilt.png b/assets/icons/controllerTilt.png new file mode 100644 index 0000000..478e375 Binary files /dev/null and b/assets/icons/controllerTilt.png differ diff --git a/assets/icons/controllerTilt_left.png b/assets/icons/controllerTilt_left.png new file mode 100644 index 0000000..e4c5d6f Binary files /dev/null and b/assets/icons/controllerTilt_left.png differ diff --git a/assets/icons/controllerTilt_right.png b/assets/icons/controllerTilt_right.png new file mode 100644 index 0000000..99d6de8 Binary files /dev/null and b/assets/icons/controllerTilt_right.png differ diff --git a/assets/icons/cpu.png b/assets/icons/cpu.png new file mode 100644 index 0000000..e936a66 Binary files /dev/null and b/assets/icons/cpu.png differ diff --git a/assets/icons/cross.png b/assets/icons/cross.png new file mode 100644 index 0000000..3ace8b9 Binary files /dev/null and b/assets/icons/cross.png differ diff --git a/assets/icons/cursor.png b/assets/icons/cursor.png new file mode 100644 index 0000000..3df828a Binary files /dev/null and b/assets/icons/cursor.png differ diff --git a/assets/icons/deviceTilt.png b/assets/icons/deviceTilt.png new file mode 100644 index 0000000..3284960 Binary files /dev/null and b/assets/icons/deviceTilt.png differ diff --git a/assets/icons/deviceTilt_left.png b/assets/icons/deviceTilt_left.png new file mode 100644 index 0000000..7bc38f1 Binary files /dev/null and b/assets/icons/deviceTilt_left.png differ diff --git a/assets/icons/deviceTilt_right.png b/assets/icons/deviceTilt_right.png new file mode 100644 index 0000000..f026fb6 Binary files /dev/null and b/assets/icons/deviceTilt_right.png differ diff --git a/assets/icons/diamond.png b/assets/icons/diamond.png new file mode 100644 index 0000000..fddf31a Binary files /dev/null and b/assets/icons/diamond.png differ diff --git a/assets/icons/door.png b/assets/icons/door.png new file mode 100644 index 0000000..1e53791 Binary files /dev/null and b/assets/icons/door.png differ diff --git a/assets/icons/down.png b/assets/icons/down.png new file mode 100644 index 0000000..4dcdf4d Binary files /dev/null and b/assets/icons/down.png differ diff --git a/assets/icons/downLeft.png b/assets/icons/downLeft.png new file mode 100644 index 0000000..6225b93 Binary files /dev/null and b/assets/icons/downLeft.png differ diff --git a/assets/icons/downRight.png b/assets/icons/downRight.png new file mode 100644 index 0000000..0ce0b63 Binary files /dev/null and b/assets/icons/downRight.png differ diff --git a/assets/icons/download.png b/assets/icons/download.png new file mode 100644 index 0000000..336d8ff Binary files /dev/null and b/assets/icons/download.png differ diff --git a/assets/icons/exclamation.png b/assets/icons/exclamation.png new file mode 100644 index 0000000..98448de Binary files /dev/null and b/assets/icons/exclamation.png differ diff --git a/assets/icons/exitLeft.png b/assets/icons/exitLeft.png new file mode 100644 index 0000000..72199d2 Binary files /dev/null and b/assets/icons/exitLeft.png differ diff --git a/assets/icons/exitRight.png b/assets/icons/exitRight.png new file mode 100644 index 0000000..d35c1a5 Binary files /dev/null and b/assets/icons/exitRight.png differ diff --git a/assets/icons/export.png b/assets/icons/export.png new file mode 100644 index 0000000..ffb2b97 Binary files /dev/null and b/assets/icons/export.png differ diff --git a/assets/icons/fastForward.png b/assets/icons/fastForward.png new file mode 100644 index 0000000..91f4b49 Binary files /dev/null and b/assets/icons/fastForward.png differ diff --git a/assets/icons/fightFist.png b/assets/icons/fightFist.png new file mode 100644 index 0000000..3c30d82 Binary files /dev/null and b/assets/icons/fightFist.png differ diff --git a/assets/icons/fightFist_circle.png b/assets/icons/fightFist_circle.png new file mode 100644 index 0000000..f21c879 Binary files /dev/null and b/assets/icons/fightFist_circle.png differ diff --git a/assets/icons/fightJ.png b/assets/icons/fightJ.png new file mode 100644 index 0000000..7a8f523 Binary files /dev/null and b/assets/icons/fightJ.png differ diff --git a/assets/icons/fightJoy_00.png b/assets/icons/fightJoy_00.png new file mode 100644 index 0000000..c4050fb Binary files /dev/null and b/assets/icons/fightJoy_00.png differ diff --git a/assets/icons/fightJoy_01.png b/assets/icons/fightJoy_01.png new file mode 100644 index 0000000..503a7a0 Binary files /dev/null and b/assets/icons/fightJoy_01.png differ diff --git a/assets/icons/fightJoy_02.png b/assets/icons/fightJoy_02.png new file mode 100644 index 0000000..fab840c Binary files /dev/null and b/assets/icons/fightJoy_02.png differ diff --git a/assets/icons/fightJoy_03.png b/assets/icons/fightJoy_03.png new file mode 100644 index 0000000..bc88319 Binary files /dev/null and b/assets/icons/fightJoy_03.png differ diff --git a/assets/icons/fightJoy_04.png b/assets/icons/fightJoy_04.png new file mode 100644 index 0000000..56657d7 Binary files /dev/null and b/assets/icons/fightJoy_04.png differ diff --git a/assets/icons/fightJoy_05.png b/assets/icons/fightJoy_05.png new file mode 100644 index 0000000..911f114 Binary files /dev/null and b/assets/icons/fightJoy_05.png differ diff --git a/assets/icons/fightJoy_06.png b/assets/icons/fightJoy_06.png new file mode 100644 index 0000000..47a6af6 Binary files /dev/null and b/assets/icons/fightJoy_06.png differ diff --git a/assets/icons/fightJoy_07.png b/assets/icons/fightJoy_07.png new file mode 100644 index 0000000..661e653 Binary files /dev/null and b/assets/icons/fightJoy_07.png differ diff --git a/assets/icons/fightJoy_08.png b/assets/icons/fightJoy_08.png new file mode 100644 index 0000000..31fbb8a Binary files /dev/null and b/assets/icons/fightJoy_08.png differ diff --git a/assets/icons/fightJoy_09.png b/assets/icons/fightJoy_09.png new file mode 100644 index 0000000..7c42ed8 Binary files /dev/null and b/assets/icons/fightJoy_09.png differ diff --git a/assets/icons/fightJoy_10.png b/assets/icons/fightJoy_10.png new file mode 100644 index 0000000..79dc040 Binary files /dev/null and b/assets/icons/fightJoy_10.png differ diff --git a/assets/icons/fightJoy_11.png b/assets/icons/fightJoy_11.png new file mode 100644 index 0000000..0dd8c47 Binary files /dev/null and b/assets/icons/fightJoy_11.png differ diff --git a/assets/icons/fightJoy_12.png b/assets/icons/fightJoy_12.png new file mode 100644 index 0000000..6a8d530 Binary files /dev/null and b/assets/icons/fightJoy_12.png differ diff --git a/assets/icons/fightJoy_13.png b/assets/icons/fightJoy_13.png new file mode 100644 index 0000000..768e0fd Binary files /dev/null and b/assets/icons/fightJoy_13.png differ diff --git a/assets/icons/fightJoy_14.png b/assets/icons/fightJoy_14.png new file mode 100644 index 0000000..a8cb031 Binary files /dev/null and b/assets/icons/fightJoy_14.png differ diff --git a/assets/icons/fightJoy_15.png b/assets/icons/fightJoy_15.png new file mode 100644 index 0000000..7eebb49 Binary files /dev/null and b/assets/icons/fightJoy_15.png differ diff --git a/assets/icons/fightJoy_16.png b/assets/icons/fightJoy_16.png new file mode 100644 index 0000000..bfe40f9 Binary files /dev/null and b/assets/icons/fightJoy_16.png differ diff --git a/assets/icons/fightJoy_17.png b/assets/icons/fightJoy_17.png new file mode 100644 index 0000000..e2102eb Binary files /dev/null and b/assets/icons/fightJoy_17.png differ diff --git a/assets/icons/fightJoy_18.png b/assets/icons/fightJoy_18.png new file mode 100644 index 0000000..1e08fa7 Binary files /dev/null and b/assets/icons/fightJoy_18.png differ diff --git a/assets/icons/fightJoy_19.png b/assets/icons/fightJoy_19.png new file mode 100644 index 0000000..0be5e10 Binary files /dev/null and b/assets/icons/fightJoy_19.png differ diff --git a/assets/icons/fightJoy_20.png b/assets/icons/fightJoy_20.png new file mode 100644 index 0000000..6702818 Binary files /dev/null and b/assets/icons/fightJoy_20.png differ diff --git a/assets/icons/fightJoy_21.png b/assets/icons/fightJoy_21.png new file mode 100644 index 0000000..9b5f6a2 Binary files /dev/null and b/assets/icons/fightJoy_21.png differ diff --git a/assets/icons/fightJoy_22.png b/assets/icons/fightJoy_22.png new file mode 100644 index 0000000..256a5f1 Binary files /dev/null and b/assets/icons/fightJoy_22.png differ diff --git a/assets/icons/fightJoy_23.png b/assets/icons/fightJoy_23.png new file mode 100644 index 0000000..7d76d87 Binary files /dev/null and b/assets/icons/fightJoy_23.png differ diff --git a/assets/icons/fightJoy_24.png b/assets/icons/fightJoy_24.png new file mode 100644 index 0000000..6b9b8b5 Binary files /dev/null and b/assets/icons/fightJoy_24.png differ diff --git a/assets/icons/fightJoy_25.png b/assets/icons/fightJoy_25.png new file mode 100644 index 0000000..0c3ca8e Binary files /dev/null and b/assets/icons/fightJoy_25.png differ diff --git a/assets/icons/fightJoy_26.png b/assets/icons/fightJoy_26.png new file mode 100644 index 0000000..4c0aec3 Binary files /dev/null and b/assets/icons/fightJoy_26.png differ diff --git a/assets/icons/fightJoy_27.png b/assets/icons/fightJoy_27.png new file mode 100644 index 0000000..f5991e9 Binary files /dev/null and b/assets/icons/fightJoy_27.png differ diff --git a/assets/icons/fightJoy_28.png b/assets/icons/fightJoy_28.png new file mode 100644 index 0000000..9c18d3f Binary files /dev/null and b/assets/icons/fightJoy_28.png differ diff --git a/assets/icons/fightJoy_29.png b/assets/icons/fightJoy_29.png new file mode 100644 index 0000000..9cd9b64 Binary files /dev/null and b/assets/icons/fightJoy_29.png differ diff --git a/assets/icons/fightJoy_30.png b/assets/icons/fightJoy_30.png new file mode 100644 index 0000000..542cfcf Binary files /dev/null and b/assets/icons/fightJoy_30.png differ diff --git a/assets/icons/fightJoy_31.png b/assets/icons/fightJoy_31.png new file mode 100644 index 0000000..0e73174 Binary files /dev/null and b/assets/icons/fightJoy_31.png differ diff --git a/assets/icons/figurine.png b/assets/icons/figurine.png new file mode 100644 index 0000000..61f26af Binary files /dev/null and b/assets/icons/figurine.png differ diff --git a/assets/icons/film.png b/assets/icons/film.png new file mode 100644 index 0000000..b6f8f2b Binary files /dev/null and b/assets/icons/film.png differ diff --git a/assets/icons/fistPlus.png b/assets/icons/fistPlus.png new file mode 100644 index 0000000..83cd710 Binary files /dev/null and b/assets/icons/fistPlus.png differ diff --git a/assets/icons/flag.png b/assets/icons/flag.png new file mode 100644 index 0000000..4e814b7 Binary files /dev/null and b/assets/icons/flag.png differ diff --git a/assets/icons/forward.png b/assets/icons/forward.png new file mode 100644 index 0000000..edf9f6f Binary files /dev/null and b/assets/icons/forward.png differ diff --git a/assets/icons/gamepad.png b/assets/icons/gamepad.png new file mode 100644 index 0000000..c290417 Binary files /dev/null and b/assets/icons/gamepad.png differ diff --git a/assets/icons/gamepad1.png b/assets/icons/gamepad1.png new file mode 100644 index 0000000..ede43b9 Binary files /dev/null and b/assets/icons/gamepad1.png differ diff --git a/assets/icons/gamepad2.png b/assets/icons/gamepad2.png new file mode 100644 index 0000000..72a2ea4 Binary files /dev/null and b/assets/icons/gamepad2.png differ diff --git a/assets/icons/gamepad3.png b/assets/icons/gamepad3.png new file mode 100644 index 0000000..577327f Binary files /dev/null and b/assets/icons/gamepad3.png differ diff --git a/assets/icons/gamepad4.png b/assets/icons/gamepad4.png new file mode 100644 index 0000000..0a0d483 Binary files /dev/null and b/assets/icons/gamepad4.png differ diff --git a/assets/icons/gear.png b/assets/icons/gear.png new file mode 100644 index 0000000..9663f90 Binary files /dev/null and b/assets/icons/gear.png differ diff --git a/assets/icons/home.png b/assets/icons/home.png new file mode 100644 index 0000000..81da18c Binary files /dev/null and b/assets/icons/home.png differ diff --git a/assets/icons/import.png b/assets/icons/import.png new file mode 100644 index 0000000..a38af7c Binary files /dev/null and b/assets/icons/import.png differ diff --git a/assets/icons/information.png b/assets/icons/information.png new file mode 100644 index 0000000..c5b42f6 Binary files /dev/null and b/assets/icons/information.png differ diff --git a/assets/icons/joystick.png b/assets/icons/joystick.png new file mode 100644 index 0000000..12e8ac0 Binary files /dev/null and b/assets/icons/joystick.png differ diff --git a/assets/icons/joystickL_side.png b/assets/icons/joystickL_side.png new file mode 100644 index 0000000..5a67d71 Binary files /dev/null and b/assets/icons/joystickL_side.png differ diff --git a/assets/icons/joystickL_top.png b/assets/icons/joystickL_top.png new file mode 100644 index 0000000..3fd8ee1 Binary files /dev/null and b/assets/icons/joystickL_top.png differ diff --git a/assets/icons/joystickLeft.png b/assets/icons/joystickLeft.png new file mode 100644 index 0000000..6d684ee Binary files /dev/null and b/assets/icons/joystickLeft.png differ diff --git a/assets/icons/joystickR_side.png b/assets/icons/joystickR_side.png new file mode 100644 index 0000000..16fc5e7 Binary files /dev/null and b/assets/icons/joystickR_side.png differ diff --git a/assets/icons/joystickR_top.png b/assets/icons/joystickR_top.png new file mode 100644 index 0000000..ab9a1d2 Binary files /dev/null and b/assets/icons/joystickR_top.png differ diff --git a/assets/icons/joystickRight.png b/assets/icons/joystickRight.png new file mode 100644 index 0000000..e594e5b Binary files /dev/null and b/assets/icons/joystickRight.png differ diff --git a/assets/icons/joystickUp.png b/assets/icons/joystickUp.png new file mode 100644 index 0000000..7854c0f Binary files /dev/null and b/assets/icons/joystickUp.png differ diff --git a/assets/icons/key.png b/assets/icons/key.png new file mode 100644 index 0000000..fd9bcea Binary files /dev/null and b/assets/icons/key.png differ diff --git a/assets/icons/keyLarge.png b/assets/icons/keyLarge.png new file mode 100644 index 0000000..51a3240 Binary files /dev/null and b/assets/icons/keyLarge.png differ diff --git a/assets/icons/keyLarge_3d.png b/assets/icons/keyLarge_3d.png new file mode 100644 index 0000000..01302e9 Binary files /dev/null and b/assets/icons/keyLarge_3d.png differ diff --git a/assets/icons/keySmall.png b/assets/icons/keySmall.png new file mode 100644 index 0000000..d8914d2 Binary files /dev/null and b/assets/icons/keySmall.png differ diff --git a/assets/icons/keySmall_3d.png b/assets/icons/keySmall_3d.png new file mode 100644 index 0000000..9c35a21 Binary files /dev/null and b/assets/icons/keySmall_3d.png differ diff --git a/assets/icons/larger.png b/assets/icons/larger.png new file mode 100644 index 0000000..4c9c073 Binary files /dev/null and b/assets/icons/larger.png differ diff --git a/assets/icons/leaderboardsComplex.png b/assets/icons/leaderboardsComplex.png new file mode 100644 index 0000000..4dd51ce Binary files /dev/null and b/assets/icons/leaderboardsComplex.png differ diff --git a/assets/icons/leaderboardsSimple.png b/assets/icons/leaderboardsSimple.png new file mode 100644 index 0000000..5c26caa Binary files /dev/null and b/assets/icons/leaderboardsSimple.png differ diff --git a/assets/icons/locked.png b/assets/icons/locked.png new file mode 100644 index 0000000..360e27c Binary files /dev/null and b/assets/icons/locked.png differ diff --git a/assets/icons/massiveMultiplayer.png b/assets/icons/massiveMultiplayer.png new file mode 100644 index 0000000..e4ba61f Binary files /dev/null and b/assets/icons/massiveMultiplayer.png differ diff --git a/assets/icons/medal1.png b/assets/icons/medal1.png new file mode 100644 index 0000000..2e64b20 Binary files /dev/null and b/assets/icons/medal1.png differ diff --git a/assets/icons/medal2.png b/assets/icons/medal2.png new file mode 100644 index 0000000..ea5f87f Binary files /dev/null and b/assets/icons/medal2.png differ diff --git a/assets/icons/menuGrid.png b/assets/icons/menuGrid.png new file mode 100644 index 0000000..ffc2ddc Binary files /dev/null and b/assets/icons/menuGrid.png differ diff --git a/assets/icons/menuList.png b/assets/icons/menuList.png new file mode 100644 index 0000000..eab989a Binary files /dev/null and b/assets/icons/menuList.png differ diff --git a/assets/icons/minus.png b/assets/icons/minus.png new file mode 100644 index 0000000..76e5d05 Binary files /dev/null and b/assets/icons/minus.png differ diff --git a/assets/icons/mouse.png b/assets/icons/mouse.png new file mode 100644 index 0000000..5e48338 Binary files /dev/null and b/assets/icons/mouse.png differ diff --git a/assets/icons/mouseLeft.png b/assets/icons/mouseLeft.png new file mode 100644 index 0000000..8334aa4 Binary files /dev/null and b/assets/icons/mouseLeft.png differ diff --git a/assets/icons/mouseMiddle.png b/assets/icons/mouseMiddle.png new file mode 100644 index 0000000..e136b2b Binary files /dev/null and b/assets/icons/mouseMiddle.png differ diff --git a/assets/icons/mouseRight.png b/assets/icons/mouseRight.png new file mode 100644 index 0000000..3e49139 Binary files /dev/null and b/assets/icons/mouseRight.png differ diff --git a/assets/icons/multiplayer.png b/assets/icons/multiplayer.png new file mode 100644 index 0000000..527785a Binary files /dev/null and b/assets/icons/multiplayer.png differ diff --git a/assets/icons/musicOff.png b/assets/icons/musicOff.png new file mode 100644 index 0000000..d7ae0d8 Binary files /dev/null and b/assets/icons/musicOff.png differ diff --git a/assets/icons/musicOn.png b/assets/icons/musicOn.png new file mode 100644 index 0000000..fc90e71 Binary files /dev/null and b/assets/icons/musicOn.png differ diff --git a/assets/icons/next.png b/assets/icons/next.png new file mode 100644 index 0000000..d84c94a Binary files /dev/null and b/assets/icons/next.png differ diff --git a/assets/icons/open.png b/assets/icons/open.png new file mode 100644 index 0000000..dcb0a20 Binary files /dev/null and b/assets/icons/open.png differ diff --git a/assets/icons/pause.png b/assets/icons/pause.png new file mode 100644 index 0000000..2fc9a9b Binary files /dev/null and b/assets/icons/pause.png differ diff --git a/assets/icons/phone.png b/assets/icons/phone.png new file mode 100644 index 0000000..56b7a46 Binary files /dev/null and b/assets/icons/phone.png differ diff --git a/assets/icons/plus.png b/assets/icons/plus.png new file mode 100644 index 0000000..4cce70c Binary files /dev/null and b/assets/icons/plus.png differ diff --git a/assets/icons/pointer.png b/assets/icons/pointer.png new file mode 100644 index 0000000..0076d53 Binary files /dev/null and b/assets/icons/pointer.png differ diff --git a/assets/icons/power.png b/assets/icons/power.png new file mode 100644 index 0000000..60f2d5f Binary files /dev/null and b/assets/icons/power.png differ diff --git a/assets/icons/previous.png b/assets/icons/previous.png new file mode 100644 index 0000000..cf33ab7 Binary files /dev/null and b/assets/icons/previous.png differ diff --git a/assets/icons/question.png b/assets/icons/question.png new file mode 100644 index 0000000..4dfe14a Binary files /dev/null and b/assets/icons/question.png differ diff --git a/assets/icons/return.png b/assets/icons/return.png new file mode 100644 index 0000000..5f3bed3 Binary files /dev/null and b/assets/icons/return.png differ diff --git a/assets/icons/rewind.png b/assets/icons/rewind.png new file mode 100644 index 0000000..7070437 Binary files /dev/null and b/assets/icons/rewind.png differ diff --git a/assets/icons/save.png b/assets/icons/save.png new file mode 100644 index 0000000..d9e1d6e Binary files /dev/null and b/assets/icons/save.png differ diff --git a/assets/icons/scrollHorizontal.png b/assets/icons/scrollHorizontal.png new file mode 100644 index 0000000..acbb089 Binary files /dev/null and b/assets/icons/scrollHorizontal.png differ diff --git a/assets/icons/scrollVertical.png b/assets/icons/scrollVertical.png new file mode 100644 index 0000000..e12ede2 Binary files /dev/null and b/assets/icons/scrollVertical.png differ diff --git a/assets/icons/share1.png b/assets/icons/share1.png new file mode 100644 index 0000000..1a131f6 Binary files /dev/null and b/assets/icons/share1.png differ diff --git a/assets/icons/share2.png b/assets/icons/share2.png new file mode 100644 index 0000000..22dd772 Binary files /dev/null and b/assets/icons/share2.png differ diff --git a/assets/icons/signal1.png b/assets/icons/signal1.png new file mode 100644 index 0000000..7c1c555 Binary files /dev/null and b/assets/icons/signal1.png differ diff --git a/assets/icons/signal2.png b/assets/icons/signal2.png new file mode 100644 index 0000000..22889f1 Binary files /dev/null and b/assets/icons/signal2.png differ diff --git a/assets/icons/signal3.png b/assets/icons/signal3.png new file mode 100644 index 0000000..1e1f34a Binary files /dev/null and b/assets/icons/signal3.png differ diff --git a/assets/icons/singleplayer.png b/assets/icons/singleplayer.png new file mode 100644 index 0000000..adba4d4 Binary files /dev/null and b/assets/icons/singleplayer.png differ diff --git a/assets/icons/smaller.png b/assets/icons/smaller.png new file mode 100644 index 0000000..eebd61e Binary files /dev/null and b/assets/icons/smaller.png differ diff --git a/assets/icons/star.png b/assets/icons/star.png new file mode 100644 index 0000000..a9ba147 Binary files /dev/null and b/assets/icons/star.png differ diff --git a/assets/icons/stop.png b/assets/icons/stop.png new file mode 100644 index 0000000..f0f1f83 Binary files /dev/null and b/assets/icons/stop.png differ diff --git a/assets/icons/tablet.png b/assets/icons/tablet.png new file mode 100644 index 0000000..aea3107 Binary files /dev/null and b/assets/icons/tablet.png differ diff --git a/assets/icons/target.png b/assets/icons/target.png new file mode 100644 index 0000000..a7961da Binary files /dev/null and b/assets/icons/target.png differ diff --git a/assets/icons/toolBrush.png b/assets/icons/toolBrush.png new file mode 100644 index 0000000..402389a Binary files /dev/null and b/assets/icons/toolBrush.png differ diff --git a/assets/icons/toolEraser.png b/assets/icons/toolEraser.png new file mode 100644 index 0000000..2bbaf55 Binary files /dev/null and b/assets/icons/toolEraser.png differ diff --git a/assets/icons/toolFill.png b/assets/icons/toolFill.png new file mode 100644 index 0000000..8585038 Binary files /dev/null and b/assets/icons/toolFill.png differ diff --git a/assets/icons/toolPencil.png b/assets/icons/toolPencil.png new file mode 100644 index 0000000..76c3bcc Binary files /dev/null and b/assets/icons/toolPencil.png differ diff --git a/assets/icons/trashcan.png b/assets/icons/trashcan.png new file mode 100644 index 0000000..2a494ff Binary files /dev/null and b/assets/icons/trashcan.png differ diff --git a/assets/icons/trashcanOpen.png b/assets/icons/trashcanOpen.png new file mode 100644 index 0000000..113f28a Binary files /dev/null and b/assets/icons/trashcanOpen.png differ diff --git a/assets/icons/trophy.png b/assets/icons/trophy.png new file mode 100644 index 0000000..d5fe8be Binary files /dev/null and b/assets/icons/trophy.png differ diff --git a/assets/icons/unlocked.png b/assets/icons/unlocked.png new file mode 100644 index 0000000..faf93c9 Binary files /dev/null and b/assets/icons/unlocked.png differ diff --git a/assets/icons/up.png b/assets/icons/up.png new file mode 100644 index 0000000..a1c7a87 Binary files /dev/null and b/assets/icons/up.png differ diff --git a/assets/icons/upLeft.png b/assets/icons/upLeft.png new file mode 100644 index 0000000..3406936 Binary files /dev/null and b/assets/icons/upLeft.png differ diff --git a/assets/icons/upRight.png b/assets/icons/upRight.png new file mode 100644 index 0000000..14f4456 Binary files /dev/null and b/assets/icons/upRight.png differ diff --git a/assets/icons/upload.png b/assets/icons/upload.png new file mode 100644 index 0000000..c568166 Binary files /dev/null and b/assets/icons/upload.png differ diff --git a/assets/icons/userRobot.png b/assets/icons/userRobot.png new file mode 100644 index 0000000..8bd909e Binary files /dev/null and b/assets/icons/userRobot.png differ diff --git a/assets/icons/video.png b/assets/icons/video.png new file mode 100644 index 0000000..89d4b83 Binary files /dev/null and b/assets/icons/video.png differ diff --git a/assets/icons/warning.png b/assets/icons/warning.png new file mode 100644 index 0000000..12ebcb1 Binary files /dev/null and b/assets/icons/warning.png differ diff --git a/assets/icons/wrench.png b/assets/icons/wrench.png new file mode 100644 index 0000000..fd16f6b Binary files /dev/null and b/assets/icons/wrench.png differ diff --git a/assets/icons/zoom.png b/assets/icons/zoom.png new file mode 100644 index 0000000..f8c60c8 Binary files /dev/null and b/assets/icons/zoom.png differ diff --git a/assets/icons/zoomDefault.png b/assets/icons/zoomDefault.png new file mode 100644 index 0000000..a18677f Binary files /dev/null and b/assets/icons/zoomDefault.png differ diff --git a/assets/icons/zoomIn.png b/assets/icons/zoomIn.png new file mode 100644 index 0000000..70fff49 Binary files /dev/null and b/assets/icons/zoomIn.png differ diff --git a/assets/icons/zoomOut.png b/assets/icons/zoomOut.png new file mode 100644 index 0000000..7f20ad2 Binary files /dev/null and b/assets/icons/zoomOut.png differ diff --git a/project.godot b/project.godot index c13283a..3588923 100644 --- a/project.godot +++ b/project.godot @@ -63,11 +63,12 @@ _global_script_class_icons={ [application] config/name="MUR_pre_aplha" -run/main_scene="res://scenes/lobby/lobby.tscn" +run/main_scene="res://scenes/menu/main.tscn" config/icon="res://icon.png" [autoload] +game="*res://scripts/game/game.gd" game_state="*res://scripts/game/game_state.gd" roads_factory="*res://scripts/road/roads_factory.gd" Util="*res://scripts/Util.gd" diff --git a/resources/ui/font.tres b/resources/ui/font.tres new file mode 100644 index 0000000..f4834e1 --- /dev/null +++ b/resources/ui/font.tres @@ -0,0 +1,7 @@ +[gd_resource type="DynamicFont" load_steps=2 format=2] + +[ext_resource path="res://assets/fonts/Kenney Future Narrow.ttf" type="DynamicFontData" id=1] + +[resource] +size = 24 +font_data = ExtResource( 1 ) diff --git a/resources/ui/theme.tres b/resources/ui/theme.tres new file mode 100644 index 0000000..4d5791a --- /dev/null +++ b/resources/ui/theme.tres @@ -0,0 +1,6 @@ +[gd_resource type="Theme" load_steps=2 format=2] + +[ext_resource path="res://resources/ui/font.tres" type="DynamicFont" id=1] + +[resource] +default_font = ExtResource( 1 ) diff --git a/scenes/lobby/lobby.tscn b/scenes/lobby/lobby_old.tscn similarity index 97% rename from scenes/lobby/lobby.tscn rename to scenes/lobby/lobby_old.tscn index fa6d14f..cfdb49f 100644 --- a/scenes/lobby/lobby.tscn +++ b/scenes/lobby/lobby_old.tscn @@ -5,8 +5,10 @@ [node name="lobby" type="Control"] anchor_right = 1.0 anchor_bottom = 1.0 -margin_top = -0.950012 -margin_bottom = -0.950012 +margin_left = 4.0 +margin_top = -1.95001 +margin_right = 4.0 +margin_bottom = -1.95001 size_flags_horizontal = 2 size_flags_vertical = 2 script = ExtResource( 1 ) diff --git a/scenes/menu/direct_host.tscn b/scenes/menu/direct_host.tscn new file mode 100644 index 0000000..33ff4f6 --- /dev/null +++ b/scenes/menu/direct_host.tscn @@ -0,0 +1,71 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://resources/ui/theme.tres" type="Theme" id=1] +[ext_resource path="res://scripts/menu/direct_host.gd" type="Script" id=2] +[ext_resource path="res://resources/ui/font.tres" type="DynamicFont" id=3] +[ext_resource path="res://assets/icons/exitRight.png" type="Texture" id=4] +[ext_resource path="res://assets/icons/return.png" type="Texture" id=5] + +[node name="direct_host" type="Control"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -512.0 +margin_top = -300.0 +margin_right = 512.0 +margin_bottom = 300.0 +theme = ExtResource( 1 ) +script = ExtResource( 2 ) + +[node name="menu" type="Panel" parent="."] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -217.5 +margin_top = -74.5 +margin_right = 217.5 +margin_bottom = 74.5 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="host" type="Button" parent="menu"] +margin_left = 290.439 +margin_top = 72.3169 +margin_right = 433.439 +margin_bottom = 128.317 +rect_pivot_offset = Vector2( 1.89856, 0.845154 ) +custom_fonts/font = ExtResource( 3 ) +text = "Host" +icon = ExtResource( 4 ) +flat = true + +[node name="back" type="Button" parent="menu"] +margin_left = 4.93381 +margin_top = 79.1761 +margin_right = 136.934 +margin_bottom = 135.176 +rect_pivot_offset = Vector2( 0.606262, -0.447205 ) +custom_fonts/font = ExtResource( 3 ) +text = "Back" +icon = ExtResource( 5 ) +flat = true + +[node name="port_label" type="Label" parent="menu"] +margin_left = 29.8937 +margin_top = 30.2159 +margin_right = 94.8937 +margin_bottom = 57.2159 +text = "Port" + +[node name="port" type="LineEdit" parent="menu"] +margin_left = 151.75 +margin_top = 25.1615 +margin_right = 259.75 +margin_bottom = 62.1615 +text = "8128" +max_length = 5 +[connection signal="pressed" from="menu/host" to="." method="_on_host_pressed"] +[connection signal="pressed" from="menu/back" to="." method="_on_back_pressed"] +[connection signal="text_changed" from="menu/port" to="." method="_on_port_text_changed"] diff --git a/scenes/menu/direct_join.tscn b/scenes/menu/direct_join.tscn new file mode 100644 index 0000000..6d32303 --- /dev/null +++ b/scenes/menu/direct_join.tscn @@ -0,0 +1,96 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://resources/ui/theme.tres" type="Theme" id=1] +[ext_resource path="res://scripts/menu/direct_join.gd" type="Script" id=2] +[ext_resource path="res://resources/ui/font.tres" type="DynamicFont" id=3] +[ext_resource path="res://assets/icons/exitRight.png" type="Texture" id=4] +[ext_resource path="res://assets/icons/return.png" type="Texture" id=5] + +[node name="direct_join" type="Control"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -512.0 +margin_top = -300.0 +margin_right = 512.0 +margin_bottom = 300.0 +theme = ExtResource( 1 ) +script = ExtResource( 2 ) + +[node name="menu" type="Panel" parent="."] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -217.5 +margin_top = -116.0 +margin_right = 217.5 +margin_bottom = 116.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="join" type="Button" parent="menu"] +margin_left = 289.079 +margin_top = 175.705 +margin_right = 432.079 +margin_bottom = 231.705 +rect_pivot_offset = Vector2( 1.89856, 0.845154 ) +custom_fonts/font = ExtResource( 3 ) +text = "Join" +icon = ExtResource( 4 ) +flat = true + +[node name="back" type="Button" parent="menu"] +margin_left = 3.57346 +margin_top = 173.042 +margin_right = 135.574 +margin_bottom = 229.042 +rect_pivot_offset = Vector2( 0.606262, -0.447205 ) +custom_fonts/font = ExtResource( 3 ) +text = "Back" +icon = ExtResource( 5 ) +flat = true + +[node name="ip_label" type="Label" parent="menu"] +margin_left = 29.8937 +margin_top = 31.5762 +margin_right = 94.8937 +margin_bottom = 58.5762 +text = "Ip" + +[node name="ip" type="LineEdit" parent="menu"] +margin_left = 140.0 +margin_top = 22.0 +margin_right = 422.0 +margin_bottom = 60.0 +text = "127.0.0.1" + +[node name="port_label" type="Label" parent="menu"] +margin_left = 25.9189 +margin_top = 88.3152 +margin_right = 90.9189 +margin_bottom = 115.315 +text = "Port" + +[node name="port" type="LineEdit" parent="menu"] +margin_left = 139.136 +margin_top = 80.3719 +margin_right = 247.136 +margin_bottom = 117.372 +text = "8128" +max_length = 5 + +[node name="error" type="Label" parent="menu"] +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_left = -1.0 +margin_top = 11.0 +margin_right = -1.0 +margin_bottom = 60.0 +custom_colors/font_color = Color( 1, 0, 0.117647, 1 ) +align = 1 +valign = 1 +[connection signal="pressed" from="menu/join" to="." method="_on_join_pressed"] +[connection signal="pressed" from="menu/back" to="." method="_on_back_pressed"] diff --git a/scenes/menu/ingame.tscn b/scenes/menu/ingame.tscn new file mode 100644 index 0000000..fb0e8bc --- /dev/null +++ b/scenes/menu/ingame.tscn @@ -0,0 +1,66 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://resources/ui/theme.tres" type="Theme" id=1] +[ext_resource path="res://scripts/menu/ingame.gd" type="Script" id=2] +[ext_resource path="res://assets/icons/open.png" type="Texture" id=3] +[ext_resource path="res://assets/icons/wrench.png" type="Texture" id=4] +[ext_resource path="res://assets/icons/arrowLeft.png" type="Texture" id=5] + +[node name="ingame_menu" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = -0.857361 +margin_right = -0.857361 +theme = ExtResource( 1 ) +script = ExtResource( 2 ) + +[node name="menu" type="Panel" parent="."] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -155.0 +margin_top = -155.0 +margin_right = 155.0 +margin_bottom = 155.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="resume" type="Button" parent="menu"] +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_left = -0.857422 +margin_top = -153.725 +margin_right = -0.857422 +margin_bottom = -97.7245 +text = "Resume" +icon = ExtResource( 3 ) +flat = true + +[node name="settings" type="Button" parent="menu"] +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_left = -0.572113 +margin_top = -25.128 +margin_right = -0.572113 +margin_bottom = 30.872 +text = "Settings" +icon = ExtResource( 4 ) +flat = true + +[node name="end" type="Button" parent="menu"] +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_left = -0.572113 +margin_top = 98.872 +margin_right = -0.572113 +margin_bottom = 154.872 +text = "End Game" +icon = ExtResource( 5 ) +flat = true +[connection signal="pressed" from="menu/resume" to="." method="_on_resume_pressed"] +[connection signal="pressed" from="menu/settings" to="." method="_on_settings_pressed"] +[connection signal="pressed" from="menu/end" to="." method="_on_end_pressed"] diff --git a/scenes/menu/lobby.tscn b/scenes/menu/lobby.tscn new file mode 100644 index 0000000..26562ac --- /dev/null +++ b/scenes/menu/lobby.tscn @@ -0,0 +1,94 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://resources/ui/theme.tres" type="Theme" id=1] +[ext_resource path="res://scripts/menu/lobby.gd" type="Script" id=2] +[ext_resource path="res://resources/ui/font.tres" type="DynamicFont" id=3] +[ext_resource path="res://assets/icons/return.png" type="Texture" id=4] +[ext_resource path="res://scripts/menu/player_settings.gd" type="Script" id=5] + +[node name="lobby" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 0.857376 +margin_top = 0.857422 +margin_right = 0.857422 +margin_bottom = 0.857422 +theme = ExtResource( 1 ) +script = ExtResource( 2 ) + +[node name="menu" type="Panel" parent="."] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -446.428 +margin_top = -236.0 +margin_right = 446.572 +margin_bottom = 235.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="players" type="ItemList" parent="menu"] +margin_left = 13.0 +margin_top = 19.0 +margin_right = 500.0 +margin_bottom = 414.0 + +[node name="ready" type="CheckButton" parent="menu"] +margin_left = 723.0 +margin_top = 412.0 +margin_right = 889.0 +margin_bottom = 470.0 +text = "Ready" +flat = true + +[node name="back" type="Button" parent="menu"] +margin_left = 10.0 +margin_top = 413.0 +margin_right = 142.0 +margin_bottom = 469.0 +custom_fonts/font = ExtResource( 3 ) +text = "Back" +icon = ExtResource( 4 ) +flat = true + +[node name="settings" type="Control" parent="menu"] +margin_left = 513.0 +margin_top = 23.0 +margin_right = 878.0 +margin_bottom = 240.0 +script = ExtResource( 5 ) + +[node name="name_label" type="Label" parent="menu/settings"] +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_top = -95.5 +margin_bottom = -68.5 +text = "Name" + +[node name="name" type="LineEdit" parent="menu/settings"] +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_top = -51.5 +margin_bottom = -14.5 + +[node name="color_label" type="Label" parent="menu/settings"] +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_top = 1.5 +margin_bottom = 28.5 +text = "Color" + +[node name="color" type="ColorPickerButton" parent="menu/settings"] +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_top = 46.5 +margin_bottom = 79.5 +[connection signal="pressed" from="menu/ready" to="." method="_on_ready_pressed"] +[connection signal="pressed" from="menu/back" to="." method="_on_back_pressed"] +[connection signal="text_changed" from="menu/settings/name" to="." method="_on_name_text_changed"] +[connection signal="color_changed" from="menu/settings/color" to="." method="_on_color_color_changed"] diff --git a/scenes/menu/local_game.tscn b/scenes/menu/local_game.tscn new file mode 100644 index 0000000..c921b1a --- /dev/null +++ b/scenes/menu/local_game.tscn @@ -0,0 +1,69 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://resources/ui/theme.tres" type="Theme" id=1] +[ext_resource path="res://scripts/menu/local_game.gd" type="Script" id=2] +[ext_resource path="res://resources/ui/font.tres" type="DynamicFont" id=3] +[ext_resource path="res://assets/icons/exitRight.png" type="Texture" id=4] +[ext_resource path="res://assets/icons/return.png" type="Texture" id=5] +[ext_resource path="res://scenes/menu/player_settings.tscn" type="PackedScene" id=6] + +[node name="local_game" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 0.857376 +margin_top = 0.857422 +margin_right = 0.857422 +margin_bottom = 0.857422 +theme = ExtResource( 1 ) +script = ExtResource( 2 ) + +[node name="menu" type="Panel" parent="."] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -217.5 +margin_top = -187.5 +margin_right = 217.5 +margin_bottom = 187.5 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="bots" type="CheckButton" parent="menu"] +margin_left = 26.8485 +margin_top = 239.232 +margin_right = 192.849 +margin_bottom = 297.232 +pressed = true +text = "Bots" +flat = true + +[node name="start" type="Button" parent="menu"] +margin_left = 289.147 +margin_top = 315.816 +margin_right = 432.147 +margin_bottom = 371.816 +rect_pivot_offset = Vector2( 1.89856, 0.845154 ) +custom_fonts/font = ExtResource( 3 ) +text = "Start" +icon = ExtResource( 4 ) +flat = true + +[node name="back" type="Button" parent="menu"] +margin_left = 2.24423 +margin_top = 317.401 +margin_right = 134.244 +margin_bottom = 373.401 +rect_pivot_offset = Vector2( 0.606262, -0.447205 ) +custom_fonts/font = ExtResource( 3 ) +text = "Back" +icon = ExtResource( 5 ) +flat = true + +[node name="settings" parent="menu" instance=ExtResource( 6 )] +margin_left = 27.4727 +margin_top = 18.9189 +margin_right = 392.473 +margin_bottom = 235.919 +[connection signal="pressed" from="menu/start" to="." method="_on_start_pressed"] +[connection signal="pressed" from="menu/back" to="." method="_on_back_pressed"] diff --git a/scenes/menu/main.tscn b/scenes/menu/main.tscn new file mode 100644 index 0000000..d9b8303 --- /dev/null +++ b/scenes/menu/main.tscn @@ -0,0 +1,78 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://resources/ui/theme.tres" type="Theme" id=1] +[ext_resource path="res://scripts/menu/main.gd" type="Script" id=2] +[ext_resource path="res://assets/icons/massiveMultiplayer.png" type="Texture" id=3] +[ext_resource path="res://assets/icons/singleplayer.png" type="Texture" id=4] +[ext_resource path="res://assets/icons/wrench.png" type="Texture" id=5] +[ext_resource path="res://assets/icons/power.png" type="Texture" id=6] + +[node name="main_menu" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = -0.857361 +margin_right = -0.857361 +theme = ExtResource( 1 ) +script = ExtResource( 2 ) + +[node name="menu" type="Panel" parent="."] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -155.0 +margin_top = -155.0 +margin_right = 155.0 +margin_bottom = 155.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="online" type="Button" parent="menu"] +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_left = -0.857422 +margin_top = -153.725 +margin_right = -0.857422 +margin_bottom = -97.7245 +text = "Multiplayer" +icon = ExtResource( 3 ) +flat = true + +[node name="practice" type="Button" parent="menu"] +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_top = -91.154 +margin_bottom = -35.154 +text = "Practice" +icon = ExtResource( 4 ) +flat = true + +[node name="settings" type="Button" parent="menu"] +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_left = -0.572113 +margin_top = -25.128 +margin_right = -0.572113 +margin_bottom = 30.872 +text = "Settings" +icon = ExtResource( 5 ) +flat = true + +[node name="quit" type="Button" parent="menu"] +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_left = -0.572113 +margin_top = 98.872 +margin_right = -0.572113 +margin_bottom = 154.872 +text = "Quit" +icon = ExtResource( 6 ) +flat = true +[connection signal="pressed" from="menu/online" to="." method="_on_online_pressed"] +[connection signal="pressed" from="menu/practice" to="." method="_on_practice_pressed"] +[connection signal="pressed" from="menu/settings" to="." method="_on_settings_pressed"] +[connection signal="pressed" from="menu/quit" to="." method="_on_quit_pressed"] diff --git a/scenes/menu/player_settings.tscn b/scenes/menu/player_settings.tscn new file mode 100644 index 0000000..d39e8c4 --- /dev/null +++ b/scenes/menu/player_settings.tscn @@ -0,0 +1,40 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://scripts/menu/player_settings.gd" type="Script" id=1] + +[node name="settings" type="Control"] +margin_left = 513.0 +margin_top = 23.0 +margin_right = 878.0 +margin_bottom = 240.0 +script = ExtResource( 1 ) + +[node name="name_label" type="Label" parent="."] +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_top = -95.5 +margin_bottom = -68.5 +text = "Name" + +[node name="name" type="LineEdit" parent="."] +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_top = -51.5 +margin_bottom = -14.5 + +[node name="color_label" type="Label" parent="."] +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_top = 1.5 +margin_bottom = 28.5 +text = "Color" + +[node name="color" type="ColorPickerButton" parent="."] +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_top = 46.5 +margin_bottom = 79.5 diff --git a/scenes/menu/server.tscn b/scenes/menu/server.tscn new file mode 100644 index 0000000..332a0c4 --- /dev/null +++ b/scenes/menu/server.tscn @@ -0,0 +1,103 @@ +[gd_scene load_steps=9 format=2] + +[ext_resource path="res://resources/ui/theme.tres" type="Theme" id=1] +[ext_resource path="res://scripts/menu/server.gd" type="Script" id=2] +[ext_resource path="res://assets/icons/exitRight.png" type="Texture" id=3] +[ext_resource path="res://assets/icons/fistPlus.png" type="Texture" id=4] +[ext_resource path="res://resources/ui/font.tres" type="DynamicFont" id=5] +[ext_resource path="res://assets/icons/return.png" type="Texture" id=6] +[ext_resource path="res://assets/icons/cpu.png" type="Texture" id=7] +[ext_resource path="res://assets/icons/open.png" type="Texture" id=8] + +[node name="server" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 0.857376 +margin_top = 0.857422 +margin_right = 0.857422 +margin_bottom = 0.857422 +theme = ExtResource( 1 ) +script = ExtResource( 2 ) + +[node name="menu" type="Panel" parent="."] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -446.428 +margin_top = -236.0 +margin_right = 446.572 +margin_bottom = 235.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="filter" type="Control" parent="menu"] +margin_left = 14.0 +margin_top = 16.0 +margin_right = 878.0 +margin_bottom = 45.0 + +[node name="open" type="CheckButton" parent="menu/filter"] +anchor_left = 1.0 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +margin_left = -317.0 +margin_top = -16.5 +margin_bottom = 23.5 +text = "Open Games only" + +[node name="games" type="ItemList" parent="menu"] +margin_left = 13.0 +margin_top = 60.0 +margin_right = 880.0 +margin_bottom = 414.0 + +[node name="join" type="Button" parent="menu"] +margin_left = 755.0 +margin_top = 413.0 +margin_right = 875.0 +margin_bottom = 469.0 +text = "Join" +icon = ExtResource( 3 ) +flat = true + +[node name="create" type="Button" parent="menu"] +margin_left = 499.0 +margin_top = 414.0 +margin_right = 739.0 +margin_bottom = 470.0 +text = "Create Game" +icon = ExtResource( 4 ) +flat = true + +[node name="back" type="Button" parent="menu"] +margin_left = 10.0 +margin_top = 413.0 +margin_right = 142.0 +margin_bottom = 469.0 +custom_fonts/font = ExtResource( 5 ) +text = "Back" +icon = ExtResource( 6 ) +flat = true + +[node name="direct_host" type="Button" parent="menu"] +margin_left = 10.0 +margin_top = 2.0 +margin_right = 235.0 +margin_bottom = 58.0 +text = "Direct Host" +icon = ExtResource( 7 ) +flat = true + +[node name="direct_join" type="Button" parent="menu"] +margin_left = 230.0 +margin_top = 2.0 +margin_right = 446.0 +margin_bottom = 58.0 +text = "Direct Join" +icon = ExtResource( 8 ) +flat = true +[connection signal="pressed" from="menu/back" to="." method="_on_back_pressed"] +[connection signal="pressed" from="menu/direct_host" to="." method="_on_direct_host_pressed"] +[connection signal="pressed" from="menu/direct_join" to="." method="_on_direct_join_pressed"] diff --git a/scenes/player/HumanPlayer.tscn b/scenes/player/HumanPlayer.tscn index 33ef1bf..25f8e2e 100644 --- a/scenes/player/HumanPlayer.tscn +++ b/scenes/player/HumanPlayer.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=7 format=2] [ext_resource path="res://scripts/player/HumanControls.gd" type="Script" id=1] -[ext_resource path="res://scripts/player/HumanInventory.gd" type="Script" id=2] -[ext_resource path="res://scenes/road/roadStraightLong.tscn" type="PackedScene" id=3] -[ext_resource path="res://scripts/player/InventoryPreview.gd" type="Script" id=4] +[ext_resource path="res://scenes/menu/ingame.tscn" type="PackedScene" id=2] +[ext_resource path="res://scripts/player/HumanInventory.gd" type="Script" id=3] +[ext_resource path="res://scenes/road/roadStraightLong.tscn" type="PackedScene" id=4] +[ext_resource path="res://scripts/player/InventoryPreview.gd" type="Script" id=5] [sub_resource type="ViewportTexture" id=1] viewport_path = NodePath("inventory/viewport") @@ -13,32 +14,6 @@ script = ExtResource( 1 ) [node name="hud" type="CanvasLayer" parent="."] -[node name="speed" type="Label" parent="hud"] -anchor_left = 0.5 -anchor_top = 1.0 -anchor_right = 0.5 -anchor_bottom = 1.0 -margin_left = -77.0 -margin_top = -39.0 -margin_right = 77.0 -grow_horizontal = 2 -grow_vertical = 2 -align = 1 -valign = 1 - -[node name="reset" type="Label" parent="hud"] -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -margin_left = -20.0 -margin_top = -7.0 -margin_right = 20.0 -margin_bottom = 7.0 -align = 1 -valign = 1 -uppercase = true - [node name="inventory" type="Control" parent="hud"] visible = false anchor_right = 1.0 @@ -71,8 +46,38 @@ custom_colors/font_color = Color( 0, 0, 0, 1 ) align = 1 valign = 1 +[node name="ingame_menu" parent="hud" instance=ExtResource( 2 )] +visible = false + +[node name="speed" type="Label" parent="hud"] +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +margin_left = -77.0 +margin_top = -39.0 +margin_right = 77.0 +grow_horizontal = 2 +grow_vertical = 2 +align = 1 +valign = 1 + +[node name="reset" type="Label" parent="hud"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -20.0 +margin_top = -7.0 +margin_right = 20.0 +margin_bottom = 7.0 +align = 1 +valign = 1 +uppercase = true + [node name="inventory" type="Spatial" parent="."] -script = ExtResource( 2 ) +editor/display_folded = true +script = ExtResource( 3 ) [node name="viewport" type="Viewport" parent="inventory"] size = Vector2( 150, 150 ) @@ -90,8 +95,8 @@ far = 20.0 [node name="view" type="Spatial" parent="inventory"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -50, -1000, 0 ) -[node name="roadStraightLong" parent="inventory/view" instance=ExtResource( 3 )] +[node name="roadStraightLong" parent="inventory/view" instance=ExtResource( 4 )] transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0 ) [node name="preview" type="Spatial" parent="inventory"] -script = ExtResource( 4 ) +script = ExtResource( 5 ) diff --git a/scripts/game/game.gd b/scripts/game/game.gd new file mode 100644 index 0000000..cc656d3 --- /dev/null +++ b/scripts/game/game.gd @@ -0,0 +1,119 @@ +extends Node + +const MAX_PEERS = 4 + +var world_scene = preload("res://scenes/game/world.tscn") +var player_scene = preload("res://scenes/player/Player.tscn") +var human_player_scene = preload("res://scenes/player/HumanPlayer.tscn") +var bot_player_scene = preload("res://scenes/player/BotPlayer.tscn") + +var players = {} + +signal players_changed(players) +signal connection_failed() +signal connection_succeeded() +signal game_ready() +signal game_start() +signal game_ended() +signal game_error(msg) + +func _ready(): + var arguments = {} + for argument in OS.get_cmdline_args(): + if argument.split("=")[0] == "port": + host_game(int(argument.split("=")[1])) + +func host_game(port:int): + var host = NetworkedMultiplayerENet.new() + host.create_server(port, MAX_PEERS) + get_tree().set_network_peer(host) + get_tree().connect("network_peer_connected", self, "_player_connected") + get_tree().connect("network_peer_disconnected", self,"_player_disconnected") + get_tree().connect("server_disconnected", self, "_server_disconnected") + +func join_game(ip, port:int): + get_tree().connect("connected_to_server", self, "_connected_ok") + get_tree().connect("connection_failed", self, "_connected_fail") + var host = NetworkedMultiplayerENet.new() + host.create_client(ip, port) + get_tree().set_network_peer(host) + +func _connected_ok(): + rpc("set_player", get_tree().get_network_unique_id()) + emit_signal("connection_succeeded") + +func _connected_fail(): + get_tree().set_network_peer(null) + emit_signal("connection_failed") + +remote func set_player(id, new_name:String = " ", new_color:Color = Color.black, ready:bool = false): + if (get_tree().is_network_server()): + for p_id in players: + rpc_id(id, "set_player", p_id, players[p_id].name, players[p_id].color, ready) + rpc_id(p_id, "set_player", id, new_name, new_color, ready) + + players[id] = {"name" : new_name, "color" : new_color, "ready" : ready} + emit_signal("players_changed", players) + +func prepare_game(bots:bool): + + get_tree().set_pause(true) + + var world = world_scene.instance() + get_tree().get_root().add_child(world) + + get_tree().get_root().get_node("main_menu").hide() + + for p_id in players: + var controls + var player = players[p_id] + + var _player_scene = player_scene.instance() + _player_scene.set_network_master(p_id) + _player_scene.set_name(str(p_id)) + _player_scene.set_player_name(player.name) + _player_scene.set_player_color(player.color) + world.get_node("players").add_child(_player_scene) + + if p_id == get_tree().get_network_unique_id(): + controls = human_player_scene.instance() + controls.set_name("HumanControl_" + str(p_id)) + world.add_child(controls) + controls.set_player(_player_scene.get_path()) + controls.set_network_master(p_id) + + _player_scene.set_start(_player_scene.get_index()) + + if bots: + for index in range(MAX_PEERS-players.size()): + var bot_index = players.size() + index + var _player_scene = player_scene.instance() + _player_scene.set_name("bot_player" + str(bot_index)) + world.get_node("players").add_child(_player_scene) + _player_scene.add_to_group("bots") + if get_tree().is_network_server(): + var bot = bot_player_scene.instance() + bot.set_name("bot" + str(bot_index)) + world.add_child(bot) + bot.set_player(_player_scene.get_path()) + bot.set_network_master(get_tree().get_network_unique_id()) + _player_scene.set_start(bot_index) + +remote func post_start_game(): + get_tree().set_pause(false) + +func local_game(name:String, color:Color, bots:bool): + var localhost = NetworkedMultiplayerENet.new() + localhost.create_server(0, 0) + get_tree().set_network_peer(localhost) + players[get_tree().get_network_unique_id()] = { "name" : name, "color" : color } + prepare_game(bots) + post_start_game() + +func quit_game(): + if (has_node("/root/world")): + get_node("/root/world").queue_free() + + players.clear() + get_tree().set_network_peer(null) + get_tree().get_root().get_node("main_menu").show() \ No newline at end of file diff --git a/scripts/game/server.gd b/scripts/game/server.gd new file mode 100644 index 0000000..2afd73e --- /dev/null +++ b/scripts/game/server.gd @@ -0,0 +1,5 @@ +extends Node + +func _ready(): + pass # Replace with function body. + diff --git a/scripts/menu/direct_host.gd b/scripts/menu/direct_host.gd new file mode 100644 index 0000000..fac7ecd --- /dev/null +++ b/scripts/menu/direct_host.gd @@ -0,0 +1,18 @@ +extends Control + +var lobby_menu_scene = preload("res://scenes/menu/lobby.tscn") + +func _on_host_pressed(): + var port = get_node("menu/port").text + game.host_game(int(port)) + + var lobby_menu = lobby_menu_scene.instance() + get_tree().get_root().add_child(lobby_menu) + + game.set_player(get_tree().get_network_unique_id()) + + queue_free() + +func _on_back_pressed(): + queue_free() + get_tree().get_root().get_node("server").show() diff --git a/scripts/menu/direct_join.gd b/scripts/menu/direct_join.gd new file mode 100644 index 0000000..16d56ea --- /dev/null +++ b/scripts/menu/direct_join.gd @@ -0,0 +1,30 @@ +extends Control + +var lobby_menu_scene = preload("res://scenes/menu/lobby.tscn") + +func _ready(): + game.connect("connection_succeeded", self, "_connection_succeeded") + game.connect("connection_failed", self, "_connection_failed") + +func _on_join_pressed(): + var ip = get_node("menu/ip").text + + if not ip.is_valid_ip_address(): + get_node("menu/error").text="Invalid IPv4 address!" + return + + var port = get_node("menu/port").text + game.join_game(ip, int(port)) + +func _connection_succeeded(): + var lobby_menu = lobby_menu_scene.instance() + get_tree().get_root().add_child(lobby_menu) + queue_free() + +func _connection_failed(): + get_node("menu/error").text="Connection failed!" + +func _on_back_pressed(): + queue_free() + get_tree().get_root().get_node("server").show() + diff --git a/scripts/menu/ingame.gd b/scripts/menu/ingame.gd new file mode 100644 index 0000000..5a3f167 --- /dev/null +++ b/scripts/menu/ingame.gd @@ -0,0 +1,17 @@ +extends Control + +func _physics_process(delta): + if Input.is_action_just_pressed("ui_cancel"): + if is_visible_in_tree(): + hide() + else: + show() + +func _on_resume_pressed(): + hide() + +func _on_settings_pressed(): + pass + +func _on_end_pressed(): + game.quit_game() diff --git a/scripts/menu/lobby.gd b/scripts/menu/lobby.gd new file mode 100644 index 0000000..0e40b18 --- /dev/null +++ b/scripts/menu/lobby.gd @@ -0,0 +1,43 @@ +extends Control + +onready var settings = get_node("menu/settings") + +func _ready(): + game.connect("players_changed", self, "_players_changed") + game.connect("game_ready", self, "_game_ready") + game.connect("game_started", self, "_game_started") + +func _players_changed(players): + get_node("menu/players").clear() + for p_id in players: + var player = players[p_id] + if p_id == get_tree().get_network_unique_id(): + get_node("menu/players").add_item(player.name + " (You)") + else: + get_node("menu/players").add_item(player.name) + get_node("menu/players").set_item_custom_bg_color(get_node("menu/players").get_item_count()-1, player.color) + +func _game_ready(): + pass + +func _game_started(): + pass + +func _on_name_text_changed(new_text): + _on_player_changed() + +func _on_color_color_changed(color): + _on_player_changed() + +func _on_ready_pressed(): + _on_player_changed() + +func _on_player_changed(): + var name = settings.get_node("name").text + var color = settings.get_node("color").color + var ready = get_node("menu/ready").pressed + game.set_player(get_tree().get_network_unique_id(), name, color, ready) + +func _on_back_pressed(): + queue_free() + get_tree().get_root().get_node("server").show() diff --git a/scripts/menu/local_game.gd b/scripts/menu/local_game.gd new file mode 100644 index 0000000..e40da08 --- /dev/null +++ b/scripts/menu/local_game.gd @@ -0,0 +1,17 @@ +extends Control + +onready var settings = get_node("menu/settings") + +func _ready(): + pass + +func _on_start_pressed(): + var name = settings.get_node("name").text + var color = settings.get_node("color").color + var bots = get_node("menu/bots").pressed + queue_free() + game.local_game(name,color,bots) + +func _on_back_pressed(): + queue_free() + get_tree().get_root().get_node("main_menu").show() diff --git a/scripts/menu/main.gd b/scripts/menu/main.gd new file mode 100644 index 0000000..3b11415 --- /dev/null +++ b/scripts/menu/main.gd @@ -0,0 +1,24 @@ +extends Control + + +var server_menu_scene = preload("res://scenes/menu/server.tscn") +var local_menu_scene = preload("res://scenes/menu/local_game.tscn") + + +func _on_online_pressed(): + var server_menu = server_menu_scene.instance() + get_tree().get_root().add_child(server_menu) + + get_tree().get_root().get_node("main_menu").hide() + +func _on_practice_pressed(): + var local_menu = local_menu_scene.instance() + get_tree().get_root().add_child(local_menu) + + get_tree().get_root().get_node("main_menu").hide() + +func _on_settings_pressed(): + pass # Replace with function body. + +func _on_quit_pressed(): + get_tree().quit() diff --git a/scripts/menu/player_settings.gd b/scripts/menu/player_settings.gd new file mode 100644 index 0000000..90f9b3d --- /dev/null +++ b/scripts/menu/player_settings.gd @@ -0,0 +1,5 @@ +extends Control + +func _ready(): + # TODO color + pass diff --git a/scripts/menu/server.gd b/scripts/menu/server.gd new file mode 100644 index 0000000..8a8ec70 --- /dev/null +++ b/scripts/menu/server.gd @@ -0,0 +1,26 @@ +extends Control + + +var direct_host_menu_scene = preload("res://scenes/menu/direct_host.tscn") +var direct_join_menu_scene = preload("res://scenes/menu/direct_join.tscn") + +func _ready(): + pass + +func _on_back_pressed(): + queue_free() + get_tree().get_root().get_node("main_menu").show() + + +func _on_direct_host_pressed(): + var direct_host_menu = direct_host_menu_scene.instance() + get_tree().get_root().add_child(direct_host_menu) + + get_tree().get_root().get_node("server").hide() + + +func _on_direct_join_pressed(): + var direct_join_menu = direct_join_menu_scene.instance() + get_tree().get_root().add_child(direct_join_menu) + + get_tree().get_root().get_node("server").hide()